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 + -
显示快捷键?