📄 add_ofdm_pilots.m
字号:
function freqd_symbols=add_ofdm_pilots(mx_symbols, pilot, ofdm_sim);
%Compose OFDM symbols with pilot symbols
%
%
tx_num=size(mx_symbols, 2);
if size(pilot, 2)~=tx_num,
disp('[add_OFDM_pilots]Error pilot and data dimension mismatch.');
return;
end
%make an integeral number of OFDM symbols
tval=mod(size(mx_symbols, 1), ofdm_sim.Nd);
if tval
mx_symbols=[mx_symbols; zeros(ofdm_sim.Nd-tval, tx_num)];
end
%number of OFDM blocks. (OFDM symbols)
OFDMsymbols_num=size(mx_symbols, 1)/ofdm_sim.Nd;
%disp('[add_ofdm_pilots]Number of OFDM blocks.')
%disp(num2str(OFDMsymbols_num));
%output OFDM symbols
freqd_symbols=zeros(ofdm_sim.Nfft*OFDMsymbols_num, tx_num);
%note for MIMO, pilot info should be a matrix.
for ic_tx=1: tx_num,
%a matrix to store OFDM symbols
OFDMsymbols_mat=zeros(ofdm_sim.Nfft, OFDMsymbols_num);
%reshape the OFDM data
frames_mat=reshape(mx_symbols(:, ic_tx), ofdm_sim.Nd, OFDMsymbols_num);
%merge the OFDM data and the pilot info
OFDMsymbols_mat(ofdm_sim.DataSubcIndex, :)=frames_mat;
OFDMsymbols_mat(ofdm_sim.PilotSubcIndex, :)=repmat(pilot(:, ic_tx), 1, OFDMsymbols_num);
freqd_symbols(:, ic_tx)=OFDMsymbols_mat(:);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -