📄 tx_gen_preamble.m
字号:
function preamble = tx_gen_preamble(sim_options);
global sim_consts;
%产生前10个短训练符号
short_tr = sim_consts.ShortTrainingSymbols;
short_tr_symbols = tx_freqd_to_timed(short_tr);
%选择一个16样值的短训练符号
Strs = short_tr_symbols(1:16);
%将选出的训练符号扩展(复制)到10个
short_trs=[Strs Strs Strs Strs Strs Strs Strs Strs Strs Strs];
short_trs_len=length(short_trs);
% 然后产生两个长训练符号,注意与前面的10个短训练符号之间有循环前缀。
long_tr = sim_consts.LongTrainingSymbols;
long_tr_symbol = tx_freqd_to_timed(long_tr);
if ~sim_options.UseTxDiv
%单天线的前导
%扩展到2个长训练序列,注意添加了32取样的循环前缀以保证长训练符合C1,C2不受短训练符合间干扰的影响。
long_trs_signal = [long_tr_symbol(64-2*16+1:64) long_tr_symbol long_tr_symbol];
else
% 两个天线的前导
%若使用分集,长训练符合不是在两个天线处同时传输的(相隔两个zeros(1,80)),
%以便接收端进行信道估计。注意使用分集时,训练符号与不使用分集的区别。
long_trs_signal(1,:) = sqrt(2)*[long_tr_symbol(64-16+1:64) long_tr_symbol ...
zeros(1,80)];
long_trs_signal(2,:) = sqrt(2)*[zeros(1,80) ...
long_tr_symbol(64-16+1:64) long_tr_symbol];
end
%级联短训练符号和长训练符号
preamble(1,:) = [short_trs(1,:) long_trs_signal(1,:)];
if sim_options.UseTxDiv
preamble(2,:) = [short_trs(1,:) long_trs_signal(2,:)];
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -