毕业论文

打赏
当前位置: 毕业论文 > 电子通信 >

Matlab循环码在不同信道中性能仿真研究+流程图(14)

时间:2016-11-26 09:21来源:毕业论文
5.5.2 CRC 编码器 CRC编码的一般过程:把输入的数据左移r位,然后除以生成多项式P,得到一个余式,这个余式就是CRC编码产生的循环冗余码。把这个余式附


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)为常数,并且振幅符合高斯概率分布。 Matlab循环码在不同信道中性能仿真研究+流程图(14):http://www.751com.cn/tongxin/lunwen_351.html
------分隔线----------------------------
推荐内容