卷積碼的編譯碼原理與MATLAB實現

2021-10-12 12:24:42 字數 2946 閱讀 4372

\qquad

卷積碼又稱為連環碼,它和分組碼有明顯的區別。(n,k)線性分組碼中,本組r = n-k個監督元僅與本組k個資訊元有關,與其他各組無關,即分組碼編碼器本身是無記憶性的。卷積碼則不同,每乙個(n,k)碼段(也稱為子碼,通常較短)內的n個碼元不僅與該段內資訊元有關,而且與前面的m段資訊元也相關。通常稱m為編碼儲存。卷積碼常用符號(n,k,m)表示。

\qquad

卷積碼的編碼器由移位暫存器、模二加法器以及開關電路組成。(2,1,2)卷積碼的編碼器如下圖所示:

起始狀態,各級移位暫存器清零,即s1s

2s3s_1s_2s_3

s1​s2​

s3​為000。s

1s_1

s1​等於當前輸入資料,而移位暫存器狀態s2s

3s_2s_3

s2​s3​

儲存以前的資料,輸出碼字c由下式決定,即:

c_1&=s_1\bigoplus s_2\bigoplus s_3\\c_2&=s_1\bigoplus s_3\end\right.

⎩⎨⎧​c1

​c2​

​=s1

​⨁s2

​⨁s3

​=s1

​⨁s3

​​\qquad

由於c

1c_1

c1​對應的加法輸入訊號及暫存器m1,

m2m_1,m_2

m1​,m2

​相連,因此,對應的二進位制序列是111,對應的八進位制序列是7,c

2c_2

c2​對應的加法器與輸入訊號及暫存器m

2m_2

m2​相連,因此,對應的二進位制序列為101,對應的八進位制序列為5,因此,這個卷積編碼器生成的多項式是[7 5]。

\qquad

當輸入資料d=[1 1 0 1 0]時,輸出碼字可以計算出來,具體計算過程參見下表,另外為了保證全部的資料通過暫存器,還必須在資料位後加3個0。

s

1s_1

s1​110

10000s2

s3s_2s_3

s2​s3​

0001

1110

0110

0000

c 1c

2c_1c_2

c1​c2​

1101

0100

1011

0000狀態a

bdcb

caa\qquad

從上述的計算可知,每1位資料,影響m+1個輸出子碼。稱m+1為編碼約束度。每乙個子碼有n個碼元,在卷積碼中有約束關係的最大碼長度則為(m+1)n,稱為編碼約束長度。(2,1,2)卷積碼的編碼約束度為3,約束長度為6。

卷積碼的編譯碼案例:

**bpsk調製在awgn通道下分別使用卷積碼和未使用卷積碼的效能對比,其中,卷積碼的約束長度為7,生成多項式為[171,133],位元速率為1/2,解碼分別採用硬判決解碼和軟判決解碼。

**如下:

clear all 

ebno = 1:10; %訊雜比範圍

n = 100000; %資訊位元個數

m = 2; %bpsk調製

l = 7; %約束長度

trel = poly2trellis(l,[171,133]

); %卷積碼生成多項式

tblen = 6*l; %viterbi解碼器回溯深度

msg = randi(

[0,1],1,n)

; %資訊位元序列

msg1 = convenc(msg,trel)

; %卷積編碼

x1 = pskmod(msg1,m)

; %bpsk調製

for i = 1:length(ebno)

%加入高斯白雜訊,因為位元速率為1/2,所以每乙個符號的能量要比位元能量少3db

y = awgn(x1,ebno(i)-3)

; y1 = pskdemod(y,m)

; %硬判決

y2 = vitdec(y1,trel,tblen,'cont','hard'

); %viterbi解碼

[err ber1(i)

]= biterr(y2(tblen+1:end),msg(1:end-tblen))

; %計算誤位元率

y3 = vitdec(real(y),trel,tblen,'cont','unquant'

); %軟判決

[err ber2(i)

]= biterr(y3(tblen+1:end),msg(1:end-tblen))

; %計算誤位元率

endber = berawgn(ebno,'psk',2,'nodiff'

); %bpsk調製理論誤位元率

figure();

semilogy(ebno,ber,'-kd',ebno,ber1,'-ko',ebno,ber2,'-k*');

legend(

"bpsk理論誤位元率",'硬判決的誤位元率','軟判決的誤位元率');

xlabel(

'ebno');

ylabel(

"誤位元率"

);

matlab中 卷積碼 及Viterbi解碼內容

根據卷積編碼是否有負反饋,poly2trellis的有兩種呼叫形式。trellis poly2trellis constraintlength,codegenerator trellis poly2trellis constraintlength,codegenerator,feedbackconn...

c 實現卷積碼編碼和維特比解碼 演算法實現分詞

現如今分詞工具及如何使用網上一大堆。我想和大家分享的是結巴分詞核心內容,一起 分詞的本質。1 基於字首詞典實現高效的詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 什麼是dag 有向無環圖 例如,句子 去北京大學玩 對應的dag為。dag中就表示0位置對應的是詞,就是說0 0,即 去 這...

ldpc解碼講解 LDPC碼編譯碼原理及應用

ldpc 碼編譯碼原理及應用 下一代移動通訊系統的設計能力將遠遠超過當前的第三代移動通訊系統的 能力其中乙個最重要的特點表現在需要在 20m赫茲的頻寬內 實現高達 100mbps 的資料傳輸。因此 在如此高的頻譜效率下如何保證資料通訊的可靠性 也就成了乙個非常值得關注的課題。以通道編碼為核心內容的前...