專利名稱::游程長度限制碼錯誤更正解碼方法
技術領域:
:本發明是有關一種應用于游程長度限制碼的錯誤訊號更正譯碼方法,特別是以改良的譯碼規則更正游程長度限制碼的信道位錯誤。
背景技術:
:編碼是數字系統,尤其是數字通訊、數據儲存系統中重要的一環。一般而言,編碼可分為3大類來源編碼(sourcecoding)、錯誤控制編碼(errorcontrolcoding)、與信道編碼(channelcoding)。來源編碼的目的在將消息(information)來源-可能是人或計算機-轉換成數字數據序列,特別是二進制位序列,以及消息內容的壓縮;錯誤控制編碼則將數字數據序列編碼成一新的位串行,使此位串行具有錯誤訊號偵測或更正的保護功能;而信道編碼的目的則是為了更有效率地將位字符串調變至通訊信道或儲存媒介中以更方便數據的傳輸或儲存。圖1是典型的數據傳輸/數據儲存系統的方塊圖,通常在信道編碼前已先作錯誤控制編碼。在譯碼端解調變得到的信道位可能有錯誤,但只要得到的信道位的錯誤量不超出錯誤控制編碼(特別是錯誤更正碼)的更正能力,接收端即可取得正確的消息訊號。大部分通訊或數據儲存系統,錯誤訊號的更正是在錯誤控制碼方塊內完成,而信道編碼并不具有錯誤訊號的更正能力。通常信道編碼是為了調變的目的,讓數據訊號能在特定的傳輸媒介或儲存裝置中傳輸或儲存,以得到較佳通訊效能或儲存效率。舉例來說,格雷碼(Graycode)是一種簡單的編碼方法,它讓每次發送的訊號序列與上一個訊號序列只有一個位元的差異。以一3位元格雷碼為例,若現在發送一個訊號序列為010,則下一個訊號可能為011、110、或000,每次訊號組間只有一個位元的改變。格雷碼可以限定通訊系統發射訊號間的相位差避免產生180度的相位反轉,切合調變的需要。而目前有些技術則將通道變碼與錯誤控制編碼結合在一起,例如連續相位調變(ContinuousPhaseModulation),錯誤控制編碼與信道編碼的區隔不再明顯。但基本上,信道編碼并不具有錯誤更正的能力,必須靠錯誤控制編碼來更正。當譯碼(解調)的信道位錯誤量超過錯誤控制碼的更錯能力時,得到的數據訊號即可能發生錯誤。游程長度限制碼(RunLengthLimited,RLLcode)是一種常見信道編碼技術,目前廣泛應用于儲存裝置,如硬盤、CD/DVD盤片中。游程長度限制碼通常以RLL(x,y)表示,x、y為大于0的自然數,x代表最小的游程長度,y是限制的游程長度,經由RLL(x,y)編碼后兩個信道位“1”的間包含至少x個、最多y個0。圖2A為一游程長度限制碼RLL(2,7)編碼表的例子。假設一組數據序列,其值為10001111(分組為10-0011-11),則經過編碼后得到的信道位序列應為0100-00001000-1000。經由游程長度限制碼編碼的數據可以有效限制0、1位的變化頻率,同時其游程長度有限制,可以提供同步信息以及降低數據的直流值,這個特性使它適合應用于儲存裝置如光盤、硬盤的信道編碼。游程長度限制碼的譯碼可利用編碼表,將可能的數據序列與其對應的信道位序列的位序列的對應關系作成解碼表(demodulationtable),當接收或讀取一信道位序列時,根據該對照表對應回原資料序列。例如編碼時數據序列D1=11011000,編碼后輸出的位序列為C1=1000001000000100,將C1與D1的對應關系紀錄于譯碼表中,日后若接收一序列與C1相同,根據該對應關系即可譯碼為數據序列D1。在硬盤磁道上,數據是以磁通翻轉(fluxtransition)代表信道位為“1”,不變的為“0”;光盤片中則是以坑(pit)與巷(land)變換的處代表“1”,平坦處則代表“0”。圖2B中顯示上述信道位0100000010001000序列與盤片上坑、巷的對應圖。4T代表2個1間有4-1=3個0,7T代表有7-1=6個0,亦即坑或巷的長度。讀取的訊號可以nT序列表示如7T4T4T,其代表的信道位序列為1000000100010001。若以RLL(2,7)作信道編碼的訊號,其訊號應介于3T至8T間。目前常見的游程長度限制碼有RLL(1,7)、RLL(2,7)、RLL(2,10)等,這些編碼方式正常情形下最小的訊號分別為2T與3T訊號,最大則是8T與11T。當盤片上坑或巷的長度過小,或讀寫頭取樣結果解調變得到小于編碼最小限制的訊號,這時信道位有錯誤,若直接作信道位譯碼會得到錯誤的數據訊號。反之若盤片上坑或巷的長度過大亦然。由于游程長度限制碼本身并不具有錯誤更正能力,若要于錯誤更正碼譯碼前先行更正游程長度限制碼的錯誤信道位,必須另覓方法處理。以RLL(1,7)碼為例,1T是非法的訊號。常見RLL(1,7)碼1T錯誤發生的處理方法有二,一為忽略1T訊號,即使讀取的信道位出現連續兩個“1”,仍然將整個序列由譯碼表譯碼,此時解出的數據序列與正確的數據序列會有所差異。一般情形下這些差異仍可透過錯誤校正碼更正回正確的消息數據,但如果錯誤的位數目大于錯誤更正碼的更正能力時,會發生譯碼錯誤而形成不同的消息數據。另一方法是于解碼前先將1T訊號轉換為2T訊號。因為通常是2T訊號誤判為1T訊號,所以加入1T/2T的轉換,即增加一部分的邏輯電路單元于游程長度限制碼的譯碼電路,或修改系統固體的設定。此方法是當每接收或讀取一位序列,必須判斷此位序列是否包含1T錯誤訊號,并將1T錯誤訊號修正為2T訊號,之后再透過譯碼表譯碼。將1T修正為2T訊號再進行譯碼可降低錯誤率,其代價是電路變復雜且必須花時間運算判定接收的游程長度限制碼是否擁有1T訊號部分并修正為2T訊號,這會使得執行的時間增長。圖3A與3B分別為采取忽略方式、以及增加更正電路方式的譯碼架構示意圖,兩種方式都未改變譯碼表的譯碼規則。如果能在不增加額外電路下更正游程長度限制碼的錯誤而取得較正確的位序列,使進入錯誤控制碼方塊(參考圖1)的信道位的錯誤率下降,可以使接收/讀取訊號經錯誤校正碼更正后有較高的正確性。
發明內容根據上述理由,本發明提供一種更正游程長度限制碼錯誤位序列的方法,設計一新的譯碼規則,增加游程長度限制碼譯碼表的對應關系,可將包含錯誤訊號(如RLL(1,7)碼的1T訊號)的接收位序列譯碼,而不需增加轉換的邏輯電路即可完成信道位錯誤的更正。新的游程長度限制碼的譯碼規則將不合法的信道字節成的位序列亦加入譯碼表中,以擴充譯碼表的方式,讓錯誤的位序列亦對應到一數據序列,而不需額外增加訊號轉換的邏輯電路來完成游程長度限制碼錯誤更正。另外本發明提出一種針對RLL(1,7)編碼的訊號作1T訊號錯誤更正譯碼的方法與譯碼表,是將包含1T訊號的位序列直接經由新的譯碼規則對應至一數據序列,省略更正1T訊號的邏輯電路。這些對應關系可由系統設計者根據統計數據或其經驗增加于原本的解碼表中。圖1為典型的數據傳輸/數據儲存系統的方塊圖;圖2A為RLL(2,7)碼的編碼表;圖2B為信道位與光盤片上坑、巷的對應圖;圖3A為忽略1T錯誤訊號的譯碼架構圖;圖3B為增加1T/2T更正電路的譯碼架構圖;圖4A為修正后的解碼表的示意圖;圖4B為使用修正后譯碼表譯碼的譯碼架構圖;圖5A為RLL(1,7)碼的編碼表;以及圖5B為本發明揭露的RLL(1,7)碼解碼表的示意圖。具體實施例方式本發明的一些實施方式會詳細描述如下。然而,除了詳細描述的內容外,本發明還可以廣泛地在其它的實施例施行,且本發明的范圍不受限定,其以申請的專利范圍為準。RLL(x,y)碼合法的信道位序列組成介于(x+1)T至(y+1)T的間,以RLL(1,7)碼為例即2T至8T,而1T或9T、10T...等皆為不合法的訊號。假設現有一數據序列以RLL(x,y)編碼,其合法的位序列應為(x+1)T至(y+1)T的訊號所組成,其中x、y是大于0自然數且x小于y。此合法的位序列由通訊系統的發射端發射至接收端、或儲存于儲存裝置由讀取裝置讀出經過模擬訊號轉換后,可能得到的是非合法的位序列,即接收/讀取的位序列組成包含1T至xT、或(y+1)T以上的訊號。換句話說,當合法的位序列調變至一信道,由于信道可能引進噪聲,或是接收端讀取錯誤,接收端接收的模擬訊號序列解調變后得到的位序列可能與原本發射/儲存的位序列不同,而其中更可能產生非合法的位序列。游程長度限制碼本身并不具有錯誤更正的功能,如果接收/讀取的位序列與原本的位序列不同,并無法辨識出來。然而,若是非合法的位序列,在RLL譯碼前即可得知。由前述的公知技術的描述得知,非合法的位序列可能導因于合法的位序列解調變錯誤。不同的非合法位序列其原本的位序列也有所不同,例如,1T訊號極可能是2T訊號所誤判(由3T訊號誤判的機率相對而言極小),若接收訊號為3T2T1T4T的位序列,其原本的位序列可能是3T2T2T3T;若接收訊號為3T3T1T3T的位序列,原本的位序列可能是3T2T2T3T或3T3T2T2T。公知技術使用一更正電路或增加固件功能的方式將非合法的位序列修正為合法位序列(例如,將3T3T1T3T序列修正為3T2T2T3T),再經由譯碼表譯碼,本發明則公開一種具錯誤訊號更正能力的譯碼方法,是直接修改譯碼表的譯碼規則,增加非合法位序列與數據序列的對應關系以完成譯碼流程。參考圖4A,為上述修改解碼表的一實施例的示意圖。編碼方式為RLL(x,y)碼,區塊42包含原本未修改前的解碼表的對應關系,例如位序列4420其值為3T2T2T3T訊號,對應至數據序列4424,其值為100100;區塊46則為修改的解碼表增加的對應關系。新增加的對應關系461中,位序列4610為3T2T1T4T,因序列中包含1T的訊號是不合法的位序列。假設,由統計數據或系統設計者經驗判斷,位序列4610是合法序列4420接收/讀取錯誤的結果。因此修正的譯碼表加入一新對應關系461,讓位序列4610與合法的位序列4420都對應到相同的數據序列,即位序列4610對應的數據序列4614與合法位序列4420所對應的數據序列4424相同。因此,當接收一位序列4000,若其值為非法的位序列4610,透過此修正的解碼表,可直接藉由對應關系461,將其譯碼為數據序列4424,其功能相當于由更正電路先修正為合法的位序列4420后由譯碼表對照譯碼輸出。因此原先圖3B具有錯誤更正電路的譯碼系統可簡化成如圖4B的形式。本發明提出的系統架構與原先忽略錯誤訊號直接譯碼的電路相同,差別是其中譯碼表經過修正,增加了非合法位序列與數據序列的對應關系,因而具有修正錯誤位序列的功能。本發明亦公開一具體實施例,包含一種RLL(1,7)編碼的位序列作1T訊號錯誤更正譯碼的方法,以及修正的譯碼表架構。RLL(1,7)碼常用于硬盤與光盤中,對RLL(1,7)碼而言,1T訊號是不合法的。圖5A為RLL(1,7)碼的編碼表。假設現有一數據序列為101100,編碼后得到位序列CW0為001010101并紀錄于光盤片中。現在讀取頭讀取盤片數據得到一模擬訊號序列,經由訊號轉換后得到一位序列CW1。先前技術的處理方法為不論是否有1T錯誤訊號都直接由譯碼表對照譯碼,或透過一更正電路先判斷是否有1T錯誤訊號,并將1T訊號更正為2T訊號后根據譯碼表譯碼。然而,對于每個接收的位序列判斷是否有錯誤訊號會造成譯碼時間的延宕,且需要增加額外的邏輯電路。例如,若上述讀取的位序列CW1的位序列為001010101,由于并沒有1T錯誤訊號,直接譯碼得到的序列101100即為正確的數據序列,若經過更正電路的判斷處理只是增加譯碼時間。但是若讀取的位序列CW1的位序列為001100101,因為有1T訊號所以是錯誤的序列。直接譯碼得到的是錯誤的數據序列100011,若先作1T/2T轉換將位序列CW1先更正為001010101才可正確解碼。為避免上述1T/2T訊號轉換所導致增加譯碼電路與譯碼時間的問題,根據本發明的精神,透過修改解碼表來達成游程長度限制碼的更正。若讀取的位序列CW1的位序列為001100101包含1T訊號,在進入錯誤控制碼前可先判斷位序列CW1為錯誤序列。由上述得知1T訊號可能是2T訊號誤判而產生,即位序列CW1可能是位序列001010101讀取錯誤的結果。本發明提出的方法是將原解碼表作一修正,將位序列(CW1)001100101視為位序列(CW0)001010101讀取錯誤的結果,并加入此新的對照關系于解碼表中,即當讀取一含1T錯誤訊號的位序列001100101時,將其視為序列001010101而直接經對照表轉換為數據序列101100。根據修正的新譯碼表,當讀取的位序列的數據序列為001010101時,可依解碼表原本即包含的對應關系譯碼為數據序列101100;若讀取的位序列的位序列為001100101,亦可根據新加入的對應關系解碼。經由此修正后的譯碼表來譯碼,可以同樣達到訊號更正的效果而不需增加譯碼電路與時間。除了上述實施例所使用例子,RLL(1,7)碼常見的非合法位序列與合法的位序列、以及數據序列的對應關系尚包含位序列101100101對應位序列101010101,其數據序列為001100;位序列011001對應位序列010101,其數據序列為1100;位序列110對應位序列101,其數據序列為00......等。以上的對應關系,是根據觀察與經驗法則取得的,常見的包含1T錯誤訊號的序列與其可能的正確序列,以及其對應的數據序列。圖5B為修正后的譯碼表的示意圖,包含合法位序列與數據序列的對應關系54,以及增加的非合法位序列與數據序列的對應關系56。對應關系56包含上述實施例所提及的對應關系,但并非僅限制于上述實施例所述。以上所述僅為本發明的較佳實施例,并非用以限定本發明的申請專利權利;同時以上描述對于熟知本
技術領域:
的專門人士應可明了及實施,因此其它未脫離本發明所揭露的精神下所完成的等效改變或修飾,均應包含在本發明申請的專利范圍中。權利要求1.一種解碼方法,該方法包括接收一模擬訊號序列,并將該模擬訊號序列經訊號轉換為一位序列;輸入該位序列至一譯碼電路;以及該譯碼電路依據一譯碼表譯碼;其中該模擬訊號序列是一數字數據序列以一編碼方式編碼,于接收端接收的訊號;其中該譯碼表包含該數字數據序列以該編碼方式編碼得到的一合法位序列與該數字數據序列的一對應關系,該譯碼電路根據該對應關系將該位序列對應至該數字數據序列譯碼;其中該譯碼表還包含至少一非合法的位序列與該數字數據序列的對應關系。2.如權利要求1的譯碼方法,其特征在于,其中該非合法的位序列是指不屬于該合法位序列的該位序列。3.如權利要求1的譯碼方法,其特征在于,其中上述編碼方式包含游程長度限制碼(RunLengthLimited,RLLcode)。4.一種用于RLL(1,7)碼的譯碼表,其中該譯碼表包含復數個合法位序列與數字數據序列的對應關系,使一譯碼電路根據上述對應關系將一接收訊號的位序列譯碼,該譯碼表的特征在于包含至少一非合法位序列與數字數據序列的對應關系,當該接收訊號的位序列屬于該非合法的位序列時,該譯碼電路可根據該非合法位序列與數字數據序列的對應關系解碼。5.如權利要求4用于RLL(1,7)碼的譯碼表,其特征在于,其中該合法的位序列為以nT訊號所組成的序列,n為介于2到8的自然數。6.如權利要求4用于RLL(1,7)碼的譯碼表,其特征在于,其中該非合法位序列為具有1T訊號的該位序列。7.如權利要求6用于RLL(1,7)碼的譯碼表,其特征在于,其中該非合法位序列至少包含序列001100101、序列101100101、序列011001、與序列110。8.如權利要求7用于RLL(1,7)碼的解碼表,其特征在于,其中上述序列001100101對應資料序列101100,序列101100101對應數據序列001100,序列011001對應數據序列1100,以及序列110對應數據序列00。全文摘要游程長度限制碼(RunLengthLimited,RLLcode)為一種信道編碼技術,本身不具有錯誤更正能力。本發明公開一種方法,透過一經修改其譯碼規則的譯碼表,在不增加額外更正電路下更正游程長度限制碼的錯誤而取得較正確的序列,使錯誤控制碼的錯誤率下降,增加數據譯碼的正確性。文檔編號H03M7/46GK1801629SQ20041010462公開日2006年7月12日申請日期2004年12月31日優先權日2004年12月31日發明者李瑞政申請人:建興電子科技股份有限公司