卷積碼編碼和譯碼(七)
編碼器的設(shè)計(jì)
??
前面章節(jié)中的兩個(gè)方法,用數(shù)學(xué)公式來看了一下編碼是如何進(jìn)行的. 實(shí)際的編碼硬件就更簡單了,不涉及到數(shù)學(xué)計(jì)算. 卷積碼的編碼器一般用查表的方式來做編碼. “查找表” 有四項(xiàng):
1)???? 輸入比特
2)???? 編碼器的狀態(tài),例如(2,1,4)編碼器,是8種狀態(tài)之一
3)???? 輸出比特. 例如 (2,1,4) 編碼器, 有兩個(gè)輸出比特,則輸出的比特可能為 00, 01, 10 和 11.
4)???? 輸出后的狀態(tài),即給下一個(gè)輸入比特用的編碼器狀態(tài).
?
圖7 中給出的(2,1,4)生成多項(xiàng)式 . 可以產(chǎn)生如下表所示的”查找表”.
?

?
這個(gè)查找表確定了唯一的一個(gè)(2,1,4) 編碼器. 不同參數(shù)和生成多項(xiàng)式的編碼器都有不同的“查找表”.
?
如果用圖來表示編碼器,我們有三種圖表示方法來加深我們對(duì)編碼過程的理解:
1)???? 狀態(tài)圖 State Diagram
2)???? 樹狀圖 Tree Diagram
3)???? 柵格圖 Trellis Diagram
?
狀態(tài)圖
圖8是(2,1,4)編碼器對(duì)應(yīng)的狀態(tài)圖。每個(gè)圓圈代表一個(gè)狀態(tài)。在任何一個(gè)時(shí)刻,編碼器都是停在某個(gè)確定的狀態(tài)上。到達(dá)和離開圓圈的線表示在輸入一個(gè)比特后可能的狀態(tài)轉(zhuǎn)移。在每一時(shí)刻,只有兩種可能的狀態(tài)轉(zhuǎn)移,輸入比特1或者輸入比特0,并分別跳到不同的狀態(tài)。狀態(tài)圖沒有時(shí)間維度的信息,因此不是特別直觀。
?

可以對(duì)比上面的狀態(tài)圖與編碼器的“查找表”,可以看出,狀態(tài)圖與“查找表”含有相同的信息,只是狀態(tài)圖是一種圖形表達(dá)。圖中實(shí)線表示輸入比特0,虛線表示輸入比特1. 每種情況的輸出比特寫在線上,箭頭表示狀態(tài)轉(zhuǎn)移的方向。
?
我們把編碼器的狀態(tài)做一個(gè)想象。想象你在一個(gè)島上。有多少種方法可以離開這個(gè)島?你可以乘船或者游泳。假設(shè)你只有這兩種方法離開這個(gè)島。你乘船去陸地上。你可以有多少種路徑?你可以乘船,但是你去了另外一個(gè)目的地. 你在哪里(你的狀態(tài))決定了你有多少種路徑(你的輸出)。
?
一些編碼器的狀態(tài)下可以輸出11和00,一些編碼器的狀態(tài)下可以輸出01和10.但是,沒有哪個(gè)狀態(tài)可以有四種可能的輸出。
?
那么,使用狀態(tài)圖,我們?nèi)绾螌?duì)1011序列進(jìn)行編碼?
(1)?? 我們從狀態(tài)000開始。輸入比特為1,則輸出為11,狀態(tài)轉(zhuǎn)移到100.
(2)?? 下一個(gè)輸入比特是0,輸出比特為11,狀態(tài)轉(zhuǎn)移到 010.
(3)?? 下一個(gè)輸入比特是1,輸出比特為01,狀態(tài)轉(zhuǎn)移到101.
(4)?? 最后一個(gè)輸入比特是1,輸出比特為11,狀態(tài)轉(zhuǎn)移到110.現(xiàn)在我們有 11 11 01 11這8個(gè)比特的輸出。但是,還沒有結(jié)束。我們需要把編碼器的狀態(tài)轉(zhuǎn)移到全0狀態(tài)。
(5)?? 從狀態(tài)110,轉(zhuǎn)移到狀態(tài)011,輸出比特為01.
(6)?? 從狀態(tài)011,轉(zhuǎn)移到狀態(tài)001,輸出比特為01.
(7)?? 從狀態(tài)001,轉(zhuǎn)移到狀態(tài)000,輸出比特為11.
?
最后得到的輸出比特為 11 11 01 11 01 01 11.
這與我們把每個(gè)比特的沖激響應(yīng)疊加后得到的結(jié)果是一樣的。