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:
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
Release history Release notifications | RSS feed
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)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fcde4d3f16d65cd1507bc4cb3729e8cf34e3458365aa216d39dbe1d9f5b6487
|
|
| MD5 |
65835cc846e77271c929f4e53b2d88d5
|
|
| BLAKE2b-256 |
8cd58e9d2fa683622a24a651e78fbe76a16fedc23ca4de89aab4c937b8401b6d
|