rootMUSIC算法


来源:
  1. 17.6.15  
  2. %ROOT_MUSIC ALOGRITHM  
  3. %DOA ESTIMATION BY ROOT_MUSIC  
  4. clc;  
  5. clear all;  
  6. close all;  
  7.   
  8. K=2;                                                             %信源数  
  9. M=8;                                                             %阵元数  
  10. L=200;                                                           %信号长度  
  11. w=[pi/4 pi/6].';                                                 %信号频率  
  12. lamda=((2*pi*3e8)/w(1)+(2*pi*3e8)/w(2))/2;%信号波长    
  13. d_lamda=0.5;                                                    %阵元间距  
  14. snr=20;                                                          %信噪比  
  15. theta1=[45,60];                                                 %信号入射角  
  16. for k=1:K  
  17. A(:,k)=exp(-1j*[0:M-1]'*d_lamda*2*pi*sin(theta1(k)*pi/180));   %阵列流型  
  18. end  
  19. for kk=1:L  
  20. s(:,kk)=sqrt(10.^((snr/2)/10))*exp(1j*w*(kk-1));%仿真信号  
  21. end  
  22. x=A*s+(1/sqrt(2))*(randn(M,L)+1j*randn(M,L));%加入高斯白噪声  
  23. R=(x*x')/L;                                                       %协方差矩阵  
  24. %%%%%%第一种方法%%%%%%%%%%  
  25. [V,D]=eig(R);                                                     %对协方差矩阵进行特征分解  
  26. Un=V(:,1:M-K);                                                   %取噪声子空间  
  27. Gn=Un*Un';  
  28. a = zeros(2*M-1,1)';                                            %找出多项式的系数,并按阶数从高至低排列  
  29. for i=-(M-1):(M-1)  
  30.     a(i+M) = sum( diag(Gn,i) );  
  31. end  
  32. a1=roots(a);                                                      %使用ROOTS函数求出多项式的根                              
  33. a2=a1(abs(a1)<1);                                              %找出在单位圆里且最接近单位圆的N个根  
  34. [lamda,I]=sort(abs(abs(a2)-1));                            %挑选出最接近单位圆的N个根  
  35. f=a2(I(1:K));                                                    %计算信号到达方向角  
  36. source_doa=[asin(angle(f(1))/pi)*180/pi asin(angle(f(2))/pi)*180/pi];  
  37. source_doa=sort(source_doa);  
  38. disp('source_doa');  
  39. disp(source_doa);  
  40. %%%%%%%第二种方法%%%%%%%%%  
  41. % [V,D]=eig(R);  
  42. % Un=V(:,1:M-K);                                               %(4.5.7)  
  43. % Un1=Un(1:M,:);  
  44. % Un2=Un(K+1:M,:);  
  45. % T=[1 0 0 0 0 0]';                                              %(阵元数-信源数)*1  
  46. % c=Un1*inv(Un2)*T;                                           % (K*(M-K))*((M-K)*(M-K))*((M-K)*1)=K*1  
  47. % c=[1,c(2,1),c(1,1)];                                          %(4.5.8)  
  48. % f=roots(c);                          
  49. % source_doa=[asin(angle(f(1))/pi)*180/pi asin(angle(f(2))/pi)*180/pi];  
  50. % source_doa=sort(source_doa);  
  51. % disp('source_doa');  
  52. % disp(source_doa);  
  53. rootMUSIC算法rootMUSIC算法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章