Skip to main content

Classical DOA estimation algorithms implemented in Python

Project description

Moved to doa_py

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 import music
from classical_doa.plot import plot_spatial_spectrum

# 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(fc=3e8)

# Simulate the received data
received_data = ula.received_signal(
    signal=source, snr=0, nsamples=1000, 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=ula,
    signal_fre=3e8,
    angle_grids=angle_grids,
    unit="deg",
)

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

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
    ComplexStochasticSignal
  • Broadband
    ChirpSignal MultiCarrierSignal

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.3.2.tar.gz (14.9 kB view details)

Uploaded Source

File details

Details for the file classical_doa-1.3.2.tar.gz.

File metadata

  • Download URL: classical_doa-1.3.2.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.5

File hashes

Hashes for classical_doa-1.3.2.tar.gz
Algorithm Hash digest
SHA256 0fcde4d3f16d65cd1507bc4cb3729e8cf34e3458365aa216d39dbe1d9f5b6487
MD5 65835cc846e77271c929f4e53b2d88d5
BLAKE2b-256 8cd58e9d2fa683622a24a651e78fbe76a16fedc23ca4de89aab4c937b8401b6d

See more details on using hashes here.

Supported by

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