Coder Social home page Coder Social logo

classical_doa's Introduction

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_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(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=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
    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.

classical_doa's People

Contributors

zhiim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.