資源簡介
求根music和最小范數music算法的正確matlab實現代碼。兩種重要的music改進算法,非常經典。已經檢查無誤。

代碼片段和文件信息
%MUSIC算法的改進——最小范數MUSIC算法
%MN_MUSIC算法和普通MUSIC算法的DOA估計比較
f=1*10^8;
c=3*10^8;
lamda=c/f;
d=lamda/2;
n=10;
f1=10;
thita1=40;
f2=20;
thita2=90;
f3=40;
thita3=135;
thita=1:1:180;
snapshot=1:2000;
S1=1*exp(j*2*pi*f1*snapshot/length(snapshot));
S2=0.8*exp(j*2*pi*f2*snapshot/length(snapshot));
S3=1.5*exp(j*2*pi*f3*snapshot/length(snapshot));
S=[S1;S2;S3];
A1=exp(-j*2*pi*d*[0:n-1]*cos(thita1*pi/180)/lamda).‘;
A2=exp(-j*2*pi*d*[0:n-1]*cos(thita2*pi/180)/lamda).‘;
A3=exp(-j*2*pi*d*[0:n-1]*cos(thita3*pi/180)/lamda).‘;
A=[A1A2A3];
N=sqrt(1/2)*(randn(nlength(snapshot))+j*randn(nlength(snapshot)));??????????%這里信號和噪聲都取復數
X=A*S+N;??????????%10*2000
R=cov(X‘);
[VD]=eig(R);
[YI]=sort(diag(D));
Un=V(:I(1:7));??????????%10*7
e1=[1zeros(1n-1)]‘;
for?i=1:length(thita)
????A=exp(-j*2*pi*d*[0:n-1]*cos(thita(i)*pi/180)/lamda).‘;
????Pmn(i)=1/(abs(A‘*Un*Un‘*e1))^2;
????Pmusic(i)=(A‘*A)/(A‘*Un*Un‘*A);
end;
figure(1);
plot(thita10*log10(abs(Pmn)/max(abs(Pmusic)))‘b--‘);
grid?on;
hold?on;
plot(thita10*log10(abs(Pmusic)/max(abs(Pmusic)))‘r--‘);
%?plot(thita1-50:-30‘.-‘);
%?plot(thita2-50:-30‘.-‘);
%?plot(thita3-50:-30‘.-‘);
xlabel(‘入射方向角(度)‘);
ylabel(‘輸出功率(dB)‘);
title(‘普通music算法和最小范數music算法空間譜對比‘);
legend(‘最小范數MUSIC‘‘普通MUSIC‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1749??2009-07-25?21:47??root_music.m
?????文件???????1326??2009-07-25?21:37??MN_music_doa.m
-----------?---------??----------?-----??----
?????????????????3075????????????????????2
- 上一篇:matlab各種圖像壓縮源代碼
- 下一篇:三種esprit算法實現doa估計
評論
共有 條評論