找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1054|回复: 0
收起左侧

多重信号分类MUSIC代码matlab代码

[复制链接]
ID:1054434 发表于 2022-11-28 17:15 | 显示全部楼层 |阅读模式
阵列信号处理分为波束形成和波达方向估计两大技术。波达方向估计的代表性方法是高分辨空间谱估计。
功率谱密度描述信号功率随频率的分布,是信号的一种频域表示。由于阵列信号处理的主要任务是信号空间参数(信源的定位参数)的估计,所以将功率谱密度的概念在空域加以延伸及推广,就显得十分重要。这种广义的功率谱常简称为空间谱。空间谱描述信号的空间参数的分布。

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

1.png

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


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表