⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 add_ofdm_pilots.m

📁 国外大学的同志作出来的好程序
💻 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 + -