rx_timed_to_freqd.m

来自「OFDM系统的仿真代码MATLAB环境下」· M 代码 · 共 39 行

M
39
字号


function [freq_data_syms, freq_pilot_syms] = rx_timed_to_freqd(time_signal,n_tx_antennas)

global sim_consts;

% culculate the number of ofdm symbols in a packet
num_ofdm_symbol = floor(length(time_signal)/80);
    
% remove the extra bits resulting from the multi-path delay
% time_signal(num_ofdm_symbol*80+1:length(time_signal),:) = [];
   
time_signal = reshape(time_signal,80,num_ofdm_symbol);

% remove guard intervals
time_signal(1:16,:) = [];   
data_signal = time_signal;

% Dopple Frequency Effect
for i = 1:length(data_signal)
    data_signal(i) = data_signal(i) * exp(j*2*pi*500*4*10e-6*i/64);
end

% perform fft
freq_data = fft(data_signal)/(64/sqrt(54)/sqrt(n_tx_antennas));
  
%Reorder pattern is [33:64 1:32]
reorder_patt = [33:64 1:32];
freq_data(reorder_patt,:) = freq_data;
   
%Select data carriers
freq_data_syms = freq_data(sim_consts.DataSubcIdx,:);
   
%Select the pilot carriers
freq_pilot_syms = freq_data(sim_consts.PilotSubcIdx,:);
   


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?