?? mul_channel.asv
字號:
function output_sig=mul_channel(input_sig,num,a,delay,fd,ofdm_symbol_num,pilot_num)%t_interval,counter,count_begin)
%input_sig輸入信號矩陣,加了cp后的信號,大小為NL×(子載波個數+cp長度lp)[144*120];
%num多徑數;
%var_pow各徑相對主徑的平均功率,單位dB;
%delay各徑延時,單位s;
%fd最大dopple頻率;
%t_interval為離散信道抽樣時間間隔,等于OFDM符號長度/(子載波個數+cp長度lp);
%output_sig為經過多徑信道的輸出信號矢量
%counter各徑間隔記錄
%count_begin本次產生信道開始記錄的初始位置
X7=[];
X7=reshape(input_sig,1,(128+16)*(ofdm_symbol_num+pilot_num));
h=zeros(1,144);
hh=[];
for k=1:num
%deta=[zeros(1,d(k)-1),1,zeros(1,carrier_count-d(k))]
h1=a(k)*exp(j*((2*pi*T*fd*delay(k)/144)));
%h1=a(k)*exp(j*((2*pi*T*fd*d(k)/144)));
hh=[hh,h1];
end
h(d+1)=hh;
%noise=randn(1,length(X7))+j.*randn(1,length(X7));
%--------------------------------------------------------
channel1=zeros(size(X7));
channel1(1+d(1):length(X7))=hh(1)*X7(1:length(X7)-d(1));
channel2=zeros(size(X7));
channel2(1+d(2):length(X7))=hh(2)*X7(1:length(X7)-d(2));
channel3=zeros(size(X7));
channel3(1+d(3):length(X7))=hh(3)*X7(1:length(X7)-d(3));
channel4=zeros(size(X7));
channel4(1+d(4):length(X7))=hh(4)*X7(1:length(X7)-d(4));
channel5=zeros(size(X7));
channel5(1+d(5):length(X7))=hh(5)*X7(1:length(X7)-d(5));
%channel6=zeros(size(X7));
%channel6(1+d(6):length(X7))=hh(6)*X7(1:length(X7)-d(6));
%---------------------------------------------------------------
XX=X7+channel1+channel2+channel3+channel4;
output_sig=reshape(XX,(128+cp_length),(ofdm_symbol_num+pilot_num));
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -