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

📄 tx_gen_preamble.m

📁 外文经典书“Space-time codes and MIMO systems”第九章matlab源代码
💻 M
字号:

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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -