function par = ChannelModelParameters(scenario)
if strcmp(scenario, 'UMa')
par.Pr_LOS = @UMa_Pr_LOS;
par.LOS_mu_lgDS = @UMa_LOS_mu_lgDS;
par.LOS_sigma_lgDS = @UMa_LOS_sigma_lgDS;
par.LOS_mu_lgASD = @UMa_LOS_mu_lgASD;
par.LOS_sigma_lgASD = @UMa_LOS_sigma_lgASD;
par.LOS_mu_lgASA = @UMa_LOS_mu_lgASA;
par.LOS_sigma_lgASA = @UMa_LOS_sigma_lgASA;
par.LOS_mu_lgZSA = @UMa_LOS_mu_lgZSA;
par.LOS_sigma_lgZSA = @UMa_LOS_sigma_lgZSA;
par.LOS_sigma_SF = @UMa_LOS_sigma_SF;
par.LOS_mu_K = @UMa_LOS_mu_K;
par.LOS_sigma_K = @UMa_LOS_sigma_K;
par.LOS_DelayScaling_r_tau = @UMa_LOS_DelayScaling_r_tau;
par.LOS_mu_XPR = @UMa_LOS_mu_XPR;
par.LOS_sigma_XPR = @UMa_LOS_sigma_XPR;
par.LOS_Number_of_Clusters_N = @UMa_LOS_Number_of_Clusters_N;
par.LOS_Number_of_Rays_Per_Clusters_M = @UMa_LOS_Number_of_Rays_Per_Clusters_M;
par.LOS_c_DS = @UMa_LOS_c_DS;
par.LOS_c_ASD = @UMa_LOS_c_ASD;
par.LOS_c_ASA = @UMa_LOS_c_ASA;
par.LOS_c_ZSA = @UMa_LOS_c_ZSA;
par.LOS_zeta = @UMa_LOS_zeta;
par.LOS_mu_lgZSD = @UMa_LOS_mu_lgZSD;
par.LOS_sigma_lgZSD = @UMa_LOS_sigma_lgZSD;
par.LOS_mu_offset_ZOD = @UMa_LOS_mu_offset_ZOD;
par.LOS_PL = @UMa_LOS_PL;
par.NLOS_mu_lgDS = @UMa_NLOS_mu_lgDS;
par.NLOS_sigma_lgDS = @UMa_NLOS_sigma_lgDS;
par.NLOS_mu_lgASD = @UMa_NLOS_mu_lgASD;
par.NLOS_sigma_lgASD = @UMa_NLOS_sigma_lgASD;
par.NLOS_mu_lgASA = @UMa_NLOS_mu_lgASA;
par.NLOS_sigma_lgASA = @UMa_NLOS_sigma_lgASA;
par.NLOS_mu_lgZSA = @UMa_NLOS_mu_lgZSA;
par.NLOS_sigma_lgZSA = @UMa_NLOS_sigma_lgZSA;
par.NLOS_sigma_SF = @UMa_NLOS_sigma_SF;
par.NLOS_DelayScaling_r_tau = @UMa_NLOS_DelayScaling_r_tau;
par.NLOS_mu_XPR = @UMa_NLOS_mu_XPR;
par.NLOS_sigma_XPR = @UMa_NLOS_sigma_XPR;
par.NLOS_Number_of_Clusters_N = @UMa_NLOS_Number_of_Clusters_N;
par.NLOS_Number_of_Rays_Per_Clusters_M = @UMa_NLOS_Number_of_Rays_Per_Clusters_M;
par.NLOS_c_DS = @UMa_NLOS_c_DS;
par.NLOS_c_ASD = @UMa_NLOS_c_ASD;
par.NLOS_c_ASA = @UMa_NLOS_c_ASA;
par.NLOS_c_ZSA = @UMa_NLOS_c_ZSA;
par.NLOS_zeta = @UMa_NLOS_zeta;
par.NLOS_mu_lgZSD = @UMa_NLOS_mu_lgZSD;
par.NLOS_sigma_lgZSD = @UMa_NLOS_sigma_lgZSD;
par.NLOS_mu_offset_ZOD = @UMa_NLOS_mu_offset_ZOD;
par.NLOS_PL = @UMa_NLOS_PL;
elseif strcmp(scenario, 'UMi')
par.Pr_LOS = @UMi_Pr_LOS;
par.LOS_mu_lgDS = @UMi_LOS_mu_lgDS;
par.LOS_sigma_lgDS = @UMi_LOS_sigma_lgDS;
par.LOS_mu_lgASD = @UMi_LOS_mu_lgASD;
par.LOS_sigma_lgASD = @UMi_LOS_sigma_lgASD;
par.LOS_mu_lgASA = @UMi_LOS_mu_lgASA;
par.LOS_sigma_lgASA = @UMi_LOS_sigma_lgASA;
par.LOS_mu_lgZSA = @UMi_LOS_mu_lgZSA;
par.LOS_sigma_lgZSA = @UMi_LOS_sigma_lgZSA;
par.LOS_sigma_SF = @UMi_LOS_sigma_SF;
par.LOS_mu_K = @UMi_LOS_mu_K;
par.LOS_sigma_K = @UMi_LOS_sigma_K;
par.LOS_DelayScaling_r_tau = @UMi_LOS_DelayScaling_r_tau;
par.LOS_mu_XPR = @UMi_LOS_mu_XPR;
par.LOS_sigma_XPR = @UMi_LOS_sigma_XPR;
par.LOS_Number_of_Clusters_N = @UMi_LOS_Number_of_Clusters_N;
par.LOS_Number_of_Rays_Per_Clusters_M = @UMi_LOS_Number_of_Rays_Per_Clusters_M;
par.LOS_c_DS = @UMi_LOS_c_DS;
par.LOS_c_ASD = @UMi_LOS_c_ASD;
par.LOS_c_ASA = @UMi_LOS_c_ASA;
par.LOS_c_ZSA = @UMi_LOS_c_ZSA;
par.LOS_zeta = @UMi_LOS_zeta;
par.LOS_mu_lgZSD = @UMi_LOS_mu_lgZSD;
par.LOS_sigma_lgZSD = @UMi_LOS_sigma_lgZSD;
par.LOS_mu_offset_ZOD = @UMi_LOS_mu_offset_ZOD;
par.LOS_PL = @UMi_LOS_PL;
par.NLOS_mu_lgDS = @UMi_NLOS_mu_lgDS;
par.NLOS_sigma_lgDS = @UMi_NLOS_sigma_lgDS;
par.NLOS_mu_lgASD = @UMi_NLOS_mu_lgASD;
par.NLOS_sigma_lgASD = @UMi_NLOS_sigma_lgASD;
par.NLOS_mu_lgASA = @UMi_NLOS_mu_lgASA;
par.NLOS_sigma_lgASA = @UMi_NLOS_sigma_lgASA;
par.NLOS_mu_lgZSA = @UMi_NLOS_mu_lgZSA;
par.NLOS_sigma_lgZSA = @UMi_NLOS_sigma_lgZSA;
par.NLOS_sigma_SF = @UMi_NLOS_sigma_SF;
par.NLOS_DelayScaling_r_tau = @UMi_NLOS_DelayScaling_r_tau;
par.NLOS_mu_XPR = @UMi_NLOS_mu_XPR;
par.NLOS_sigma_XPR = @UMi_NLOS_sigma_XPR;
par.NLOS_Number_of_Clusters_N = @UMi_NLOS_Number_of_Clusters_N;
par.NLOS_Number_of_Rays_Per_Clusters_M = @UMi_NLOS_Number_of_Rays_Per_Clusters_M;
par.NLOS_c_DS = @UMi_NLOS_c_DS;
par.NLOS_c_ASD = @UMi_NLOS_c_ASD;
par.NLOS_c_ASA = @UMi_NLOS_c_ASA;
par.NLOS_c_ZSA = @UMi_NLOS_c_ZSA;
par.NLOS_zeta = @UMi_NLOS_zeta;
par.NLOS_mu_lgZSD = @UMi_NLOS_mu_lgZSD;
par.NLOS_sigma_lgZSD = @UMi_NLOS_sigma_lgZSD;
par.NLOS_mu_offset_ZOD = @UMi_NLOS_mu_offset_ZOD;
par.NLOS_PL = @UMi_NLOS_PL;
elseif strcmp(scenario, 'RMa')
par.Pr_LOS = @RMa_Pr_LOS;
par.LOS_mu_lgDS = @RMa_LOS_mu_lgDS;
par.LOS_sigma_lgDS = @RMa_LOS_sigma_lgDS;
par.LOS_mu_lgASD = @RMa_LOS_mu_lgASD;
par.LOS_sigma_lgASD = @RMa_LOS_sigma_lgASD;
par.LOS_mu_lgASA = @RMa_LOS_mu_lgASA;
par.LOS_sigma_lgASA = @RMa_LOS_sigma_lgASA;
par.LOS_mu_lgZSA = @RMa_LOS_mu_lgZSA;
par.LOS_sigma_lgZSA = @RMa_LOS_sigma_lgZSA;
par.LOS_sigma_SF = @RMa_LOS_sigma_SF;
par.LOS_mu_K = @RMa_LOS_mu_K;
par.LOS_sigma_K = @RMa_LOS_sigma_K;
par.LOS_DelayScaling_r_tau = @RMa_LOS_DelayScaling_r_tau;
par.LOS_mu_XPR = @RMa_LOS_mu_XPR;
par.LOS_sigma_XPR = @RMa_LOS_sigma_XPR;
par.LOS_Number_of_Clusters_N = @RMa_LOS_Number_of_Clusters_N;
par.LOS_Number_of_Rays_Per_Clusters_M = @RMa_LOS_Number_of_Rays_Per_Clusters_M;
par.LOS_c_ASD = @RMa_LOS_c_ASD;
par.LOS_c_ASA = @RMa_LOS_c_ASA;
par.LOS_c_ZSA = @RMa_LOS_c_ZSA;
par.LOS_zeta = @RMa_LOS_zeta;
par.LOS_mu_lgZSD = @RMa_LOS_mu_lgZSD;
par.LOS_sigma_lgZSD = @RMa_LOS_sigma_lgZSD;
par.LOS_mu_offset_ZOD = @RMa_LOS_mu_offset_ZOD;
par.LOS_PL = @RMa_LOS_PL;
par.NLOS_mu_lgDS = @RMa_NLOS_mu_lgDS;
par.NLOS_sigma_lgDS = @RMa_NLOS_sigma_lgDS;
par.NLOS_mu_lgASD = @RMa_NLOS_mu_lgASD;
par.NLOS_sigma_lgASD = @RMa_NLOS_sigma_lgASD;
par.NLOS_mu_lgASA = @RMa_NLOS_mu_lgASA;
par.NLOS_sigma_lgASA = @RMa_NLOS_sigma_lgASA;
par.NLOS_mu_lgZSA = @RMa_NLOS_mu_lgZSA;
par.NLOS_sigma_lgZSA = @RMa_NLOS_sigma_lgZSA;
par.NLOS_sigma_SF = @RMa_NLOS_sigma_SF;
par.NLOS_DelayScaling_r_tau = @RMa_NLOS_DelayScaling_r_tau;
par.NLOS_mu_XPR = @RMa_NLOS_mu_XPR;
par.NLOS_sigma_XPR = @RMa_NLOS_sigma_XPR;
par.NLOS_Number_of_Clusters_N = @RMa_NLOS_Number_of_Clusters_N;
par.NLOS_Number_of_Rays_Per_Clusters_M = @RMa_NLOS_Number_of_Rays_Per_Clusters_M;
par.NLOS_c_ASD = @RMa_NLOS_c_ASD;
par.NLOS_c_ASA = @RMa_NLOS_c_ASA;
par.NLOS_c_ZSA = @RMa_NLOS_c_ZSA;
par.NLOS_zeta = @RMa_NLOS_zeta;
par.NLOS_mu_lgZSD = @RMa_NLOS_mu_lgZSD;
par.NLOS_sigma_lgZSD = @RMa_NLOS_sigma_lgZSD;
par.NLOS_mu_offset_ZOD = @RMa_NLOS_mu_offset_ZOD;
par.NLOS_PL = @RMa_NLOS_PL;
else
error('错误的场景类型,目前支持"UMa","UMi","RMa"')
end
end
%% UMa
function Pr_LOS = UMa_Pr_LOS(d_2D_m, h_UT_m)
if d_2D_m <= 18
Pr_LOS = 1;
else
if h_UT_m <= 13
C = 0;
else
C = ((h_UT_m-13)/10)^1.5;
end
a = 18/d_2D_m+exp(-d_2D_m/63)*(1-18/d_2D_m);
b = 1+C*1.25*(d_2D_m/100)^3*exp(-d_2D_m/150);
Pr_LOS = a*b;
end
end
% LOS
function mu_lgDS = UMa_LOS_mu_lgDS(fc_GHz)
if fc_GHz<6
fc_GHz = 6;
end
mu_lgDS = -0.0963*log10(fc_GHz)-6.955;
end
function sigma_lgDS = UMa_LOS_sigma_lgDS()
sigma_lgDS = 0.66;
end
function mu_lgASD = UMa_LOS_mu_lgASD(fc_GHz)
if fc_GHz<6
fc_GHz = 6;
end
mu_lgASD = -0.1114*log10(fc_GHz)+1.06;
end
function sigma_lgASD = UMa_LOS_sigma_lgASD()
sigma_lgASD = 0.28;
end
function mu_lgASA = UMa_LOS_mu_lgASA()
mu_lgASA = 1.81;
end
function sigma_lgASA = UMa_LOS_sigma_lgASA()
sigma_lgASA = 0.2;
end
function mu_lgZSA = UMa_LOS_mu_lgZSA()
mu_lgZSA = 0.95;
end
function sigma_lgZSA = UMa_LOS_sigma_lgZSA()
sigma_lgZSA = 0.16;
end
function sigma_SF = UMa_LOS_sigma_SF()
sigma_SF = 4;
end
function mu_K = UMa_LOS_mu_K()
mu_K = 9;
end
function sigma_K = UMa_LOS_sigma_K()
sigma_K = 3.5;
end
function r_tau = UMa_LOS_DelayScaling_r_t
matlab-(含教程)3D-MIMO信道模拟matlab仿真
版权申诉
5星 · 超过95%的资源 4 浏览量
2021-09-09
19:05:50
上传
评论 2
收藏 1.64MB 7Z 举报
mYlEaVeiSmVp
- 粉丝: 1948
- 资源: 19万+
最新资源
- 2023-04-06-项目笔记 - 第一百五十四阶段 - 4.4.2.152全局变量的作用域-152 -2024.06.04
- 松哥解协议松哥解协议松哥解协议松哥解协议松哥解协议
- 618节日618节日618节日
- tensorflow-gpu-2.9.1-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp39-cp39-win-amd64.whl
- lcd daimalcd daima
- 电影领域-推荐算法-个性化内容-观影决策-电影推荐小程序.zip
- 电气控制PLC考试题库
- 如何使用MATLAB简介
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈