qam16_modulate.m

来自「Qam 16 in rayleigh channel」· M 代码 · 共 64 行

M
64
字号
function     TxChannelSymbols= QAM16_modulate(TxChannelBits) ;

numBitsPerSymbol = 4 ;
numChannelSymbols = length(TxChannelBits)/numBitsPerSymbol ;
TxChannelSymbols=zeros(1,numChannelSymbols);

for count = 1 : numChannelSymbols
    
   BinarySymbol(1:numBitsPerSymbol) =  ...
   TxChannelBits(count*numBitsPerSymbol - numBitsPerSymbol + 1 : count*numBitsPerSymbol );

   if     BinarySymbol == [ 0 0 0 0 ] 
       TxChannelSymbols(count) = (-3 -3*j)/sqrt(10) ;
      
   elseif BinarySymbol == [ 0 0 0 1 ] 
           TxChannelSymbols(count) =(-3 -1*j)/sqrt(10) ;
       
   elseif BinarySymbol == [ 0 0 1 1 ] 
          TxChannelSymbols(count) =(-3 + 1*j)/sqrt(10) ;
        
   elseif BinarySymbol == [ 0 0 1 0 ] 
          TxChannelSymbols(count) = (-3 + 3*j)/sqrt(10) ;
       
   elseif BinarySymbol == [ 0 1 0 0 ] 
            TxChannelSymbols(count) = (-1 -3*j)/sqrt(10) ;

   elseif BinarySymbol == [ 0 1 0 1 ] 
           TxChannelSymbols(count) = (-1 -1*j)/sqrt(10) ;
  
   elseif BinarySymbol == [ 0 1 1 1 ] 
            TxChannelSymbols(count) = (-1 +1*j)/sqrt(10) ;
      
   elseif BinarySymbol == [ 0 1 1 0 ] 
            TxChannelSymbols(count) = (-1 +3*j)/sqrt(10) ;
      
   elseif BinarySymbol == [ 1 1 0 0 ] 
       TxChannelSymbols(count) = (1 -3*j)/sqrt(10) ;
      
   elseif BinarySymbol == [ 1 1 0 1 ] 
          TxChannelSymbols(count) = (1 -1*j)/sqrt(10) ;
     
   elseif BinarySymbol == [ 1 1 1 1 ] 
           TxChannelSymbols(count) = (1 +1*j)/sqrt(10) ;
       
   elseif BinarySymbol == [ 1 1 1 0 ] 
           TxChannelSymbols(count) =(1 +3*j)/sqrt(10) ;
      
    elseif BinarySymbol == [ 1 0 0 0 ] 
          TxChannelSymbols(count) = ( 3 -3*j)/sqrt(10) ;

   elseif BinarySymbol == [ 1 0 0 1 ] 
          TxChannelSymbols(count) =(3 -1*j)/sqrt(10) ;
       
   elseif BinarySymbol == [ 1 0 1 1 ] 
         TxChannelSymbols(count) = (3 +1*j)/sqrt(10) ;
    
   elseif BinarySymbol == [ 1 0 1 0 ] 
            TxChannelSymbols(count) = ( 3 +3*j)/sqrt(10) ;
       
   end    % ending the if

end       % ending the for loop
    

⌨️ 快捷键说明

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