📄 three_gpp_cases.m
字号:
%**************************************************************************
% Functionfile: Three_GPP_Cases.m
% Description:
% 根据协议,提供所选择的三种case的PDP,时延delay,天线相关矩阵等参数。
%***************************************************************************
% *****************************************************************
% change history:
% date author Descriptionr
% 2008/10/20 dengjuan Create
% *****************************************************************
%*******************Pseudo Code*******************************************
% input
%ID,表示case1、case2和case3三种信道环境,
%ID=1表示是case1这种信道环境;
%ID=2表示是case2这种信道环境;
%ID=3表示是case3这种信道环境。
%NumberOfAntennas_NodeB,表示基站端的天线数,如果是下行链路,则是发射天线数。
%NumberOfAntennas_UE,表示用户端的天线数,如果是下行链路,则是接收天线数。
%Correlation,表示天线之间的相关性,
%Correlation= 'High'表示高相关,
%Correlation='Medium'表示中相关,
%Correlation= 'Low'表示低相关。
%output
%PDP_linear,表示归一化功率延时分布。
%temp_C,表示天线相关矩阵。
%PDP_dB,表示功率延时分布。
%**************************************************************************
function [PDP_linear, temp_C,PDP_dB] =Three_GPP_Cases(ID, NumberOfAntennas_NodeB, NumberOfAntennas_UE, Correlation)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
switch ID
case 1
% ITU Pedestrian A
PDP_dB = [0 -1.0 -2.0 -3.0 -8.0 -17.2 -20.8 ; % Average power [dB]
0 30e-9 70e-9 90e-9 110e-9 190e-9 410e-9]; % Relative delay (ns)
case 2
% ITU Vehicular A
PDP_dB = [0 -1.5 -1.4 -3.6 -0.6 -9.1 -7.0 -12.0 -16.9; % Average power [dB]
0 30e-9 150e-9 310e-9 370e-9 710e-9 1090e-9 1730e-9 2510e-9]; % Relative delay (ns)
case 3
% ITU Pedestrian B
PDP_dB = [-1.0 -1.0 -1.0 0.0 0.0 0.0 -3.0 -5.0 -7.0; % Average power [dB]
0 50e-9 120e-9 200e-9 230e-9 500e-9 1600e-9 2300e-9 5000e-9]; % Relative delay (ns)
otherwise
disp('Undefined case. Exiting...');
end;
% PDP in linear values
PDP_linear = [10.^(.1.*PDP_dB(1,:));
PDP_dB(2,:)];
% Normalisation of PDP
PDP_linear(1,:) = PDP_linear(1,:)./sum(PDP_linear(1,:));
if strcmp(Correlation,'High') R_ID=1; % High Correlation
elseif strcmp(Correlation,'Medium') R_ID=2; % Medium Correlation
elseif strcmp(Correlation,'Low') R_ID=3; % Low Correlation
end
switch R_ID
case 1
if (NumberOfAntennas_NodeB == 1)&&(NumberOfAntennas_UE == 1)
temp_C=1;
else if (NumberOfAntennas_NodeB == 1)&&(NumberOfAntennas_UE == 2)
temp_C=[1 0.9;0.9 1];
else if (NumberOfAntennas_NodeB == 2)&&(NumberOfAntennas_UE == 1)
temp_C=[1 0.9;0.9 1];
else if (NumberOfAntennas_NodeB == 2)&&(NumberOfAntennas_UE == 2)
temp_C=[1 0.9 0.9 0.81;0.9 1 0.81 0.9;0.9 0.81 1 0.9;0.81 0.9 0.9 1];
end
end
end
end
case 2
if (NumberOfAntennas_NodeB == 1)&&(NumberOfAntennas_UE == 1)
temp_C=1;
else if (NumberOfAntennas_NodeB == 1)&&(NumberOfAntennas_UE == 2)
temp_C=[1 0.9;0.9 1];
else if (NumberOfAntennas_NodeB == 2)&&(NumberOfAntennas_UE == 1)
temp_C=[1 0.3;0.3 1];
else if (NumberOfAntennas_NodeB == 2)&&(NumberOfAntennas_UE == 2)
temp_C=[1 0.9 0.3 0.27;0.9 1 0.27 0.3;0.3 0.27 1 0.9;0.27 0.3 0.9 1];
end
end
end
end
case 3
if (NumberOfAntennas_NodeB == 1)&&(NumberOfAntennas_UE == 1)
temp_C=1;
else if (NumberOfAntennas_NodeB == 1)&&(NumberOfAntennas_UE == 2)
temp_C=[1 0;0 1];
else if (NumberOfAntennas_NodeB == 2)&&(NumberOfAntennas_UE == 1)
temp_C=[1 0;0 1];
else if (NumberOfAntennas_NodeB == 2)&&(NumberOfAntennas_UE == 2)
temp_C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1];
end
end
end
end
otherwise
disp('Undefined case. Exiting...');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -