Skip to main content

Classical DOA estimation algorithms implemented in Python

Project description

Classical DOA

Classical DOA Estimation algorithms implemented in Python.

Getting Started

Installation

pip install classical_doa

or install from source

git clone https://github.com/zhiim/classical_doa.git
cd classical_doa
pip install .

Usage

A sample example of DOA estimation using MUSIC algorithm.

import numpy as np

from classical_doa import arrays, signals
from classical_doa.algorithm.music import music
from classical_doa.plot import plot_spatial_specturm

# Create a 8-element ULA with 0.5m spacing
ula = arrays.UniformLinearArray(m=8, dd=0.5)
# Create a complex stochastic signal
source = signals.ComplexStochasticSignal(nsamples=1000, fre=3e8, fs=1e9)

# Simulate the received data
received_data = ula.received_signal(signal=source, snr=0,
                                    angle_incidence=np.array([0, 30]),
                                    unit="deg")

# Calculate the MUSIC spectrum
angle_grids = np.arange(-90, 90, 1)
spectrum = music(received_data=received_data, num_signal=2,
                 array_position=np.arange(0, 4, 0.5), signal_fre=3e8,
                 angle_grids=angle_grids, unit="deg")

# Plot the spatial spectrum
plot_spatial_specturm(spectrum=spectrum, ground_truth=np.array([0, 30]),
                      angle_grids=angle_grids)

You will a get a figure like this: music_spectrum

Check examples for more examples.

What's implemented

Array Structures

  • Uniform Linear Array (ULA)
  • Uniform Rectangular Array (URA, to be implemented)
  • Uniform Circular Array (UCA)

Signal Models

  • Narrowband
    complex stochastic signal
  • Broadband
    chirp signal

Algorithms

  • ULA
    • MUSIC
    • ESPRIT
    • Root-MUSIC
    • OMP
    • l1-SVD
  • URA
    • URA-MUSIC
    • URA-ESPRIT
  • UCA
    • UCA-RB-MUSIC
    • UCA-ESPRIT
  • Broadband
    • ISSM
    • CSSM
    • TOPS

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

classical_doa-1.0.1.tar.gz (14.1 kB view hashes)

Uploaded Source

Built Distribution

classical_doa-1.0.1-py3-none-any.whl (18.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page