📄 tgn channel.m
字号:
%==============channel_Model_D.m========================================
function [r_t_sum,r_f_sum]=channel(t_preamble_cp,N_STS,N_LTF,M,K,snr)
% 设每个天线都有L条多径
% n_tx_antenna 发送天线数<=4
n_tx_antenna =2;
% n_rx_antenna 接收天线数<=4
% n_rx_antenna = 1;
% ts fd 为 n_tx_antenna*1 的矩阵
% tau pdb 为 n_tx_antenna*L 的矩阵
%r_t_preamble_cp 为n_tx_antenna*80 的矩阵
%r_t_preamble 为n_tx_antenna*56 的矩阵
% M = 64;%fft,ifft点数
% K = 64;%子载波个数
% snr =20;
SymbolNum =0;%没有传送数据符号,只传送前导符号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ro_t = 0;
ro_r = 1;
ts = 10e-9;
fd =0;
tau1= [0 ts 2*ts 3*ts 4*ts 5*ts 6*ts 7*ts 8*ts 9*ts 11*ts 14*ts 17*ts 20*ts 24*ts 29*ts];
pdb1= [0 -0.9 -1.7 -2.6 -3.5 -4.3 -5.2 -6.1 -6.9 -7.8 -9.0 -11.1 -13.7 -16.3 -19.3 -23.2 ];
tau2= [ 11*ts 14*ts 17*ts 20*ts 24*ts 29*ts 34*ts ];
pdb2= [-6.6 -9.5 -12.1 -14.7 -17.4 -21.9 -25.5];
tau3= [ 24*ts 29*ts 34*ts 39*ts];
pdb3=[-18.8 -23.2 -25.2 -26.7];
chan1= rayleighchan(ts,fd,tau1,pdb1);chan2=rayleighchan(ts,fd,tau2,pdb2);chan3=rayleighchan(ts,fd,tau3,pdb3);
h1=[chan1.PathGains 0 0];h2=[0 0 0 0 0 0 0 0 0 0 chan2.PathGains 0] ;h3=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 chan3.PathGains];
h=h1+h2+h3;
t_preamble_cp_in(1,:) = t_preamble_cp(1,:) + ro_t* t_preamble_cp(2,:);%天线间相干
t_preamble_cp_in(2,:) = t_preamble_cp(2,:) + ro_t* t_preamble_cp(1,:);
% chan= ricianchan(ts,fd,tau,pdb);
for index_tx_antenna=1:n_tx_antenna
r_t_preamble_cp(index_tx_antenna,:) = filter(chan1,t_preamble_cp_in(index_tx_antenna,:))+......
filter(chan2,t_preamble_cp_in(index_tx_antenna,:))+filter(chan3,t_preamble_cp_in(index_tx_antenna,:));
end
r_t_preamble_cp_out(1,:) = r_t_preamble_cp(1,:) + ro_r*r_t_preamble_cp(2,:);% 只考虑第一根接收天线
%r_t_preamble_cp_out(2,:) = r_t_preamble_cp(2,:) + ro_r*r_t_preamble_cp(1,:); % 第二根接收天线
r_t_preamble_cp_awgn(1,:) = AWGN(r_t_preamble_cp(1,:),snr,'measured');
%r_t_preamble_cp_awgn(2,:) = AWGN(r_t_preamble_cp(2,:),snr,'measured');
% for index =1:80* N_LTF,
% r_t_preamble_cp_awgn(1,index) = awgn( r_t_preamble_cp_out(1,index),snr);
% end
%去cp--------------------------------------------------------------
if n_tx_antenna ==1
r_t_preamble(1,:) = r_t_preamble_cp_awgn(1,17:80);
elseif n_tx_antenna == 2
r_t_preamble(1,:) = [r_t_preamble_cp_awgn(1,17:80),r_t_preamble_cp_awgn(1,97:160),r_t_preamble_cp_awgn(1,177:240)];
%r_t_preamble(2,:) = [r_t_preamble_cp_awgn(2,17:80),r_t_preamble_cp_awgn(2,97:160),r_t_preamble_cp_awgn(2,177:240)];
%elseif n_tx_antenna == 3||n_tx_antenna == 4
end
r_t_sum1 = r_t_preamble(1,:);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%==========================================================================
%接收天线得到的时域信号
r_t_sum = r_t_sum1;
%接收天线得到的频域信号
if n_tx_antenna == 2
r_f_sum_1 = fft(r_t_sum(1:64),M)/sqrt(M*n_tx_antenna);%
r_f_sum_2 = fft(r_t_sum(65:128),M)/sqrt(M*n_tx_antenna);%
r_f_sum_3 = fft(r_t_sum(129:192),M)/sqrt(M*n_tx_antenna);%
r_f_sum = [r_f_sum_1,r_f_sum_2,r_f_sum_3 ];
elseif n_tx_antenna == 1
r_f_sum = fft(r_t_sum(1:64),M)/sqrt(M*n_tx_antenna);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -