📄 channel.asv
字号:
function rx_signal = channel(tx_signal, cir, sim_options,snr);
global sim_consts;
[n_tx_antennas, n_rx_antennas] = get_n_antennas(sim_options);
% 信道的影响
rx_signal = zeros(n_rx_antennas, size(tx_signal,2)+size(cir,2)-1);
for rx_ant = 1:n_rx_antennas
for tx_ant = 1:n_tx_antennas
rx_signal(rx_ant,:) = rx_signal(rx_ant,:) + ...
conv(tx_signal(tx_ant,:), cir((rx_ant-1)*n_tx_antennas+tx_ant,:));
end
end
%每个接收天线处的接收信号是所有发射信号和每个发射机与该接收机之间的通道的cir的卷积的和。
len = size(rx_signal, 2);
% 计算噪声的方差
% 64/52表示对噪声用使用的子载波进行归一化
noise_var = 64/52/(10^(snr/10))/2;
%64个子载波只用了52个,且noise_var=N0/2.由1/(52*N0/64)=10^(SNR/10)
noise = sqrt(noise_var) * (randn(n_rx_antennas, len) + j*randn(n_rx_antennas, len));
%产生加性高斯复白噪声
extra_noise = sqrt(noise_var) * (randn(n_rx_antennas,sim_consts.ExtraNoiseSamples) + ...
j*randn(n_rx_antennas, sim_consts.ExtraNoiseSamples));
% end noise 可以防止由于不正确的符合定时而导致仿真失败
end_noise = sqrt(noise_var) * (randn(n_rx_antennas,170) + j*randn(n_rx_antennas, 170));
% add noise
rx_signal = rx_signal+noise; %加性高斯噪声
%如何通过extra noise samples来测试包搜索算法?
rx_signal = [extra_noise rx_signal end_noise];
%Create frequency offset
rx_signal = create_freq_offset(rx_signal, sim_options.FreqError);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -