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中的一个里即可
近期下载者:
相关文件:
收藏者: