conpun.m

来自「802.11a phy layer protocol by myself」· M 代码 · 共 35 行

M
35
字号
function DataCon=ConPun(DataScr,Rate)
code=convenc(DataScr,poly2trellis(7,[133 171])); %% 1/2 convolution with g0=133 g1=171 (industry-standard generator polynomials)
for i=1:(length(code)/2)          %% code=[A0 A1 B0 B1 A2 B2 A3 B3...]
    A(i)=code(i*2-1);             %% to get A & B from code
    B(i)=code(i*2);
end
if mod(Rate,9)==0           %% 9/18/36/54Mbits/s r=3/4
        j=1;                %% j index of DataCon after stealing bits
        for i=1:length(A)   %% i 1/2 index of code
            switch mod(i,3)
                 case 1
                     DataCon(j)=A(i);j=j+1;
                     DataCon(j)=B(i);j=j+1;
                 case 2
                     DataCon(j)=A(i);j=j+1;
                 case 0
                     DataCon(j)=B(i);j=j+1;
            end
        end
elseif Rate==48             %% 48Mbits/s r=2/3
        j=1;
        for i=1:length(A)
            if mod(i,2)==1
                DataCon(j)=A(i);j=j+1;
                DataCon(j)=B(i);j=j+1;
            else 
                DataCon(j)=A(i);j=j+1;
            end
        end
 else                      %% 6Mbits/s r=1/2
     DataCon=code;
end


                

⌨️ 快捷键说明

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