MATLAB做RS码


里德——索罗蒙码(RS码)是一类具有很强纠错能力的多进制BCH码。
RS码是线性分组码中的一种。相比其他线性分组码而言,在同样的编码效率下,RS码的纠错能力是特别强的,特别在短的中等码长下,其性能接近于理论值。
RS(n,k)码可以由m、n、k3个参数表示,其中m表示码元符号取自域\(GF(2^n)\),n为码字长度,k为信息段长度。

%本例中输入信息分为km比特一组,每组k个符号
%每个符号由m个比特组成


clear all;
m=4;%每个符号比特数
n=10;%码字长度
k=8;%每组符号数
t=(n-k)/2;%码的纠正能力
nw=1; %处理的码字个数
x=[0,1,2,3,4,5,6,7]; %输入的字符
msgw=gf(x,4);
c=rsenc(msgw,n,k);%RS编码
%—————信道部分———————————
cnoisy=c;
%—————信道部分———————————
%RS译码
[dc,nerrs,corrcode]= rsdec(cnoisy,n,k);
isequal(dc,msgw) & isequal(corrcode,c)
disp(['nerrs=',num2str(nerrs)]);

吐个槽,《无线通信的MATLAB和FPGA实现》这里给的代码太难看了,我给改成了上面这个样子。
感兴趣可以查函数文档进一步学习。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM