📄 channel.m
字号:
% AWGN generation
% programmed by Yang Tiejun
function receiver_signal=channel(transmit_signal,cir,SimulationParameters,EbN0)
n_rx_antennas = SimulationParameters.Rxdiv;
n_tx_antennas = SimulationParameters.Txdiv;
rx_signal = zeros(n_rx_antennas, size(transmit_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(transmit_signal(tx_ant,:), cir((rx_ant-1)*n_tx_antennas+tx_ant,:));
end
end
% symbol power normalized
bit_per_symbol = get_bit_per_symbol(SimulationParameters);
% 1/(fftlen/datacarrier)/datacarrier
signal_power = 2/SimulationParameters.FFTlen;
noise_var = signal_power/(10^(EbN0/10))/2/bit_per_symbol;
noise = sqrt(noise_var) * (randn(n_rx_antennas, size(rx_signal,2)) + j*randn(n_rx_antennas, size(rx_signal,2)));
receiver_signal=rx_signal+noise;
% Jake's channel Model,fading
% function R = fading_Jakes(fs, fm, multiPath, len)
% Jakes flat rayleigh fading model
% author: CC. address: xidian university, xi'an, China.
% 2002/07/06
% t = [0:1/fs:(len-1)/fs];
% N = 8; L = 4*N+2;
% wm = 2*pi*fm;
% alfa = pi/4;
% alfa = 0;
% if multiPath == 1
% generate one path fading signal
% xc = 0; xs = 0;
% for k = 1:N
% wn = wm*cos(2*pi*k/L);
% betan = pi*k/N;
% betan = pi*k/(N+1);
% xc = xc + 2*cos(betan)*cos(wn*t);
% xs = xs + 2*sin(betan)*cos(wn*t);
% end
% xc = xc + sqrt(2)*cos(alfa)*cos(wm*t);
% xs = xs + sqrt(2)*sin(alfa)*cos(wm*t);
%
% R = xc + sqrt(-1)*xs;
% R = R/sqrt(sig_power(R)); normalized power = 1
% R = R(:);
%
% else
% generate multiPath paths fading signal
% R = [];
% for j = 1:multiPath
% xc = 0; xs = 0;
% for k = 1:N
% wn = wm*cos(2*pi*k/L);
% betan = pi*k/(N+1);
% betan = pi*k/N;
% rn = 2*pi*(j-1)/(N+1);
% thetan = betan + rn;
%
% xc = xc + 2*cos(betan/2)*cos(wn*t+thetan);
% xs = xs + 2*sin(betan/2)*cos(wn*t+thetan);
% xc = xc + 2*cos(betan)*cos(wn*t+thetan);
% xs = xs + 2*sin(betan)*cos(wn*t+thetan);
% end
%
% xc = xc + sqrt(2)*cos(alfa)*cos(wm*t);
% xs = xs + sqrt(2)*sin(alfa)*cos(wm*t);
% tm = xc + sqrt(-1)*xs; tm = tm/sqrt(sig_power(tm));
% R = [R tm(:)];
% end
% end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -