git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5910 818b1a75-f10b-46b9-bf7c-635c3b92a50f
47 lines
1.5 KiB
Matlab
47 lines
1.5 KiB
Matlab
%
|
|
% PURPOSE : OFDM Receiver
|
|
%
|
|
% ARGUMENTS :
|
|
%
|
|
% m_sig_R : received signal with dimension ((d_N_FFT+d_N_CP)*d_N_ofdm) x d_N
|
|
% d_N_FFT : total carrier number
|
|
% d_N_CP : extented cyclic prefix
|
|
% d_N_OFDM : OFDM symbol number per frame
|
|
% v_active_rf : active RF antenna indicator
|
|
%
|
|
% OUTPUTS :
|
|
%
|
|
% m_sym_R : transmitted signal before IFFT with dimension d_N_f x d_N_ofdm x d_N_ant_act
|
|
%
|
|
%**********************************************************************************************
|
|
% EURECOM - All rights reserved
|
|
%
|
|
% AUTHOR : Xiwen JIANG, Florian Kaltenberger
|
|
%
|
|
% DEVELOPMENT HISTORY :
|
|
%
|
|
% Date Name(s) Version Description
|
|
% ----------- ------------- ------- ------------------------------------------------------
|
|
% Apr-29-2014 X. JIANG 0.1 creation of code
|
|
%
|
|
% REFERENCES/NOTES/COMMENTS :
|
|
%
|
|
% - Based on the function "genrandpskseq" created by Mirsad Cirkic, Florian Kaltenberger.
|
|
%
|
|
%**********************************************************************************************
|
|
function m_sym_R = f_ofdm_rx(m_sig_R, d_N_FFT, d_N_CP, d_N_OFDM, v_active_rf)
|
|
|
|
d_N_ant_act = sum(v_active_rf);
|
|
m_sig_R_eff = m_sig_R(:,find(v_active_rf));
|
|
m_sig_R_f = reshape(m_sig_R_eff,(d_N_FFT+d_N_CP),d_N_OFDM,d_N_ant_act);
|
|
|
|
%** delete the CP **
|
|
m_sig_R_noCP = m_sig_R_f(d_N_CP+1:end,:,:);
|
|
|
|
%** fft **
|
|
m_sym_R_fft = 1/sqrt(d_N_FFT)*fft(m_sig_R_noCP,d_N_FFT,1);
|
|
%m_sym_R_fft = fft(m_sig_R_noCP,d_N_FFT,1);
|
|
m_sym_R = m_sym_R_fft([2:151 362:512],:,:);
|
|
|
|
end
|