You are on page 1of 86

DIRECTION FINDING USING 3D ARRAY

GEOMETRY

BACHELOR OF ENGINEERING
Electronics and Communication Engineering

By

MOHAMMED ISMAIL 04-07-4044


MOHAMMED LAEEQ AKBAR 04-07-4042
SYED MOHAMMED MEHDI 04-07-4056

Department of Electronics and Communication Engineering

Muffakham Jah College of Engineering and Technology


(Affliated to Osmania University)
Banjarahills Hyderabad
2009-2010
DIRECTION FINDING USING 3-D ARRAY
GEOMETRY

A project submitted in partial fulfillment of the requirement of the degree of

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

Muffakham Jah College of


Engineering and Technology

Department of Electronics & Communication Engineering

MUFFAKHAM JAH COLLEGE OF ENGINEERING & TECHNOLOGY


Mount Pleasant, 8-2-249, Road No.3, Banjarahills,
Hyderabad - 500 035, Andhra Pradesh, India.
2009-2010
Department of Electronics and Communication Engineering
Certificate

This is to certify that

Mohammed Ismail 04-07-4044


Mohammed Laeeq Akbar 04-07-4042
Syed Mohammed Mehdi 04-07-4056

Belonging to B.E. ECE 4/4 of Muffakham Jah College of Engineering and


Technology, has successfully completed their project work entitled during the
academic year 2009-2010 for the partial fulfillment of award of bachelor of
engineering in the field of ECE as presented by Osmania University, Hyd.
This is a bonafide record of the work carried under our guidance and
supervision.

Dr. KALEEM FATIMA Mrs. AYESHA NAAZ


H.O.D.ECE Associate Professor MJCET, ECED
PROJECT GUIDE

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.

With sincere regards,


Mohammed Ismail
Mohammed Akbar
Syed Mohammed Mehdi

CONTENTS
Abstract i
List of figures ii
List of Symbols iii
List of abbreviation iv

1. Introduction 1

2. Direction of Arrival Estimation Algorithm


2.1 Introduction 3
2.2 Classification Of Methods Of DOA Estimation 4
2.3 MUSIC: MUltiple SIgnal Classification 5
2.3.1 Principle 5
2.3.2 DOA Data Model 5
2.3.3 Characteristics of MUSIC Algorithm 10
2.4 Music Algorithm Flow Chart 12
2.4.1 for Coherent Sources 12
2.4.2 for Non Coherent Sources 13

3. MUSIC Implementation on Uniform Linear Array


3.1 Introduction 14
3.2 Geometrical Representation of ULA 14
3.3 Assumptions 15
3.4 Azimuth and Elevation Angle 16
3.5 Steering Vector 17
3.5.1 Steering Vector for Uniform Linear Array 17
3.6 Music Algorithm Implementation 18
3.6.1 Data Generation 18
3.6.2 The S Matrix 19
3.7 Drawbacks of Uniform Linear Array 21
3.7.1 East West Ambiguity 21
3.7.2 North South Ambiguity 22
4. MUSIC Implementation on 2 D Sensor Array System 23
4.1 Introduction 23
4.2 Geometrical Representation 23
4.3 Uniform Circular Array 24
4.4 Data Generation for Uniform Circular Array 26
4.5 Steering Vector 27
4.5.1 Steering Vector for Square Array 27
4.5.2 Steering Vector for Triangular Array 28
4.5.3 Steering Vector for Uniform Circular Array 29
4.6 Properties of 2 Dimensional Sensor Array System 30
4.6.1 East West Ambiguity 30
4.6.2 Inter Sensor Spacing 30
4.7 Drawbacks of 2 Dimensional Sensor Array System 30

5. MUSIC Implementation on 3 D Sensor Array System 31

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

7.1 Simulation Results And Comparisons 48


7.2 Simulation Results for Uniform Linear array 50
7.3 Simulation Results for Uniform Circular array 51
7.4 Simulation Results for Uniform Triangular array 53
7.5 Simulation Results for Uniform Square array 55
7.6 Simulation Results for Cubical Array Geometry 57
7.7 Simulation Results for Pyramidal Array Geometry 59
7.8 Simulation Results for Tetrahedral Array 61
8. Conclusions and Future Scope

8.1 Conclusions 63

8.2 Future Scope 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.

MUSIC is implemented on 1 D and 2 D array geometries such as triangle, square,


circle. Finally the 3 D array geometry such as cube, tetrahedron and pyramid is used instead
of 1 D and 2 D array geometries to overcome the ambiguities encountered in 1 D and 2 D
array geometries.

List of Figures

Figure 2.1 Antenna array and DOA estimation algorithm 3


Figure 2.2 Some of the several spectral estimation techniques. 4
Figure 2.3 Antenna array 6
Figure 2.4 Applying MUSIC algorithm on antenna array signals 10
Figure 3.1 Uniform linear array 15
Figure 3.2 Azimuth and elevation angles 16
Figure 3.3 North south ambiguity 21
Figure 3.4 East west ambiguity 22
Figure 4.1 Planar array 24
Figure 4.2 Uniform circular array 25
Figure 4.3 Uniform square array with four elements 27
Figure 4.4 Triangular array with three elements 28
Figure 4.5 Uniform circular array with six elements 29
Figure 5.1 Uniform circular array with six elements 32
Figure 5.2 Cubical array with eight elements 35
Figure 5.3 Pyramid array with 5 elements 36
Figure 5.4 Tetrahedron array with 4 elements 37
Figure 7.1 Simulation result for uniform linear array 50
Figure 7.2 Simulation result for uniform circular array 51
Figure 7.3 Simulation result for uniform circular array showing ambiguity 52
Figure 7.4 Simulation result for uniform triangular array 53
Figure 7.5 Simulation result for uniform square array 55
Figure 7.6 Simulation result for cubical array geometry 57
Figure 7.7 Simulation result for pyramidal array array 59
Figure 7.8 Simulation result for tetrahedral array geometry 61

List of Abbreviation

DOA Direction Of Arrival


MUSIC MUlti SIgnal Classification
SNR Signal to Noise Ratio
ULA Uniform Linear Array
UCA Uniform Circular Array
GUI Graphical User Interface
SVD Singular Value Decomposition

List of Symbols

D Distance between sensors


Azimuth angle
Wavelength
W White additive noise
r(t) Received signal at array element
s(t) Source signal
n(t) Random noise
A Steering vector
R Covariance Matrix of received signal
Hermit transform
Variance of additive noise
M Number of sensors
D Number of source signals
N Number of snapshots
Signal Subspace
Noise Subspace
Music Spectrum

Φ 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.

The result of using three dimensional array system are

1. The north-south ambiguity is removed.


2. The east-west ambiguity is removed.
3. Coverage up to 360 degrees
4. Increased precision.
CHAPTER 2

Direction of Arrival Estimation Algorithm


2.1 Introduction

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.

Fig 2.1: Antenna array and DOA estimation algorithm

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.2 CLASSIFICATION OF METHODS OF DOA ESTIMATION


Figure 2.2: Some of the several spectral estimation techniques
Most of the antenna array direction of arrival(DOA) estimation methods are based on
the sub-space concept and require the Eigen-decomposition of the input correlation matrix.
State-space method, MUSIC, and ESPRIT are examples of these techniques. Based on the
Eigen- decomposition of covariance matrix of the array output, they offer high resolution and
give accurate estimates. In this work, Music algorithm for direction of arrival estimation
(DOA) is proposed. Of all techniques shown in Fig. 2, MUSIC is probably the most popular
technique

2.3 MUSIC: MUltiple SIgnal Classification

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.

2.3.2 DOA Data Model

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)

where, i = 1,2, ... M , the vector form is as follows:

r(t) = A s(t) + n(t) (2.2)

r(t) =
(2.3)
where:
A is the matrix of steering vectors

A =
(2.4)
and

s(t)= is the signal vector


(2.5)

n(t) = is a noise vector


with components

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)

where R is the signal covariance matrix


I is an identity matrix
denotes conjugate transpose
S denotes the Covariance matrix of the source signals

S = E[ s(t)

(2.8)

and is the variance of the additive noise.

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)

or, equivalently, the smallest eigen value of R is equal to with multiplicity M – D,


i.e.,

=
(2.11)

The Eigen values are known as the signal eigenvalues and


as the noise eigen values.

Let denote the eigenvectors of R correspondingly to


.
Form matrices and as

= [
(2.12)

= [
(2.13)

are known as the signal eigenvectors.


are known as the noise eigenvectors.

is known as the signal subspace.

is known as the noise subspace.

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.

Then = 0 for corresponding to the DOA of

incoming signal. In practice, a( will not be precisely orthogonal to the noise subspace
due to errors in estimating . However the function

(2.14)

Where is conjugate transpose of

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.

2.3.3 Characteristics of MUSIC algorithm

1. The algorithm has good performance and can be used with a variety of array geometries.

2. The algorithm requires the knowledge of sensor element characteristics.

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.

2.4 MUSIC Algorithm flow chart

2.4.1 For Coherent Sources


2.4.2 For Non Coherent Sources
CHAPTER 3

MUSIC implementation on Uniform Linear Array

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.

There are basically three types of array geometries


1) One dimensional array (Uniform Linear array)

2) Two dimensional array (square, triangle, circle etc)

3) Three dimensional array (tetrahedron, pyramid, cube etc)

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.

3.2Geometrical representation of ULA

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

There are some assumptions that are to be considered

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.

3.4 Azimuth and Elevation Angle


An azimuth is an angular measurement in a spherical coordinate system. The vector
from an observer (origin) to a point of interest is projected perpendicularly onto a reference
plane; the angle between the projected vector and the reference vector on the reference plane
is called the azimuth.

An example of an azimuth is the measurement of the position of a star in the sky is


shown in figure 3.2. The star is the point of interest, the reference plane is the horizon or the
surface of the sea, and the reference vector points to the north. The azimuth is the angle
between the north point and the perpendicular projection of the star down onto the horizon.
Azimuth is usually measured in degrees (°). The concept is used in many practical
applications including navigation, astronomy, mapping, mining and artillery.

Angle of elevation is the angle between the horizontal and the line of sight to an
object above the horizontal.

Figure 3.2 azimuth and elevation angle

3.5 Steering vector


A steering vector represents the set of phase delays a plane wave experiences,
evaluated at a set of array elements (antennas). The phases are specified with respect to an
arbitrary origin.
For instance, suppose a plane wave is described by a wave vector k. If there are N elements in
an antenna array, with element i having location given by

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.

3.5.1 Steering vector for uniform linear array

3.6 Music algorithm implementation

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 d denotes the sensor spacing and c is the velocity of propagation

Then received signal r(t) at the array sensors is given as

r(t) = A*S + n(t)

where
A is the matrix of steering vectors

A=

s(t) = is the signal vector

n(t) = is a noise vector


with components

of variance .

The covariance matrix is calculated is the expectation of the data vector obtained from
the output of sensors.

R = E[r(t).

Then the signal subspace and noise subspace is separated.

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

a) North south ambiguity

b) East west ambiguity

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.

3.7.1 East west ambiguity

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.

Figure 3.3 east west ambiguity

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 π-θ.

3.7.2 North south ambiguity


The steering vector which satisfies the following properties are a (θ) =a (π-θ), which
implies that wave front coming from the north and another coming symmetrically opposite
from the south cannot be distinguished.

Figure 3.4 North south ambiguity

Two different signals coming from symmetrically opposite directions cannot be


distinguished. Figure 3.4 shows two signals coming at directions θ and 2π-θ. Under this
condition simulated result gives the magnitude of any one signal at both the angles θ and 2π-
θ.
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 2π-θ.
CHAPTER 4

MUSIC implementation on 2 D sensor Array system

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.

4.2 Geometrical representation


A planar array has its sensors distributed over a plane. When a wave front has two
unknown parameters azimuth and elevation, we need a planar array for the estimation of pair
of parameters. Since a plane has two dimensions, much possible geometry can be derived,
such as rectangular array, triangular array, and circular array.

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

4.3 Uniform circular array


Now we take the circular array geometries. The sensors may be placed on a plane in a
polar grid. For a fixed radial distances we have a circle on which the sensors are placed

forming circular array. Consider a circular array of radius with M sensors, symmetrically
placed on circumference as shown below.

Figure 4.2 uniform circular array

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.

Where k is the direction of the arrival of the kth signal.

A = [ a1( )………………………………………….am( )]

D is the number of the signal present.


4.4 Data generation for uniform circular array
The method of generating the data vector is in ULA is the same process used to
generate the data vector in the circular array signal processing. The output of the sensor
elements at different snapshots is given by

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.

r(t) = A*s(t) + n(t)

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.

) = col {exp( -j (sin


)))}
m= 0,1,……………………..M-1

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.

4.5 Steering vector


A steering vector represents the set of phase delays a plane wave experiences,
evaluated at a set of array elements (antennas). The phases are specified with respect to an
arbitrary origin.
The steering vector varies with the geometry. The steering vector for various
geometries are derived by taking any one element as the reference and then calculating the
length between the two sensors and multiplying it by phase constant sin (θ) or cos (θ)
depending on the direction from the reference point.

4.5.1 Steering vector for square array

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 λ

Steering vector for uniform square array is given by


4.5.2 Steering vector for triangular array
Steering vector for triangular array is derived in the same way as in square array. Here
the difference is that the intersensor spacing is taken as 2λ for simplicity.

Figure 4.4 Uniform square array with four elements with inter sensor spacing of 2λ

Steering vector for triangular array is given by

4.5.3 Steering vector for uniform circular array


Steering vector for uniform circular array is derived in the same way as in square
array. Here a circle of six elements is considered. To calculate the length between the two
sensors a circle is inscribed in a hexagon and then the length is calculated
Figure 4.5 Uniform circular array with six elements with radius λ

Steering vector for uniform circular array is given by

4.6 Properties of 2 dimensional sensor array system

East west ambiguity

By examining the direction vectors for the linear array we note that

( ) hence two wave fronts impinging on a linear with bearing

angles and respectively cannot be distinguished. For a circular array,

since the direction vectors a( ) are unique for all π there is no ambiguity.
A wave front from any direction can uniquely be determined.

4.7 Drawbacks of 2 dimensional sensor array system

North south ambiguity

The steering vector of two dimensional sensor array system satisfies

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

MUSIC implementation on 3 D sensor Array system

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.

5.3 Cubical array geometry

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

5.4 Data generation for Cubical array geometry

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.

r(t) = A*s(t) + n(t)

The covariance matrix is calculated is the expectation of the data vector obtained from
the output of sensors.

R=E[ (t) ]

Then the signal subspace and noise subspace is separated.

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.

5.5 Steering vector


A steering vector represents the set of phase delays a plane wave experiences,
evaluated at a set of array elements (antennas). The phases are specified with respect to an
arbitrary origin.
The steering vector varies with the geometry. The steering vector for various
geometries are derived by taking any one element as the reference and then calculating the
length between the two sensors and multiplying it by phase constant sin (θ) or cos (θ)
depending on the direction from the reference point.

5.5.1 Steering vector for cubical array geometry

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

5.5.2 Steering vector for pyramid array


Steering vector for pyramidal array is derived from the cubical triangular array.

Figure 5.4 pyramid array with 5 elements with inter sensor spacing of λ

Steering vector for uniform square array is given by

A=

5.5.3 Steering vector for tetrahedron


Steering vector for tetrahedron array geometry is derivedfrom triangular array
geometry and cubical array geometry. Here a tetrahedron with 4 elements is considered. For
simplicity the intersensor spacing is taken as 2λ

Figure 5.5 Tetrahedron array with 4 elements and intersensor spacing 2 λ

Steering vector for uniform circular array is given by

5.6 Properties of 3 dimensional sensor array system

5.6.1 East west ambiguity

By examining the direction vectors for the linear array we note that

( ) hence two wave fronts impinging on a linear with bearing

angles and respectively cannot be distinguished. For a Three

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.

5.6.2 North south ambiguity


By examining the direction vectors for the linear array we note that

( ) hence two wave fronts impinging on a linear with bearing angles


and respectively cannot be distinguished. For a Three 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

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 both a computer programming language and a software environment for


using that language effectively. The name MATLAB stands for MATRIX LABORATORY.

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.

6.2 Matlab Windows

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.

Some Important Details


•Everything is a matrix.
•Comma or space separates row elements. Semicolon separates rows.
•Elements are referred to by indices in parentheses
•Assignment uses = (not :=)
•Terminal semicolon (;) suppresses output.
•Variable names are Case sensitive.
•Two sets of arithmetic operations – vector, element-wise.
•Previous inputs can’t be edited directly.

6.4 Matlab Commands

6.4.1 General-purpose commands

General information

Helpbrowser - Bring up the help browser.


Doc - Complete on-line help, displayed in the help browser.
Help - M-file help, displayed at the command line.
helpwin - M-file help displayed in the help browser.
Lookfor - Search all M-files for keyboard.
Syntax - Help on Matlab command syntax.

6.4.2 Managing the workspace

Workspace - Display Workspace browser, a GUI for managing the


workspace.
Clear - Clear variables and functions from memory.
save - Save workspace variables to disk.
Matlab - Loads the program matlab into your workspace.
clear x - Deletes the matrix x from active workspace.

6.4.3 Elementary math functions

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

Abs - absolute value


Angle - phase angle
Complex - construct complex data
Conj - complex conjugate
Real - complex real part
Image - complex imaginary

6.4.4 Rounding and remainder


Fix - round toward zero
Round - round towards nearest integer
Mod - modulus
Rem - remainder
Sign - signum

6.4.5 Commands useful in plotting

title(‘text’) - places a title at the top of graphics plot


xlabel(‘text’) - writes text beneath the x-axis of a plot
ylabel(‘text’) - writes text beneath the y-axis of a plot
zlabel(‘text’) - writes text beneath the z-axis of a plot
plot(x,y) - plots y vs x (2D Plot)
mesh(x,y,z) - plots z vs y vs x ( 3D Plot)
figure - creates a new figure object using default property values.
grid on -adds major grid lines to the current axes.
Axis - controls axis scaling and appearance
Subplot - creates axes in tiled positions
semilogx(x,y) - plots log(x) vs. y
loglog(x,y) - plots log(x) vs log(y)

6.4.6 Data analysis commands

max(x) - returns the maximum value of the elements in a vector


or if x is a matrix, returns a row vector whose elements
are the maximum values from each respective column
of the matrix
min(x) - returns the minimum value of x
length(x) - returns the number of elements in a vector
rand - returns the random number between 0 and 1
mean(x) - returns the mean value of x
sum(x) - returns the sum of the elements of a vector or if x is a
matrix, returns the sum of the elements from each
respective column of the matrix.
sort(x) - sort the values in the vector x or the columns of a
matrix and places them in ascending order.
hist(x) - plots a histogram of the elements of the vector x
6.4.7 Matrices commands

zeros(n) - creates an n × n matrix whose elements are zero


zeros(m,n) - creates an m-row, n-column matrix of zeros
ones(n) - creates an n × n square matrix whose elements are 1’s
ones(m,n) - creates an m × n matrix whose elements are 1’s
diag(m,n) - create an m × n diagonal matrix
eye(n) - creates an n × n identity matrix with 1’s on the diagonal
size(x) - returns the size m(rows) and n(columns) of matrix x
rand(A) - returns a matrix of size A of random numbers
trace(A) - returns the sum of the diagonal elements of the matrix A
eig(A) -returns a vector of the eigenvalues of matrix A

6.4.8 SVD - Singular Value Vecomposition

Syntax
s = svd(X)
[U,S,V] = svd(X)

Description

The svd command computes the matrix singular value decomposition.


s = svd(X) returns a vector of singular values.
[U,S,V] = svd(X) produces a diagonal matrix S of the same dimension as X, with
nonnegative diagonal elements in decreasing order, and unitary matrices U and V so that X =
U*S*V'.

Examples

For the matrix


X =
1 2
3 4
5 6
7 8

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

if, else, and elseif

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 and B are scalars

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

Simulation Results and Conclusion


7.1 Simulation Results and Comparisons

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

1. East - West Ambiguity

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.

2. North - South Ambiguity

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 (

+ θ) resulting in north south ambiguity.


A circular array of 8 elements is used to estimate the DOAs with true DOAs at 10 ,

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

three more peaks at 190 220 and 260.


The same North South ambiguity remains for different uniform planar arrays. The North
South ambiguity is seen for triangular array in figure 7.4 a & 7.4 c and for square array in
figure 7.5 a & 7.5c.
To remove North South ambiguity three dimensional array geometries are used. Here we
have simulated three such geometries. Firstly, 8 element cubical array geometry with each
element placed on the vertex has been simulated and found to be free from all ambiguities.
The simulation result of cubical array geometry is shown in figure 7.6 a. In a similar manner
5 element pyramidal array and 4 element tetrahedron array are also simulated and the
simulation results are shown in figure 7.7 a and 7.8 a respectively.

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

7.4 Simulation results for Uniform triangular array


Figure 7.4 a The peaks shows the signals present at 10, 60,190,240 degrees azimuth by Uniform
triangular array. This shows the north south ambiguity.

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.

7.5 Simulation results for Uniform square 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.

7.7 Simulation results for pyramidal array geometry

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

Conclusion and Future Scope


8.1 Conclusions

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.

In order to overcome drawbacks of ULA, MUSIC is implemented on two dimensional


geometries like uniform circular array, square array and triangular array. Since two
dimensional arrays have specific properties over ULA, this gives the exact solution for east
west ambiguity encountered in ULA. However North South ambiguity is not overcome using
Planar array.

Hence so as to overcome North south ambiguity, MUSIC is implemented on three


dimensional array geometries like cube, tetrahedron and cube.

The result of using three dimensional array system are


1. The north-south ambiguity is removed.
2. The east-west ambiguity is removed.
3. Coverage up to 360 degrees
4. Increased precision

8.2 Future scope

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

1. SCHMIDT,R.O: ‘Multiple emitter location and signal parameter estimation’, IEEE


transactions on Antennas and propagation, vol . AP-34, march 1986

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

1. Sensor array signal processing---- Prabhakar s.naidu

2. Digital spectral analysis--------Marple

PROGRAMS

Program to implement MUSIC on ULA with 8 Sensors

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

% Generating Carrier Signal


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])';
tt=1:nn;
S=[s1(tt),s2(tt),s3(tt)].'; % Carrier Signal

% Modulated Signal Generation


SN1=50; % Signal to Noise ratio in DOA1
SN2=50; % Signal to Noise ratio in DOA2
SN3=50; % Signal to Noise ratio in DOA3
sn=[SN1;SN2;SN3]; % Signal to Noise ratio Matrix
degrad=pi/180;
Ps=S*S'/nn;
ps=diag(Ps);
refp=2*10.^(sn/10);
tmp=sqrt(refp./ps);
S2=diag(tmp)*S; % Modulated Signal

% Noise Generation
noise=randn(m,nn)+j*randn(m,nn);

% Steering Vector of ULA


A=zeros(m,p);
for t=1:p
A(:,t)=[1,exp(j*pi*sin(st(t)*degrad)),exp(j*pi*2*sin(st(t)*degrad)),exp(j*pi*3*sin(st(t)*degr
ad)),exp(j*pi*4*sin(st(t)*degrad)),exp(j*pi*5*sin(st(t)*degrad)),exp(j*pi*6*sin(st(t)*degrad)
),exp(j*pi*7*sin(st(t)*degrad))]';
end

% Received Signal at ULA


X=A*S2+noise;

% Finding Covariance Matrix of Received Signal


Rxx=X*X'/nn;

% Separating Signal Subspace and Noise Subspace


[U,s,v]=svd(Rxx); %Rxx=U*S*V’

Vs=U(:,1:p); % Signal Subspace


Vu=U(:,p+1:m); % Noise Subspace

% Calculating Spatial Spectrum


for st1=0:180
AA=[1,exp(j*pi*sin(st1*degrad)*cos(dt1*degrad)),exp(j*pi*2*sin(st1*degrad)*cos(dt1*degr
ad)),exp(j*pi*3*sin(st1*degrad)*cos(dt1*degrad)),exp(j*pi*4*sin(st1*degrad)*cos(dt1*degr
ad)),exp(j*pi*5*sin(st1*degrad)*cos(dt1*degrad)),exp(j*pi*6*sin(st1*degrad)*cos(dt1*degr
ad)),exp(j*pi*7*sin(st1*degrad)*cos(dt1*degrad))]';
WW=AA'*Vu*Vu'*AA;
Pmusic(st1+1,dt1+1)=abs(8./WW);
end

% Plotting Pmusic
sst=0:90;
figure(1);
plot(sst,Pmusic);
title('Linear array 8 element');
xlabel('azimuth');
ylabel('magnitude');
grid on;

Program to implement MUSIC on UCA with 6 elements.

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;

Program to implement MUSIC on Square

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;

Program to implement MUSIC on Triangle

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;

Cube with 8 elements

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;

Pyramid with 5 elements

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;

You might also like