⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qamdemod.m

📁 上传的是一个16Qam预失真处理的程序
💻 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 + -