?? channel_model.m
字號:
%==============================
% S-V channel model generation
%==============================
function imp_response=channel_model(ts,CM)
% ts : sampling time (nsec)
if nargin==0
ts = 0.167; % 根據(jù)提案的頻帶范圍確定
CM = 1;
end
%S-V模型的參數(shù)
if CM == 1
Lam=0.0233;
lambda=3.75;
Gam=7.1;
gamma=4.37;
std_ln=4.8;
elseif CM == 2
Lam=0.4;
lambda=1;
Gam=5.2;
gamma=6.5067;
std_ln=4.8;
elseif CM == 3
Lam=0.0667;
lambda=3;
Gam=14.93;
gamma=7.03;
std_ln=4.8;
else CM == 4
Lam=0.0667;
lambda=3;
Gam=17;
gamma=12;
std_ln=4.8;
end
% Lam=0.0233; % 修改1:Cluster arrival rate,(1/nsec) Lam
% % CM1為0.0233,CM2為0.4,CM3為0.0667,CM4為0.0667
% lambda=3.75; % 修改2:Ray arrival rate ,(1/nsec) lambda
% % CM1為3.75,CM2為1,CM3為3,CM4為3
% Gam=7.1; % 修改3:Cluster decay factor,Gam
% % CM1為7.1,CM2為5.2,CM3為14.93,CM4為17
% gamma=4.37; % 修改4:Ray decay factor,gamma
% % CM1為4.37,CM2為6.5067,CM3為7.03,CM4為12
% std_ln=4.8; % 修改5:total std of log-normal shadowing for each multipath arrival
% % CM1為4.8,CM2為4.8,CM3為4.8,CM4為4.8
std_ln_1=4.8/sqrt(2); % Standard deviation of log-normal variable associated with Clusters
std_ln_2=4.8/sqrt(2); % Standard deviation of log-normal variable Rays within a cluster
std_L=sqrt(1/(2*Lam));
std_lam=sqrt(1/(2*lambda));
index_imp_resp=floor((10*Gam+10*gamma)/ts)+1;
imp_response=zeros(index_imp_resp,1);
% Determine Cluster arrivals
Tc=0; % 修改6:First cluster arrival occurs at time 0
%根據(jù)需要選擇第一簇到達(dá)時(shí)間的設(shè)定
% Tc=(std_L*randn)^2+(std_L*randn)^2; % allow for random first arrival
while (Tc<10*Gam)
tmp_imp_response=zeros(floor((10*Gam+10*gamma)/ts)+1,1);
tmp_imp_response_index=floor(Tc/ts)+1;
mu=(-10*Tc/Gam)/log(10)-(std_ln)^2*log(10)/20;
ln_rv_temp=std_ln_1*randn; % Cluster shadowing
ln_rv=mu+std_ln_1*randn+ln_rv_temp; % first cluster arrival fading
% ln_rv=mu+std_ln*randn;
pk=2*round(rand)-1;
tmp_imp_response(tmp_imp_response_index)=10^(ln_rv/20)*pk;
% Determine Ray arrivals for each cluster
Tr=(std_lam*randn)^2+(std_lam*randn)^2;
while (Tr<10*gamma)
tmp_imp_response_index=floor((Tc+Tr)/ts)+1;
mu=(-10*Tc/Gam)/log(10)+(-10*Tr/gamma)/log(10)-(std_ln)^2*log(10)/20; % this assumes log(Omega)=0
ln_rv=mu+std_ln_2*randn+ln_rv_temp; % Ray fading
% ln_rv=mu+std_ln*randn;
pk=2*round(rand)-1;
tmp_imp_response(tmp_imp_response_index)=10^(ln_rv/20)*pk;
Tr=Tr+(std_lam*randn)^2+(std_lam*randn)^2;
end;
imp_response=imp_response+tmp_imp_response; % this sums cluster and ray arrivals
Tc=Tc+(std_L*randn)^2+(std_L*randn)^2;
end;
% 歸一化能量
imp_response=imp_response/sqrt(imp_response'*imp_response);
imp_response=imp_response';
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -