MUSIC Algorithm Introduction
MUSIC The algorithm is called multi signal classification algorithm (Multiple Signal
classification),MUSIC The basic idea of the algorithm is to decompose the covariance matrix of the output data of any array , Thus, the signal subspace corresponding to the signal component and the noise subspace orthogonal to the signal component are obtained , Then the orthogonality of these two subspaces is used to estimate the parameters of the signal ( Incident direction , Polarization information and signal strength ).MUSIC The algorithm has universal applicability , As long as the array form of the antenna array is known , Whether it's a line array or a circle array , Whether or not the elements are equally spaced , High resolution results can be obtained .
Narrow band far field signal DOA(Direction-of-Arrival) The mathematical model is

Based on this model , The covariance matrix of array signal can be obtained as

among Rs It's a signal s(t) Covariance matrix of , Because signal and noise are independent of each other , Data covariance can be decomposed into signal subspace and noise subspace . And then we were right R Feature decomposition , You can get the following

among US Is a subspace made up of eigenvectors corresponding to large eigenvalues , Signal subspace .UN
It is a subspace formed by the eigenvectors corresponding to small eigenvalues . Noise subspace . Because signal subspace and noise subspace are orthogonal to each other , Then the guidance vector of the signal subspace A(θ) Orthogonal to noise subspace .
But in practice , The array of received signals is limited , here
And then R^ Feature decomposition , Calculating the eigenvector of noise subspace UN^, Then construct the following spectrum , And then we do the minimum optimization search , Namely
The spectral estimation formula is

Related experiments
Next in matlab In progress MUSIC Experimental simulation , The corresponding code is as follows
clear all close all derad = pi/180; radeg = 180/pi; twpi = 2*pi; kelm = 8;
% Number of elements dd = 0.5; % Element spacing d=0:dd:(kelm-1)*dd; iwave = 3; theta = [10 30 60];
% The angle to be estimated is 10 30 60 snr = 10; % Signal to noise ratio n = 500; % Number of snapshots A=exp(-j*twpi*d.'*sin
(theta*derad)); S=randn(iwave,n); X=A*S; X1=awgn(X,snr,'measured'); Rxx=X1*X1'
/n; InvS=inv(Rxx);[EV,D]=eig(Rxx); EVA=diag(D)'; [EVA,I]=sort(EVA);
EVA=fliplr(EVA); EV=fliplr(EV(:,I)); for iang = 1:361 angle(iang)=(iang-181)/2;
phim=derad*angle(iang); a=exp(-j*twpi*d*sin(phim)).'; L=iwave; En=EV(:,L+1
:kelm); SP(iang)=(a'*a)/(a'*En*En'*a); end SP=abs(SP); SPmax=max(SP); SP=10*
log10(SP/SPmax); h=plot(angle,SP); set(h,'Linewidth',2) xlabel('angle (degree)'
) ylabel('magnitude (dB)') axis([-90 90 -60 0]) set(gca, 'XTick',[-90:30:90])
grid on
The experimental results are shown in the figure below

You can see , In the spectrum shown on the right , The spectrum has three peaks , That's where we're going to estimate , The corresponding abscissa is 10,30,60. Same as set in the above code .