标题: 多重信号分类MUSIC代码matlab代码 [打印本页]

作者: exp(jpai)+1=0    时间: 2022-11-28 17:15
标题: 多重信号分类MUSIC代码matlab代码
阵列信号处理分为波束形成和波达方向估计两大技术。波达方向估计的代表性方法是高分辨空间谱估计。
功率谱密度描述信号功率随频率的分布,是信号的一种频域表示。由于阵列信号处理的主要任务是信号空间参数(信源的定位参数)的估计,所以将功率谱密度的概念在空域加以延伸及推广,就显得十分重要。这种广义的功率谱常简称为空间谱。空间谱描述信号的空间参数的分布。

基于特征分解的多重信号分类(MUSIC)在空域内进行一维谱峰搜索得到波达方向。MUSIC算法的基本思想是利用噪声子空间和信号矢量的正交关系构造空间谱函数



  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');
复制代码







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1