deinterleaver.m

来自「采用 DVB反向链路(DVB-RCS)标准中的双二元Turbo码matlab仿真」· M 代码 · 共 27 行

M
27
字号
function [vec_outA,vec_outB]=deinterleaver(vec_inA,vec_inB,N)
%[vec_outA,vec_outB]=deinterleaver(vec_inA,vec_inB,N)
%解交织程序,对进入的序列进行DVB-RCS标准的解交织
%N=212对应于ATM信元,而N=752对应于MPEG-2数据包
%
lenA=length(vec_inA);
lenB=length(vec_inB);
if lenA~=lenB
    error('wrong input vector');
else
    if lenA~=N
        error('wrong interleaver length or input vector');
    else
        NewIndex=InL2nd(N);
        %第二级解交织
        vec_outA=vec_inA(NewIndex+1);
        vec_outB=vec_inB(NewIndex+1);
        %第一级解交织
        for j=0:N-1
            if mod(j,2)==0
                temp=vec_outA(j+1);
                vec_outA(j+1)=vec_outB(j+1);
                vec_outB(j+1)=temp;
            end
        end
    end
end

⌨️ 快捷键说明

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