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中的一个里即可
没有合适的资源?快使用搜索试试~ 我知道了~
ctnvolutional-there.rar_There There_windows mobile
共12个文件
m:11个
txt:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 189 浏览量
2022-07-15
20:59:01
上传
评论
收藏 7KB RAR 举报
温馨提示
传统的卷积码和Turbo码直到今天仍有广泛的应用,但是在信息传输中都有一个明显的缺点,为了克服这个缺点,IEEE802 16
资源推荐
资源详情
资源评论
收起资源包目录
ctnvolutional-there.rar (12个子文件)
main.m 2KB
trellis.m 1KB
CtcInterleaver.m 684B
8CtcDecoder.m 2KB
fctcdecode.m 358B
modulation.m 2KB
dec2bin.m 109B
ctcenc.m 620B
logmap.m 9KB
readme.txt 2KB
CtcEncoder.m 2KB
demodulation.m 5KB
共 12 条
- 1
资源评论
寒泊
- 粉丝: 76
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功