專利名稱:一種lt碼的譯碼方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信領(lǐng)域中的數(shù)據(jù)(信息)傳輸技術(shù),特別是一種采用LT碼為降低信 道傳輸差錯率的信道譯碼方法。
背景技術(shù):
在數(shù)據(jù)通信中,信號經(jīng)常會由于受到噪聲、衰落或其他原因的影響產(chǎn)生錯誤,為了 確保通信質(zhì)量和效率,必須對這些錯誤進(jìn)行控制和糾正,常見的差錯控制技術(shù)主要包括前 向糾錯(FEC)與反饋重傳(ARQ)等技術(shù)。前向糾錯是一種非常有效的方法,常見的前向糾 錯碼、即信道編碼,有里德-所羅門(Reed-Solomon)碼、卷積碼、turbo碼以及低密度奇偶 校驗碼(LDPC)等。前向糾錯碼、特別是近期快速發(fā)展的turbo碼與LDPC碼,其特點(diǎn)是單向 傳輸、不需反饋,能根據(jù)碼的規(guī)律性自動糾正錯誤,糾錯迅速,糾錯能力非常強(qiáng);但前向糾錯 碼的編、譯碼結(jié)構(gòu)復(fù)雜,效率低,一般僅用在通信物理層作為幀內(nèi)的比特級糾錯。由于僅采用前向糾錯碼難以保證經(jīng)過譯碼后幀的正確性,因而一般在通信系統(tǒng)的 上層還要采用幀級別的糾錯技術(shù)以進(jìn)一步提高傳輸?shù)目煽啃?,而其中最常見的也是最簡?的幀級別糾錯技術(shù)就是ARQ技術(shù)。該技術(shù)的特點(diǎn)是結(jié)構(gòu)簡單,但需要反饋信道。而近期開 發(fā)出的另外一類基于幀級別的被稱為“無速率”碼及網(wǎng)絡(luò)編碼的通信技術(shù);其中,常見的無 速率碼有LT碼、Raptor碼以及二進(jìn)制確定無速率碼等,此類無速率碼的特點(diǎn)就是“無速率” 性,當(dāng)使用無速率碼作為差錯控制時,發(fā)射端不斷地發(fā)送幀級別的經(jīng)過編碼后的幀,接收端 則對收到的幀進(jìn)行譯碼,當(dāng)接收端收到足夠多的幀后,就能完全恢復(fù)出原信息幀,然后再反 饋一個終止信號給發(fā)射端,發(fā)射端就停止繼續(xù)發(fā)送;整個傳輸過程,接收端不像ARQ技術(shù)那 樣要經(jīng)常反饋信息給發(fā)射端,除了終止信號,不需要再向發(fā)射端反饋其他的信息,比如信息 包的丟包情況。作為無速率碼的代表,LT碼是基于偽隨機(jī)方法編碼的,即事先設(shè)定好一個概率 分布、即度分布,其中的度是指參與一個編碼幀編碼的原始幀數(shù)目,根據(jù)此分布隨機(jī)的選擇 某個確定數(shù),然后從所有的原始幀中隨機(jī)選擇此數(shù)目的原始幀,并對這些幀進(jìn)行異或處理, 這樣就得到一個編碼幀,這些原始幀稱為此編碼幀的校驗幀,重復(fù)進(jìn)行,直到得到所有的編 碼幀。在"M. Luby,〈〈LT-codes(LT 碼)))in Proceedings of the 43rd Annual IEEE Symposium on the Foundations of Computer Science (STOC), pp. 271-280,2002” 文獻(xiàn) 中公開了一種LT碼的常規(guī)譯碼方法,其譯碼過程如下接收機(jī)將收到的信號經(jīng)過常規(guī)的解 調(diào)、解交織處理后,進(jìn)行幀檢測,將幀檢測結(jié)果為錯誤的編碼幀丟棄掉,而將幀檢測正確的 編碼幀送入譯碼模塊進(jìn)行譯碼處理對于度為1即只有一個原始幀參與編碼的編碼幀,其 原始幀的值等于該編碼幀,這樣恢復(fù)出一個原始幀,接著將該原始幀與有此原始幀參與編 碼的編碼幀進(jìn)行異或處理,得到這些編碼幀的更新值,將這些編碼幀的度減1 ;重復(fù)以上操 作直到無法找到度為1的編碼幀,則譯碼結(jié)束。從上述譯碼過程可看出,常規(guī)LT碼譯碼方 法是針對幀檢測正確的編碼幀進(jìn)行譯碼,而將錯誤的編碼幀直接丟棄掉。而實際上,被丟棄的幀中大部分錯誤幀錯誤的比特數(shù)非常少,如果能在接收端通過有針對性的技術(shù)處理、即 將錯誤的具體位置找出并糾正,使其成為正確幀,從而就可有效地提高信道的傳輸能力,包 括傳輸?shù)目煽啃砸约皞鬏數(shù)男省R蚨?,常?guī)LT碼譯碼方法存在對接收到的幀信息利用不 足,不能對錯誤幀進(jìn)行糾正,信道傳輸?shù)牟铄e率較高、傳輸效率低等缺陷。
發(fā)明內(nèi)容
本發(fā)明的目的是在背景技術(shù)上,改進(jìn)設(shè)計一種LT碼的譯碼方法,以提高信道傳輸 中對錯誤幀進(jìn)行糾正的能力,降低信道傳輸差錯率,確保系統(tǒng)傳輸?shù)目煽啃裕行嵘到y(tǒng) 傳輸?shù)娜萘?、傳輸?shù)男屎屯ㄐ刨|(zhì)量等目的。本發(fā)明的解決方案是從幀級別的譯碼角度出發(fā)。其基本譯碼過程如下當(dāng)收到的 編碼幀數(shù)目達(dá)到原始幀的數(shù)目后,首先按常規(guī)的LT譯碼方法進(jìn)行譯碼,若成功譯出全部的 原始幀,就向發(fā)射機(jī)發(fā)送確認(rèn)信號;若未能譯出全部的原始幀,則根據(jù)常規(guī)的LT譯碼方法 找出所有原始幀與編碼幀的對應(yīng)關(guān)系,若未能找齊(全)對應(yīng)關(guān)系,則繼續(xù)接收編碼幀,直 到找出所有原始幀與編碼幀的對應(yīng)關(guān)系止,若能譯出所有原始幀、則向發(fā)射機(jī)發(fā)送確認(rèn)信 號;否則繼續(xù)接收編碼幀,并找出該編碼幀同系統(tǒng)編碼幀(即已經(jīng)與原始幀有線性關(guān)系的 編碼幀)之間的線性關(guān)系,然后利用該線性關(guān)系式對此次接收的編碼幀與有線性關(guān)系的系 統(tǒng)編碼幀兩者進(jìn)行異或處理,得到一個錯誤指示序列,然后利用該錯誤指示序列進(jìn)行比特 翻轉(zhuǎn)處理,之后再采用常規(guī)LT譯碼方法進(jìn)行譯碼,若能譯出所有原始幀,則向發(fā)射機(jī)反饋 確認(rèn)信號;否則接收下一編碼幀,直到譯出所有原始幀,并向發(fā)射機(jī)反饋確認(rèn)信號后\送入 接收機(jī)信宿。因此,本發(fā)明方法包括步驟1.信號接收及常規(guī)處理接收機(jī)收到發(fā)射機(jī)發(fā)出的采用常規(guī)LT編碼的信號 后,經(jīng)解調(diào)、解交織處理后,送入下一步驟;步驟2.幀的檢測處理對經(jīng)步驟1解調(diào)、解交織處理后的信號進(jìn)行幀檢測,每收到 一個由發(fā)射機(jī)發(fā)出的編碼幀,去掉其幀號后、按照原幀號的順序?qū)⒃摼幋a幀保存在編碼幀 存儲器中,然后根據(jù)幀校驗序列檢測該幀的對與錯,并按照原幀號順序?qū)⒔Y(jié)果保存在幀質(zhì) 量緩存器中,若收到的編碼幀數(shù)目達(dá)到原始幀數(shù)目時,轉(zhuǎn)步驟3 ;步驟3.譯碼處理對經(jīng)步驟2處理后、達(dá)到原始幀數(shù)目的編碼幀按常規(guī)的LT譯 碼方法進(jìn)行譯碼,若譯碼成功,則轉(zhuǎn)步驟4、并向發(fā)射機(jī)反饋確認(rèn)信號;若未能譯出全部的 原始幀或在原始幀中還存在沒找到(與之)有線性關(guān)系的編碼幀的原始幀,則轉(zhuǎn)步驟33處 理;步驟3a.繼續(xù)接收編碼幀、譯碼繼續(xù)接收編碼幀、并根據(jù)常規(guī)的LT譯碼方法找出 所有與原始幀存在線性關(guān)系的編碼幀、即系統(tǒng)編碼幀,并對其進(jìn)行檢測,此時、若全部系統(tǒng) 編碼幀經(jīng)檢測都正確,則譯碼得出所有原始幀后轉(zhuǎn)步驟4、同時向發(fā)射機(jī)反饋確認(rèn)信號;若 系統(tǒng)編碼幀經(jīng)檢測有錯,則轉(zhuǎn)步驟;^處理;步驟3b.繼續(xù)接收編碼幀并譯出所有原始幀繼續(xù)接收編碼幀、找出與該編碼幀對 應(yīng)的系統(tǒng)編碼幀之間的線性關(guān)系,并將兩者(即該編碼幀及與有線性關(guān)系的系統(tǒng)編碼幀) 進(jìn)行異或處理,以得到一個錯誤指示序列,然后依次對有錯誤的(當(dāng)前接收的)編碼幀與對 應(yīng)系統(tǒng)編碼幀的錯誤指示序列中指示為錯誤的位置、進(jìn)行比特翻轉(zhuǎn)處理,并將處理結(jié)果保存在幀質(zhì)量緩存器中;接著對所有正確編碼幀根據(jù)常規(guī)LT譯碼方法進(jìn)行譯碼,若能譯出所 有原始幀,則轉(zhuǎn)步驟4、同時向發(fā)射機(jī)反饋確認(rèn)信號;否則繼續(xù)接收下一編碼幀,直到正確 譯出所有原始幀、再轉(zhuǎn)步驟4處理;步驟4.譯碼結(jié)果的處理將以上步驟譯碼成功后轉(zhuǎn)入的全部原始幀送入接收機(jī)信宿。在步驟\中所述所接收的編碼幀與有線性關(guān)系的系統(tǒng)編碼幀之間的線性關(guān)系,是 通過先找出所接收的編碼幀與原始幀之間的線性關(guān)系,找出的原始幀與系統(tǒng)編碼幀之間的 線性關(guān)系,進(jìn)而找出接收的編碼幀與系統(tǒng)編碼幀之間的線性關(guān)系。在步驟中,所述的錯誤指示序列中指示為錯誤的位置是指所接收的編碼幀與有 線性關(guān)系的系統(tǒng)編碼幀進(jìn)行異或處理后不為零的位置。在步驟中,所述的比特翻轉(zhuǎn)處理是指對每一個錯誤編碼幀中錯誤指示序列值 為“1”的位置進(jìn)行比特翻轉(zhuǎn)處理、處理后再檢測所接收編碼幀的對與錯,處理過程一直重復(fù) 到該編碼幀正確或者翻轉(zhuǎn)次數(shù)達(dá)到設(shè)定的上限;每次翻轉(zhuǎn)比特的數(shù)目按照從小到大遞增的 方式進(jìn)行,最小為1個,最大比特翻轉(zhuǎn)數(shù)目為5 8個。所述翻轉(zhuǎn)次數(shù)達(dá)到設(shè)定的上限,即當(dāng)錯誤指示序列中“1”的個數(shù)為d、當(dāng)前翻轉(zhuǎn) 的比特數(shù)為V、而翻轉(zhuǎn)ν個比特需要的翻轉(zhuǎn)次數(shù)為C〗,則處理每一個編碼幀翻轉(zhuǎn)的上限次數(shù) 為
_9] YjIiC1d其中Cvd表示從d中任取ν的組合數(shù),W為最大比特翻轉(zhuǎn)數(shù)目,而且W彡d。本發(fā)明是在無需對系統(tǒng)發(fā)射機(jī)做任何改動,而僅需要對接收機(jī)的譯碼方法進(jìn)行改 進(jìn)的情況下,充分利用了接收到的錯誤幀,通過比特翻轉(zhuǎn)方法找到出錯位置,并糾正得到正 確的幀,而不是把他們丟棄掉,從而有效地提高糾錯能力。因而,本發(fā)明與傳統(tǒng)LT碼的譯碼 方法相比具有信道傳輸中對錯誤幀進(jìn)行糾正的能力強(qiáng),信道傳輸差錯率低,系統(tǒng)傳輸?shù)目?靠性高,有效提高了系統(tǒng)傳輸?shù)娜萘?、傳輸?shù)男屎屯ㄐ刨|(zhì)量等特點(diǎn)。
具體實施例方式發(fā)射機(jī)按以下的常規(guī)方法發(fā)出信號步驟A.組幀將信號源輸入發(fā)出的長度為20000比特的原始數(shù)據(jù)送入組幀處理模 塊、進(jìn)行組幀,組成200個每個長度為100的原始幀Si, i = 1,2,. . .,200,組幀處理后轉(zhuǎn)步 驟B;步驟B.常規(guī)LT編碼處理將步驟A送來的原始幀進(jìn)行常規(guī)LT編碼處理,即首先根 據(jù)常規(guī)的LT碼構(gòu)造方法產(chǎn)生一個度分布,根據(jù)度分布的得到一個長為200的原始幀索引序 列,根據(jù)此序列對原始幀進(jìn)行幀異或處理,得到一個編碼幀1^.,編碼過程可用下式來表示,&=1^&咖(12公式(1)其中,M^為常規(guī)LT碼編碼產(chǎn)生&的度分布中原始幀參與的個數(shù),然后將編碼幀送 至步驟C ;步驟C.加入幀校驗序列將步驟B送來的編碼幀加入16比特的循環(huán)冗余編碼 (CRC)序列,然后將加了幀校驗序列的編碼幀送至步驟D ;步驟D.加入幀識別號將步驟C送來的編碼幀進(jìn)行加幀識別號處理,即在每一個幀中,增加一個唯一識別該幀的幀號,然后步驟E ;步驟E.信號處理及發(fā)送經(jīng)加幀識別號處理后的編碼幀被送入常規(guī)信號處理模 塊,進(jìn)行交織、調(diào)制處理后,送至信道發(fā)送;以上從步驟B到步驟E的過程循環(huán)進(jìn)行,直至收 到從接收端(機(jī))反饋回來的確認(rèn)信號為止;本實施方式接收機(jī)處理步驟為步驟1.信號接收及常規(guī)處理接收機(jī)收到發(fā)射機(jī)發(fā)出的采用常規(guī)LT編碼的信號 后,經(jīng)解調(diào)、解交織處理后,送入步驟2 ;步驟2.幀的檢測處理對經(jīng)步驟2解調(diào)、解交織處理后的信號進(jìn)行幀檢測,每收到 一個由發(fā)射機(jī)發(fā)出的編碼幀,去掉其幀號后、按照原幀號的順序?qū)⒃摼幋a幀保存在存儲器 中,然后根據(jù)幀校驗序列檢測該幀的對與錯,并按照原幀號順序?qū)⒔Y(jié)果保存在幀質(zhì)量緩存 器中,至收到編碼幀的數(shù)目達(dá)到原始幀的數(shù)目200時、轉(zhuǎn)步驟3 ;步驟3.譯碼處理對經(jīng)步驟2處理后的200個編碼幀、首先按常規(guī)的LT譯碼方法 進(jìn)行譯碼,若譯碼成功,則轉(zhuǎn)步驟4、并向發(fā)射機(jī)反饋確認(rèn)信號;若未能譯出全部的原始幀 則轉(zhuǎn)步驟\處理;步驟3a.繼續(xù)接收編碼幀、譯碼繼續(xù)接收編碼幀、并根據(jù)常規(guī)的LT譯碼方法找出 所有與原始幀存在線性關(guān)系的編碼幀、即系統(tǒng)編碼幀,用Ru來表示,這樣,原始幀與系統(tǒng)編 碼幀之間的線性關(guān)系用下式來表示Si = Y^Rsjj mod2公式(2)其中,Ni為Si對應(yīng)的系統(tǒng)編碼幀參與的個數(shù);并對系統(tǒng)編碼幀進(jìn)行檢測,此時、若 全部系統(tǒng)編碼幀經(jīng)檢測都正確,則譯碼得出所有原始幀后轉(zhuǎn)步驟4、同時向發(fā)射機(jī)反饋確認(rèn) 信號;否則,轉(zhuǎn)步驟I處理;步驟3b.繼續(xù)接收編碼幀并譯出所有原始幀繼續(xù)接收編碼幀Rnt,根據(jù)公式(1) 發(fā)射機(jī)編碼關(guān)系有, =2^'Amod2公式⑶將公式⑵代入公式(3)可得,Rrj = ΣΙΑ, m。d2公式⑷其中,Pt為& t對應(yīng)的系統(tǒng)編碼幀參與的個數(shù);這樣就找出了該編碼幀與系統(tǒng)編 碼幀之間的線性關(guān)系,并將該編碼幀與對應(yīng)的有線性關(guān)系的系統(tǒng)編碼幀、進(jìn)行異或處理,得 到一個錯誤指示序列,該錯誤指示序列中的錯誤個數(shù)為7個,然后依次對有錯誤的(當(dāng)前接 收的)編碼幀和對應(yīng)的錯誤系統(tǒng)編碼幀中的錯誤指示序列中7個錯誤的位置進(jìn)行比特翻轉(zhuǎn) 處理、本實施方式比特翻轉(zhuǎn)個數(shù)最大為7個,而所對應(yīng)的每一個編碼幀翻轉(zhuǎn)的上限次數(shù)則 為1 次;并將處理結(jié)果保存在幀質(zhì)量緩存器中,接著對所有正確幀根據(jù)常規(guī)LT譯碼方法 進(jìn)行譯碼,若能譯出所有原始幀,則轉(zhuǎn)步驟4,否則接收下一編碼幀,直到正確譯碼出所有原 始幀,再轉(zhuǎn)步驟4處理;步驟4.譯碼結(jié)果處理將譯碼得到的200個原始幀送至接收機(jī)信宿。
權(quán)利要求
1.一種LT碼的譯碼方法,包括步驟1.信號接收及常規(guī)處理接收機(jī)收到發(fā)射機(jī)發(fā)出的采用常規(guī)LT編碼的信號后,經(jīng) 解調(diào)、解交織處理后,送入下一步驟;步驟2.幀的檢測處理對經(jīng)步驟1解調(diào)、解交織處理后的信號進(jìn)行幀檢測,每收到一個 由發(fā)射機(jī)發(fā)出的編碼幀,去掉幀號后、按照原幀號的順序?qū)⒃摼幋a幀保存在編碼幀存儲器 中,然后根據(jù)幀校驗序列檢測該幀的對與錯,并按照原幀號順序?qū)⒔Y(jié)果保存在幀質(zhì)量緩存 器中,若收到的編碼幀數(shù)目達(dá)到原始幀數(shù)目時,轉(zhuǎn)步驟3 ;步驟3.譯碼處理對經(jīng)步驟2處理后、達(dá)到原始幀數(shù)目的編碼幀按常規(guī)的LT譯碼方法 進(jìn)行譯碼,若譯碼成功,則轉(zhuǎn)步驟4、并向發(fā)射機(jī)反饋確認(rèn)信號;若未能譯出全部的原始幀 或在原始幀中還存在沒找到有線性關(guān)系的編碼幀的原始幀,則轉(zhuǎn)步驟\處理;步驟3a.繼續(xù)接收編碼幀、譯碼繼續(xù)接收編碼幀、并根據(jù)常規(guī)的LT譯碼方法找出所有 與原始幀存在線性關(guān)系的編碼幀、即系統(tǒng)編碼幀,并對其進(jìn)行檢測,此時、若全部系統(tǒng)編碼 幀經(jīng)檢測都正確,則譯碼得出所有原始幀后轉(zhuǎn)步驟4、同時向發(fā)射機(jī)反饋確認(rèn)信號;若系統(tǒng) 編碼幀經(jīng)檢測有錯,則轉(zhuǎn)步驟:3b處理;步驟3b.繼續(xù)接收編碼幀并譯出所有原始幀繼續(xù)接收編碼幀、找出與該編碼幀對應(yīng)的 系統(tǒng)編碼幀之間的線性關(guān)系,并將兩者進(jìn)行異或處理,以得到一個錯誤指示序列,然后依次 對有錯誤的編碼幀與對應(yīng)系統(tǒng)編碼幀的錯誤指示序列中指示為錯誤的位置、進(jìn)行比特翻轉(zhuǎn) 處理,并將處理結(jié)果保存在幀質(zhì)量緩存器中;接著對所有正確編碼幀根據(jù)常規(guī)LT譯碼方法 進(jìn)行譯碼,若能譯出所有原始幀,則轉(zhuǎn)步驟4、同時向發(fā)射機(jī)反饋確認(rèn)信號;否則繼續(xù)接收 下一編碼幀,直到正確譯出所有原始幀、再轉(zhuǎn)步驟4處理;步驟4.譯碼結(jié)果的處理將以上步驟譯碼成功后轉(zhuǎn)入的全部原始幀送入接收機(jī)信宿。
2.按權(quán)利要求1所述LT碼的譯碼方法,其特征在于在步驟I中所述接收的編碼幀與 有線性關(guān)系的系統(tǒng)編碼幀之間的線性關(guān)系,是通過先找出所接收的編碼幀與原始幀之間的 線性關(guān)系,找出的原始幀與系統(tǒng)編碼幀之間的線性關(guān)系,進(jìn)而找出接收的編碼幀與系統(tǒng)編 碼幀之間的線性關(guān)系。
3.按權(quán)利要求1所述LT碼的譯碼方法,其特征在于在步驟\中所述的錯誤指示序列 中指示為錯誤的位置,是指所接收的編碼幀與有線性關(guān)系的系統(tǒng)編碼幀進(jìn)行異或處理后不 為零的位置。
4.按權(quán)利要求1所述LT碼的譯碼方法,其特征在于在步驟:3b中所述的比特翻轉(zhuǎn)處理 是指對每一個錯誤編碼幀中錯誤指示序列值為“1”的位置進(jìn)行比特翻轉(zhuǎn)處理、處理后再 檢測所接收編碼幀的對與錯,處理過程一直重復(fù)到該編碼幀正確或者翻轉(zhuǎn)次數(shù)達(dá)到設(shè)定的 上限;每次翻轉(zhuǎn)比特的數(shù)目按照從小到大遞增的方式進(jìn)行,最小為1個,最大比特翻轉(zhuǎn)數(shù)目 為5 8個。
5.按權(quán)利要求4所述LT碼的譯碼方法,其特征在于所述翻轉(zhuǎn)次數(shù)達(dá)到設(shè)定的上限,即 當(dāng)錯誤指示序列中“1”的個數(shù)為d、當(dāng)前翻轉(zhuǎn)的比特數(shù)為V、而翻轉(zhuǎn)ν個比特需要的翻轉(zhuǎn)次 數(shù)為C〗,則處理每一個編碼幀翻轉(zhuǎn)的上限次數(shù)為Yw C其中=Cvd表示從d中任取V的組合數(shù),W為最大比特翻轉(zhuǎn)數(shù)目、且W彡d。
全文摘要
該發(fā)明屬于通信傳輸技術(shù)領(lǐng)域中的LT碼的譯碼方法。包括信號接收及常規(guī)處理,幀的檢測處理,譯碼處理及其接收編碼幀并譯出所有原始幀,以及譯碼結(jié)果的處理。該發(fā)明由于無需對系統(tǒng)發(fā)射機(jī)做任何改動,僅需要對接收機(jī)的譯碼方法進(jìn)行改進(jìn)的情況下,充分利用了接收到的錯誤幀,通過比特翻轉(zhuǎn)方法找到出錯位置、并將其糾正得到正確的幀,而不是把他們丟棄掉,從而有效地提高糾錯能力。因而,該發(fā)明與傳統(tǒng)LT碼的譯碼方法相比具有信道傳輸中對錯誤幀進(jìn)行糾正的能力強(qiáng),信道傳輸差錯率低,系統(tǒng)傳輸?shù)目煽啃愿?,有效提高了系統(tǒng)傳輸?shù)娜萘俊⑿屎屯ㄐ刨|(zhì)量等特點(diǎn)。
文檔編號H04L1/16GK102148665SQ20111013634
公開日2011年8月10日 申請日期2011年5月25日 優(yōu)先權(quán)日2011年5月25日
發(fā)明者張芹, 李少謙, 林燈生, 肖鳴 申請人:電子科技大學(xué)