Professional Documents
Culture Documents
GEOMETRY
BACHELOR OF ENGINEERING
Electronics and Communication Engineering
By
BACHELOR OF ENGINEERING
of the
Osmania University
Hyderabad, Andhra Pradesh
By
MOHAMMED ISMAIL 04-07-4044
MOHAMMED LAEEQ AKBAR 04-07-4042
SYED MOHAMMED MEHDI 04-07-4056
ACKNOWLEDGEMENT
Firstly, we would like to express our deepest sense of gratitude to Associate Professor
Mrs Ayesha Naaz for giving us the opportunity to work on this project. She was always there
to provide the insightful thinking needed for completion of the Project. She has been a
constant source of inspiration and guidance. We are also greatly indebted to MJCET ECED
for allowing us to complete our project in the labs. It has really been an enriching experience
for us. We would like to thank Mrs Ayesha Naaz for the innumerable discussions we had
with her during course of project.
We would also like to thank Dr Kaleem Fatima and Dr C. Rangaiah for their constant
support and help, without the help form them our project would have taken us much longer
than the final four months from start to finish. We are also indebted to the lab incharge Mr
M.A. Majeed Zubair sir for his constant cooperation and help he has provided.
We would once again like to thank Mrs Ayesha Naaz as she is not only expert in
signal processing, but also gave us engineering insight into the detailed engineering level of
our design. The really cool thing is that we took the basic data of ULA and continued it up to
the final 3D geometry and it matched up. This is some of the stuff engineers dream of. Mrs
Ayesha Naaz, as far as we are concerned, is the best signal processing engineer we have
worked with. we would recommend her to anyone.
Thanks are also due to our Lab mates for making our stay there a memorable one.
They were real fun to work with.
Finally I offer my heartiest gratitude to my family members for their selfless
blessings.
CONTENTS
Abstract i
List of figures ii
List of Symbols iii
List of abbreviation iv
1. Introduction 1
5.1 Introduction 31
5.2 Geometrical Representation 31
5.3 Cubical Array Geometry 32
5.4 Data Generation for Cubical Array 33
5.5 Steering vector 34
5.5.1 Steering Vector for Cubical Array Geometry 34
5.5.2 Steering Vector for Pyramidal Array Geometry 35
5.5.3 Steering Vector for Tetrahedral Array Geometry 36
5.6 Properties of 3 Dimensional Sensor Array System 37
5.6.1 East West Ambiguity 37
5.6.2 North South Ambiguity 38
6. Matlab
6.1 Introduction 39
6.2 Matlab Windows 40
6.3 M-files 40
6.4 Matlab Commands 41
6.4.1 General-Purpose Commands 41
6.4.2 Managing the Workspace 41
6.4.3 Elementary Math Functions 41
6.4.4 Rounding and Remainder 42
6.4.5 Commands Useful in Plotting 43
6.4.6 Data Analysis Commands 43
6.4.7 Matrices Commands 44
6.4.8 SVD - Singular Value Decomposition 44
6.4.9 Operators 45
6.4.10 Loops 46
7. Simulation Results
8.1 Conclusions 63
9. Refrences 64
APPENDIX
Programs 65
ABSTRACT
Direction finding denotes the direction from which usually a propagating wave
arrives at a point, where usually a set of sensors are located. Direction finding cannot be
implemented using a single sensor. To accomplish this task we need an array of sensors. The
processing of signal received by an array of sensors is known as array signal processing
Array signal processing deals with the processing of signals received by an array of
sensors placed at different points in a field of interest which may be an electromagnetic field.
A sensor array is used to measure the wave field and extract information about the sources,
the medium and the properties of the sources. It has varied fields of applications, such as
Tomography, Seismology, Sonar, Radar communication, Medical diagnosis etc.
MUSIC algorithm is used to estimate the number and directions of arrival (DOA) of
the sources. The algorithm uses the orthogonal property for the estimation of direction of
arrival. It performs the Eigen value decomposition of the sample covariance matrix of
received signal at array of sensors.
List of Figures
List of Abbreviation
List of Symbols
Φ elevation angle
CHAPTER 1
INTRODUCTION
Array signal processing is a part of signal processing that uses sensors that are
organized in patterns, or arrays, to detect signals and to determine information about them.
An array of sensors is used to receive a propagating wave field with the following objectives:
1) To localize a source.
2) To receive a message from a distant source.
3) To image a medium through which the wave field is propagating.
An array of sensors is often used in many diverse fields of science and engineering,
particularly where the goal is study the propagating wave fields. Various fields of application
of array signal processing are tomography, seismology, sonar, radar, communication, medical
diagnosis etc.
The most common application of array signal processing involve estimating direction of
arrival (DOA), which our project investigates In signal processing, direction of arrival
denotes the direction from which usually a propagating wave arrives at a point, where usually
a set of sensors are located.
We aim merely to demonstrate the potential that array geometries have in estimating
direction of arrival(DOA).
There are various DOA estimation algorithm available of which we are using MUSIC
algorithm. MUSIC is used to describe the experimental and theoretical techniques involved in
the determining the parameters of multiple wave fronts arriving at an sensor array from
measurements made on the signals received at the array. MUSIC algorithm uses the
orthogonal relation between signal subspace and noise subspace for estimating the direction
of arrival of the signal. MUSIC performs the Eigen-decomposition of the covariance matrix
of received signal at the sensor array .
There are basically three types of array geometries that is one dimensional, two
dimensional and three dimensional. Our project uses a simple but fundamental design. We
created a eight element uniform linear array, or (ULA), four element square, three element
triangle, six element circle in order to determine the direction of the source. Because the
ULA is one dimensional and square, triangle, circle are two dimensional there is a surface of
ambiguity on which it is unable to determine information about signals. For example, it
suffers from 'front-back ambiguity,' meaning that signals incident from 'mirror locations' at
equal angles on the front and back sides of the array are undistinguishable.
The limitations of the ULA and two dimensional arrays create problems for locating
acoustic sources with much accuracy. The array's design is highly extensible, however, and it
is an important building block for more complex three dimensional arrays such as a pyramid,
cube, cylinder, cone which uses multiple linear arrays, or more exotic shapes such as circle.
Therefore we created four element tetrahedron, five element pyramid and eight element cube
and applied MUSIC algorithm for DOA estimation.
We know that there is a one-to-one relationship between the direction of a signal and
the associated received steering vector. It should therefore be possible to invert the
relationship and estimate the direction of a signal from the received signals. An antenna array
therefore should be able to provide for direction of arrival estimation.
In practice, the estimation is made difficult by the fact that there are usually an
unknown number of signals impinging on the array simultaneously, each from unknown
directions and with unknown amplitudes. Also, the received signals are always corrupted by
noise. Nevertheless, there are several methods to estimate the number of signals and their
directions. Figure 2 shows some of these several spectral estimation techniques.
2.3.1 Principle
MUSIC, as are many DOA estimation methods are based on the sub-space concept
and require the Eigen-decomposition of the input correlation matrix.
These methods rely on the following properties of the array correlation matrix:
1. The space spanned by its eigenvectors may be partitioned in two subspaces, namely
the signal subspace and the noise subspace.
2. The steering vectors corresponding to the directional sources are orthogonal to the
noise subspace. As the noise subspace is orthogonal to the signal subspace, these
steering vectors are contained in the signal subspace. Hence multiplication of steering
vector with noise subspace results in minimum value.
If there are D signals incident onto the the array the received input data vector at an M
element array can be expressed as a linear combination of the D incident waveforms and
noises.
Fig 2.3: Antenna array
If r(t) is the array element received signal, s(t) is the source signal, n(t) is additive noise,
the first array element is taken as reference array element, then the kth array element
received signal is
(t) = + (t)
(2.1)
r(t) =
(2.3)
where:
A is the matrix of steering vectors
A =
(2.4)
and
of variance .
The received vectors and the steering vectors can be visualized as vectors in an M
dimensional vector space.
It is assumed that the signals are uncorrelated zero-mean random processes that are
independent of the additive sensor noises, which are assumed to be zero-mean stationary
random processes independent from sensor to sensor. Then the covariance matrix of the array
signal vector will be
R = E[ r(t)
(2.6)
R = A S
(2.7)
S = E[ s(t)
(2.8)
MUSIC requires S be nonsingular, though even that assumption can be relaxed for certain
geometries especially the linear uniform array.
Let and
denote the eigenvalues of R and A S respectively. From the
structure of given by (2.7), these two sets of eigenvalues are related by
(2.9)
Assuming that the matrix A is of full column rank, which is generically the case, it follows
that the rank of A S is D, implying that the M - D smallest eigenvalues of A S
are equal to zero. Thus
= 0
(2.10)
=
(2.11)
= [
(2.12)
= [
(2.13)
By searching through all possible array steering vectors to find those which are
orthogonal to the space spanned by the noise Eigen vectors the
DOAs can be determined.
incoming signal. In practice, a( will not be precisely orthogonal to the noise subspace
due to errors in estimating . However the function
(2.14)
is conjugate transpose of
Will assume a very large value when is equal to the DOA of one of the signals.
The above function is known as the multiple signal classification (MUSIC) “spectrum”. The
MUSIC algorithm, proposed by Schimdt, first estimates a basis for the noise subspace
and then determines peaks; the associated angles provide the DOA estimates.
Figure 2.4 Applying MUSIC algorithm on antenna array signals. is the angle of arrival
and there are M elements in the array.
1. The algorithm has good performance and can be used with a variety of array geometries.
3. It can be used to estimate multiple parameters (Azimuth, Elevation, range etc.,) per source.
4. The performance of this algorithm improves when SNR and / or the number of snapshots
(i.e., the total information content) is increased above a particular threshold.
5. This algorithm encounters difficulties in presence of fully correlated sources (i.e., Multi path
propagation) and is computationally expensive because it involves a search over the function
for the peaks. Spatial smoothing can be introduced to overcome this problem.
In fact, spatial smoothing is essential in a multipath propagation environment . To perform
spatial smoothing, the array must be divided up into smaller, possibly overlapping subarrays
and the spatial covariance matrix of each subarray is averaged to form a single, spatially
smoothed covariance matrix. The MUSIC algorithm is then applied on the spatially smoothed
matrix.
3.1 Introduction
Array of sensors is sensors that are organized in various geometries or pattern to
detect the source signal and determine the direction of arrival(DOA) of source signal.
In this chapter we shall study the basic structure of a sensor array system that is
uniform linear array(ULA) and in the sequel learn how direction of arrival(DOA) is estimated
by MUSIC algorithm on Uniform Linear array. Finally, some drawbacks of Uniform Linear
array are pointed out.
One of the most commonly used array geometries is uniform linear array (ULA).
Many practical sensor array systems can be studied in terms of basic ULA systems. The
sensor elements are placed in the horizontal plane with equal spacing between them as shown
in the figure 3.1.
A plane wave front having temporal waveform is incident on a uniform linear array of
sensors at an angle θ. This angle of incidence is known as direction of arrival (DOA). The
DOA θ is always measured with respect to the normal to the array aperture and another
related quantity elevation φ measured with respect to X-axis is independent of array
orientation is assumed to be in the array plane.
Figure 3.1 uniform linear array
3.3 Assumptions
1. The signals emitted from the sources are narrow band random process all with the same
frequency and stationary stochastic signal s (t).
2. The D radiating sources are located in far fields of the array. This enables us to model the
waves impinging on the array as plane waves.
3. The array and the sources are confined to a plane. This enables us to associate each
source with a single angle θ for the kth source, thus the direction of arrival of plane waves
with respect to some reference point.
4. All the sensors are identical and are all omni-directional with gain of 1.
5. The medium through which the wave propagates is assumed to be homogenous.
Angle of elevation is the angle between the horizontal and the line of sight to an
object above the horizontal.
Then the steering vector is an Nx1 complex vector representing the relative phases at each
antenna, and is given by
The steering vector is written as a(θ) to make explicit that it depends on the frequency and
propagation direction (which determine θ) of the plane wave.
First we assume that the signal arrival angles are known and the data vector is
generated. A snapshot is a vector representing the outputs of all the sensors taken at the same
instant t. let
r(t) =
where (t), (t),…………………………………… (t) stands for the sensor
output at time t.
Now for uniform Linear array with omnidirectional sensors, the directional vector is given as
a( =
where
A is the matrix of steering vectors
A=
of variance .
The covariance matrix is calculated is the expectation of the data vector obtained from
the output of sensors.
R = E[r(t).
The plot of the gives the signal arrival angle and elevation. The plot is
in the 3-dimensional graphical representation, which shows the peaks at the respective signal
direction of arrival.
3.7 Drawbacks of uniform linear array
c) When there are coherent signals present in the array subspace then the MUSIC
algorithm fails to determine the number of arrivals.
d) All the sensor elements are assumed as identical but they elements of same property
are not available.
The steering vector which satisfies the following properties are a*(θ) = a(-θ), implies that
wave front coming from east and another coming symmetrically opposite from the west can
be distinguished only if the signal is complex.
Two different signals coming from symmetrically opposite directions east and west
cannot be distinguished. Figure 3.2 shows two signals coming at directions θ and π-θ. Under
this condition simulated result gives the magnitude of any one signal at both the angles θ and
π-θ.
In east west ambiguity the simulated result repeats after 90 degrees. If a signal is incident on
the array at an angle θ then we get peaks at an angle θ and π-θ.
4.1 Introduction
A 2 dimensional sensor array for the estimation of direction of arrival (DOA) posses
several nice properties as compared to those of linear array. This is the extension of the linear
array system. As the name indicates the sensor array elements are placed in the planar
dimension. The most commonly used 2 dimensional sensor array geometry are uniform
circular array, square and triangular array. This belongs to the non-uniform linear planar
arrays. The reasons for considering the non-uniform linear arrays are,
a. Redundant sensors are removed and employed to increase the array aperture
b. Certain sensors in a long ULA may fail as a result of factors beyond our control.
c. Array spacing is intentionally made non-uniform in order to derive certain benefits
such as the effect of aliasing is reduced if the periodicity of ULA is destroyed.
There are many multiplications in employing the circular array processing. The effect
of aliasing is reduced since the periodicity of the circular array is 2π and independent of
sensor spacing. The east west ambiguity, the wave front coming from the east is distinguished
from the one coming from the west, is solved.
Figure 4.1 Planar array geometry are shown above. The square or rectangular is natural
extension of ULA and other geometries are sparse version of square or rectangular array
forming circular array. Consider a circular array of radius with M sensors, symmetrically
placed on circumference as shown below.
Let a plane wave front be incident on the array at angle . Then the
directional vector can be defined with the a where k is the kth arrival of the
signal in the space.
( ) = exp (-j
Where m= 1,2,…………M.
A = [ a1( )………………………………………….am( )]
r(t) = [ ]
While the directional vector differs from the linear array, the circular one is the
extension of the rectangular coordinates to cylindrical coordinates. The directional vector is
two-parameters model having the angle and azimuth.
A = [ a1(
Then the output of the sensors elements is the data vector given by consists of the
noise power terms also that are genera; in the system or present at the signals.
The covariance matrix is calculated is the expectation of the data vector obtained from
the output of sensors.
R=E[ (t) ]
The noise subspace and the signal subspace are determined by finding the number of
signals present by the Minimum Description Length criteria. Then the noise subspace is
separated.
Now the implementation of MUSIC on the noise vector gives the required arrival
directions and the azimuth of the signals. The steering vector of the UCA differs and the
mode of the steering in ULA, it searches the space up to 360 degrees in the azimuth or the
planar surface.
The plot of the gives the signal arrival angle and elevation. The plot is
in the 3-dimensional graphical representation, which shows the peaks at the respective signal
dimensions.
Steering vector for uniform square array is derived by taking the first element as (0,
0). The next element to the right of reference is taken as (cos(θ), 0). The element above the
reference is taken as (0, sin(θ)). Then the last element left is (cos(θ), sin(θ)).
Figure 4.3Uniform square array with four elements with inter sensor spacing of λ
Figure 4.4 Uniform square array with four elements with inter sensor spacing of 2λ
By examining the direction vectors for the linear array we note that
since the direction vectors a( ) are unique for all π there is no ambiguity.
A wave front from any direction can uniquely be determined.
a (θ) =a (π+θ),
which implies that wave front coming from the north and another coming
symmetrically opposite from the south cannot be distinguished
Due to this simulated result gives the magnitude of any one signal at both the angles θ
and π+θ. In north south ambiguity the simulated result repeats after 180 degrees. If a signal is
incident on the array at an angle θ then we get peaks at an angle θ and π+θ.
Using planar array east west ambiguity is removed but north south ambiguity still
remains. The output repeats itself after 180 degrees.
CHAPTER 5
5.1 Introduction
A 3 dimensional sensor array for the estimation of direction of arrival (DOA) posses
several nice properties as compared to those of linear and 2 dimensional array. This is the
extension of what is done in the previous chapters the linear array and 2 dimensional array
system. As the name indicates the sensor array elements are placed on the vertices of the
three dimensional structure. The most commonly used 3 dimensional sensor array geometry
are pyramidal array with base either square or triangular and cubical array.
There are many multiplications in employing the 3 dimensional array processing. The
effect of aliasing is reduced since random geometry is used. The east west ambiguity, the
wave front coming from the east is distinguished from the one coming from the west, is
solved. The north south ambiguity, the wave front coming from the north is distinguished
from the one coming from the south, is solved.
5.2 Geometrical representation
3 dimensional array has its sensors distributed over the three dimensional space.
When a wave front has two unknown parameters azimuth and elevation, we need a planar
array for the estimation of pair of parameters. By using a planar array the two parameters are
estimated but the coverage area is reduced due to north south ambiguity. Many possible
geometry can be derived, such as tetrahedron, pyramid, cube, sphere etc.
Figure 5.1 figure shows 3 dimensional array geometries. The sensors are placed on the
edges of the structure.
Now we take the cubical array geometry as an extension of square array implemented
in planar array. The sensors may be placed on the edges of the cube. For a fixed intersensor
distance λ along the sides.
Figure5..2 cubical array
Consider a Cubical array geometry with M sensors and D be the number of signals
incident. Let a plane wave front be incident on the array at angle
The method of generating the data vector in 3 dimensional array is the same process
used to generate the data vector in the ULA. The output of the sensor elements at different
snapshots is given by
r(t) = [ ]
Then the output of the sensors elements is the data vector given by consists of the
noise power terms also that are genera; in the system or present at the signals.
The covariance matrix is calculated is the expectation of the data vector obtained from
the output of sensors.
R=E[ (t) ]
The plot of the gives the signal arrival angle and elevation. The plot is
in the 3-dimensional graphical representation, which shows the peaks at the respective signal
dimensions.
Steering vector for uniform square array is derived from the basic square geometry by
taking the first element as (0, 0, 0). The next element to the right of reference is taken as
(cos(θ), 0,0). The element above the reference is taken as (0, sin(θ),0). Then the last element
left is (cos(θ), sin(θ),0). The third coordinate is taken as tangent multiplied by the distance
moved in the z axis. Here the multiplication factor is taken as one. So the next element above
the refrence is (0, 0, tan(θ)). Similarly the other elements are calculated.
Figure 5.3 cubical array with eight elements with inter sensor spacing of λ
Steering vector for uniform square array is given by
Figure 5.4 pyramid array with 5 elements with inter sensor spacing of λ
A=
By examining the direction vectors for the linear array we note that
dimensional array, since the direction vectors a( ) are unique for all
there is no ambiguity. A wave front from any direction can uniquely be determined.
array, since the direction vectors a(θ) are unique for all there is no
ambiguity. A wave front from any direction can uniquely be determined
CHAPTER 6
Matlab
6.1 Introduction
Matlab is a product of The Math Works, Inc. It is an outstanding software package for
scientific and engineering computations. Matlab enables us to solve many advanced
numerical problems fast and efficiently. It provides an interactive environment with hundreds
of built-in functions for technical computation, graphics, animation.
Matlab is a high-level language whose basic data type is a matrix that does not require
dimensioning. It has a large collection of toolboxes in a variety of domains. Some examples
of Matlab toolboxes are control system, signal processing, image processing, and system
identification. The toolboxes consist of functions that can be used to perform computations in
a specific domain.
Matlab has many advantages compared to conventional computer languages for
solvimg technical problems. Matlab is an interactive system whose basic data type is a matrix
that does not require dimensioning. The software package has been commercially available
since 1984 and is now considered as a standard tool at most universities and industries
worldwide.
1. Command window:
This is the main window. It is characterized by Matlab command prompt’>>’.
All commands, including those for running user-written programs, are typed in this
window at the Matlab prompt.
2. Graphics Window:
The output of all graphics commands typed are flushed into the graphics or
figure window.
3. Edit Window:
This is a place to create, write, edit and save programs in files called M-files.
Any text editor can be used to carry out these tasks.
6.3 M-files
MATLAB can execute a sequence of statements stored in diskfiles. Such files are
called “M-files” because they must have the file type of “.m” as the last part of their filename.
Much of your work with MATLAB will be in creating and refining M-files. M-files are
usually created using your local editor.
General information
Trignometric
Sin - sine
Sinh - hyperbolic sine
Asin - inverse sin
Asinh - inverse hyperbolic sine
Cos - cosine
Cosh - hyperbolic cosine
Aos - inverse cosine
Aosh - inverse hyperbolic cosi
Tan - tangent
Tanh - hyperbolic tangent
sec - secant
sech - hyperbolic secant
csc - cosecant
cot - cotangent
coth - hyperbolic cotangent
Exponential
Exp - exponential
Log - natural logarithm
Sqrt - square root
Complex
Syntax
s = svd(X)
[U,S,V] = svd(X)
Description
Examples
the statement
[U,S,V] = svd(X)
Produces
U =
-0.1525 -0.8226 -0.3945 -0.3800
-0.3499 -0.4214 0.2428 0.8007
-0.5474 -0.0201 0.6979 -0.4614
-0.7448 0.3812 -0.5462 0.0407
S =
14.2691 0
0 0.6268
0 0
0 0
V =
-0.6414 0.7672
-0.7672 -0.6414
6.4.9 Operators
+ Addition
+ Unary plus
- Subtraction
- Unary minus
* Matrix multiplication
^ Matrix power
\ Backslash or left matrix divide
/ Slash or right matrix divide
' Transpose
.' Nonconjugated transpose
.* Array multiplication (element-wise)
.^ Array power(element-wise)
.\ Left array divide (element-wise)
./ Right array divide (element-wise)
6.4.10 loops
The if statement evaluates a logical statements when the expression is true. The
optional elseif and else keywords provide for the execution of alternate groups of statements.
An end keyword, which matches the if, terminates the last group of statements. The groups of
statements are delineated by the four keywords—no braces or brackets are involved.
Example:
if A > B
'greater'
elseif A < B
'less'
elseif A == B
'equal'
else
error('Unexpected situation')
end
for
The for loop repeats a group of statements a fixed, predetermined number of times. A
matching end delineates the statements:
Example:
The statements
for i = 1:m
for j = 1:n
H(i,j) = 1/(i+j);
end
end
will produce and print to the screen the m-by-n hilbert matrix. The semicolon on the inner
statement is essential to suppress printing of unwanted intermediate results while the last H
displays the final result.
While
The general form of a while loop is
while relation
statements
end
The statements will be repeatedly executed as long as the relation remains true. For example,
for a given number a, the following will compute and display the smallest nonnegative
integer n such that 2n ≥ a:
n = 0;
while 2 n < a
n = n + 1;
end
n
CHAPTER 7
The uniform linear array efficiently estimates the DOAs when the required coverage
area is only upto 90 . The results of estimation of DOAs are shown in the fig.7.1 a & b where
the peaks in the graph represent the DOA of signal. An array of length 8 elements is taken
with three arrival angles; the plot shows the signals are at angles 10 , 20 and 30 with 0.5λ
distance of separation between the array elements.
In the second group of simulation the DOAs are estimated for planar array geometry
where the sensors are placed in the plane to form 6 element circular array, 4 element square
array and 3 element triangular array. The results of estimation of DOAs using planar array are
shown in figure 7.2 to figure 7.5.
The next step is DOA estimation using 3 D array geometry is shown in figures 7.6 to
7.8. An array of size 5 is taken and the simulation is carried out with 4096 snapshots. The
plot shows the arrival angles at azimuth and elevation of 10 the second source at
angle of 20 azimuth and elevation of and third source at 30 azimuth and elevation
of respectively.
The main achievements which are obtained using different array geometries are
East west ambiguity is the ambiguity that arises when the signal coming from east and
other coming from west cannot be distinguished. In linear array a( )=a( ) exists, so
the two fronts coming from two directions cannot be distinguished. A linear array of 8
elements is used to estimate the DOAs with true DOAs at10 , and 30 The
parameter of the spectrum shown in the fig 7.1b where we note that in addition to peaks at 10
and 30 there are three more peaks at 150 160 and 170 .
For the circular array the direction vectors are unique there is no ambiguity. Therefore by
using the circular array the east west ambiguity that arises in linear array is solved since the
sensor elements are placed in angular position. A circular array with of radius equal to
shows no such ambiguity as shown in the fig.7.3 a, b and c.
North south ambiguity arises when the signal coming from north and signal coming
from symmetrical south direction cannot be distinguished. By using the circular array the
east west ambiguity that arises in linear array is solved but north south ambiguity still exist as
shown in fig 7.4 a to c since the sensor elements are placed in angular position. In linear array
a( )=a( ) exists, so the two fronts coming from two directions cannot be
distinguished. But for the circular array the direction vector satisfies the condition a(θ)=a (
and 30 The parameter of the spectrum shown in the fig 7.2 shows there is no
east west ambiguity but from fig 7.3 a we note that in addition to peaks at 10
and 30 there are three more peaks at 190 200 and 210 for azimuth and from fig 7.3 b
we can note that in addition to peaks at 10 and 80 for elevation angle there are
7.2 Simulation results for Uniform linear array with six elements
Figure 7.1a The peaks shows the signals present at 10, 20, 30 degrees azimuth by ULA
Figure 7.1b The peaks shows the signals present at 10, 20, 30150, 160, 170 degrees azimuth by
ULA. The figure clearly shows the present east west ambiguity.
7.3 Simulation results for Uniform circular with six elements
Figure 7.2 a The peaks shows the signals present at 10, 20, 30 degrees azimuth by UCA
Figure 7.2 b The peaks shows the signals present at 10, 40, 80 degrees elevation by UCA
Figure 7.2 c The peaks shows the signals present at 10, 20, 30 degrees azimuth and 10,40,80
elevation by UCA
Figure 7.3 a The peaks shows the signals present at 10, 20, 30,190,200,210 degrees azimuth by
UCA. This shows the north south ambiguity in UCA
Figure 7.3 b The peaks shows the signals present at 10, 40, 80,280,320,350 degrees elevation, 20,
30,190,200,210 degrees azimuth by UCA. This shows the north south ambiguity in UCA
Figure 7.4 b The peaks shows the signals present at 40, 80 degrees elevation by triangular array
Figure 7.4 c The peaks shows the signals present at 10, 60, 190,240 degrees elevation, 40, 80
degrees azimuth by triangular array. This shows the north south ambiguity in triangular array.
Figure 7.5 a The peaks shows the signals present at 10, 20, 30, 190, 200, 210 degrees azimuth by
Uniform square array. This shows the north south ambiguity.
Figure 7.5 b The peaks shows the signals present at 10, 40, 80 degrees elevation by square array
Figure 7.5 c The peaks shows the signals present at 10, 40, 80,280,320,350 degrees elevation, 20,
30,190,200,210 degrees azimuth by square array. This shows the north south ambiguity present in
uniform square array
7.6 Simulation results for cubical array geometry
Figure 7.6 a The peaks shows the signals present at 10, 20,30, degrees azimuth by cubical array.
This shows there is no north south ambiguity.
Figure 7.6 b The peaks shows the signals present at 10, 40,80, degrees azimuth by cubical array.
Figure 7.6 c The peaks shows the signals present at 10, 40,80 and 280, 320, 350 degrees elevation
by cubical array. This is not regarded as error because elevation is measured upto 180 0
Figure 7.6 d The peaks shows the signals present at 10, 40, 80 degrees elevation, 20, 30,80 degrees
azimuth by cubical array. This shows there is no ambiguity present. The repetition is because of
elevation.
Figure 7.7 a The peaks shows the signals present at 10, 20, 30 azimuth by pyramidal array of 5
elements, the fig shows there is no east west and north south ambiguity present
Figure 7.7 b The peaks shows the signals present at 10, 40, 80 elevation by pyramid array of 5
elements
Figure 7.7 c The peaks shows the signals present at 10, 40, 80 and 280, 320, 350 degrees elevation
by square pyramid array. This is not regarded as error because elevation is measured up to 180 0
Figure 7.7 d The peaks shows the signals present at 10, 40, 80 degrees elevation, 20, 30,80 degrees
azimuth by square pyramid. This shows there is no ambiguity present. The repetition is because of
elevation.
7.8 Simulation results for tetrahedral array
Figure 7.8 a The peaks shows the signals present at 10, 20, 30 azimuth by pyramidal array of 5
elements, the fig shows there no east west and north south ambiguity present
Figure 7.8 b The peaks shows the signals present at 10, 40,80 and 280, 320, 350 degrees elevation
by tetrahedral array. This is not regarded as error because elevation is measured up to 180 0
Figure 7.7 d The peaks shows the signals present at 10, 40, 80 degrees elevation, 20, 30,80 degrees
azimuth by tetrahedron. This shows there is no ambiguity present. The repetition is because of
elevation.
CHAPTER 8
By using ULA, MUSIC provides only the basic idea about the direction of arrival and
efficient only under suitable conditions. ULA suffers from East West and North South
ambiguity.
The MUSIC is efficient algorithm for the estimation of the DOA. The future scope
lies in the implementing the MUSIC on various array geometry in the presence of coherent
signals, where the DOA estimation is possible even in the presence of multi path propagation
REFRENCES
2. CHOI, Y.H: ‘Subspace –based coherent sources localization with forward and backward
covariance matrices’, IEEE proceeding on radar sonar and Navigation, vol-149, june 2002
3. USHA PADMINI,C. PRABHAKARNAIDU,S: ‘CIRCULAR ARRAY AND
STIMATION OF DIRECTION OF ARRIVAL OF A BROADBAND SOURCE’, signal
processing, vol-37, 1994
Books
PROGRAMS
clc;
clear all;
m=8; % Number of sensors
p=3; % Number of Arrivals
st1=10; % DOA1
st2=20; % DOA2
st3=30; % DOA3
st=[st1;st2;st3]; % DOA Matrix
nn=4096; %Number of Snapshots
% Noise Generation
noise=randn(m,nn)+j*randn(m,nn);
% Plotting Pmusic
sst=0:90;
figure(1);
plot(sst,Pmusic);
title('Linear array 8 element');
xlabel('azimuth');
ylabel('magnitude');
grid on;
clc;
clear all;
Pd=8000;
s1=1/1000*exp(j*pi/3*[0:Pd])';
s2=1/1000*exp(j*pi/4*[0:Pd])';
s3=1/1000*exp(j*pi/5*[0:Pd])';
m=6;
p=3;
st1=10;
dt1=10;
st2=20;
dt2=40;
st3=30;
dt3=80;
degrad=pi/180;
st=degrad*[st1;st2;st3];
dt=degrad*[dt1;dt2;dt3];
nn=4096;
SN1=40;
SN2=40;
SN3=40;
sn=[SN1;SN2;SN3];
tt=1:nn;
S=[s1(tt),s2(tt),s3(tt)].';
noise=randn(m,nn)+j*randn(m,nn);
Ps=S*S'/nn;
ps=diag(Ps);
refp=2*10.^(sn/10);
tmp=sqrt(refp./ps);
S2=diag(tmp)*S;
for t=1:p
A(:,t)=[1,exp(j*pi*((3^0.5)*0.5*cos(st(t))-
0.5*sin(st(t)))*cos(dt(t))),exp(j*pi*((3^0.5)*cos(st(t)))*cos(dt(t))),exp(j*pi*((3^0.5)*cos(st(t)
)+sin(st(t)))*cos(dt(t))),exp(j*pi*((3^0.5)*0.5*cos(st(t))
+1.5*sin(st(t)))*cos(dt(t))),exp(j*pi*(sin(st(t)))*cos(dt(t)))]';
end
X=A*S2+noise;
Rxx=X*X'/nn;
[U,s,v]=svd(Rxx);
Vs=U(:,1:p);
Vu=U(:,p+1:m);
for st1=0:180;
for dt1=0:180;
AA=[1,exp(j*pi*((3^0.5)*0.5*cos(st1*degrad)-
0.5*sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*((3^0.5)*cos(st1*degrad))*cos(dt1*degrad))
,exp(j*pi*((3^0.5)*cos(st1*degrad)
+sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*((3^0.5)*0.5*cos(st1*degrad)
+1.5*sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(sin(st1*degrad))*cos(dt1*degrad))]';
WW=AA'*Vu*Vu'*AA;
Pmusic1(st1+1,dt1+1)=abs(8./WW);
Pmusic2(dt1+1,st1+1)=abs(8./WW);
end
end
sst=0:180;
ddt=0:180;
figure(1);
mesh(sst,ddt,Pmusic1);
title('Uniform Circular array with 6 element');
xlabel('Elevation');
ylabel('azimuth');
zlabel('magnitude');
grid on;
figure(2);
plot(sst,Pmusic1);
title('Uniform Circular array with 6 element');
xlabel('azimuth');
ylabel('magnitude');
zlabel('Elevation');
grid on;
figure(3);
plot(ddt,Pmusic2);
title('Uniform Circular array with 6 element');
ylabel('magnitude');
zlabel('azimuth');
xlabel('Elevation');
grid on;
clc;
clear all;
Pd=8000;
s1=1/1000*exp(j*pi/3*[0:Pd])';
s2=1/1000*exp(j*pi/4*[0:Pd])';
s3=1/1000*exp(j*pi/5*[0:Pd])';
save sig3 s1 s2 s3;
m=4;
p=3;
st1=10;
dt1=10;
st2=20;
dt2=40;
st3=30;
dt3=80;
st=[st1;st2;st3];
dt=[dt1;dt2;dt3];
nn=4096;
SN1=100;
SN2=100;
SN3=100;
sn=[SN1;SN2;SN3];
degrad=pi/180;
load sig3
tt=1:nn;
S=[s1(tt),s2(tt),s3(tt)].';
noise=randn(m,nn)+j*randn(m,nn);
Ps=S*S'/nn;
ps=diag(Ps);
refp=2*10.^(sn/10);
tmp=sqrt(refp./ps);
S2=diag(tmp)*S;
A=zeros(m,p);
for t=1:p
A(:,t)=[1,exp(j*pi*cos(st(t)*degrad)*cos(dt(t)*degrad)),exp(j*pi*(cos(st(t)*degrad)
+sin(st(t)*degrad))*cos(dt(t)*degrad)),exp(j*pi*(sin(st(t)*degrad))*cos(dt(t)*degrad))]';
end
X=A*S2+noise;
Rxx=X*X'/nn;
[U,s,v]=svd(Rxx);
Vs=U(:,1:p);
Vu=U(:,p+1:m);
for st1=0:90
for dt1=0:90
AA=[1,exp(j*pi*cos(st1*degrad)*cos(dt1*degrad)),exp(j*pi*(cos(st1*degrad)
+sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(sin(st1*degrad))*cos(dt1*degrad))]';
WW=AA'*Vu*Vu'*AA;
Pmusic1(st1+1,dt1+1)=abs(8./WW);
Pmusic2(dt1+1,st1+1)=abs(8./WW);
end
end
sst=0:90;
ddt=0:90;
figure(1);
mesh(sst,ddt,Pmusic1);
title('square array 4 element');
ylabel('azimuth');
zlabel('magnitude');
xlabel('Elevation');
grid on;
figure(2);
plot(sst,Pmusic1);
title('square array 4 element');
xlabel('azimuth');
ylabel('magnitude');
zlabel('Elevation');
grid on;
figure(3);
plot(ddt,Pmusic2);
title('square array 4 element');
zlabel('azimuth');
ylabel('magnitude');
xlabel('Elevation');
grid on;
clc;
clear all;
Pd=8000;
s1=1/1000*exp(j*pi/3*[0:Pd])';
s2=1/1000*exp(j*pi/4*[0:Pd])';
s3=1/1000*exp(j*pi/5*[0:Pd])';
m=3;
p=2;
st1=10;
dt1=40;
st2=60;
dt2=80;
st=[st1;st2];
dt=[dt1;dt2];
nn=4096;
SN1=100;
SN2=100;
SN3=40;
sn=[SN1;SN2];
degrad=pi/180;
tt=1:nn;
S=[s1(tt),s2(tt)].';
noise=randn(m,nn)+j*randn(m,nn);
Ps=S*S'/nn;
ps=diag(Ps);
refp=2*10.^(sn/10);
tmp=sqrt(refp./ps);
S2=diag(tmp)*S;
for t=1:p
A(:,t)=[1,exp(j*pi*2*cos(st(t)*degrad)*cos(dt(t)*degrad)),exp(j*pi*(cos(st(t)*degrad)
+(3^0.5)*sin(st(t)*degrad))*cos(dt(t)*degrad))]';
end
X=A*S2+noise;
Rxx=X*X'/nn;
[U,s,v]=svd(Rxx);
Vs=U(:,1:p);
Vu=U(:,p+1:m);
for st1=0:90
for dt1=0:90
AA=[1,exp(j*pi*2*cos(st1*degrad)*cos(dt1*degrad)),exp(j*pi*(cos(st1*degrad)
+(3^0.5)*sin(st1*degrad))*cos(dt1*degrad))]';
WW=AA'*Vu*Vu'*AA;
Pmusic1(st1+1,dt1+1)=abs(8./WW);
Pmusic2(dt1+1,st1+1)=abs(8./WW);
end
end
sst=0:90;
ddt=0:90;
figure(1);
mesh(sst,ddt,Pmusic1);
title('Triangular array with 3 element');
ylabel('azimuth');
zlabel('magnitude');
xlabel('Elevation');
grid on;
figure(2);
plot(sst,Pmusic1);
title('Triangular array with 3element');
xlabel('azimuth');
ylabel('magnitude');
zlabel('Elevation');
grid on;
figure(3);
plot(ddt,Pmusic2);
title('Triangular array with 3 element');
zlabel('azimuth');
ylabel('magnitude');
xlabel('Elevation');
grid on;
clc;
clear all;
Pd=8000;
s1=1/1000*exp(j*pi/3*[0:Pd])';
s2=1/1000*exp(j*pi/4*[0:Pd])';
s3=1/1000*exp(j*pi/5*[0:Pd])';
m=8;
p=3;
st1=10;
dt1=10;
st2=20;
dt2=40;
st3=30;
dt3=80;
st=[st1;st2;st3];
dt=[dt1;dt2;dt3];
nn=4096;
SN1=50;
SN2=50;
SN3=50;
sn=[SN1;SN2;SN3];
degrad=pi/180;
tt=1:nn;
S=[s1(tt),s2(tt),s3(tt)].';
noise=randn(m,nn)+j*randn(m,nn);
Ps=S*S'/nn;
ps=diag(Ps);
refp=2*10.^(sn/10);
tmp=sqrt(refp./ps);
S2=diag(tmp)*S;
A=zeros(m,p);
for t=1:p
A(:,t)=[1,exp(j*pi*(cos(st(t)*degrad))*(cos(dt(t)*degrad))),exp(j*pi*(cos(st(t)*degrad)
+sin(st(t)*degrad))*cos(dt(t)*degrad)),exp(j*pi*sin(st(t)*degrad)*cos(dt(t)*degrad)),exp(j*pi
*(cos(st(t)*degrad)+sin(st(t)*degrad)
+tan(st(t)*degrad))*cos(dt(t)*degrad)),exp(j*pi*(cos(st(t)*degrad)
+tan(st(t)*degrad))*cos(dt(t)*degrad)),exp(j*pi*(tan(st(t)*degrad)
+sin(st(t)*degrad))*cos(dt(t)*degrad)),exp(j*pi*tan(st(t)*degrad)*cos(dt(t)*degrad))]';
end
X=A*S2+noise;
Rxx=X*X'/nn;
[U,s,v]=svd(Rxx);
Vs=U(:,1:p);
Vu=U(:,p+1:m);
for st1=0:90
for dt1=0:90
AA=[1,exp(j*pi*cos(st1*degrad)*cos(dt1*degrad)),exp(j*pi*(cos(st1*degrad)
+sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(
cos(st1*degrad)+sin(st1*degrad)
+tan(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(cos(st1*degrad)
+tan(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(tan(st1*degrad)
+sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(tan(st1*degrad))*cos(dt1*degrad))]';
WW=AA'*Vu*Vu'*AA;
Pmusic1(st1+1,dt1+1)=abs(8./WW);
Pmusic2(dt1+1,st1+1)=abs(8./WW);
end
end
sst=0:90;
ddt=0:90;
figure(1);
mesh(sst,ddt,Pmusic1);
title('cube with 8 elements');
ylabel('azimuth');
zlabel('magnitude');
xlabel('Elevation');
grid on;
figure(2);
plot(sst,Pmusic1);
title('cube with 8 elements');
xlabel('azimuth');
ylabel('magnitude');
zlabel('Elevation');
grid on;
figure(3);
plot(ddt,Pmusic2);
title('cube with 8 elements');
zlabel('azimuth');
ylabel('magnitude');
xlabel('Elevation');
grid on;
clc;
clear all;
Pd=8000;
s1=1/1000*exp(j*pi/3*[0:Pd])';
s2=1/1000*exp(j*pi/4*[0:Pd])';
s3=1/1000*exp(j*pi/5*[0:Pd])';
m=5;
p=3;
st1=10;
dt1=10;
st2=20;
dt2=40;
st3=30;
dt3=80;
st=[st1;st2;st3];
dt=[dt1;dt2;dt3];
nn=4096;
SN1=100;
SN2=100;
SN3=100;
sn=[SN1;SN2;SN3];
degrad=pi/180;
tt=1:nn;
S=[s1(tt),s2(tt),s3(tt)].';
noise=randn(m,nn)+j*randn(m,nn);
Ps=S*S'/nn;
ps=diag(Ps);
refp=2*10.^(sn/10);
tmp=sqrt(refp./ps);
S2=diag(tmp)*S;
A=zeros(m,p);
for t=1:p
A(:,t)=[1,exp(j*pi*cos(st(t)*degrad)*cos(dt(t)*degrad)),exp(j*pi*(cos(st(t)*degrad)
+sin(st(t)*degrad))*cos(dt(t)*degrad)),exp(j*pi*(sin(st(t)*degrad))*cos(dt(t)*degrad)),exp(j
*pi*(0.5*cos(st(t)*degrad)+0.5*sin(st(t)*degrad)+tan(st(t)*degrad))*cos(dt(t)*degrad))]';
end
X=A*S2+noise;
Rxx=X*X'/nn;
[U,s,v]=svd(Rxx);
Vs=U(:,1:p);
Vu=U(:,p+1:m);
for st1=0:90
for dt1=0:90
AA=[1,exp(j*pi*cos(st1*degrad)*cos(dt1*degrad)),exp(j*pi*(cos(st1*degrad)
+sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(
0.5*cos(st1*degrad)+0.5*sin(st1*degrad)+tan(st1*degrad))*cos(dt1*degrad))]';
WW=AA'*Vu*Vu'*AA;
Pmusic1(st1+1,dt1+1)=abs(8./WW);
Pmusic2(dt1+1,st1+1)=abs(8./WW);
end
end
sst=0:90;
ddt=0:90;
figure(1);
mesh(sst,ddt,Pmusic1);
title('square pyramid with 5 elements');
ylabel('azimuth');
zlabel('magnitude');
xlabel('Elevation');
grid on;
figure(2);
plot(sst,Pmusic1);
title('square pyramid with 5 elements');
xlabel('azimuth');
ylabel('magnitude');
zlabel('Elevation');
grid on;
figure(3);
plot(ddt,Pmusic2);
title('square pyramid with 5 elements');
zlabel('azimuth');
ylabel('magnitude');
xlabel('Elevation');
grid on;
Tetrahedron
clc;
clear all;
Pd=8000;
s1=1/1000*exp(j*pi/3*[0:Pd])';
s2=1/1000*exp(j*pi/4*[0:Pd])';
s3=1/1000*exp(j*pi/5*[0:Pd])';
m=4;
p=2;
st1=10;
dt1=40;
st2=60;
dt2=80;
st=[st1;st2];
dt=[dt1;dt2];
nn=4096;
SN1=40;
SN2=40;
SN3=40;
sn=[SN1;SN2];
degrad=pi/180;
tt=1:nn;
S=[s1(tt),s2(tt)].';
noise=randn(m,nn)+j*randn(m,nn);
Ps=S*S'/nn;
ps=diag(Ps);
refp=2*10.^(sn/10);
tmp=sqrt(refp./ps);
S2=diag(tmp)*S;
for t=1:p
A(:,t)=[1,exp(j*pi*2*cos(st(t)*degrad)*cos(dt(t)*degrad)),exp(j*pi*(cos(st(t)*degrad)
+(3^0.5)*sin(st(t)*degrad))*cos(dt(t)*degrad)),exp(j*pi*(cos(st(t)*degrad)
+(3^0.5)*0.5*sin(st(t)*degrad)+tan(st(t)*degrad))*cos(dt(t)*degrad))]';
end
X=A*S2+noise;
Rxx=X*X'/nn;
[U,s,v]=svd(Rxx);
Vs=U(:,1:p);
Vu=U(:,p+1:m);
for st1=0:90
for dt1=0:90
AA=[1,exp(j*pi*2*cos(st1*degrad)*cos(dt1*degrad)),exp(j*pi*(cos(st1*degrad)
+(3^0.5)*sin(st1*degrad))*cos(dt1*degrad)),exp(j*pi*(cos(st1*degrad)
+(3^0.5)*0.5*sin(st1*degrad)+tan(st1*degrad))*cos(dt1*degrad))]';
WW=AA'*Vu*Vu'*AA;
Pmusic1(st1+1,dt1+1)=abs(8./WW);
Pmusic2(dt1+1,st1+1)=abs(8./WW);
end
end
sst=0:90;
ddt=0:90;
figure(1);
mesh(sst,ddt,Pmusic1);
title('triangular pyramid with 4 elements');
ylabel('azimuth');
zlabel('magnitude');
xlabel('Elevation');
grid on;
figure(2);
plot(sst,Pmusic1);
title('triangular pyramid with 4 elements');
xlabel('azimuth');
ylabel('magnitude');
zlabel('Elevation');
grid on;
figure(3);
plot(ddt,Pmusic2);
title('triangular pyramid with 4 elements');
zlabel('azimuth');
ylabel('magnitude');
xlabel('Elevation');
grid on;