?? rx_timed_to_freqd.m
字號:
%FFT operation, downsample and separate the data
function [freq_tr_syms, freq_data_syms, freq_pilot_syms] = rx_timed_to_freqd(time_signal, sys_parm)
global ofdm_data_parm_const;
global ofdm_data_parm_var;
time_signal = time_signal /(sys_parm.TotNumSubc * sys_parm.OverSamp / sqrt(ofdm_data_parm_const.UsedNumSubc));
long_training_end = 2 * (sys_parm.TotNumSubc * sys_parm.OverSamp);
ofdm_symbol_len = sys_parm.TotNumSubc * sys_parm.OverSamp + ofdm_data_parm_const.CPLength;
%Long Training symbols
long_tr_syms = time_signal(1: long_training_end);
long_tr_syms = conj(reshape(long_tr_syms, sys_parm.TotNumSubc * sys_parm.OverSamp, 2)');
%To frequency domain
freq_long_tr = fft(long_tr_syms, [], 2);
freq_long_tr = freq_long_tr(:, [1 : sys_parm.TotNumSubc / 2, sys_parm.TotNumSubc * sys_parm.OverSamp - sys_parm.TotNumSubc / 2 + 1: ...
sys_parm.TotNumSubc * sys_parm.OverSamp]);
%Select training carriers
freq_tr_syms = freq_long_tr(:, ofdm_data_parm_const.UsedSubcIdx);
%Take data symbols
data_syms = time_signal(long_training_end + 1: long_training_end + ofdm_symbol_len * sys_parm.NumOFDMSymbols);
%Cut to multiple of symbol period
data_syms = conj(reshape(data_syms, ofdm_symbol_len, sys_parm.NumOFDMSymbols)');
%Remove guard intervals
data_syms(:, 1 : ofdm_data_parm_const.CPLength) = [];
%Perform fft
freq_data = fft(data_syms, [], 2);
freq_data = freq_data(:, [1 : sys_parm.TotNumSubc / 2, sys_parm.TotNumSubc * sys_parm.OverSamp - sys_parm.TotNumSubc / 2 + 1: ...
sys_parm.TotNumSubc * sys_parm.OverSamp]);
%Initinal
ofdm_data_parm_var.Index = 0;
freq_data_syms = zeros(sys_parm.NumOFDMSymbols, sys_parm.TotNumSubc);
freq_pilot_syms = zeros(sys_parm.NumOFDMSymbols, sys_parm.TotNumSubc);
%For loop
for n = 1 : sys_parm.NumOFDMSymbols
update_ofdm_data_parm_var;
freq_data_syms(n, ofdm_data_parm_var.DataSubcIdx) = freq_data(n, ofdm_data_parm_var.DataSubcIdx);
if ofdm_data_parm_var.HavePilot
freq_pilot_syms(n, ofdm_data_parm_var.PilotSubcIdx) = freq_data(n, ofdm_data_parm_var.PilotSubcIdx);
end
end
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -