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:
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)
Built Distribution
Close
Hashes for classical_doa-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64c4fe15af296c2e8dd7777b667935f6cccd13446004153978b408a8050ce50b |
|
MD5 | c35d90ec2ed64ce166a80ed6610cb90c |
|
BLAKE2b-256 | 4eed57bccd5dff776cb061b97f3abcc523478696726ac93dd7101aa7c1086c12 |