📄 rx_demodulate.m
字号:
%Demodulate
function [rx_bits] = rx_demodulate(rx_symbols, sys_parm)
global ofdm_data_parm_const;
global ofdm_data_parm_var;
rx_bits = [];
ofdm_data_parm_var.Index = 0;
for n = 1 : sys_parm.NumOFDMSymbols
update_ofdm_data_parm_var;
%Demodulation
demod_in = rx_symbols(n, ofdm_data_parm_var.DataSubcIdx);
switch ofdm_data_parm_const.Modulation
case 0 %BSK
demod_out = pskdemod(demod_in, 2);
case 1 %4PSK
demod_out = pskdemod(demod_in, 4);
case 2 %16QAM
demod_out = qamdemod(demod_in * sqrt(10), 16);
case 3 %64QAM
demod_out = qamdemod(demod_in * sqrt(42), 64);
end
demod_bits = (de2bi(demod_out, 'left-msb'))';
demod_bits = reshape(demod_bits, 1, prod(size(demod_bits)));
rx_bits = [rx_bits, demod_bits];
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -