demodu_16qam.m

来自「关于MATLAB中实现802.16e的物理层仿真,希望对大家有帮助!」· M 代码 · 共 29 行

M
29
字号
function output=demodu_16qam(input)

%16QAM  demodulation
output=zeros(1,length(input)*4);
QAM_I=real(input)*sqrt(10);
QAM_Q=imag(input)*sqrt(10);



QAM_16_IQ=[3 2 0 1];

idx=find(QAM_I>3);
QAM_I(idx)=3;
idx=find(QAM_I<-3);
QAM_I(idx)=-3;

idx=find(QAM_Q>3);
QAM_Q(idx)=3;
idx=find(QAM_Q<-3);
QAM_Q(idx)=-3;

tmp=round((QAM_I+3)/2)+1;
output(1:4:end)=bitget(QAM_16_IQ(tmp),2);
output(2:4:end)=bitget(QAM_16_IQ(tmp),1);

tmp=round((QAM_Q+3)/2)+1;
output(3:4:end)=bitget(QAM_16_IQ(tmp),2);
output(4:4:end)=bitget(QAM_16_IQ(tmp),1);

⌨️ 快捷键说明

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