📄 selfgeometry2tgncorrelation.m
字号:
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)); case 'E' % Medbo model B - Typical large open space and office environments, NLOS conditions, and 100 ns rms delay spread PDP_dB = [-2.5 -3.0 -3.5 -3.9 0 -1.3 -2.6 -3.9 -3.4 -5.6 -7.7 -9.9 -12.1 -14.3 -15.4 -18.4 -20.7 -24.6; % Average power [dB] 0 10e-9 20e-9 30e-9 50e-9 80e-9 110e-9 140e-9 180e-9 230e-9 280e-9 330e-9 380e-9 430e-9 490e-9 560e-9 640e-9 730e-9]; % Relative delay (ns) % Power roll-off coefficients Power_per_angle_dB = [-2.6 -3 -3.5 -3.9 -4.5644301 -5.6551533 -6.9751533 -8.2951533 -9.8221791 -11.785521 -13.985521 -16.185521 -18.385521 -20.585521 -22.985195 -Inf -Inf -Inf; -Inf -Inf -Inf -Inf -1.8681171 -3.2849115 -4.5733656 -5.8619031 -7.1920408 -9.9304493 -10.343797 -14.353720 -14.767068 -18.776991 -19.982151 -22.446411 -Inf -Inf; -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -7.9044978 -9.6851670 -14.260649 -13.812819 -18.603831 -18.192376 -22.834619 -Inf -Inf -Inf; -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -20.673366 -20.574381 -20.7 -24.6]; % Tx AoD_Tx_deg = [105.6434.*ones(1,15) -Inf.*ones(1,3); -Inf.*ones(1,4) 293.1199.*ones(1,12) -Inf.*ones(1,2); -Inf.*ones(1,8) 61.9720.*ones(1,7) -Inf.*ones(1,3); -Inf.*ones(1,14) 275.7640.*ones(1,4)]; AS_Tx_deg = [36.1176.*ones(1,15) -Inf.*ones(1,3); -Inf.*ones(1,4) 42.5299.*ones(1,12) -Inf.*ones(1,2); -Inf.*ones(1,8) 38.0096.*ones(1,7) -Inf.*ones(1,3); -Inf.*ones(1,14) 38.7026.*ones(1,4)]; Type_Tx = 3.*ones(1, size(AoD_Tx_deg, 2)); % Rx AoA_Rx_deg = [163.7475.*ones(1,15) -Inf.*ones(1,3); -Inf.*ones(1,4) 251.8792.*ones(1,12) -Inf.*ones(1,2); -Inf.*ones(1,8) 80.0240.*ones(1,7) -Inf.*ones(1,3); -Inf.*ones(1,14) 182.0000.*ones(1,4)]; AS_Rx_deg = [35.8768.*ones(1,15) -Inf.*ones(1,3); -Inf.*ones(1,4) 41.6812.*ones(1,12) -Inf.*ones(1,2); -Inf.*ones(1,8) 37.4221.*ones(1,7) -Inf.*ones(1,3); -Inf.*ones(1,14) 40.3685.*ones(1,4)]; Type_Rx = 3.*ones(1, size(AoA_Rx_deg, 2)); case 'F' % Medbo model C - Large open space (indoor and outdoor), NLOS conditions, and 150 ns rms delay spread PDP_dB = [-3.3 -3.6 -3.9 -4.2 0 -0.9 -1.7 -2.6 -1.5 -3.0 -4.4 -5.9 -5.3 -7.9 -9.4 -13.2 -16.3 -21.2; % Average power [dB] 0 10e-9 20e-9 30e-9 50e-9 80e-9 110e-9 140e-9 180e-9 230e-9 280e-9 330e-9 400e-9 490e-9 600e-9 730e-9 880e-9 1050e-9]; % Relative delay (ns) % Power roll-off coefficients Power_per_angle_dB = [-3.3 -3.6 -3.9 -4.2 -4.6474101 -5.393095 -6.293095 -7.193095 -8.2370567 -9.5792981 -11.079298 -12.579298 -14.358636 -16.731146 -19.978784 -Inf -Inf -Inf; -Inf -Inf -Inf -Inf -1.8241629 -2.8069486 -3.5527879 -4.4527879 -5.3075764 -7.4275717 -7.0894233 -10.30481 -10.44412 -13.837355 -15.762121 -19.940313 -Inf -Inf; -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -5.7960011 -6.7737346 -10.475827 -9.6416705 -14.107182 -12.752335 -18.503266 -Inf -Inf -Inf; -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -8.8824645 -13.319464 -18.733410 -Inf -Inf -Inf; -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -12.947155 -14.233751 -Inf -Inf; -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -16.3 -21.2]; % Tx AoD_Tx_deg = [56.2139.*ones(1,15) -Inf.*ones(1,3); -Inf.*ones(1,4) 183.7089.*ones(1,12) -Inf.*ones(1,2); -Inf.*ones(1,8) 153.0836.*ones(1,7) -Inf.*ones(1,3); -Inf.*ones(1,12) 112.5317.*ones(1,3) -Inf.*ones(1,3); -Inf.*ones(1,14) 291.0921.*ones(1,2) -Inf.*ones(1,2); -Inf.*ones(1,16) 62.3790.*ones(1,2)]; AS_Tx_deg = [41.6936.*ones(1,15) -Inf.*ones(1,3); -Inf.*ones(1,4) 55.2669.*ones(1,12) -Inf.*ones(1,2); -Inf.*ones(1,8) 47.4867.*ones(1,7) -Inf.*ones(1,3); -Inf.*ones(1,12) 27.2136.*ones(1,3) -Inf.*ones(1,3); -Inf.*ones(1,14) 33.0126.*ones(1,2) -Inf.*ones(1,2); -Inf.*ones(1,16) 38.0482.*ones(1,2)]; Type_Tx = 3.*ones(1, size(AoD_Tx_deg, 2)); % Rx AoA_Rx_deg = [315.1048.*ones(1,15) -Inf.*ones(1,3); -Inf.*ones(1,4) 180.4090.*ones(1,12) -Inf.*ones(1,2); -Inf.*ones(1,8) 74.7062.*ones(1,7) -Inf.*ones(1,3); -Inf.*ones(1,12) 251.5763.*ones(1,3) -Inf.*ones(1,3); -Inf.*ones(1,14) 68.5751.*ones(1,2) -Inf.*ones(1,2); -Inf.*ones(1,16) 246.2344.*ones(1,2)]; AS_Rx_deg = [48.0084.*ones(1,15) -Inf.*ones(1,3); -Inf.*ones(1,4) 55.0823.*ones(1,12) -Inf.*ones(1,2); -Inf.*ones(1,8) 42.0885.*ones(1,7) -Inf.*ones(1,3); -Inf.*ones(1,12) 28.6161.*ones(1,3) -Inf.*ones(1,3); -Inf.*ones(1,14) 30.7745.*ones(1,2) -Inf.*ones(1,2); -Inf.*ones(1,16) 38.2914.*ones(1,2)]; Type_Rx = 3.*ones(1, size(AoA_Rx_deg, 2)); otherwise disp('Undefined case. Exiting...'); break; end; % % Information exploitation % % PDP in linear values Power_per_angle_linear = 10.^(.1.*Power_per_angle_dB); % % Computation of the correlation matrices % RTx = zeros(size(PDP_dB,2), NumberOfTxAntennas(ll), NumberOfTxAntennas(ll)); RRx = zeros(size(PDP_dB,2), NumberOfRxAntennas(mm), NumberOfRxAntennas(mm)); R = zeros(size(PDP_dB,2), NumberOfTxAntennas(ll)*NumberOfRxAntennas(mm),... NumberOfTxAntennas(ll)*NumberOfRxAntennas(mm)); for (pp = 1:size(PDP_dB,2)) index = transpose(find(Power_per_angle_dB(:,pp) > -Inf)); if (~isempty(index)) [temp_RTx, QTx, sTx_deg] = correlation(NumberOfTxAntennas(ll), SpacingTx(nn), ... linspace(0,(NumberOfTxAntennas(ll)-1)*SpacingTx(nn), NumberOfTxAntennas(ll)), ... size(index, 2), Power_per_angle_linear(index, pp), Type_Tx(pp), ... AoD_Tx_deg(index, pp).', AS_Tx_deg(index, pp).', ... 180.*ones(1, size(index, 2)), 0); [temp_RRx, QRx, sRx_deg] = correlation(NumberOfRxAntennas(mm), SpacingRx(oo), ... linspace(0,(NumberOfRxAntennas(mm)-1)*SpacingRx(oo), NumberOfRxAntennas(mm)), ... size(index, 2), Power_per_angle_linear(index, pp), Type_Rx(pp), ... AoA_Rx_deg(index, pp).', AS_Rx_deg(index, pp).', ... 180.*ones(1, size(index, 2)), 0); RTx(pp, :, :) = temp_RTx; RRx(pp, :, :) = temp_RRx; end; R(pp,:,:) = kron(squeeze(RTx(pp,:,:)), squeeze(RRx(pp,:,:))); end; % % Storage % String = ['RTx_',Scenario,' = RTx;']; eval(String); String = ['RRx_',Scenario,' = RRx;']; eval(String); String = ['R_',Scenario,' = R;']; eval(String); if exist('TGnCorrelationMatrices.mat'); String = ['save TGnCorrelationMatrices.mat RTx_',Scenario,' RRx_',Scenario,' R_',Scenario,' -append']; else String = ['save TGnCorrelationMatrices.mat RTx_',Scenario,' RRx_',Scenario,' R_',Scenario]; end; eval(String); qq = qq +1; end; end; end; end;end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -