5.5.2 CRC 编码器
CRC编码的一般过程:把输入的数据左移r位,然后除以生成多项式P,得到一个余式,这个余式就是CRC编码产生的循环冗余码。把这个余式附加到原始的信息序列的末尾,就得到了经过CRC编码的输出信号序列。
在Matlab中CRC编码器分两种:通用CRC编码器和CRC-N编码器。它们的模块及其参数对话框分别如图3-1,3-2所示。这两种编码器的功能相当接近,区别只在于CRC-N编码器提供了6位常用的CRC生成多项式,使用起来比较方便。
如果通用CRC编码器的输入数据的帧长度等于n,生成多项式的最高次数为r,对每帧输入数据产生k个校验和,则通用CRC编码器的工作流程可分为:
(1)把输入的一帧数据等分为k个部分,每个部分iw的长度是n/k;
(2)在每个部分的数据iw后面添加r个二进制位,并且这r个二进制位的数值等于通用CRC编码器的初始状态,得到二进制序列is;
(3)计算is的循环冗余码ic;
(4)把循环冗余码ic添加到iw后面,得到二进制序列iu;
(5)把所有的iu连接起来形成输出数据帧。
5.5.3 CRC 译码器
与编码器对应的,CRC解码器也分为两种:通用CRC解码器和CRC-N解码器。
CRC解码器的一般工作原理是:
(1)首先从接受到的二进制序列中分离出信息序列和CRC;
(2)根据接收端的信息序列重新计算CRC。
(3)如果重新计算得到的CRC与接收到的CRC相等,则认为接收序列是正确的;否则,接收序列存在着传输错误。
6 CRC 在不同信道中的仿真
6.1 程序函数介绍
MATLAB中提供了循环码的编码和译码函数,本程序直接调用进行编程。
(1)encode函数
功能:编码函数
语法:code=encode(msg,N,K,method,opt)
说明:用method指定的方法完成纠错编码。其中msg代表信息码元,是一个K列矩阵,N是编码后的码字长度;K是信息位的长度;opt是有些编码方式需要的参数。
(2)decode函数
功能:译码函数
语法:msg=decode(code,N,K,method,opt1,opt2,opt3,opt4);
说明:这个函数对接收到的码字进行译码,恢复出原始的信息,译码参数和方式必须和编码时采用的严格相同。它对接收到的码字,按method指定的方式进行译码;opt1,…,opt4是可选项的参数。
(3)cyclpoly函数
功能:生成循环码的生成多项式。
语法:p=cyclpoly(N,K);
p=cyclpoly(N,K,fd_flag);
说明:从p=cyclpoly(N,K)中可找到一个给定码长N和信息位长度K生成多项式p,注意不是任意给定一个多项式都可以作为生成多项式。
(4)randint函数
功能:引起一致地分布的任意整数矩阵
语法:out = randint(m)
out = randint(m,n)
out = randint(m,n,rg) out = randint(m,n,rg,state)
(5)awgn函数
功能:在某一信号中加入高斯白噪声
语法:y = awgn(x,SNR);
说明:信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。
(6)quantiz函数
功能:产生一个量化序号和输出量化值。
语法:index=quantiz(sig,partition);
[index ,quantiz]=quantiz(sig,partition,codebook);
[index,quant,distor]=quantiz(sig,partition,codebook);
说明:这个函数根据给定的区间参数量化信号,间隔矢量必须按递增顺序排序。
6.2 加性高斯白噪声信道
6.2.1 概念
高斯信道,最简单的信道,常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。
- 上一篇:STM32单片机超声波测距系统的设计与实现+源程序
- 下一篇:AT89S52单片机土壤温湿度检测系统的设计+电路图+流程图
-
-
-
-
-
-
-
十二层带中心支撑钢结构...
乳业同业并购式全产业链...
电站锅炉暖风器设计任务书
大众媒体对公共政策制定的影响
酸性水汽提装置总汽提塔设计+CAD图纸
java+mysql车辆管理系统的设计+源代码
中考体育项目与体育教学合理结合的研究
杂拟谷盗体内共生菌沃尔...
当代大学生慈善意识研究+文献综述
河岸冲刷和泥沙淤积的监测国内外研究现状