Viterbi解碼

Viterbi解碼

接收到的符號首先經過解調器判決,輸出0、1 碼,然後再送往解碼器的形式,稱為硬判決解碼。即編碼信道的輸出是0、1 的硬判決信息。

基本介紹

  • 中文名:Viterbi解碼
  • 簡單概括:相加-比較-保留
  • 運行特點:前向的、無反饋的
  • 解碼算法卷積碼的解碼算法
基本解釋,算法1,算法2,解碼算法,

基本解釋

我們選擇似然機率( m P RC)的對數作為似然函式。容易看出,硬判決的最大似然解碼
實際上是尋找與接收序列Hamming距離最小的編碼序列。對於格線圖描述Viterbi 算法,整個
Viterbi 解碼算法可以簡單概括為“相加-比較-保留”,解碼器運行是前向的、無反饋的,
實現過程並不複雜。

算法1

我們來分析Viterbi 算法的複雜度: (n, k, N)卷積碼的狀態數為2k (N−1) ,對每一時刻要
做2k (N−1) 次“加-比-存”操作,每一操作包括2k 次加法和2k −1 次比較,同時要保留2k (N−1)
條倖存路徑。由此可見,Viterbi 算法的複雜度與信道質量無關,其計算量和存儲量都隨約束
長度N 和信息元分組k 呈指數增長。因此,在約束長度和信息元分組較大時並不適用。
為了充分利用信道信息,提高卷積碼解碼的可靠性,可以採用軟判決Viterbi 解碼算法。
此時解調器不進行判決而是直接輸出模擬量,或是將解調器輸出波形進行多電平量化,而不
是簡單的 0、1 兩電平量化,然後送往解碼器。即編碼信道的輸出是沒有經過判決的“軟信
息”。

算法2

軟判決算法與硬判決算法相比,軟判決解碼算法的路徑度量採用“軟距離”而不是漢明距離。最常採用的是歐幾里德距離,也就是接收波形與可能的傳送波形之間的幾何距離。在採用軟距離的情況下,路徑度量的值是模擬量,需要經過一些處理以便於相加和比較。因此,使計算複雜度有所提高。除了路徑度量以外,軟判決算法與硬判決算法在結構和過程上完全相同。一般而言,由於硬判決解碼的判決過程損失了信道信息,軟判決解碼比硬判決解碼性能上要好約2 dB 。不管採用軟判決還是硬判決,由於Viterbi 算法是基於序列的解碼,其解碼錯誤往往具有突發性

解碼算法

viterbi解碼算法是一種卷積碼的解碼算法。優點不說了。缺點就是隨著約束長度的增加算法的複雜度增加很快。約束長度N為7時要比較的路徑就有64條,為8時路徑變為128條。 (2<<(N-1))。所以viterbi解碼一般套用在約束長度小於10的場合中。
先說編碼(舉例約束長度為7):編碼器7個延遲器的狀態(0,1)組成了整個編碼器的64個狀態。每個狀態在編碼器輸入0或1時,會跳轉到另一個之中。比如110100輸入1時,變成101001(其實就是移位暫存器)。並且輸出也是隨之而改變的。
這樣解碼的過程就是逆過程。算法規定t時刻收到的數據都要進行64次比較,就是64個狀態每條路有兩條分支(因為輸入0或1),同時,跳傳到不同的兩個狀態中去,將兩條相應的輸出和實際接收到的輸出比較,量度值大的拋棄(也就是比較結果相差大的),留下來的就叫做倖存路徑,將倖存路徑加上上一時刻倖存路徑的量度然後保存,這樣64條倖存路徑就增加了一步。在解碼結束的時候,從64條倖存路徑中選出一條量度最小的,反推出這條倖存路徑(叫做回溯),得出相應的解碼輸出。

相關詞條

熱門詞條

聯絡我們