Добрый день есть задачка промоделировать приведенный алгоритм пеленгации, для случая круговой антенной решетки.
Реализовал модель, взяв за основу
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
Все сделано по методе, а углы правильно не определяются,да и изменяются в зависимости от того какой сигнал на входе.
Кто-нибудь имел опыт моделирования такой системы?Можете объяснить где я допустил ошибку?
заранее извиняюсь если написал не в тот раздел.