convo_process.m

来自「OFDM中的关于交织器的个人设计的MATLAB的算法」· M 代码 · 共 35 行

M
35
字号
function out_r=convo_process(in,rate)
for n=1:1:7
    r(n)=0;
end
len=length(in);
for n=1:1:len
    r(7)=r(6);
    r(6)=r(5);
    r(5)=r(4);
    r(4)=r(3);
    r(3)=r(2);
    r(2)=r(1);
    r(1)=in(n);
    out(2*n-1)=rem((r(7)+r(6)+r(4)+r(3)+r(1)),2);
    out(2*n)=rem((r(7)+r(4)+r(3)+r(2)+r(1)),2);
end
len=2*len;
if rate==2/3
    for m=1:1:len-floor(len/4)
        out_r(m)=out(m+floor((m-1)/3));
    end
elseif rate==1/2
    out_r=out;
elseif rate==3/4
    if rem(len-4,6)==0
        len=len-2*floor((len+1)/6)-1;
    else
        len=len-2*floor((len+1)/6);
    end
    for m=1:1:len
        out_r(m)=out(m+2*floor(m/4));
    end
else
    fprintf('convotional rate input error')
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?