qammod.m
上传用户:m_sun_001
上传日期:2014-07-30
资源大小:1115k
文件大小:1k
源码类别:

matlab例程

开发平台:

Matlab

  1. % Program 3-23
  2. % qammod.m
  3. %
  4. % This function is used for Gray coding of 16QAM modulation  
  5. %
  6. % programmed by R.Funada and H.Harada
  7. %
  8. function [iout,qout]=qammod(paradata,para,nd,ml)
  9. %****************** variables *************************
  10. % paradata : input data (para-by-nd matrix)
  11. % iout :output Ich data
  12. % qout :output Qch data
  13. % para   : Number of paralell channels
  14. % nd : Number of data
  15. % ml : Number of modulation levels
  16. % (QPSK ->2  16QAM -> 4)
  17. % *****************************************************
  18. % The constellation power
  19. k=sqrt(10);
  20. iv=[-3 -1 3 1];
  21.                
  22. m2=ml/2;       
  23. count2=0; 
  24.    
  25. for ii=1 : nd 
  26.      
  27.     isi = zeros(para,1);
  28.     isq = zeros(para,1);
  29.     for jj=1 : ml
  30.          
  31.          if jj <= m2
  32.             isi = isi +2.^( m2- jj ).*paradata((1:para),count2+jj); 
  33. else 
  34.             isq = isq +2.^( ml- jj ).*paradata((1:para),count2+jj); 
  35.          end
  36.     end
  37.       
  38.     iout((1:para),ii) = iv(isi+1)./k;
  39.     qout((1:para),ii) =iv(isq+1)./k;        
  40.        
  41.     count2=count2+ml;
  42.      
  43. end
  44. %******************** end of file ***************************
  45.       
  46.