qam64demod.m

来自「对Vblast—oFdm系统地仿真」· M 代码 · 共 42 行

M
42
字号

function bits = QAM64Demod(rx_symbols)

soft_bits = zeros(1,6*length(rx_symbols));  % Each symbol consists of 6 bits

bit0 = real(rx_symbols);
bit3 = imag(rx_symbols);

bit1 = 4/sqrt(42)-abs(real(rx_symbols));
bit4 = 4/sqrt(42)-abs(imag(rx_symbols));


for m=1:length(rx_symbols)
    
    if abs(4/sqrt(42)-abs(real(rx_symbols(m)))) <= 2/sqrt(42)  % bit is one
        bit2(m) = 2/sqrt(42) - abs(4/sqrt(42)-abs(real(rx_symbols(m))));
    elseif abs(real(rx_symbols(m))) <= 2/sqrt(42) % bit is zero, close to real axis
        bit2(m) = -2/sqrt(42) + abs(real(rx_symbols(m)));
    else
        bit2(m) = 6/sqrt(42)-abs(real(rx_symbols(m))); % bit is zero 
    end;
      
    if abs(4/sqrt(42)-abs(imag(rx_symbols(m)))) <= 2/sqrt(42)  % bit is one
        bit5(m) = 2/sqrt(42) - abs(4/sqrt(42)-abs(imag(rx_symbols(m))));
    elseif abs(imag(rx_symbols(m))) <= 2/sqrt(42) % bit is zero, close to real axis
        bit5(m) = -2/sqrt(42) + abs(imag(rx_symbols(m)));
    else
       bit5(m) = 6/sqrt(42)-abs(imag(rx_symbols(m)));
    end;

end;

soft_bits(1:6:end) = bit0;
soft_bits(2:6:end) = bit1;
soft_bits(3:6:end) = bit2;
soft_bits(4:6:end) = bit3;
soft_bits(5:6:end) = bit4;
soft_bits(6:6:end) = bit5;


bits=soft_bits>0;

⌨️ 快捷键说明

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