r × M matrices and S is q × M: Problem definition “The target is to estimate the DOA’s θ1, θ2, θ3, θ4 …θq of the sources from the M snapshot of the array x(t1)… x(tM). In other words what we are interested in is estimating the DOA’s of emitter signals impinging on receiving array, when given a finite data set {x(t)} observed over t=1, 2 … M. This will be done basically by using the second-order statistics of data” In order to solve this problem (to guarantee that there is a valid solution) do we have to add conditions or assumptions on the operational environment and\or the used model? Since there are many parameters used to specify the system like the number of sources, the number of array elements ...etc. are there conditions that should be met first? Toward this goal we want to make the following assumptions: The number of signals is known and is smaller than the number of sensors, . The set of any q steering vectors is linearly independent. Isotropic and non-dispersive medium – Uniform propagation in all directions. Zero mean white noise and signal, uncorrelated. Far-Field. a. Radius of propagation >> size of array. b. Plane wave propagation. Throughout this survey, it will be assumed that the number of underlying signals, q, in the observed process is considered known. There are, however, good and consistent techniques for estimating this value even if it is not known. Estimation techniques In general, parameters estimation techniques can be classified into: spectral based and parametric based methods. In the former, one forms some spectrum-like function of the parameter(s) of interest. The locations of the highest (separated) peaks of the function in question are recorded as the DOA estimates. Parametric techniques, on the other hand, require a simultaneous search for all parameters of interest. The basic advantage of using the parametric approach comparing to the spectral based approach is the accuracy, albeit at the expense of an increased computational complexity. Spectral–based solutions Spectral based algorithmic solutions can be further classified into beamforming techniques and subspace-based techniques. Beamforming technique The first method used to specify and automatically localize the signal sources using antenna arrays was the beamforming technique. The idea behind beamforming is very simple: steer the array in one direction at a time and measure the output power. The steering locations where we have the maximum power yield the