📄 qamdemod.m
字号:
% Program 3-24
% qamdemod.m
%
% Function to decode 16QAM modulation
%
% programmed by R. Funada and H. Harada
%
function [demodata] = qamdemod (idata,qdata,para,nd,m1)
%******************** variables *************************************
% iout : output Ich data
% qout : output Qch data
% demodata : demodulated data ( para-by-nd matrix)
% para : Number of parallel channels
% nd : Number of data
% m1 : Number of modulation levels
% ( QPSK->2 16QAM->4)
%********************************************************************
k = sqrt(10);
idata = idata .* k;
qdata = qdata .* k;
demodata = zeros( para,m1*nd );
m2 = m1/2;
count2 = 0;
for ii =1:nd
a=1;
b=1;
i_lngth = 0;
q_lngth = 0;
for jj = 1:m2
if jj ~= 1
if demodata((1:para),jj-1+count2) == 1
a = -a;
end
if demodata((1:para),m2+jj-1+count2) ==1
b = -b;
end
i_lngth = i_lngth + i_plrty.*2.^(m2-jj+1);
q_lngth = q_lngth + q_plrty.*2.^(m2-jj+1);
end
if idata((1:para),ii) >= i_lngth
demodata((1:para),jj+count2) = a >= 0;
i_plrty = 1;
else
demodata((1:para),jj+count2) = a <= 0;
i_plrty = -1;
end
if qdata((1:para),ii) >= q_lngth
demodata((1:para),m2+jj+count2) = b >=0;
q_plrty = 1;
else
demodata((1:para),m2+jj+count2) = b <=0;
q_plrty = -1;
end
end % for jj = 1:m2
count2 = count2 + m1;
end % for ii = 1:nd
%******************** end of file ***********************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -