天天看點

viterbi matlab,Matlab實作Viterbi譯碼

viterbi譯碼算法是一種卷積碼的解碼算法。優點不說了。缺點就是随着限制長度的增加算法的複雜度增加很快。限制長度N為7時要比較的路徑就有64條,為8時路徑變為128條。 (2<

先說編碼(舉例限制長度為7):編碼器7個延遲器的狀态(0,1)組成了整個編碼器的64個狀态。每個狀态在編碼器輸入0或1時,會跳轉到另一個之中。比如110100輸入1時,變成101001(其實就是移位寄存器)。并且輸出也是随之而改變的。

這樣解碼的過程就是逆過程。算法規定t時刻收到的資料都要進行64次比較,就是64個狀态每條路有兩條分支(因為輸入0或1),同時,跳傳到不同的兩個狀态中去,将兩條相應的輸出和實際接收到的輸出比較,量度值大的抛棄(也就是比較結果相差大的),留下來的就叫做幸存路徑,将幸存路徑加上上一時刻幸存路徑的量度然後儲存,這樣64條幸存路徑就增加了一步。在譯碼結束的時候,從64條幸存路徑中選出一條量度最小的,反推出這條幸存路徑(叫做回溯),得出相應的譯碼輸出。

調制方法:BPSK

信道:channel

G(D)=[1+D^2, 1+D+D^2]