?? readme.txt
字號:
1.本文件夾的函數(shù)實現(xiàn)ctc的編譯碼功能,仿真環(huán)境是matlab
2.共有10個.m文件
1)main
參數(shù)選擇,生成隨機數(shù),編碼,調(diào)制,加噪聲,解調(diào),譯碼,統(tǒng)計誤碼率
2)CtcEncoder
CtcCode=CtcEncoder(data,index)---Ctc總編碼器
data是一個碼塊的信息,index是ctc的種類序號
返回編碼結(jié)果CtcCode
3)ctcenc---ctc子編碼器
[code,FinalState]=ctcenc(data,InitialState)
data:一個碼塊的信息部分
InitialState:編碼器初始狀態(tài),第一次為0,第二次要在main里查表得到
返回編碼結(jié)果code和編碼器終止?fàn)顟B(tài)FinalState,其中,第一次的FinalState用來確定第二次的InitialState
第二次的編碼結(jié)果code是需要的編碼結(jié)果
4)CtcInterleaver
alpha=CtcInterleaver(data)
data是一個碼塊的信息
返回alpha是信息原始下標(biāo)交織后的位置
5)trellis
state_map=trellis
返回trellis包括每個狀態(tài)的下4個狀態(tài),前4個狀態(tài),以及這8個分支上的輸入2比特和輸出1比特.
因此state_map一行的長度是4+4+4*3+4*3=32
6)CtcDecoder
CtcDecode=CtcDecoder(CtcCode,niter,index,L1)
CtcCode是解調(diào)之后的數(shù)據(jù)乘以信道置信因子的結(jié)果,也就是main里的變量y
niter是迭代總數(shù)
index是是ctc的種類序號
L1是用于估計編碼器狀態(tài)的迭代次數(shù)
返回CtcDecode,是全部的譯碼結(jié)果
7)logmap
[L_all,start_state]=logmap(rec,state_map,L_a_1row,iter,start_state,L1)
rec是子譯碼器1或2的輸入,是系統(tǒng)碼及其校驗或者交織碼及其校驗
state_map是網(wǎng)格圖
L_a_1row是邊信息
iter:當(dāng)前第幾輪迭代
start_state:估計的編碼器狀態(tài)
L1:用于估計編碼器狀態(tài)的迭代次數(shù)
8)dec2bin
d=dec2bin(i,k)
i是十進(jìn)制數(shù)
k是它要被轉(zhuǎn)為幾位的二進(jìn)制數(shù)
返回d是二進(jìn)制表示
9,10)modulation/demodulation
3.運行main.m之后可以得到譯碼結(jié)果CtcDecode以及統(tǒng)計好的BER和PER
4.如果要配合c寫的ctc譯碼程序使用,將main.m運完行y=0.5*L_c*DemoduResult;這一行終止,
將y寫入noise.dat,將原始數(shù)據(jù)寫入data.dat.把兩個文件移到與碼率匹配的ctc,ctc23,ctc34中的一個里即可
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -