de_dcm_qpsk_mapping_psdu.m

来自「基于EMCA368国际标准的物理层超宽带协议的基本仿真程序,都是自己编写的」· M 代码 · 共 40 行

M
40
字号
function [out]=De_dcm_qpsk_mapping_psdu(datain,length,rate);
if(isequal(rate,[0 0 0 0 0])|isequal(rate,[0 0 0 0 1])|isequal(rate,[0 0 0 1 0])|isequal(rate,[0 0 0 1 1])|isequal(rate,[0 0 1 0 0]))
  for i=1:length
    if(real(datain(i))>=0)
    temp((i-1)*2+1)=1;
    else
    temp((i-1)*2+1)=0;
    end
    if(imag(datain(i))>=0);
    temp((i-1)*2+2)=1;
    else
    temp((i-1)*2+2)=0;
    end
end
elseif(isequal(rate,[0 0 1 0 1])|isequal(rate,[0 0 1 1 0])|isequal(rate,[0 0 1 1 1]))
    for i=1:(length/100)
        for k=1:50
            temp1(((i-1)*200+4*(k-1)+1):((i-1)*200+4*(k-1)+4))=soft_decision(datain((i-1)*100+k),datain((i-1)*100+50+k));
        end
    end


for i=1:(length/100)
       for k=1:25
       temp((i-1)*200+2*(k-1)+1)=temp1((i-1)*200+4*(k-1)+1);
       temp((i-1)*200+2*(k-1)+2)=temp1((i-1)*200+4*(k-1)+2);
       temp((i-1)*200+2*(k-1)+50+1)=temp1((i-1)*200+4*(k-1)+3);
       temp((i-1)*200+2*(k-1)+50+2)=temp1((i-1)*200+4*(k-1)+4);
       end 
       for k=26:50
       temp((i-1)*200+2*(k-1)+50+1)=temp1((i-1)*200+4*(k-1)+1);
       temp((i-1)*200+2*(k-1)+50+2)=temp1((i-1)*200+4*(k-1)+2);
       temp((i-1)*200+2*(k-1)+100+1)=temp1((i-1)*200+4*(k-1)+3);
       temp((i-1)*200+2*(k-1)+100+2)=temp1((i-1)*200+4*(k-1)+4);
       end
   end
end
out=temp;

 

⌨️ 快捷键说明

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