ctnvolutional-there

所属分类:Windows Phone
开发工具:MultiPlatform
文件大小:7KB
下载次数:0
上传日期:2019-03-27 14:18:58
上 传 者Jrsrica
说明:  传统的卷积码和Turbo码直到今天仍有广泛的应用,但是在信息传输中都有一个明显的缺点,为了克服这个缺点,IEEE802 16
(Traditional convolutional codes and Turbo codes are still widely used today, but there is one obvious disadvantage in information transmission. In order to overcome this shortcoming, IEEE802 16)

文件列表:
8CtcDecoder.m (2522, 2005-03-21)
ctcenc.m (620, 2005-03-21)
CtcEncoder.m (1799, 2005-03-21)
CtcInterleaver.m (684, 2005-03-21)
dec2bin.m (109, 2005-03-21)
demodulation.m (4671, 2005-03-21)
fctcdecode.m (358, 2005-03-21)
logmap.m (9272, 2005-03-21)
main.m (2251, 2005-03-21)
modulation.m (1696, 2005-03-21)
trellis.m (1406, 2005-03-21)

1.本文件夹的函数实现ctc的编译码功能,仿真环境是matlab 2.共有10个.m文件 1)main 参数选择,生成随机数,编码,调制,加噪声,解调,译码,统计误码率 2)CtcEncoder CtcCode=CtcEncoder(data,index)---Ctc总编码器 data是一个码块的信息,index是ctc的种类序号 返回编码结果CtcCode 3)ctcenc---ctc子编码器 [code,FinalState]=ctcenc(data,InitialState) data:一个码块的信息部分 InitialState:编码器初始状态,第一次为0,第二次要在main里查表得到 返回编码结果code和编码器终止状态FinalState,其中,第一次的FinalState用来确定第二次的InitialState 第二次的编码结果code是需要的编码结果 4)CtcInterleaver alpha=CtcInterleaver(data) data是一个码块的信息 返回alpha是信息原始下标交织后的位置 5)trellis state_map=trellis 返回trellis包括每个状态的下4个状态,前4个状态,以及这8个分支上的输入2比特和输出1比特. 因此state_map一行的长度是4+4+4*3+4*3=32 6)CtcDecoder CtcDecode=CtcDecoder(CtcCode,niter,index,L1) CtcCode是解调之后的数据乘以信道置信因子的结果,也就是main里的变量y niter是迭代总数 index是是ctc的种类序号 L1是用于估计编码器状态的迭代次数 返回CtcDecode,是全部的译码结果 7)logmap [L_all,start_state]=logmap(rec,state_map,L_a_1row,iter,start_state,L1) rec是子译码器1或2的输入,是系统码及其校验或者交织码及其校验 state_map是网格图 L_a_1row是边信息 iter:当前第几轮迭代 start_state:估计的编码器状态 L1:用于估计编码器状态的迭代次数 8)dec2bin d=dec2bin(i,k) i是十进制数 k是它要被转为几位的二进制数 返回d是二进制表示 9,10)modulation/demodulation 3.运行main.m之后可以得到译码结果CtcDecode以及统计好的BER和PER 4.如果要配合c写的ctc译码程序使用,将main.m运完行y=0.5*L_c*DemoduResult;这一行终止, 将y写入noise.dat,将原始数据写入data.dat.把两个文件移到与码率匹配的ctc,ctc23,ctc34中的一个里即可

近期下载者

相关文件


收藏者