📄 rsencode.m
字号:
function y=rsencode(input)
%rs编码程序
m=5; %用5比特表示一个符号
n=2^m-1; %码长为n
t=3; %可以纠正3个符号的错误
k=n-2*t; %信息位
w=size(input); %输入矩阵的大小
l=ceil(w(1)*w(2)/(k*m)); %输入的元素可以编成l个码字
msg1=[reshape(input,1,w(1)*w(2)),zeros(1,l*k*m-w(1)*w(2))];%将输入扩展为l*k*m
msg2=reshape(msg1,m,k*l)';%,串并变换将矩阵变为k*l行,m列,用来进行进制转换
msg3=bin2dec(char(msg2+48));%将二进制转化为十进制
msg=gf(reshape(msg3,l,k),m);%在gf(2^m)上将消息矩阵变为l行k列,每一行用来编码
code=rsenc(msg,n,k);
code1=double(code.x)';%将gf域上的矩阵转化为十进制数矩阵,转制是用来按每一组的顺序读出这些数
code12=dec2bin(code1,m)';%用m位二进制表示每个元素
b=zeros(1,l*n);
b1=dec2bin(b,m)';
code2=code12-b1;%将字符转化为实数
y=reshape(code2,1,m*l*n);%并串变换用于调制
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -