ctc-matlab

所属分类:通讯编程
开发工具:matlab
文件大小:9KB
下载次数:259
上传日期:2008-05-27 09:47:26
上 传 者rainley
说明:  传统的卷积码和Turbo码直到今天仍有广泛的应用,但是在信息传输中都有一个明显的缺点,为了克服这个缺点,IEEE802.16d/e中引入了CTC(Convolutional Turbo Code)编码方案,该MATLAB代码完成了CTC码的编码与译码等过程,很有价值的^_^
(Traditional convolutional code and Turbo code until today there is still a wide range of applications, but in the information transmission has a clear disadvantage, in order to overcome this shortcoming, IEEE802.16d/e in the introduction of CTC (Convolutional Turbo Code) coding schemes The MATLAB code to complete the CTC code, such as encoding and decoding process, valuable ^ _ ^)

文件列表:
ctc-matlab\CtcDecoder.m (2522, 2005-03-21)
ctc-matlab\ctcenc.m (620, 2005-03-21)
ctc-matlab\CtcInterleaver.m (684, 2005-03-21)
ctc-matlab\CtcEncoder.m (1799, 2005-03-21)
ctc-matlab\dec2bin.m (109, 2005-03-21)
ctc-matlab\ctcdecode.m (358, 2005-03-21)
ctc-matlab\demodulation.m (4671, 2005-03-21)
ctc-matlab\logmap.m (9272, 2005-03-21)
ctc-matlab\modulation.m (1696, 2005-03-21)
ctc-matlab\main.m (2251, 2005-03-21)
ctc-matlab\trellis.m (1406, 2005-03-21)
ctc-matlab (0, 2008-05-27)

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中的一个里即可

近期下载者

相关文件


收藏者