2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Модель пеленгатора (ESPRIT-UCA алгоритм) в Matlab
Сообщение05.12.2012, 13:35 
Аватара пользователя
Добрый день есть задачка промоделировать приведенный алгоритм пеленгации, для случая круговой антенной решетки.
Реализовал модель, взяв за основу http://soar.wichita.edu/xmlui/bitstream/handle/10057/1516/t07081.pdf?sequence=1 эту статью.

Код:
clear all;clc;

DOAs=[5 50 110]*pi/180;               %DOA’s of signals in radian


M=28;                                 %Number of array elements
q=1;                                  %Number of data samples
r=1;                                  %radius = wavelength   
p=length(DOAs);                       %Number of signals
h=M/2-1;

   for i =1:p
   A(:,i)=exp(-1j*2*pi*r*cos(DOAs(i)-2*pi*(0:M-1)/M));                     %steering
   end

sig=round(rand(p,q))*2-1;                                                                                     
noise=sqrt(1/2)*(randn(M,q)+1i*randn(M,q));

X=A*sig+noise;                                           

for i=-h:h
    for n=0:M-1
        F(i+h+1,n+1)=exp((1j*2*pi/M)*n*i);   
    end
end

k=-h:h;
J=diag(1./(sqrt(M).*1j.^(k).*besseli(k,2*pi))); 
T=J*F;

X_T=T*X;

   
     for i=1:h+1
     Xtop(i,:)=X_T(h+2-i:end-i+1);
     end
   
     Xtop_cov=Xtop*Xtop';
     
     [U S V]=svd(Xtop_cov);
     Ush=U(:,1:p);
     Vsh=V(:,1:p);
     Ssh=S(1:p,1:p);
     
     Q=Ush*Ssh*Vsh';
     Q1=Q(1:h,:);
     Q2=Q(2:h+1,:);
     P=pinv(Q1)*Q2;
     
     [Vect D]= eig(P);
     
     [D,Ind]=sort(diag(D),1,'descend');  %Сортировка собственных чисел
 
     Y1=angle(D(1))*180/pi
     Y2=angle(D(2))*180/pi
     Y3=angle(D(3))*180/pi
   


Все сделано по методе, а углы правильно не определяются,да и изменяются в зависимости от того какой сигнал на входе.

Кто-нибудь имел опыт моделирования такой системы?Можете объяснить где я допустил ошибку?

заранее извиняюсь если написал не в тот раздел.

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group