RS编码的matlab仿真

Posted fpga&matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RS编码的matlab仿真相关的知识,希望对你有一定的参考价值。

RS编码的matlab仿真(m文件仿真)
对加入突发噪声信道的RS(15,11)编码进行的仿真:代码如下:

 

L=1000;

M=4;%每个符号的比特数

N=2^M-1;%编码后码字长度

K=N-4;%信息长度

MSG=randint(L,1);%随机产生L比特信号

TP=gftuple([-1:N-1]',M);%产生加罗华域元素

PG=rspoly(N,K);%产生生成式

[CODE,ADDED]=rsenco(MSG,TP,K);%编码

NOI=rand(length(CODE)/M,1)<.03;%加入3%的噪声

NOI=(NOI*ones(1,M))';%产生突发错误

NOI=NOI(:);

CODE_NOI=rem(CODE+NOI,2);%噪声加入信号

[DEC,ERR,CCODE,ERR_C]=rsdeco(CODE_NOI,TP,K);%译码

MSG=[MSG;zeros(ADDED,1)];%调整长度

max(abs(DEC-MSG));%比较

X=[1:length(NOI)];

Z=[1:M*N:length(NOI)];

Y=zeros(1,length(Z));

Z=[Z;Z];

Y=[Y+min(ERR_C);Y+max(ERR_C)];

subplot(211);

plot(X,NOI,'yo',X,ERR_C,'rx',Z,Y,'g-');

title('Error Detection Record');

xlabel('o--placed error;x--detected error;vertical bar: RS-DECO section.');

axis([1,length(NOI),min(ERR_C),max(ERR_C)]);

X=[1:length(MSG)];                  

Z=[1:M*K:length(MSG)];

Y=zeros(1,length(Z));

Z=[Z;Z];

Y=[Y;Y+max(MSG)];

subplot(212);

plot(X,MSG,'yo',X,DEC,'rx',Z,Y,'g-');

title('Message and Decoded Signal Comparison');

xlabel('o--original message;x--decoded result.');

axis([1,length(MSG),min(min(MSG)),max(max(MSG))]);
 

以上是关于RS编码的matlab仿真的主要内容,如果未能解决你的问题,请参考以下文章

RS+BCHRS和BCH级联编译码理论与误码率matlab仿真和分析,RS和BCH采用matlab工具箱函数

RSRS编译码理论与误码率性能matlab仿真和分析

RSRS编译码理论与误码率性能matlab仿真和分析

MATLAB教程案例9信道编译码之turbo编码译码算法matlab误码率仿真

通信仿真基于matlab信道编码和交织含Matlab源码 1685期

卷积卷积编码Viterbi译码理论与误码率matlab仿真