?? mimo_ofdm_channel.m
字號(hào):
function [rx_signal_time]=MIMO_OFDM_channel(MIMO_OFDM_system_par,tx_signal_time,...
channel_matrix,channel_matrix_upsampling)
% Function MIMO_OFDM_transmiter +++++++++++++++++++++++++++++++++++++++++++++++++
% Realize the channel of MIMO OFDM system
% Input data: MIMO_OFDM_system_par - parameters of MIMO OFDM system
% tx_signal_time - transmit signal of MIMO OFDM system
% channel_matrix - the original channel matrix
% (num_rx_antenna,num_tx_antenna,channel_length,num_frame_channel_inv)
% channel_matrix_upsampling - the upsampling channel matrix
% if pulse shaping is disabled, 0
% if pulse shaping is enabled, (num_rx_antenna,num_tx_antenna,channel_length*pulse_oversampling,num_frame_channel_inv)
% Output data: rx_signal_time - receive signal of MIMO OFDM system
% if pulse shaping is disabled, (num_rx_antenna,num_carriers+num_guard_length+channel_length-1,num_frame_channel_inv)
% if pulse shaping is enabled, (num_rx_antenna,(num_carriers+num_guard_length+pulse_delay*2+channel_lenght-1)*pulse_oversampling,num_frame_channel_inv)
% Begin: Feb, 2005
% Last edited: Feb.28, 2005
% Feng Wan
num_frame_channel_inv=MIMO_OFDM_system_par.num_frame_channel_inv;
num_tx_antenna=MIMO_OFDM_system_par.num_tx_antenna;
num_rx_antenna=MIMO_OFDM_system_par.num_rx_antenna;
pulse_type=MIMO_OFDM_system_par.pulse_type;
channel_model_type=MIMO_OFDM_system_par.channel_model_type;
channel_length=MIMO_OFDM_system_par.channel_length;
if(pulse_type==1)
pulse_oversampling=MIMO_OFDM_system_par.pulse_oversampling;
pulse_filt_order=MIMO_OFDM_system_par.pulse_filt_order;
pulse_rolloff_factor=MIMO_OFDM_system_par.pulse_rolloff_factor;
pulse_delay=MIMO_OFDM_system_par.pulse_delay;
channel_length_upsampling=channel_length*pulse_oversampling;
end
%++++++++++++++++++++++++
% Make Receiver Signals
%++++++++++++++++++++++++
if(pulse_type==1)
channel_length=channel_length_upsampling;
channel_matrix=channel_matrix_upsampling;
end
rx_signal_time_ori=zeros(num_rx_antenna,size(tx_signal_time,2)+channel_length-1,size(tx_signal_time,3));
for nframe=1:num_frame_channel_inv % Begin the processing for frequency-selective fading
for n1=1:channel_length-1
for n2=1:n1
rx_signal_time_ori(:,n1,nframe)=rx_signal_time_ori(:,n1,nframe)+...
channel_matrix(:,:,n2,nframe)*tx_signal_time(:,n1-n2+1,nframe);
end
end
for n1=channel_length:size(tx_signal_time,2)
for n2=1:channel_length
rx_signal_time_ori(:,n1,nframe)=rx_signal_time_ori(:,n1,nframe)+...
channel_matrix(:,:,n2,nframe)*tx_signal_time(:,n1-n2+1,nframe);
end
end
for n1=size(tx_signal_time,2)+1:size(rx_signal_time_ori,2)
for n2=n1-size(tx_signal_time,2)+1:channel_length
rx_signal_time_ori(:,n1,nframe)=rx_signal_time_ori(:,n1,nframe)+...
channel_matrix(:,:,n2,nframe)*tx_signal_time(:,n1-n2+1,nframe);
end
end
end
if(pulse_type==1)
rx_signal_time=rx_signal_time_ori(:,1:size(rx_signal_time_ori,2)-pulse_oversampling+1,:);
else
rx_signal_time=rx_signal_time_ori;
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -