標(biāo)題: 多重信號分類MUSIC代碼matlab代碼 [打印本頁]

作者: exp(jpai)+1=0    時間: 2022-11-28 17:15
標(biāo)題: 多重信號分類MUSIC代碼matlab代碼
陣列信號處理分為波束形成和波達(dá)方向估計兩大技術(shù)。波達(dá)方向估計的代表性方法是高分辨空間譜估計。
功率譜密度描述信號功率隨頻率的分布,是信號的一種頻域表示。由于陣列信號處理的主要任務(wù)是信號空間參數(shù)(信源的定位參數(shù))的估計,所以將功率譜密度的概念在空域加以延伸及推廣,就顯得十分重要。這種廣義的功率譜常簡稱為空間譜。空間譜描述信號的空間參數(shù)的分布。

基于特征分解的多重信號分類(MUSIC)在空域內(nèi)進(jìn)行一維譜峰搜索得到波達(dá)方向。MUSIC算法的基本思想是利用噪聲子空間和信號矢量的正交關(guān)系構(gòu)造空間譜函數(shù)



  1. J=sqrt(-1);
  2. source_number=4;
  3. source_doa=[30 45 60 135];
  4. sensor_number=7;
  5. snapshot_number=2000;
  6. snr=10;
  7.   
  8. A=exp(-J*(0:sensor_number-1)'*pi*sin(source_doa*pi/180));
  9. s=(randn(source_number,snapshot_number)+J*randn(source_number,snapshot_number))/sqrt(2);
  10. x=A*s;
  11. y=awgn(x,snr);
  12. R=y*y'/snapshot_number;
  13.   
  14. [V,D]=eig(R);
  15. Un=V(:,1:sensor_number-source_number);
  16. Gn=Un*Un';
  17.   
  18. searching_doa=0:0.1:90;
  19. for i=1:length(searching_doa)
  20.     a_theta=exp(-J*(0:sensor_number-1)'*pi*sin(pi*searching_doa(i)/180))
  21.     P_con(i)=abs(a_theta'*R*a_theta);
  22.     P_BF(i)=abs((a_theta'*R*a_theta)./(a_theta'*a_theta));
  23.     P_capon(i)=1./abs((a_theta'*inv(R)*a_theta));
  24.     P_music(i)=1./abs((a_theta'*Gn*a_theta));
  25. end
  26. plot(searching_doa,P_con/max(P_con),'k');hold on;
  27. plot(searching_doa,P_BF/max(P_BF),'r'); hold on;  
  28. plot(searching_doa,P_capon/max(P_capon),'g'); hold on;
  29. plot(searching_doa,P_music/max(P_music),'b'); hold off;grid on;
  30. xlabel('ang');
  31. ylabel('功率譜估計');
  32. legend('conditional spectrum','Bartlett spectrum','Capon spectrum','Music spectrum');
復(fù)制代碼







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1