php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 119|回复: 0

关于MUSIC算法的改进算法,不需要已知信源数,科研取得较...

[复制链接]

2627

主题

2634

帖子

9336

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
积分
6587
贡献
0
注册时间
2021-4-14
最后登录
2024-4-26
在线时间
667 小时
QQ
发表于 2024-1-8 08:15:27 | 显示全部楼层 |阅读模式
  1. %%%利用盖式圆半径法进行信源数目的估计
  2. % close  all;
  3. clear all;clc  
  4. f=[420,420]*10^6;
  5. fs=2*420*10^6;
  6. c=3e8;
  7. numda=c/max(f); %波长
  8. d=numda/(2);
  9. N=516;%%快拍数
  10. M=5;%%阵元数
  11. P=2; %%信源数
  12. doa=[15,30]*pi/180;%来波方向
  13. SNR=10;
  14. coef=10^(SNR/20);
  15. % A=rand(N,P);
  16. n=[1:M]';
  17. A=exp(-j*2*pi*d*(n-1)*sin(doa)/numda);
  18. X=rand(M,N);
  19. n0=1:N;
  20. X=A*coef*exp(-j*(2*pi*f'*n0/fs+randn(P,N)))+randn(M,N);
  21. % X=A*coef*sin(-j*2*pi*f'*n0/fs+randn(P,M))+randn(N,M);
  22. R=1/N*X*X';
  23. % load E:\xinyuan_guji\终板\x_ref\极低\x_ref5.dat;
  24. % load E:\xinyuan_guji\终板\x_ref\极低\x_ref6.dat;
  25. % load E:\xinyuan_guji\终板\x_ref\极低\x_ref7.dat;
  26. % load E:\xinyuan_guji\终板\x_ref\极低\x_ref8.dat;
  27. %
  28. % X=[x_ref5.';x_ref6.';x_ref7.';x_ref8.'];
  29. % M=4;
  30. % data=zeros(4,(length(x_ref5))/2);
  31. %  for n=1:4
  32. %     for k=1:(length(X(1,:)))/2
  33. %             Idata(k)=X(1,2*k-1);
  34. %             Qdata(k)=data(2*k);
  35. %         data(n,k)=X(n,2*k)*sqrt(-1)+X(n,2*k-1);
  36. %     end
  37. %  end
  38. %
  39. % data_length=length(data(1,:));
  40. % R=data*data'/data_length;
  41.   
  42. %%%协方差矩阵分块
  43. R1=R(1:M-1,1:M-1);
  44. [U1,D1]=eig(R1);%%R1特征分解
  45. DD=diag(D1);
  46. oo=zeros(length(U1(:,1)),1);
  47. U=[U1 oo;oo' 1];
  48. S=U'*R*U;
  49. Cmm=sum(S(1:M-1,M));

  50. dd=[sqrt(Cmm.*DD);1];
  51. G=diag(dd);
  52. SS=inv(G)*S*G;

  53. r=zeros(M,1);
  54. r1=zeros(M,1);

  55. r(1:M-1,1)=S(1:M-1,M);
  56. r1(1:M-1,1)=SS(1:M-1,M);

  57. %r(M)=sum(S(1:M-1,M));
  58. r=abs(r);
  59. r1=abs(r1);
  60. % D_N=0.2;
  61. D_N=4./log(512);
  62. K=0;
  63. K1=0;
  64. K2=0;
  65. for k=1:M-1
  66.      GDE=r(k)-(D_N/(M-1))*sum(r(1:M-1));
  67.      if GDE<=0
  68.       K=k-1; break;
  69.      end   
  70. end
  71. K


  72.   clear k;
  73. for k=1:M-1
  74.      GDE1=r1(k)-(D_N/(M-1))*sum(r1(1:M-1));
  75.      if GDE1<=0
  76.       K1=k-1; break;
  77.      end   
  78.   end
  79. K1

  80. L=16;
  81. for nn=1:L
  82.     for k=1:M-1
  83.         GDE=r(k)-(D_N/(M-1))*sum(r(1:M-1));
  84.         if GDE<=0
  85.             K(nn)=k-1;  break;           
  86.         end
  87.         
  88.      end
  89. end

  90. K2=mean(K)


  91. %%%各阵元输出信号的协方差矩阵的特征值分解
  92.   [V,D]=eig(R);
  93.   d1=diag(D);
  94.   lambtal=d1;
  95. %   [lambtal,p]=sort(d1);%%lambtal按升序排列   k输出的是每个值所在的行后或列
  96. %   lambtal=(fliplr(lambtal'))';
  97. %   V=V(:,p);
  98. % %   z=fliplr(z);
  99.          
  100.       
  101.       %%%产生空间谱函数
  102.     VV=V(:,K+1:M);
  103. %       en=en/norm(en);%%归一化
  104. angel=[0:0.1:90];
  105. angel1=[0:0.1:90]*pi/180;
  106. alfa=exp(-1i*2*pi/numda*d*(n-1)*sin(angel1));
  107. pum=1./diag((alfa'*VV*VV'*alfa));
  108. figure(1);
  109. plot(angel,10*log10(abs(pum)));
  110. grid on
  111. title('music方法')
  112. xlabel('DOA(deg)')
  113. ylabel('amplitude(dB)')
  114. %%源数目的估计


  115. %%%产生空间谱函数
  116.     V1=V(:,K1+1:M);
  117. %       en=en/norm(en);%%归一化
  118. angel=[0:0.1:90];
  119. angel1=[0:0.1:90]*pi/180;
  120. alfa=exp(-1i*2*pi/numda*d*(n-1)*sin(angel1));
  121. pum1=1./diag((alfa'*V1*V1'*alfa));
  122. figure(2);
  123. plot(angel,10*log10(abs(pum1)));
  124. grid on
  125. title('music方法')
  126. xlabel('DOA(deg)')
  127. ylabel('amplitude(dB)')
  128. %%源数目的估计
















复制代码





上一篇:Camshift算法原理及其Opencv实现
下一篇:自抗扰控制算法
回复

使用道具 举报

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

本版积分规则

QQ|php中文网 | cnphp.com ( 赣ICP备2021002321号-2 )51LA统计

GMT+8, 2024-4-27 18:10 , Processed in 0.197623 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

申明:本站所有资源皆搜集自网络,相关版权归版权持有人所有,如有侵权,请电邮(fiorkn@foxmail.com)告之,本站会尽快删除。

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