📄 package.m
字号:
%This Program Is Designed To Simulate The Angle Of Arrival Estimation Algorithms
%General Antenna Array Specifications
D = input ('Number Of Elements : ') ;
N = input ('Number Of Users : ') ;
L = input ('Number Of Samples : ') ;
P = input ('Signal To Noise Ratio Per Sample : ') ;
%Input Received Signals Arrival
for I = 1 : N
A ( I ) = input ('The Signal Arrival Phase Angle : ') ;
A ( I ) = A ( I ) * pi / 180 ;
end
H = randint ( N , L ) ;
%Estimation of The Covariance Matrix
S = zeros ( D , N ) ;
Rp = zeros ( D , D ) ;
for K = 1 : L
for J = 1 : N
for I = 1 : D
S ( I , J ) = exp ( i*( pi * ( I - 1 ) * cos ( A ( J ) ) ) ) ;
end
end
S = awgn ( S * H ( : , K ) , P ) ;
Rp = Rp + S * S' ;
end
Rp = Rp / D ;
R = inv ( Rp ) ;
F = zeros ( 1 , 629 ) ;
%Angle of Arrival Estimation ( F1 > Bartlett , F2 > Capon , F3 > Linear Prediction , F4 > Maximum Entropy )
Q = eye ( D ) ;
G = Q ( : , floor ( ( D + 1 ) / 2 ) ) ;
V = R ( : , floor ( ( D + 1 ) / 2 ) ) ;
[ V1 , E1 ] = eig ( Rp ) ;
Um = Q ( : , 1 ) ;
for I = 1 : D-N
VV1 ( : , I ) = V1 ( : , I ) ;
end
for T = -pi/2 : 0.005 : pi/2
K = 0 : D-1 ;
B = exp ( j .* K * pi * cos ( T ) ) ;
C = B.' ;
F1 ( I ) = C' * Rp * C ;
F2 ( I ) = 1 / ( C' * R * C ) ;
F3 ( I ) = ( G' * R * G )/ ( abs ( G' * R * C ) ^2 ) ;
F4 ( I ) = 1 / ( C' * V * V' * C ) ;
F5 ( I ) = 1 / ( ( abs ( C' * V1 ( : , 1 )) )^2 ) ;
F6 ( I ) = 1 / ( ( abs ( C' * VV1 * VV1' * Um ))^2 ) ;
F7 ( I ) = 1 / ( ( abs ( C' * VV1 * VV1' * C )) ) ;
I = I + 1 ;
end
for I = 1 : 629
FF1 ( I ) = F1 ( I + D - 3 ) ;
FF2 ( I ) = F2 ( I + D - 3 ) ;
FF3 ( I ) = F3 ( I + D - 3 ) ;
FF4 ( I ) = F4 ( I + D - 3 ) ;
FF5 ( I ) = F5 ( I + D - 3 ) ;
FF6 ( I ) = F6 ( I + D - 3 ) ;
FF7 ( I ) = F7 ( I + D - 3 ) ;
end
%Plot of the Output Corresponding Angular Pseudo Spectrum
T = -pi/2 : 0.005 : pi/2 ;
T = ( T * 180 ) / pi ;
F1 = 10 * log10 ( abs ( FF1 ) / max ( FF1 ) ) ;
F2 = 10 * log10 ( abs ( FF2 ) / max ( FF2 ) ) ;
F3 = 10 * log10 ( abs ( FF3 ) / max ( FF3 ) ) ;
F4 = 10 * log10 ( abs ( FF4 ) / max ( FF4 ) ) ;
F5 = 10 * log10 ( abs ( FF5 ) / max ( FF5 ) ) ;
F6 = 10 * log10 ( abs ( FF6 ) / max ( FF6 ) ) ;
F7 = 10 * log10 ( abs ( FF7 ) / max ( FF7 ) ) ;
figure ( 1 ) , plot ( T , F1 ) , xlabel ('The Direction Angle In Degrees') , ylabel ('The Angular Pseudo Spectrum') , axis ( [ -90 90 -80 0 ] ) , title ('The Spatial Bartlett Spectrum') , grid on ;
figure ( 2 ) , plot ( T , F2 ) , xlabel ('The Direction Angle In Degrees') , ylabel ('The Angular Pseudo Spectrum') , axis ( [ -90 90 -80 0 ] ) ,title ('The Spatial Capon Spectrum') , grid on ;
figure ( 3 ) , plot ( T , F3 ) , xlabel ('The Direction Angle In Degrees') , ylabel ('The Angular Pseudo Spectrum') , axis ( [ -90 90 -80 0 ] ) ,title ('The Spatial Linear Prediction Spectrum') , grid on ;
figure ( 4 ) , plot ( T , F4 ) , xlabel ('The Direction Angle In Degrees') , ylabel ('The Angular Pseudo Spectrum') , axis ( [ -90 90 -80 0 ] ) ,title ('The Spatial Maximum Entropy Spectrum') , grid on ;
figure ( 5 ) , plot ( T , F5 ) , xlabel ('The Direction Angle In Degrees') , ylabel ('The Angular Pseudo Spectrum') , axis ( [ -90 90 -80 0 ] ) ,title ('The Spatial Pisarenko Harmonic Decomposition Spectrum') , grid on ;
figure ( 6 ) , plot ( T , F6 ) , xlabel ('The Direction Angle In Degrees') , ylabel ('The Angular Pseudo Spectrum') , axis ( [ -90 90 -80 0 ] ) ,title ('The Spatial Minimum Norm Spectrum') , grid on ;
figure ( 7 ) , plot ( T , F7 ) , xlabel ('The Direction Angle In Degrees') , ylabel ('The Angular Pseudo Spectrum') , axis ( [ -90 90 -80 0 ] ) ,title ('The Spatial Multiple Signal Classification Spectrum') , grid on ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -