image thumbnail

Capon-Like Algorithm for NarrowBand Direction of Arrival Estimation.

by

 

Computing the Angles of Arrival of Narrow-band sources using Capon-Like algorithm(2011).

Capon_like_Estimator.m
function  [Y]=Capon_like_Estimator(N,P,L,Aoa,Pw,Fc,Snr)


% Usage :
% Implementation of the CAPON Like Direction of Arrival Estimation for
% Narrowband Signals using Uniform Linear Array whose elements are
% separated with half wavelength, described in the following paper :
%  _______________________________________________________________________
% | Rahmat Sanudin, Nurul H. Noordin, Ahmed O. El-Rayis, Nakul Haridas,    |
% | Ahmet T. Erdogan and Tughrul Arslan :                                  |
% | "Capon-Like DOA Estimation Algorithm for Directional Antenna Arrays "  |
% | 2011 Loughborough Antennas & Propagation Conference                    |
% | 14-15 November 2011, Loughborough, UK                                  |
%  _______________________________________________________________________ |
%
% Inputs :
%
%  N   :  Number of elements in ULA.
%  P   :  Number of radiating sources .
%  L   :  Number of snapshots .
%  AOA :  Angles of arrivals in degree .
%  Pw  :  Powers of the incoming signals .
%  Fc  :  Carrier frequency .
%  SNR :  Signal to noise Ratio .
%
%  (c)    KHMOU Youssef,  Applied Mathematics 2013 .



% Data generation=========================================

c=3e+8; % speed of light .
lambda=c/Fc;
d=lambda/2;
S_x=(0:N-1)*d;
b=pi/180;
sigma=(10^(-Snr/20));
noise=(sigma/sqrt(2))*(randn(N,L)+j*randn(N,L));
sig=(randn(P,L)+j*randn(P,L))/sqrt(2);
A=exp(-j*2*pi*S_x'*sin(Aoa*b)/lambda);
Y=A*diag(sqrt(Pw))*sig;
X=Y+noise;
R=X*(X')/L;
R1=inv(R);
%  Forward Backward averaging  :  not used in this function:
%  R=0.5*(R+fliplr(eye(N))*conj(R)*fliplr(eye(N)));

%Vectors initialization
theta=(-90:0.1:90)*b;
Y=zeros(1,length(theta));

for t=1:length(theta)
    Alf=exp(-j*2*pi/lambda*S_x'*sin(theta(t)));
    Y(t)=(Alf'*Alf)./abs(Alf'*R1*Alf);
end

h=(-90:0.1:90); %  Scanning angles 


figure,plot(h,10*log10(Y),'r');
xlabel('Angle in ()','fontsize',10)
ylabel('Capon like operator (dB) ','fontsize',10)
title('Capon Like DOA  Estimator')
grid on
%set(gca,'GridLineStyle','-');







Contact us