Skip to main content

Direction of Arrival (DOA) Estimation (with MATLAB + Simulator)


Direction of Arrival (DOA) Estimation

Direction of Arrival (DOA) estimation is a fundamental problem in array signal processing. It involves determining the angle at which one or more incident signals arrive at a sensor array. This information is critical in applications such as radar, sonar, wireless communications, and acoustic source localization.


1. Signal Model

Consider a uniform linear array (ULA) of \( M \) sensors receiving a narrowband signal \( s(t) \) from a direction \( \theta \). The received signal at the array can be modeled as:

$$ \mathbf{x}(t) = \mathbf{a}(\theta) s(t) + \mathbf{n}(t) $$

where:

  • \( \mathbf{x}(t) = [x_1(t), x_2(t), \dots, x_M(t)]^T \) is the received signal vector.
  • \( \mathbf{a}(\theta) \) is the steering vector of the array, representing the relative phase shifts across sensors:
$$ \mathbf{a}(\theta) = \begin{bmatrix} 1 \\ e^{-j 2 \pi \frac{d}{\lambda} \sin \theta} \\ e^{-j 2 \pi \frac{2d}{\lambda} \sin \theta} \\ \vdots \\ e^{-j 2 \pi \frac{(M-1)d}{\lambda} \sin \theta} \end{bmatrix} $$

Here, \( d \) is the sensor spacing, and \( \lambda \) is the wavelength of the incident signal.

\( \mathbf{n}(t) \) is additive noise (assumed zero-mean, spatially uncorrelated).

For a vector sensor (e.g., x, y, z components), the model generalizes to 3D:

$$ \mathbf{x}(t) = \begin{bmatrix} x(t) \\ y(t) \\ z(t) \end{bmatrix} = \mathbf{a}(\theta, \phi) s(t) + \mathbf{n}(t) $$

where \( \theta \) is the elevation and \( \phi \) is the azimuth angle.


2. Covariance Matrix

Assuming the signal \( s(t) \) is stationary and ergodic, the sample covariance matrix of the received signal is:

$$ \mathbf{R} = \mathbb{E}[\mathbf{x}(t) \mathbf{x}^H(t)] \approx \frac{1}{N} \sum_{t=1}^{N} \mathbf{x}(t) \mathbf{x}^H(t) $$

where \( N \) is the number of snapshots and \( (\cdot)^H \) denotes the Hermitian transpose. The covariance matrix captures the signal subspace and noise subspace, which are central to subspace-based DOA methods like MUSIC.


3. Classical DOA Estimation (Beamforming)

A simple beamforming approach estimates the DOA by scanning a range of angles and computing the output power:

$$ P_{\text{BF}}(\theta) = \mathbf{a}^H(\theta) \mathbf{R} \mathbf{a}(\theta) $$

The DOA is the angle \( \theta \) that maximizes \( P_{\text{BF}}(\theta) \).

  • Pros: Simple and intuitive.
  • Cons: Resolution limited by array aperture.

4. Subspace-based DOA: MUSIC Algorithm

The MUltiple SIgnal Classification (MUSIC) algorithm leverages the orthogonality between the signal subspace and the noise subspace:

  1. Eigen-decompose the covariance matrix:
    $$ \mathbf{R} = \mathbf{E}_s \mathbf{\Lambda}_s \mathbf{E}_s^H + \mathbf{E}_n \mathbf{\Lambda}_n \mathbf{E}_n^H $$
    • \( \mathbf{E}_s \) → eigenvectors corresponding to signal eigenvalues.
    • \( \mathbf{E}_n \) → eigenvectors corresponding to noise eigenvalues.
  2. Construct the MUSIC pseudo-spectrum:
    $$ P_{\text{MUSIC}}(\theta) = \frac{1}{\mathbf{a}^H(\theta) \mathbf{E}_n \mathbf{E}_n^H \mathbf{a}(\theta)} $$
    • Peaks of \( P_{\text{MUSIC}}(\theta) \) correspond to the DOA of incoming signals.
    • Advantages: High resolution even with closely spaced sources.

5. DOA Estimation with Vector Sensors

Vector sensors measure both pressure and particle velocity components (x, y, z). This allows:

  • 3D DOA estimation (azimuth and elevation).
  • Improved signal-to-noise ratio through MRC (Maximal Ratio Combining) of the sensor components:
$$ r_{\text{MRC}} = w_x x + w_y y + w_z z $$

where \( w_i = \frac{|h_i|^2}{|h_x|^2 + |h_y|^2 + |h_z|^2} \) are weights based on channel strengths.


6. Summary

  • DOA estimation is the process of finding the angle of incidence of signals at a sensor array.
  • Beamforming gives coarse estimates; subspace methods like MUSIC provide high-resolution estimates.
  • Vector sensors improve estimation by providing multi-component measurements.
  • Accurate DOA estimation requires proper calibration, non-zero signals, and enough snapshots for covariance estimation.

 

Further Reading

  1.  MATLAB Code for Direction of Arrival (DOA)
  2. DOA Online Simulator 


Contact Us

Name

Email *

Message *

Popular Posts

OFDM Symbols and Subcarriers Explained

This article explains how OFDM (Orthogonal Frequency Division Multiplexing) symbols and subcarriers work. It covers modulation, mapping symbols to subcarriers, subcarrier frequency spacing, IFFT synthesis, cyclic prefix, and transmission. Step 1: Modulation First, modulate the input bitstream. For example, with 16-QAM , each group of 4 bits maps to one QAM symbol. Suppose we generate a sequence of QAM symbols: s0, s1, s2, s3, s4, s5, …, s63 Step 2: Mapping Symbols to Subcarriers Assume N sub = 8 subcarriers. Each OFDM symbol in the frequency domain contains 8 QAM symbols (one per subcarrier): Mapping (example) OFDM symbol 1 → s0, s1, s2, s3, s4, s5, s6, s7 OFDM symbol 2 → s8, s9, s10, s11, s12, s13, s14, s15 … OFDM sym...

Design of CMOS XOR/XNOR Gates

Design of CMOS XOR/XNOR Gates The semiconductor industry has experienced rapid integration of multimedia applications into mobile electronics, leading to very high integration density in CMOS VLSI. As operating frequencies increase, power consumption, speed, silicon area, and reliability become critical considerations. The XOR-XNOR circuits are fundamental building blocks in arithmetic circuits (Full Adders, Multipliers), compressors, comparators, parity checkers, code converters, error-detecting/correcting codes, and phase detectors. Their performance directly impacts the complex circuits they are used in. Design goals include full output voltage swing, low power consumption, reduced transistor count, minimal delay, and simultaneous non-skewed outputs. Static Logic (Static CMOS) Stat...

UGC NET Electronic Science Previous Year Question Papers with Solutions

Home / Engineering & Other Exams / UGC NET 2026 PYQ ⬇️ Download Papers and Solutions 📋 Exam Pattern 💡 Preparation Tips ❓ FAQs 📊 Exam Highlights: Electronic Science (88) Feature Details Junior Research Fellowship (JRF) ₹37,000 + HRA per month Eligibility M.Sc/M.Tech in Electronics (55%) Validity of Certificate JRF (3 Years) | Lectureship (Lifetime) 📥 Download UGC NET Electronics PDFs Complete collection of previous year question papers, answer keys and explanations for Subject Code 88. Start Downloading 📂 View All Question Papers June 2025 - Question Paper Download PDF June 2025 - Solved Paper + Explanation ...

DFTs-OFDM vs OFDM: Why DFT-Spread OFDM Reduces PAPR Effectively (with MATLAB Code)

Understanding PAPR in DFT-spread OFDM vs. Standard OFDM In modern wireless communications like 4G LTE and 5G NR, managing the Peak-to-Average Power Ratio (PAPR) is critical for hardware efficiency. While OFDM is the gold standard for high-speed data, its high PAPR poses significant challenges for mobile devices. This is where DFTs-OFDM (also known as SC-FDMA) comes in. DFT-spread OFDM (DFTs-OFDM) has lower Peak-to-Average Power Ratio (PAPR) because it "spreads" the data in the frequency domain before applying IFFT, making the time-domain signal behave more like a single-carrier signal rather than a multi-carrier one like OFDM. Deeper Explanation: Aspect OFDM DFTs-OFDM Signal Type Multi-carrier Single-carrier-like Process IFFT of QAM directly QAM → DFT → IFFT PAPR Level High (due to many...

Online Simulator for ASK, FSK, and PSK Signal Generation

Interactive Digital Signal Processing (DSP) Tutorial and Simulator for ASK, FSK, and BPSK modulation techniques. Try our new Digital Signal Processing Simulator!   •   Interactive ASK, FSK, and BPSK tools updated for 2025. Start Now Digital Modulation Visualizer: ASK, FSK, & BPSK Simulator Learn and visualize binary modulation techniques (ASK, FSK, BPSK) in real-time with adjustable carrier and sampling parameters. Perfect for DSP students and engineers. 📡 ASK Simulator 📶 FSK Simulator 🎚️ BPSK Simulator 📚 More Topics ASK Modulator FSK Modulator BPSK Modulator More Topics 1. ASK (Amplitude Shift Keying) Simulat...

Calculation of SNR from FFT bins in MATLAB

📘 Overview 💻 FFT Bin Method 💻 Kaiser Window 📚 Further Reading SNR Estimation Overview In digital signal processing, estimating the Signal-to-Noise Ratio (SNR) accurately is crucial. Below, we demonstrate how to calculate SNR from periodogram and FFT bins using the Kaiser Window . The beta (β) parameter is the key—it allows you to control the trade-off between main-lobe width and side-lobe levels for precise spectral analysis. 1 Define Sampling rate and Time vector 2 Compute FFT and Periodogram PSD 3 Identify Signal Bin and Frequency resolution 4 Segment Signal Power from Noise floor 5 Logarithmic calculation of SNR in dB Method 1: Estimation from FFT Bins This approach uses a Hamming window to estimate SNR directly from the spectral bins. MATLAB Source Code Copy Code clc...

OFDM Baseband and Passband

  MATLAB Code >> %% OFDM BPSK Full Simulation: All Plots clear all ; close all ; clc; % --- 0. Parameters (Matching your HTML UI) --- nSymbols = 2; % Number of OFDM Symbols N = 4; % Subcarriers nCP = 2; % Cyclic Prefix fs = 1000; % Sampling Frequency (Hz) fc = 5; % Carrier Frequency (Hz) baudRate = 1; % Baud Rate %% --- 1. Generate Message (Bitstream) --- totalBits = nSymbols * N; bits = randi([0 1], 1, totalBits); %% --- 2. Make OFDM Symbols (Serial to Parallel) --- % Each column is one OFDM Symbol bitMatrix = reshape(bits, N, nSymbols); %% --- 3. Apply BPSK Mapping --- % 0 -> -1, 1 -> 1 bpskSymbols = 2*bitMatrix - 1; %% --- 4. Perform IFFT (Baseband Time Domain) --- ofdmTimeDomain = ifft(bpskSymbols, N); %% --- 5. Add Cyclic Prefix --- cpPart = ofdmTimeDomain(end-nCP+1:end, :); ofdmWithCP = [cpPart; ofdmTimeDomain]; serialBaseband = ofdmWithCP(:); % Flatten for transmission %% --- 6. Generat...