卷積碼解碼演算法
❶ 常用的差錯控制編碼都有哪些
常用的差錯控制編碼方法有:奇偶校驗、恆比碼、矩陣碼、循環冗餘校驗碼、卷積碼、Turbo碼。
1、奇偶校驗
奇偶校驗是一種校驗代碼傳輸正確性的方法。根據被傳輸的一組二進制代碼的數位中「1」的個數是奇數或偶數來進行校驗。採用奇數的稱為奇校驗,反之,稱螞森為偶校驗。
採用何種校驗是事先規定好的。通常專門設置一個奇偶校驗位,用它使這組代碼中「1」的個數為奇數或偶數。若用奇校驗,則當接收端收到這組代碼時,校驗「1」的個數是否為奇數,從而確定傳輸代碼的正確性。
2、恆比碼
恆比碼一般指定比碼 。
定比碼是指一組碼中1和0的碼元個數成一定比例的一種編碼。換言之,它是選用比特序列中1和0碼元之比例為定值,所以又稱為恆比碼。定比碼是一種常用的檢錯碼。
3、矩陣碼
矩陣碼屬二維條碼的一種,是將圖文和數據編碼後,轉換成沒兆一個二維排列的多格黑白小方塊圖形。
矩陣式二維條形碼是以矩陣的形式組成,在矩陣相應元素位置上,用點(Dot)的出現表示二進制的 「1」,不出現表示二進制的 「0」,點的排列組合確定了矩陣碼所代表的意義。其中點可以是方點、圓點或其它形狀的點。矩陣碼是建立在電腦圖像處理技術、組合編碼原理等基礎上的圖形符號自動辨識的碼制,已較不適合用「條形碼」稱之。
4、循環冗餘校驗碼
循環冗餘校驗碼(CRC),簡稱循環碼,是一種常用的、具有檢錯、糾錯能力的校驗碼,在早期的通信中運用廣泛。循環冗餘校驗碼常用於外存儲器和計算機同步通信的數據校驗。奇偶校驗碼和海明校驗碼都是採用奇偶檢測為手段檢錯和糾錯的(奇偶校驗碼不具有糾錯能力),而循環冗餘校驗則是通過某種數學運算來建立數據位和校驗位的約定關系的。
5、卷積碼
卷積碼將k個信息比特編成n個比特,但k和n通常很小,特別適合以串列形式進行傳輸,時延小。卷積碼的糾錯性能隨m的增加而增大,而差錯率隨N的增加而指數下降。在編碼器復雜性相同的情況下,卷積碼的性能優於分組碼。
6、Turbo碼
Turbo碼是Claude.Berrou等人在1993年首次提出的一種級聯碼。Turbo碼有一重要特點是其解碼較為復雜,比常規的卷積碼要復雜的多,這種復雜不僅在於其解碼要採用迭代的過程,而且採用的演算法本身也比較復雜。這些演算法的關鍵是不但要能夠對每比特進行解碼,而且還要伴隨著解碼給出每比特譯出的可靠性信息,有了這些信息,迭代才能進行下去。
(1)卷積碼解碼演算法擴展閱讀:
差錯控制編碼是指在實際信道上傳輸數字信號時,由於信道傳輸特性不理想及加性雜訊的影響,所收到的數字信號不可避免地會發生錯誤。
為了在已知信噪比的情況下達到一定的誤比特率指標,首先應合理設計基帶信號,選擇調制、解調方式,採用頻域均衡和時域均衡,使誤比特率盡可能降低,但若誤比特率仍不能滿足要求,則枯物租必須採用信道編碼,即差錯控制編碼。
差錯控制編碼的基本做法是:在發送端被傳輸的信息序列上附加一些監督碼元,這些多餘的碼元與信息碼元之間以某種確定的規則相互關聯(約束)。接收端按照既定的規則檢驗信息碼元與監督碼元之間的關系,一旦傳輸過程中發生差錯,則信息碼元與監督碼元之間的關系將受到破壞,從而可以發現錯誤,乃至糾正錯誤。研究各種編碼和解碼方法正式差錯控制編碼所要解決的問題。
❷ 信道編碼技術及電子系統工程應用的探討論文
信道編碼技術及電子系統工程應用的探討論文
根據信道編碼理論及編碼、解碼方法和技術的發展,結合工程實際從理論到實踐進行了簡要的闡述。
隨著信息及信號傳輸技術的發展,應用電子領域也隨之擴大並得到發展。通過對信源編碼、信道編碼、編碼的方法,以及對壓縮後的信息進行糾錯編碼,以抗擊信道、網路及傳輸過程的誤碼或數據丟失,即信道編碼問題的系統認識與理解對實際工程應用具有重要的意義。從電子系統工程的應用角度,對相關知識的理解與應用體會更為深刻。在此,就實際應用中貫穿其中的相關知識及帶來的思考與啟發扼要介紹。
一、信道編碼理論及編、解碼問題
衡量任何一個信號通信系統性能優劣的基本因素是有效性和可靠性,有效性是信道傳輸信息的速度快慢,可靠性是信道傳輸信息的准確程度。在數字通信系統中,信源編碼是為了提高有效性,信道編碼是為了提高可靠性,而在一個通信系統中,有效性和可靠性是互相矛盾的,也是可以互換的。我們可以用降低有效性的辦法提高可靠性,也可以用用降低可靠性的辦法提高有效性。而糾錯編碼,即信道編碼問題是重點。
(一)編、解碼問題
信道編碼是以香農第二定理和香農第三定理為理論支持。在錯誤控制編碼方面,主要是糾錯線性分組碼與非分組的卷積碼。對於線性分組碼,採用增加冗餘碼作為監督碼,這樣編出的碼具有一定的檢錯和糾錯能力。在解碼方面,根據最大似然法解碼,判斷碼的漢明距離,找到漢明距離最小的碼,那就是在發送端傳輸過來的碼。編碼是一個比較抽象的概念,採用矩陣的描述方式表示編碼,將輸入的信息序列與生成矩陣相乘,那麼就可以得到編碼後的符號。在解碼方面,通過奇偶校驗矩陣就可以檢測解碼是否正確。
(二)關於卷積碼
卷積碼是編碼不一樣的領域,因為這種碼在判決時用到過去的信息,也就是說,它是需要記憶的。這也就是卷積碼得名的由來。卷積碼的編碼器由一個移位寄存器和相關邏輯電路組成,對每一個進入的信息幀,編碼器都產生一個碼字幀。當然,還可以畫編碼器的狀態圖,比較直觀表示編碼器根據輸入情況而變化。根據狀態圖可畫出網格圖;由網格圖很容易地知道卷積碼的距離,這是卷積碼解碼的一個依據。卷積碼用一個生成多項式矩陣表示,在編碼方面極為方便,編碼操作可以簡單地描述為信息量矩陣與生成矩陣的乘積。而更加嚴謹、方便地表達,則需要生成函數。通過修改狀態圖,很容易得到生成函數。對生成函數的級數展開,可以很直觀地得到漢明距離和輸入路徑的信息,最後還可以知道給定漢明距離全零路徑的數量。
(三)Turbo碼和LDPC碼
Turbo碼與LDPC碼是兩種性能接近香農極限的信道編碼。Turbo碼在低信噪比的情況下,性能比其他編碼要好。Turbo碼的優良性能在非實時數據通信方面被廣泛採用。Turbo碼是分組碼和卷積碼的「准」混合物。Turbo碼有並行級聯卷積碼、串列級聯卷積碼和混雜級聯卷積碼三種不同的排列。因為有交織器的存在,所以編碼器的糾錯能力很好。LDPC碼是一類可以用非常稀疏的校驗矩陣或二分圖定義的線性分組碼,其特點是:解碼演算法具有線性復雜度可採用並行迭代方式,具有解碼自校驗特性,在高信噪比條件下能有效降低解碼復雜度,提高誤比特率性能;可以滿足高性能信號通信要求。LDPC碼以最低的復雜度提供了最好的性能。這意味著在同等性能情況下, LDPC碼的復雜度只有Turbo碼的1/4。與Turbo碼相比,LDPC碼尤其是非規則LDPC碼具有非常出色的性能,優於迄今為止已知的其它編碼方式。LDPC碼與其它編碼相比還有一些獨特的優點:解碼可以完全並行,因此可以獲得更高的解碼速度;解碼器的復雜度大幅降低;解碼是可驗證的;非規則LDPC碼具有天然的不等錯誤保護能力。
二、從信道編碼定理看編、解碼方法的發展
(一)信道編、解碼方法的多樣性
信道編碼的'核心是「糾錯」;信道編、解碼的最終目的是實現信道與信號通信系統在可靠性指標下的優化。其方法是糾錯編碼,即抗干擾編碼。奇偶校驗碼是一種檢錯分組碼;由此原理派生出改進的:水平奇偶校驗碼、垂直奇偶校驗碼、群計數碼等。定比碼是一種只能發現錯誤的簡單檢錯碼,且需通過反向信道系統方能實現抗干擾。而重復碼是前向糾錯碼,也是一種最簡單的糾錯碼,實際應用較廣泛。而由漢明碼引出的線性分組碼是一種具有線性代數關系的編碼。在實際應用中,為得到希望的碼長和信息位長度,將信息位縮減而得到原碼的縮短碼。在漢明碼的基礎上增加一位監督元,則產生增余漢明碼或擴展漢明碼,使糾錯能力得到提高。而由完備碼產生的完備解碼、非完備解碼,則反映了分組碼的糾錯能力是全部用於糾錯,還是部分糾錯檢錯。循環碼是線性分組碼中重要的一類碼,從應用角度其編碼與解碼電路較為簡單,易於實現;且編、解碼方法方便、成熟。
(二)信道編、解碼方法的發展過程與啟示
不難看出,信道編碼的方法是豐富多彩的。也是漸進發展,逐步完善的過程。由此可見,理論指導是發展的方向。對信道編碼的理論支撐及方向的指引,使得信道編碼方法沿著豐富而日臻完善、接近而趨於極限的方向發展。從這一發展過程可以看出,任何一種新的或衍生的方法,都是有局限性的。但這種局限和不完善性,並不會阻礙新的方法的產生和發展。舊的矛盾解決的同時,新的矛盾又會出現。正如,糾錯檢錯能力的提高,對信息進行錯誤保護,以抵禦信道或網路等信息傳輸過程的干擾所產生的誤碼或數據丟失的同時,也將使編碼及信息傳輸效率降低。由於信道編碼增加了數據量,其結果只能是以降低傳送有用信息碼率為代價。因此,不同的編碼方式,其糾、檢錯的能力不同,編碼效率(信息傳輸效率)也有所不同。
三、從工程應用實例看理論支撐點
(一)智能住宅小區建設中信道編碼技術的應用
在工程中首次接觸的,應用於數字電視地面廣播(DTTB)的編碼調制方案中,涉及到:以多級分組乘積碼代替傳統的串列級聯編碼結構,提高了頻譜效率;同時採用一種多解析度星座圖,可在一個DTTB信道中提供3種級別的服務.在接收端採用基於MAX—LOG—MAP准則的迭代Turbo解碼演算法以獲得可靠接收。模擬結果表明,在視覺門限BER=3×10-6處,高優先順序碼流的比特信噪比約為7dB,適用於高可靠性的服務.中優先順序和低優先順序碼流可支持室外固定接收。由此,也加深了對並行級聯卷積碼的反饋迭代結構的理解。
(二)網路編碼與網路安全
在網路工程中,接觸到多址信道中聯合網路編碼和信道編碼的設計方案。該方案利用LDPC碼和網路編碼的線性特性以及軟輸入軟輸出模塊設計,不僅減少了編譯碼的復雜度,而且提高了編解碼效率。同時,了解了網路——信道編碼分離定理,以及該定理成立的條件,即當網路中的信道是確定型廣播信道時,分離定理不成立。而信道安全編碼與網路安全編碼同樣重要,又有所區別。信道編碼問題,其核心是對傳送的信息進行錯誤保護,以抗擊信道或網路等信息傳輸媒介所帶來的誤碼或數據丟失。而網路中的通信安全是網路編碼研究的重要課題之一,網路安全編碼更側重於網路使用者信息及使用的安全層面。網路編碼技術的發展可以大幅度提高網路的吞吐量。
四、結束語
專業技術的專長與拓展並存,這是專業技術發展的必然趨勢。身處信息時代,信息科學是研究信息的獲取、傳輸以及應用的科學,是信息資源與技術開發及其推廣應用的理論基礎,是信息技術及信息產業的核心。通信工程、電子信息工程、計算機科學、計算機應用等眾多應用技術與信息科學、信息技術及信息產業息息相關。信道編碼從理論上要解決理想編碼器、解碼器的存在性問題,即解決信道能傳送的最大信息率的可能性和超過這個最大值時的傳輸問題;同時構造性的編碼方法以及這些方法能達到的性能界限。筒言之,通過信道編碼器和解碼器來實現的用於提高信道可靠性的理論和方法。
;❸ 什麼是軟判決
很多初入通信行業的開發人員,都會接觸到過信道編解碼,信道編解碼中常常出現軟判決與硬判決。
那麼什麼是軟判決,什麼是硬判決呢?軟判決就是Demolator將解調後的模擬信號直接接入到Decoder來實現解碼,硬判決就是對Demolator輸出信號做N比特量化,如果分量高於門限就認為Demolator輸出1,否則輸出0。(根據調制方式,例如MPSK,M=2^N,則N比特量化)
但是通常在做軟判決時,模擬信號難以在數字信號系統中處理,所有為實現軟判決,不得不某些妥協,那就是用多比特量化來逼近模擬信號作為Decoder的輸入。這樣當然會帶來量化雜訊。我們還可以注意讓慎到如果軟判決採用量化,那麼硬判決就是軟判決的特殊情況。
所以在數字通信系統,可以認為硬判決就是N比特量化,軟判決就坦兆敬是多比特量化(>>N)。
另外,量化總會帶來量化雜訊,要越好逼近模擬信號,猜弊就要越多的比特位。
在均勻量化,信號在其空間均勻分布得到的情況下,多一個比特可以多得到6dB的增益。
具體推導可以參看老樊的《通信原理》,當然你也要自己做些推導,書
❹ 什麼叫信道解碼
信號在發送之前,為了抵抗各種衰落造成的誤碼,要將信號進行信道編碼,在接收端,就要進行相應的信道解碼來恢復原來的信號。
❺ 如何用R實現Viterbi演算法
Viterbi解碼演算法是由Viterbi於1967年提出的一種最大似然解碼辦法,解碼器根據接收序列R按最大似然准則力圖找出正確的原始碼序列。隨著大規模集成電路技術的發展,採用Viterbi演算法的卷積編碼技術已成為廣泛應用的糾錯方案。Viterbi解碼過程可用狀態表示。Sj,t和Sj N/2,t表示t時刻的兩個狀態。在t1時刻,這兩個狀態值根據路徑為0或者1,轉移到狀態S2j,t1和S2j1,t1。每一種可能的狀態轉移都根據接收到的有雜訊的序列R計算路徑度量,然後選擇出各個狀態的最小度量路徑(倖存路徑)。Viterbi演算法就是通過在狀態中尋找最小量路徑向前回溯L步,最後得到的即為解碼輸出。
在卷積碼(n,k,m)表示法中,參數k表示每次輸入信息碼位數,n表示編碼的輸出卷積碼位數,m稱為約束長度(一些書中採用k=m1為約束長度,也可稱(2,1,2)碼網格圖,r=k/n稱為信息率,即編碼效率。本文運用的是(2,1,3)碼,約速長度為2,狀態數為22=-4。
TMS320C6000系列DSPs(數字信號處理器)是TI公司推出的一種並行處理的數字信號處理器,是基於TI的VLIW技術的。本文採用的是TMS320C6211。該處理器的工作頻率經過倍頻可達到150MHz,每個時鍾周期最多可並行執行8條指令,從而可以實現1200MIPS定點運算能力。
❻ 解碼的演算法
viterbi解碼演算法是一種卷積碼的解碼演算法。缺點就是隨著約束長度的增加演算法的復雜度增加很快。約束長度N為7時要比較的路徑就有64條,為8時路徑變為128條。(2<<(N-1))。所以viterbi解碼一般應用在約束長度小於10的場合中。
演算法規定t時刻收到的數據都要進行64次比較,就是64個狀態每條路有兩條分支(因為輸入孝橡乎0或1),同時,跳傳到不同巧悉的兩個狀態中去,將兩條相應的輸出和實際接收到的輸出比較,量度值大的拋棄(也就是比較結果相差大的),留下來的就叫做倖存路徑,將倖存路徑加上上一時刻倖存路徑的量度然後保存,這樣64條倖存路徑就增加了一步。在解碼結束的時候,從64條倖存路徑中選出一條量度最小的,反推出這條倖存路徑(如銷叫做回溯),得出相應的解碼輸出。
❼ Turbo碼與傳統級聯碼的對比,優缺點
Turbo碼有一重要特點是其解碼較為復雜,比常規的卷積碼要復雜的多,這種復雜不僅在於其解碼要
Turbo碼
採用迭代的過程,而且採用的演算法本身也比較復雜。這些演算法的關鍵是不但要能夠對每比特進行解碼,而且還要伴隨著解碼給出每比特譯出的可靠性信息,有了這些信息,迭代才能進行下去。用於Turbo碼解碼的具體演算法有:MAP(Maximum A Posterior)
Max-Log-MAP、Log-MAP和SOVA(Soft Output Viterbi Algorithm)演算法。MAP演算法是1974年被用於卷積碼的解碼,但用作Turbo碼的解碼還是要做一些修改;Max-Log-MAP與Log-MAP是根據MAP演算法在運算量上做了重大改進,雖然性能有些下降,但使得Turbo碼的解碼復雜度大大的降低了,更加適合於實際系統的運用;Viterbi演算法並不適合Turbo碼的解碼,原因就是沒有每比特譯出的可靠性信息輸出,修改後的具有軟信息輸出的SOVA演算法,就正好適合了Turbo碼的解碼。這些演算法在復雜度上和性能上具有一定的差異激孝,系統地了解這些演算法的原理是對Turbo碼研究的基礎,同時對這些演算法的復雜度和性能的比較研究也將有助於Turbo的應用研究。
Turbo碼的模擬一般參考吳宇飛的經典程序。
此外,要想在移動無線系統中成功的使用Turbo碼,首先要考伍鉛纖慮在語音傳輸中最大延遲的限制。在短幀情況下的模擬結果表明短交織Turbo碼在AWGN信道和Rayleigh衰落下仍然具有接近信道容量的糾錯能力,從而顯示出Turbo碼在移動無線通信系統中非常廣闊的應用前景。
Turbo碼 (Turbo Code)
Turbo 碼(Turbo Code)是一類應用在外層空間衛星通信和設計者尋找完成最大信息傳輸通過一個限制帶寬通信鏈路在數據破壞的雜訊面前的其它無線通信應用程序的高性能糾錯碼。有兩類 Turbo 碼在那裡,塊 Turbo 碼和卷積 Turbo 碼(CTCs),它們是相當不同的,因為它們使用腔仿不同的構件碼,不同的串聯方案和不同的 SISO 演算法。
❽ 你應該知道的維特比解碼
嵌牛導讀:維特比解碼是一種高效的卷積碼解碼方法,該方法由Andrew Viterbi 發明,並以他的名字命名。
嵌牛鼻子:Viterbi解碼
嵌牛提問:維特比解碼的性能相比分組碼等其他編碼的解碼性能究竟好在哪裡,如何來評估?編碼約束度和監督位數量對維特比解碼的性能是如何產生影響的。
嵌牛正文:
在接收端,我們有一組對應於發射監督比特的電壓采樣序列。為簡單並不失一般性,我們將假設接收端獲得了最佳采樣點(或者一組采樣集的均值對應一個監督位),通過與閾值比較判為「0」或「1」(解映射),並將判決結果傳遞給解碼器。在沒有關於采樣點和解碼器其它信息的情況下,解碼過程被稱為硬判決解碼。
下面簡述硬判決維特比解碼:
解碼演算法使用兩個度量:分支度量(branch metric,BM)和路徑度量(path metric,PM)。分支度量計算的是發射和接收內容之間的「距離」,它是為網格中的每條分支路徑定義的。在硬判決解碼中,給出一組已經數字化的接收監督比特,分支度量就是監督比特預測值和接收監督比特之間的漢明距離。下圖展示了一個示例,其中接收的位為00,對於每個狀態轉移,分支路徑上的數字顯示該轉移的分支度量。其中有兩條路徑的分支量度為0,對應於漢明距離為0的唯一狀態和轉移關系,其他非0分支量度對應於存在位錯誤的情況。
路徑度量值與網格中的狀態相關聯。對於硬判決解碼,它對應於網格中從初始狀態到當前狀態的最可能路徑與接收監督比特序列間的漢明距離。「最有可能」是指在計算從初始狀態到當前狀態之間的所有可能路徑度量後,取漢明距離最小的那條。
維特比演算法的關鍵點在於,接收機可以使用分支度量和先前計算的狀態路徑度量遞推地計算當前狀態的路徑度量。
計算路徑度量
假設接收機已經在時刻i計算好每個狀態s的路徑量度PM[s,i](設卷積碼的編碼約束度為K,則狀態數為2^(K-1))。在硬判決解碼中,PM[s,i]的值是在接收監督比特與最可能發送的消息進行比較時得到的差錯比特總數(通常我們將狀態「00」作為起始狀態)。
在時刻i的所有可能狀態中,最可能的狀態是具有最小路徑度量的狀態。如果具備最小路徑度量的狀態不止一個,那它們擁有相等的可能性。
現在,我們如何確定時刻i+1下每個狀態s的路徑度量PM[s,i+1]呢?要回答這個問題,首先要注意的是,對於i+1時刻的狀態s,它必須由i時刻的兩種可能狀態中的一個中轉移而來。這兩個之前狀態記為α和β,並且對於給定的狀態s,它們是固定的。實際上α和β僅由卷積碼的編碼約束度決定,與生成多項式無關。圖2顯示了每個狀態的之前狀態(箭頭的另一端),該例中,對於狀態00,α= 00 ,β= 01;對於狀態01,α= 10 ,β= 11。
任何使得發射機在i+1時刻處於狀態s的信息序列必定使得發射機在i時刻位於狀態α或β。例如,在圖2中,在時刻i+1時到達狀態01,必定符合以下兩點之一:
1. 發射機在時刻i位於狀態10,且第i個信息比特為0。在這種情況下,發射機輸出監督位11。由於接收比特為00,因此將產生2位誤碼,新的狀態路徑度量PM[01,i+1] = PM[10,i] + 2。
2. 發射機在時刻i位於狀態11,且第i個信息比特為0。在這種情況下,發射機輸出監督位01。由於接收比特為00,因此將產生1位誤碼,新的狀態路徑度量PM[01,i+1] = PM[11,i] + 1。
通過上面直觀的分析,我們看到:
尋找最大似然路徑
現在我們可以來描述解碼器是如何找到最大似然路徑了。初始時,狀態00代價為0,其它2^(k-1)-1個狀態代價為正無窮(∞)。
演算法的主循環由兩個主要步驟組成:首先計算下一時刻監督比特序列的分支度量,然後計算該時刻各狀態的路徑度量。路徑度量的計算可以被認為是一個「加比選」過程:
1.將分支度量與上一時刻狀態的路徑度量相加。
2.每一狀態比較達到該狀態的所有路徑(每時刻每個狀態只有兩條這樣的路徑進行比較,因為只有兩條來自前一時刻狀態的分支)。
3.每一狀態刪除其餘到達路徑,保留最小度量的路徑(稱為倖存路徑),該路徑對應於錯誤最少的路徑。
一直採取這樣的方法直到最後產生一條路徑,所判決出來的的碼即是解碼結果。