專利名稱:建立可變長度錯誤代碼的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種建立可變長度錯誤代碼的方法,所述方法包括以下步驟(1)初始化所需要的參數(shù)碼字的最小和最大長度分別為L1和Lmax、每個碼字之間的自由距離dfree(所述距離dfree對于VLEC碼C來說是在所有任意擴(kuò)展碼的集合中的最小漢明距離),所需的碼字?jǐn)?shù)量S;(2)產(chǎn)生長度為L1、最小距離為bmin的固定長度碼C,bmin=min{bk;k=1,2,....,R},bk=與碼C的碼字長度Lk相關(guān)的距離并且被定義為在C中具有長度Lk的所有碼字之間的最小漢明距離,R=C中不同碼字長度的數(shù)量,所述產(chǎn)生步驟創(chuàng)建了n比特長的距離為d的字集W;(3)在集合W中列出和存儲所有可能的與C的碼字距離為dmin的L1元組(L1-tuples)(所述距離dmin對于VLEC碼C來說是C的所有可能的不同長度碼字對之間的所有發(fā)散(diverging)距離的最小值),并且,如果所述集合W不是空的,那么就通過在所有字的末端附加一個額外比特來加倍W中的字的數(shù)量,從而所述存儲步驟將該集合W替換為新的集合,該新集合具有比前一個集合多兩倍的字,并且這些字的每一個的長度是L1+1;(4)刪除集合W中與C的所有碼字不滿足cmin距離的所有字,所述距離cmin是碼C的最小收斂(converging)距離;(5)在沒有發(fā)現(xiàn)字或者達(dá)到最大比特數(shù)量的情況下,減小距離約束以便找到更多的字;(6)控制集合W的所有字是距離為bmin的,然后將找到的字加到碼C;(7)如果沒有達(dá)到所需的碼字?jǐn)?shù)量,就重復(fù)步驟(1)到(6),直到該方法發(fā)現(xiàn)不可能繼續(xù)或者已經(jīng)找到了所需的碼字?jǐn)?shù)量;(8)如果C的碼字?jǐn)?shù)量大于S,基于VLEC碼結(jié)構(gòu)計算通過使用信源概率對每個碼字長度加權(quán)而獲得的平均長度AL,如果它低于ALmin,那么所述AL變成ALmin,其中ALmin=AL的最小值,并且相應(yīng)的碼結(jié)構(gòu)被保留在存儲器中。
背景技術(shù):
圖1顯示的經(jīng)典通信鏈結(jié)構(gòu)包括,對來自信源S的信號進(jìn)行編碼的信源編碼器1(SCOD),接下來是信道編碼器2(CCOD)和,在編碼信號傳送之后通過信道3獲得編碼信號,信道解碼器4(CDEC)和信源解碼器5(SDEC)。該解碼信號將發(fā)送給接收機(jī)。由于其壓縮能力,可變長度碼(VLC)被傳統(tǒng)地使用在信源編碼中,并被應(yīng)用到相關(guān)信道編碼技術(shù)中從而與實際傳送信道效果(諸如衰減、噪聲等等)做斗爭。然而,因為信源編碼試圖消除冗余而信道編碼卻試圖重新引入冗余,所以研究如何有效地協(xié)調(diào)這些技術(shù)從而改善整個系統(tǒng),同時將復(fù)雜度保持在可接受的水平。
在研究中提出的解決方案中,可變長度糾錯(VLEC)碼表現(xiàn)了可變長度的同時提供糾錯能力的優(yōu)點,但是對于短字母來說,建立這些碼是相當(dāng)費時的(并且對于更長的字母信源來說甚至是禁止的),結(jié)構(gòu)復(fù)雜度也是一個缺點,以下將了解。
首先,必須回憶一些經(jīng)典VLC的定義和特性。碼C是S個碼字的集合{c1,c2,c3,...,ci,...cs},對于其中的每一個定義了長度li=|ci|,其中l(wèi)1≤l2≤l3≤...≤li≤...≤ls而沒有任何一般性的損耗。碼C中不同碼字長度的數(shù)量被稱為R,顯然R≤S,這些長度表示為L1,L2,L3,...Li,...LR,其中L1<L2<L3<......LR。然后可變長度碼或VLC,其結(jié)構(gòu)表示為(s1@L1,s2@L2,s3@L3,.......,sR@LR),它對應(yīng)于長度為L1的s1個碼字、長度為L2的s2個碼字、長度為L3的s3個碼字、......長度為LR的sR個碼字。當(dāng)使用VLC時,對于給定的信源,其壓縮效率與從所述信源傳送符號所需的比特數(shù)量有關(guān)。用來估計有效性的度量標(biāo)準(zhǔn)通常是碼的平均長度AL(即,傳送一個字所需的比特數(shù)量的平均值),當(dāng)每個符號ai映射到碼字ci時,通過以下關(guān)系式(1)給出所述平均長度AL=Σi=1i=sli·P(ai)···(1)]]>該關(guān)系式等價于關(guān)系式(2)AL=Σi=1RLi·(Σj=r(i)+1j=r(i+1)P(ai))···(2)]]>
其中,對于數(shù)據(jù)源A,S個信源符號被表示為{a1,a2,a3,...,as},P(ai)是這些符號每一個相應(yīng)的出現(xiàn)概率,其中∑P(ai)=1(從i=1到i=S)。如果ALmin表示平均長度AL的最小值,那么就很容易看出當(dāng)達(dá)到ALmin時,符號就以下面的方法索引P(a1)≥P(a2)≥P(a3)≥...≥P(ai)≥...P(as)。為了對數(shù)據(jù)以接收機(jī)能夠?qū)幋a信息解碼的方式編碼,那么VLC必須滿足下面的性質(zhì)非奇異的(所有的碼字是獨特的,即,沒有多于一個信源符號被分配給一個碼字)和唯一可解碼的(即,可能將任何碼字串準(zhǔn)確無誤地映射回正確的信源符號,而沒有差錯)。
在回顧VLC碼的一些通常特性時介紹和描述有用的各種距離將有助于回憶起在VLEC編碼理論中使用的糾錯特性的概念(a)漢明加權(quán)和距離如果w是長度為n的字,其中w=(w1,w2,...wn),那么w的漢明加權(quán),或簡稱為加權(quán),就是w中非零符號的數(shù)量W(w)W(w)=Σi=1i=nwi||wi||···(3)]]>并且,如果w1和w2是具有相同長度n的字,其中wi=(wi1,wi2,...win),i=1或2,那么w1和w2之間的漢明距離(或簡稱為距離)是w1和w2不同的位置的數(shù)量(例如,對于二進(jìn)制的情況,容易得出H(w1,w2)=W(w1+w2) (4)其中加法是模2運算)。然而,漢明距離的定義被限制在固定長度碼,其他的定義將在考慮VLEC碼之前定義。
(b)將fi=w1iw2i......wni成為VLEC碼C的n個字的串聯(lián),然后集合FN={fi|fi|=N}被稱為N階的C的擴(kuò)展碼。
(c)最小塊距離(block distance)和總最小塊距離與VLEC碼C的碼字長度Lk相關(guān)的最小塊距離bk被定義為C的具有相同長度為Lk的所有獨特碼字之間的最小漢明距離bk=min{H(ci,cj)ci,cj∈C,i≠j,|ci|=|cj|=Lk} k=1,...,R (5)并且,所述VLEC碼C的總最小塊距離bmin,即每個可能長度為Lk的最小塊距離值,由下式定義bmin=min{bkk=1,...R}(6)(d)發(fā)散距離和最小發(fā)散距離VLEC碼C的兩個不同長度的碼字ci=xi1xi2....xili]]>和cj=xj1xj2....xjl1]]>之間的發(fā)散距離,其中ci,cj∈C,li=|cj|和lj=|cj|,li>lj,由下式定義D(ci,cj)=H(xi1xi2...xili,xj1xj2....xjlj)···(7)]]>即,這也是lj長度碼字和更長碼字的lj長度前綴之間的漢明距離,所述VLEC碼C的最小發(fā)散距離dmin是C的具有不相等長度的所有可能碼字對之間的所有發(fā)散距離的最小值dmin=min{D(ci,cj)ci,cj∈C,|ci|≠|(zhì)cj|}(8)(e)收斂距離和最小收斂距離VLEC碼C的不同長度的兩個碼字ci=xi1xi2....xili]]>和cj=xj1xj2....xjli]]>之間的收斂距離,其中|ci|=li>|cj|=lj,由下式定義C(ci,cj)=H(xil1-lj+1xil1-lj+2....xil1,xj1xj2....xjlj)···(9)]]>即,這也是lj長度碼字和更長碼字的lj長度前綴之間的漢明距離,所述VLEC碼C的最小收斂距離dmin是C的具有不相等長度的所有可能碼字對之間的所有收斂距離的最小值cmin=min{C(ci,cj)ci,cj∈C,|ci|≠|(zhì)cj|} (10)(f)自由距離碼的自由距離dfree是從某些共同狀態(tài)Si發(fā)散并再收斂到另一共同狀態(tài)Sj的所有任意長度路徑集合中的最小漢明距離,其中j>idfree=min{H(fi,fj)fi,fj∈FN,N=1,2,......,∞}(11)根據(jù)VLC所使用的結(jié)構(gòu)模型,因此可以用下面符號來描述VLEC碼C的結(jié)構(gòu)S1@L1,b1;S2@L2,b2;......;SR@LR,bR;dmin,cmin(12)其中,有si個長度為Li具有最小塊距離bi的碼字,對于所有的i=1,2...R,(之前介紹過,R是不同碼字長度的數(shù)量)并且具有最小發(fā)散和收斂距離dmin和cmin。VELC碼最重要的參數(shù)是它的自由距離dfree,該自由距離大大影響了它在糾錯能力方面的性能,VLEC碼的自由距離由下式限制dfree>min(bmin,dmin+cmin) (13)回憶這些定義,將更容易說明VLEC碼結(jié)構(gòu)的現(xiàn)有技術(shù)。第一種類型VLEC碼,稱為α-激勵碼(prompt code),1974年引入,和該家族的擴(kuò)展,稱為αt1,t2,...,tR-激勵碼,都具有同樣的重要特性如果一個表示為比其他任何碼字cj更接近于ci的字集α(ci),其中j≠i,那么α(ci)中沒有序列是另一個α(cj)中序列的前綴。這些碼的構(gòu)造非常簡單,并且可由各個長度的碼字的數(shù)目來調(diào)整該構(gòu)造算法,這能夠為給定的信源和給定的dfree找到最佳激勵碼。然而,該最佳碼在壓縮性能方面的表現(xiàn)很差。
最近的構(gòu)造允許從固定長度線性分組碼的生成矩陣構(gòu)造VLEC碼,在文件“Variable-length error-correcting codes”by V.Buttigieg,Ph.D.Thesis,University of Manchester,England,1995中提出來了。所謂的碼-反碼(code-anticode)構(gòu)造,這種算法依賴于行組合和列置換在最右邊一列形成反碼。一旦獲得碼-反碼生成矩陣,那么就簡單地通過矩陣乘法獲得VLEC碼。
但是該技術(shù)有幾個缺點。首先,沒有明確的方法來找到所需的行組合和列置換以獲得反碼。另外,該構(gòu)造沒有考慮信源統(tǒng)計特性,從而就經(jīng)常顯示其自身的次最佳(可以通過在VLEC碼上的后處理找到帶有較小平均長度的碼)。同樣在該文件中,作者然后提出了一種改進(jìn)的方法,被稱為啟發(fā)式方法(Heuristic method),該方法基于計算機(jī)搜索來建立VLEC碼,從而為指定的信源和給定的對抗誤碼保護(hù)給出更好的已知壓縮率,即,碼C具有指定的總最小塊、發(fā)散和收斂距離(也就是dfree的最小值)和與信源統(tǒng)計特性匹配的碼字長度,從而為所選的自由距離和指定信源獲得最小平均碼字長(實際操作中,采用bmin=dmin+cmin=dfree,和dmin=[dfree/2])。
該啟發(fā)式方法使用了以下參數(shù)碼字的最小長度L1、碼字的最大長度Lmax、每個碼字之間的自由距離dfree、所需的碼字?jǐn)?shù)量S。以下將參考流程圖2到4來描述該啟發(fā)式方法主要的步驟。
為了開始計算機(jī)搜索(“開始”),那么首先必須指定所有所需的參數(shù)L1(最小碼字長度,必須至少等于或大于所需的最小發(fā)散距離),Lmax(最大碼字長度)、碼字之間的各種不同距離(dfree、bmin、dmin、cmin),和S(給定信源所需的碼字?jǐn)?shù)量)、和當(dāng)選擇這些參數(shù)時設(shè)置的一些關(guān)系式Ll≥dminbmin=dfreedmin+cmin=dfree然后執(zhí)行該算法的第一階段,附圖標(biāo)記為11它包括產(chǎn)生長度為L1以及最小距離為bmin具有最大碼字?jǐn)?shù)量的固定長度碼(最初放在C中)。該階段實際上是初始化,例如使用以下方法執(zhí)行圖5所示的貪婪算法(GA)、圖7所示的多數(shù)表決算法(majority votingalgorithm)(MVA),或新提出的表示為GAS(分步貪婪算法)的變型,包括上述兩個方法的變型(GAS包括GAS所使用的搜索方法,其中不刪除一半碼字,只刪除該組的最后一個碼字)。這兩個算法有助于創(chuàng)建長度為n比特且距離為d的集合W(實際上,應(yīng)當(dāng)注意,MVA比GA找到更多的字,但是它需要太多的時間而壓縮能力卻只有小小的改進(jìn),如圖6和8的表格所示,分別與GA和MVA相比較,該集合W是使用圖9表格定義的26個符號英文信源的不同的dfree值所得到的最佳編碼結(jié)構(gòu)。
該算法的第二個階段,對應(yīng)于圖2中附圖標(biāo)記為21-24的單元(21+22=操作過程“A0”;23+24=操作過程“A2”),包括在稱為W的集合中列出和存儲所有可能的距C中碼字距離為dmin的L1-元組。如果dmin≥bmin,那么W是空的。如果其中所有字對當(dāng)前碼來說滿足最小發(fā)散距離的集合W不是空的(回復(fù)“否”到測試22|W|=0?),那么通過將字的長度增加1個比特,即先將一個“0”再將一個“1”附加到W中所有字的最右邊位置,W中的字的數(shù)量被加倍(步驟24);除非超出比特數(shù)量的最大值(回復(fù)“是”到測試23)。在所述步驟24的輸出端,該修改后的集合W具有了比之前W多兩倍數(shù)量的字,每個字的長度是L1+1。
對應(yīng)于單元31到35(即圖2中的操作過程“A3”),該算法的第三階段包括刪除(步驟31)集合W中所有不與C所有的碼字滿足cmin距離(最小發(fā)散距離)的字(即,在新的W中僅保留和存儲滿足所述最小發(fā)散距離的字,其他的被丟棄)。在這一點上,新的集合W是由這樣的字集成的集合當(dāng)與C的碼字相比,這些字與C的碼字滿足所需的最小發(fā)散和收斂距離(dmin和cmin距離)。如果該新集合W不空(回復(fù)“否”到測試32|W|=0?),在W中選擇(步驟33)最大數(shù)量的字以滿足最小塊距離,從而保證集合W中具有相同長度的所有字具有至少等于bmin的最小距離。在步驟33的終點,使用GA或MVA實現(xiàn)的(注意到在這種情況下,GA或者M(jìn)VA所使用的初始集合是當(dāng)前W而不是n-元組集合),這樣獲得的字被加到(步驟34)已經(jīng)存在于C中的碼字。
如果在步驟21(回復(fù)“是”到測試22|W|=0?)的終點沒有字被找到(即W是空的)或者如果達(dá)到或者超過最大比特數(shù)量(回復(fù)“是”到測試23),那么就進(jìn)入該算法的第4階段(圖3所示的步驟41到46,并且在所述圖中表示為操作過程“A1”),該階段用來通過如下操作阻止該過程,即通過插入更多選擇的自由,更具體而言是將額外的比特(同時幾個比特)附加到W的所有字,這樣新的集合包括比舊的集合更多的字。如果在最后的組中有足夠的碼字(連續(xù)測試41和42,用來驗證在最后組中的碼字的數(shù)量,如果有之前的組的話),它們中的一些被從所述組(上述的)中刪除,該刪除允許減少距離約束并且找到比以前更多的碼字。事實上,上述經(jīng)典的啟發(fā)式方法開始于具有短長度的最大數(shù)量的碼字,把它們映射為具有高概率的符號并試圖獲得好的壓縮率,但有的時候,小長度集合的大小與所需的碼字?jǐn)?shù)量S不具可比性。在這一點上,少許碼字容易提供更多的自由度并能滿足這樣的條件,即關(guān)于對碼的距離和符號數(shù)量的初始要求。重復(fù)該刪除過程直到它對每個長度都保持一個碼字的最大值。如果在步驟31的終點W是空的(回復(fù)“是”到測試32|W|=0?),那么重復(fù)步驟23,24,31,32。如果沒有達(dá)到所需的碼字?jǐn)?shù)量(回復(fù)“否”到在該第三階段終點提供的測試35),那么必須重復(fù)步驟21到24和31到35,直到所述的步驟發(fā)現(xiàn)不可能找到字或者不可能達(dá)到所需的碼字?jǐn)?shù)量。
如果已經(jīng)達(dá)到所需的碼字?jǐn)?shù)量,即,C的碼字?jǐn)?shù)量等于或大于S(回復(fù)“是”到測試35),這樣獲得的VLEC碼的結(jié)構(gòu)被使用在第五部分,包括步驟51到56(如圖4所示,并且在所述圖中用操作過程“A4”表示),從而計算平均長度AL。通過對每個碼字的長度使用信源的概率加權(quán),并且將其與當(dāng)前最佳的一個相比來完成該部分。如果該VLEC碼的所述平均長度AL低于AL的最小化值(=ALmin),該AL變成ALmin,并且該新的AL值和相應(yīng)的碼結(jié)構(gòu)被保留在存儲器(步驟51)中。在算法中,這些步驟51和接下來的(第5部分;操作過程“A4”)的步驟允許返回到前一組,而所述算法的其他階段總是對當(dāng)前組執(zhí)行。該反饋操作的步長是一,即該反饋動作被認(rèn)為是窮舉性的。
為了繼續(xù)該最佳VLEC碼的搜索,需要避免保持相同的結(jié)構(gòu),這會導(dǎo)致算法中的循環(huán)。當(dāng)前碼的最后加入的組被刪除(步驟52,53),較短長度碼字的刪除能夠發(fā)現(xiàn)找到長度更長的碼字(測試54組中的碼字?jǐn)?shù)量是否大于1?),前一組的一些碼字(對于GVA是一半的數(shù)量;對于MVA是“最佳”的一個)被刪除(步驟55),從而在步驟21的開始處循環(huán)(步驟56)該算法(參考圖2),并找到不同的VLEC結(jié)構(gòu)(被刪除碼字的數(shù)量依賴于使用的哪種方法選擇字如果使用GA方法并且希望獲得線性碼,就需要刪除一半的碼字,而使用MVA方法只刪除一個碼字,即最佳的那個碼字,即允許在下一組中發(fā)現(xiàn)更多碼字的那個碼字)。
然而,所描述的啟發(fā)式方法經(jīng)常考慮非常不太可能的碼結(jié)構(gòu)或者處理這樣的情況(為了不錯過任何東西)在所述方法的實現(xiàn)中有很高的復(fù)雜度,而且這相當(dāng)費時,并且因此被禁止。
發(fā)明概述本發(fā)明的目的在于提出一種改進(jìn)的構(gòu)造方法,從而可能通過避免這些缺點而在復(fù)雜度上獲益。
為此,本發(fā)明涉及一種建立可變長度錯誤代碼的方法,如在本說明書第一段的描述中所定義的,所述建立方法在于至多一個比特被加到集合W的每個字的末尾。
本發(fā)明的另一個目的在于提供一種執(zhí)行上述建立可變長度錯誤代碼的方法的設(shè)備。
本發(fā)明將通過示例的方法并結(jié)合以下附圖來描述-圖1描述了傳統(tǒng)的通信信道;-圖2到4是顯示被稱為啟發(fā)式方法的建立VLEC碼的傳統(tǒng)方法的主要步驟的一個流程圖的3個部分;-圖5顯示了圖2到4的方法的初始化所使用的算法(稱為貪婪算法,或GA),圖6是個表格,為使用圖5的算法的啟發(fā)式結(jié)構(gòu)構(gòu)造的信源給出的各種VLEC碼;-圖7顯示了圖2到4的方法的初始化所使用的另一種算法(稱為多數(shù)表決算法,即MVA),圖8是另一個表格,為使用圖7的算法的啟發(fā)式結(jié)構(gòu)構(gòu)造的信源給出的各種VLEC碼;-圖9是一個表格,為26個符號的英文信源給出信源符號及其概率之間的對應(yīng)關(guān)系。
-圖10和11根據(jù)本發(fā)明的單個流程圖的兩個部分,顯示了圖2-4所示的傳統(tǒng)方法的改進(jìn)方法的實現(xiàn)。
-圖12是另一個表格,為在圖6和8的表格所考慮的同樣的26個符號的英文信源給出不同的VLEC碼,并使用GAS;-圖13是另一個表格,為在圖12中的相同信源給出各種VLEC碼,并使用前面提到的GAS和根據(jù)本發(fā)明的建立方法。
發(fā)明詳述仿真顯示,使用經(jīng)典的啟發(fā)式方法,幾乎所獲得的最佳代碼中沒有一個有洞(hole),即在其結(jié)構(gòu)長度內(nèi)的長度跳變。因此提出,根據(jù)本發(fā)明,考慮到最好的碼不帶有長度的跳變,從而相應(yīng)地減少被檢查VLEC碼的集合(這也就減少了仿真時間和方法實現(xiàn)的復(fù)雜度,而不用對AL做太多的修改)。根據(jù)這個設(shè)想,根據(jù)本發(fā)明,通過避免在集合W的每個字的末端添加多于1個比特來修改該方法。
相應(yīng)的實現(xiàn)(改進(jìn)的啟發(fā)式構(gòu)造方法,具有無洞優(yōu)化)顯示在圖10和11中,這兩個圖顯示了與系統(tǒng)對應(yīng)的流程圖的兩部分,該系統(tǒng)允許執(zhí)行根據(jù)本發(fā)明的改進(jìn)的方法(與圖2到4中相同的單元被指定了相同的附圖標(biāo)記)。
與圖2到4的流程圖主要的不同在于以下各個方面(a)首先,就經(jīng)典啟發(fā)式技術(shù)來說,對于實現(xiàn)改進(jìn)的方法無用的部分被取消了;(b)如果在步驟31的終點W是空的(回復(fù)“是”到測試32;|W|=0?),那么下一階段現(xiàn)在(參考圖10)不是步驟(23,24,31,32)的重復(fù),而是建立(替換所述的重復(fù))直接連接91到電路的輸入端(圖11中),執(zhí)行操作過程55(在重復(fù)步驟21到24和31到35之前,刪除一些碼字,或者刪除最佳碼字),所述操作過程55因此,如前所述,其后跟隨著操作過程21以及下述操作。
(c)該方法的第4階段現(xiàn)在被簡化為一個步驟,操作過程41(圖11),即測試“最后組的碼字?jǐn)?shù)量=1?”。如果回復(fù)是“否”,那么考慮到執(zhí)行所述操作過程55,與步驟55的輸入端的直接鏈接101被建立,然后是操作21等等。如果回復(fù)是“是”,與操作過程52到54的集合的輸入端的連接102被建立。
當(dāng)使用GAS方法來選擇碼字時,對26個符號的英文信源使用該解決方案(被稱為“無洞優(yōu)化方法”)得到的結(jié)果顯示在圖12的表格中??梢钥闯?,與圖13所示的結(jié)果相比,雖然該結(jié)果對于dfree=3來說不是完全地最佳(該碼結(jié)構(gòu)在長度L=11處有個洞),但是當(dāng)考慮到對于其他dfree值來說嚴(yán)格地沒有衰退并且在2,5和4之間有時間增益時,AL增加實際上是可接受的。當(dāng)將該解決方案與圖7的解決方案相比,也可以使用該評論,其中MVA復(fù)雜性效應(yīng)是清楚的。同樣地,將無洞優(yōu)化應(yīng)用到GA方法用來選擇碼字,對于dfree=3來說用輕微的AL增加代價獲得時間的增益。最后,圖5在另一方面顯示了當(dāng)前解決方案提供可接受時間增益的更好的AL,無洞優(yōu)化幾乎完全補(bǔ)償了由GAS引入的復(fù)雜度。
權(quán)利要求
1.一種建立可變長度錯誤代碼的方法,所述方法包括以下步驟(1)初始化所需要的參數(shù)碼字的最小和最大長度分別為L1和Lmax、每個碼字之間的自由距離dfree(所述距離dfree對于VLEC碼C來說是在所有任意擴(kuò)展碼集合中的最小漢明距離),所需的碼字?jǐn)?shù)量S;(2)產(chǎn)生(步驟11)固定長度碼C,其長度為L1、最小距離為bmin,bmin=min{bk;k=1,2,...,R},bk=與碼C的碼字長度Lk相關(guān)的距離并且被定義為在C中具有長度Lk的所有碼字之間的最小漢明距離,R=C中不同碼字長度的數(shù)量,所述產(chǎn)生步驟11創(chuàng)建n比特長距離為d的字的集合W;(3)在集合W中列出和存儲(步驟21)所有可能的與C的碼字距離為dmin的L1-元組(所述距離dmin對于VLEC碼C來說是C的所有可能的不同長度碼字對之間的所有發(fā)散距離的最小值),并且,如果所述集合W不是空的,那么就通過在所有字的末端附加一個額外比特來加倍W中的字的數(shù)量,從而所述存儲步驟將該集合W替換為新的集合,該新的集合具有比前一個集合多兩倍的字,并且這些字的每一個的長度是L1+1;(4)刪除(步驟31)集合W中不與C的所有碼字滿足cmin距離的所有字,所述距離cmin是碼C的最小發(fā)散距離;(5)在沒有發(fā)現(xiàn)字或者達(dá)到最大比特數(shù)量的情況下,減小(步驟41)距離的約束以便找到更多的字;(6)控制集合W的所有字是距離為bmin的,然后將找到的字加到碼C(步驟34);(7)如果(步驟35)沒有達(dá)到所需的碼字?jǐn)?shù)量,就重復(fù)步驟(1)到(6)(即步驟21到35),直到該方法發(fā)現(xiàn)不可能繼續(xù)或者已經(jīng)找到了所需的碼字?jǐn)?shù)量;(8)如果C的碼字?jǐn)?shù)量大于S,基于VLEC碼結(jié)構(gòu)計算(階段A4)通過使用信源概率對每個碼字長度加權(quán)而獲得的平均長度AL,如果它低于ALmin,那么所述AL變成ALmin,其中ALmin=AL的最小值,相應(yīng)的碼結(jié)構(gòu)被保留在存儲器中;并且,所述建立方法使得至多一個比特被添加到集合W中每個字的末端。
2.一種設(shè)備,用來執(zhí)行根據(jù)權(quán)利要求1的可變長度錯誤代碼建立方法。
全文摘要
本發(fā)明涉及可變長度糾錯(VLEC)碼技術(shù),其中主要步驟為定義所有需要的參數(shù),產(chǎn)生具有固定長度L1的碼,在集合W中存儲這樣獲得的距離碼字最小發(fā)散距離d[min]的所有可能的L1-元組(如果這樣得到的新集合W不是空的,一個額外的比特被附加在所有字的末端),刪除W中所有不與所有碼字滿足距離標(biāo)準(zhǔn)的字,并且驗證最后集合W的所有字滿足另一個距離標(biāo)準(zhǔn)。假設(shè)大多數(shù)好的碼沒有長度的跳變,根據(jù)本發(fā)明的方法能夠減少已檢查的VLEC碼的集合。在這個假設(shè)之下,定義了一種新的構(gòu)造方法,稱為“無洞最優(yōu)化”,其中避免了在集合W的每個字的末端增加多于一個比特。該新的算法沒有考慮非常不太可能的碼結(jié)構(gòu),從而允許在復(fù)雜度方面獲益。
文檔編號H03M13/03GK1706102SQ200380101881
公開日2005年12月7日 申請日期2003年10月14日 優(yōu)先權(quán)日2002年10月23日
發(fā)明者C·拉米 申請人:皇家飛利浦電子股份有限公司