📄 ieee_802_11_cases.asv
字号:
function [PDP_linear, RTx, RRx, Fading_Type, RiceMatrix, K_factor_dB, ...
PathLoss_dB, ShadowFading_dB, DirectionOfMovement_rad, ...
AngleAtMobile_rad, ASAtMobile_rad] = ...
IEEE_802_11_Cases(Connection, ID, CorrelationCoefficientType, ...
CarrierFrequency_Hz, NumberOfTxAntennas, SpacingTx, ...
NumberOfRxAntennas, SpacingRx, distance_Tx_Rx_m)
% function [PDP_linear, RTx, RRx, Fading_Type, RiceMatrix, K_factor_dB, ...
% PathLoss_dB, ShadowFading_dB, DirectionOfMovement_rad, ...
% AngleAtMobile_deg, ASAtMobile_deg] = ...
% IEEE_802_11_Cases(Connection, ID, CorrelationCoefficientType, ...
% CarrierFrequency_Hz, NumberOfTxAntennas, SpacingTx, ...
% NumberOfRxAntennas, SpacingRx, distance_Tx_Rx_m)
%
% Provides the PDP of the chosen IEEE 802.11 case, plus
% the spatial correlation properties of the taps in
% the case of a ULA. The I/O variables are listed here after.
%
% Inputs
%
% * Variable Connection, defines whether the simulated channel is
% downlink or uplink
% * Variable ID, defines the IEEE 802.11 Case to be simulated
% * Variable CorrelationCoefficientType, defines whether
% the script should produce real positive, power correlation
% coefficients (CorrelationCoefficientType = 'real'),
% or complex, field correlation coefficients
% (CorrelationCoefficientType = 'complex')
% * Variable CarrierFrequency_Hz, carrier frequency, in Hz
% * Variable NumberOfTxAntennas, number of antenna elements
% of the ULA at Tx
% * Variable SpacingTx, spacing between the antenna elements
% of the ULA at Tx
% * Variable NumberOfRxAntennas, number of antenna elements
% of the ULA at Rx
% * Variable SpacingRx, spacing between the antenna elements
% of the ULA at Rx
% * Variable distance_Tx_Rx_m, distance between Tx and Rx, in m
%
% Outputs
%
% * 2-D matrix PDP_linear of size 2 x NumberOfPaths, containing
% the linear values of the taps power gains, normalised to 1
% and the absolute delays of the taps in seconds
% * 3-D matrix RTx of size NumberOfPaths x NumberOfTxAntennas
% x NumberOfTxAntennas, containing the correlation coefficients
% at the ULA transmit antenna with SpacingTx
% * 3-D matrix RRx of size NumberOfPaths x NumberOfRxAntennas
% x NumberOfRxAntennas, containing the correlation coefficients
% at the ULA receive antenna with SpacingRx
% * String Fading_type indicating the nature of the Doppler spectrum
% * 3-D matrix Rice_matrix of size NumberOfPaths x NumberOfRxAntennas /? lid
% x NumberOfTxAntennas whose elements are the product of the phasors
% related to the elements of two ULA (Uniform Linear Array), one at
% Tx and one at Rx, under incidence angles AoA_Tx_rad and AoA_Rx_rad
% respectively. Each of the NumberOfPaths 2-D submatrices is weighted
% by the associated K factor of the tap
% * Vector K_factor_dB, K factor of each tap, in dB
% * Scalar PathLoss_dB, path loss, in dB
% * Scalar ShadowFading_dB, shadow fading, in dB
% * Vector DirectionOfMovement_rad of size 1 x NumberOfPaths
% giving the direction of travel of the UE relative to UE antenna
% orientation. Currently hard-coded to zero rad.
% * Vector AngleAtMobile_rad of size 1 x NumberOfPaths giving the angle
% of arrival of the waves impinging at UE relative to UE antenna
% orientation.
% * Vector ASAtMobile_rad of size 1 x NumberOfPaths giving the standard
% deviation of the waves impinging at UE relative to UE antenna
% orientation.
%
% Revision history
%
% February 2004 - Bug fix - AoA/AoD at mobile hard-coded to 45 degrees
% Thanks to Steven Howard and Irina Medvedev, Qualcomm
% (USA) for reporting the bug.
% November 2003 - Updated in compliance with IEEE 802.11-03/940r1
% ( Bas Dijkstra and Laurent Schumacher )
% October 2003 - Updated in compliance with IEEE 802.11-03/161r2
% o DirectionOfMovement set to 0
% Bug fixes
% o Angles AoD_Tx_rad and AoA_Rx_rad used to compute
% the Rice matrix instead of the hard-coded 45
% degrees (comment from Qinfang Sun, Atheros,
% United States)
% o AngleAtMobile and ASAtMobile returned in radians
% instead of degrees (comment from Irina Medvedev,
% Qualcomm)
% o Correlation type (real/complex) no longer hard-
% coded to complex but parametrised from function
% call (comment from Dorel Silberstein,
% University of Tel-Aviv, Israel)
% ( Bas Dijkstra )
% July 2003 - Creation
% ( Laurent Schumacher )
%
%
% STANDARD DISCLAIMER
%
% The Computer Science Institute of the University of Namur (hereafter
% "FUNDP-INFO") is furnishing this item "as is". FUNDP-INFO does not
% provide any warranty of the item whatsoever, whether express,
% implied, or statutory, including, but not limited to, any warranty
% of merchantability or fitness for a particular purpose or any
% warranty that the contents of the item will be error-free.
%
% In no respect shall FUNDP-INFO incur any liability for any damages,
% including, but not limited to, direct, indirect, special, or
% consequential damages arising out of, resulting from, or any way
% connected to the use of the item, whether or not based upon
% warranty, contract, tort, or otherwise; whether or not injury was
% sustained by persons or property or otherwise; and whether or not
% loss was sustained from, or arose out of, the results of, the
% item, or any services that may be provided by FUNDP-INFO.
%
% (c) Laurent Schumacher, FUNDP-INFO - July 2003
switch ID
case 'A'
% Flat fading with 0 ns rms delay spread (one tap at 0 ns delay model)
PDP_dB = [0; % Average power [dB]
0]; % Relative delay (ns)
% Power roll-off coefficients
Power_per_angle_dB = 0;
% Tx
AoD_Tx_deg = 45;
AS_Tx_deg = 40;
Type_Tx = 3;
% Rx
AoA_Rx_deg = 45;
AS_Rx_deg = 40;
Type_Rx = 3;
% Fading
Fading_Type = 'bell_shape';
% Path loss break point
d_BP_m = 5;
% Rice
if (distance_Tx_Rx_m < d_BP_m)
% LOS conditions
K_factor_dB = [0,(-100).*ones(1, size(AoA_Rx_deg, 2)-1)];
% Shadow fading standard deviation
ShadowFading_std_dB = 3;
else
% NLOS conditions
K_factor_dB = (-100).*ones(1, size(AoA_Rx_deg, 2));
% Shadow fading standard deviation
ShadowFading_std_dB = 4;
end;
case 'B'
% Typical residential environment, 15 ns rms delay spread
PDP_dB = [0 -5.4287 -2.5162 -5.8905 -9.1603 -12.5105 -15.6126 -18.7147 -21.8168; % Average power [dB]
0 10e-9 20e-9 30e-9 40e-9 50e-9 60e-9 70e-9 80e-9 ]; % Relative delay (ns)
% Power roll-off coefficients
Power_per_angle_dB = [ 0 -5.4287 -10.8574 -16.2860 -21.7147 -Inf -Inf -Inf -Inf;
-Inf -Inf -3.2042 -6.3063 -9.4084 -12.5105 -15.6126 -18.7147 -21.8168];
% Tx
AoD_Tx_deg = [225.1084.*ones(1,5) -Inf.*ones(1,4);
-Inf.*ones(1,2) 106.5545.*ones(1,7)];
AS_Tx_deg = [14.4490.*ones(1,5) -Inf.*ones(1,4);
-Inf.*ones(1,2) 25.4311.*ones(1,7)];
Type_Tx = 3.*ones(1, size(AoD_Tx_deg, 2));
% Rx
AoA_Rx_deg = [4.3943.*ones(1,5) -Inf.*ones(1,4);
-Inf.*ones(1,2) 118.4327.*ones(1,7)];
AS_Rx_deg = [14.4699.*ones(1,5) -Inf.*ones(1,4);
-Inf.*ones(1,2) 25.2566.*ones(1,7)];
Type_Rx = 3.*ones(1, size(AoA_Rx_deg, 2));
% Fading
Fading_Type = 'bell_shape';
% Path loss break point
d_BP_m = 5;
% Rice
if (distance_Tx_Rx_m < d_BP_m)
% LOS conditions
K_factor_dB = [0,(-100).*ones(1, size(AoA_Rx_deg, 2)-1)];
% Shadow fading standard deviation
ShadowFading_std_dB = 3;
else
% NLOS conditions
K_factor_dB = (-100).*ones(1, size(AoA_Rx_deg, 2));
% Shadow fading standard deviation
ShadowFading_std_dB = 4;
end;
case 'C'
% Typical residential or small office environment, 30 ns rms delay spread
PDP_dB = [0 -2.1715 -4.3429 -6.5144 -8.6859 -10.8574 -4.3899 -6.5614 -8.7329 -10.9043 -13.7147 -15.8862 -18.0577 -20.2291; % Average power [dB]
0 10e-9 20e-9 30e-9 40e-9 50e-9 60e-9 70e-9 80e-9 90e-9 110e-9 140e-9 170e-9 200e-9]; % Relative delay (ns)
% Power roll-off coefficients
Power_per_angle_dB = [ 0 -2.1715 -4.3429 -6.5144 -8.6859 -10.8574 -13.0288 -15.2003 -17.3718 -19.5433 -Inf -Inf -Inf -Inf;
-Inf -Inf -Inf -Inf -Inf -Inf -5.0288 -7.2003 -9.3718 -11.5433 -13.7147 -15.8862 -18.0577 -20.2291];
% Tx
AoD_Tx_deg = [13.5312.*ones(1,10) -Inf.*ones(1,4);
-Inf.*ones(1,6) 56.4329.*ones(1,8)];
AS_Tx_deg = [24.7897.*ones(1,10) -Inf.*ones(1,4);
-Inf.*ones(1,6) 22.5729.*ones(1,8)];
Type_Tx = 3.*ones(1, size(AoD_Tx_deg, 2));
% Rx
AoA_Rx_deg = [290.3715.*ones(1,10) -Inf.*ones(1,4);
-Inf.*ones(1,6) 332.3754.*ones(1,8)];
AS_Rx_deg = [24.6949.*ones(1,10) -Inf.*ones(1,4);
-Inf.*ones(1,6) 22.4530.*ones(1,8)];
Type_Rx = 3.*ones(1, size(AoA_Rx_deg, 2));
% Fading
Fading_Type = 'bell_shape';
% Path loss break point
d_BP_m = 5;
% Rice
if (distance_Tx_Rx_m < d_BP_m)
% LOS conditions
K_factor_dB = [0,(-100).*ones(1, size(AoA_Rx_deg, 2)-1)];
% Shadow fading standard deviation
ShadowFading_std_dB = 3;
else
% NLOS conditions
K_factor_dB = (-100).*ones(1, size(AoA_Rx_deg, 2));
% Shadow fading standard deviation
ShadowFading_std_dB = 5;
end;
case 'D'
% Medbo model A - Typical office environment, 50 ns rms delay spread
PDP_dB = [0 -0.9 -1.7 -2.6 -3.5 -4.3 -5.2 -6.1 -6.9 -7.8 -4.7 -7.3 -9.9 -12.5 -13.7 -18 -22.4 -26.7; % Average power [dB]
0 10e-9 20e-9 30e-9 40e-9 50e-9 60e-9 70e-9 80e-9 90e-9 110e-9 140e-9 170e-9 200e-9 240e-9 290e-9 340e-9 390e-9]; % Relative delay (ns)
% Power roll-off coefficients
Power_per_angle_dB = [0 -0.9 -1.7 -2.6 -3.5 -4.3 -5.2 -6.1 -6.9 -7.8 -9.0712046 -11.199064 -13.795428 -16.391791 -19.370991 -23.201722 -Inf -Inf;
-Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -6.6756386 -9.5728825 -12.175385 -14.777891 -17.435786 -21.992788 -25.580689 -Inf;
-Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -18.843300 -23.238125 -25.246344 -26.7];
% Tx
AoD_Tx_deg = [332.1027.*ones(1,16) -Inf.*ones(1,2);
-Inf.*ones(1,10) 49.3840.*ones(1,7) -Inf;
-Inf.*ones(1,14) 275.9769.*ones(1,4)];
AS_Tx_deg = [27.4412.*ones(1,16) -Inf.*ones(1,2);
-Inf.*ones(1,10) 32.1430.*ones(1,7) -Inf;
-Inf.*ones(1,14) 36.8825.*ones(1,4)];
Type_Tx = 3.*ones(1, size(AoD_Tx_deg, 2));
% Rx
AoA_Rx_deg = [158.9318.*ones(1,16) -Inf.*ones(1,2);
-Inf.*ones(1,10) 320.2865.*ones(1,7) -Inf;
-Inf.*ones(1,14) 276.1246.*ones(1,4)];
AS_Rx_deg = [27.7580.*ones(1,16) -Inf.*ones(1,2);
-Inf.*ones(1,10) 31.4672.*ones(1,7) -Inf;
-Inf.*ones(1,14) 37.4179.*ones(1,4)];
Type_Rx = 3.*ones(1, size(AoA_Rx_deg, 2));
% Fading
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -