#dsp #radio

yttria-math

A DSP math library tailored for use with the yttria set of libraries

1 unstable release

0.1.0 Jun 5, 2024

#775 in Math


Used in 2 crates

MPL-2.0 license

41KB
1K SLoC

yttria-math

Yttria sets out to be an end-to-end wireless communications DSP library for developing custom and novel radio solutions, particularly regarding Software Defined Radios. Yttria-math is the subcrate of the Yttria framework responsible for the mathematical heavy lifting involved. Many of the functions of Yttria-math are directly analogous to those found in Numpy or Scipy, since those libraries are particularly well suited for the task.

One of the goals of this crate is to make DSP easy with as little extra consideration as possible. The result is that no custom structs have been made for the purpose of DSP, instead simply offering extension traits on any iterable that contains a number (so determined by the num crate), and is send + sync + copy + clone so that a lot of the heavy lifting can be done using rayon.

Why Yttria?

Yittrium Iron Garnets (YIGs) are a powerful technology that have been around for many years, but are becoming very powerful and highly relevant in miniaturized SDR applications due to their good filter characteristics and their extremely high agility. This project hopes to extend that power by making the software side as powerful and agile as the hardware is becoming.

Todo

  • Rayon accelerate all parallelizable mathematical operations
  • Parity relevant scipy / numpy operations
    • FFTs
    • PSDs
    • Windowing functions
    • Filters
      • FIR design
      • IIR design
    • Resampling
      • Decimation
      • Interpolation
    • Transforms
      • Hilbert
  • SIMD acceleration
    • SSE3
    • AVX256
    • NEON
    • RISC-V V1.0

Dependencies

~4.5MB
~85K SLoC