tx_gen_preamble.m
来自「空时码和mimoofdm系统相结合的matlab程序」· M 代码 · 共 49 行
M
49 行
function preamble = tx_gen_preamble(SimulationParameters);
global SimulationConstants;
M=SimulationParameters.M;
N=SimulationParameters.N;
fft_length=SimulationParameters.FFTPoints;
% generate the two long training symbols
long_tr = SimulationConstants.LongTrainingSymbols;
long_tr_symbol = tx_convert_to_time(long_tr,SimulationParameters);
if ~SimulationParameters.TxDiv
% single antenna preamble
% extend with the 2*guard interval in front and then two long training symbols
long_trs_signal = [long_tr_symbol(fft_length-2*16+1:fft_length) long_tr_symbol long_tr_symbol];
elseif SimulationParameters.TxDiv==2
% generate the two antenna preamble,
% long training symbols are not transmitted simultaneously from both antennas to allow
% channel estimation in receiver (orthogonal in time)
long_trs_signal(1,:) = sqrt(2)*[long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol ...
zeros(1,(fft_length+16))];
long_trs_signal(2,:) = sqrt(2)*[zeros(1,(fft_length+16)) ...
long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol];
elseif SimulationParameters.TxDiv==4
long_trs_signal(1,:) = sqrt(4)*[long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol ...
zeros(1,(fft_length+16)) zeros(1,(fft_length+16)) zeros(1,(fft_length+16))];
long_trs_signal(2,:) = sqrt(4)*[zeros(1,(fft_length+16)) ...
long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol ...
zeros(1,(fft_length+16)) zeros(1,(fft_length+16))];
long_trs_signal(3,:) = sqrt(4)*[zeros(1,(fft_length+16)) zeros(1,(fft_length+16)) ...
long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol zeros(1,(fft_length+16))];
long_trs_signal(4,:) = sqrt(4)*[zeros(1,(fft_length+16)) zeros(1,(fft_length+16)) zeros(1,(fft_length+16)) ...
long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol];
end
% concatenate first short training symbols and long training symbols
preamble(1,:) = [long_trs_signal(1,:)];
% add the second antenna preamble
if SimulationParameters.TxDiv==2
preamble(2,:) = [long_trs_signal(2,:)];
elseif SimulationParameters.TxDiv==4
preamble(2,:) = [long_trs_signal(2,:)];
preamble(3,:) = [long_trs_signal(3,:)];
preamble(4,:) = [long_trs_signal(4,:)];
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?