/propeller-dsp-spin

P8X32A/Propeller, P2X8C4M64P/Propeller 2 library of DSP routines

Primary LanguagePropeller SpinMIT LicenseMIT

propeller-dsp-spin


This is a P8X32A/Propeller, P2X8C4M64P/Propeller 2 library of DSP routines.

IMPORTANT: This software is meant to be used with the spin-standard-library (P8X32A) or p2-spin-standard-library (P2X8C4M64P). Please install the applicable library first before attempting to use this code, otherwise you will be missing several files required to build the project.

Salient Features

P1:

  • FFT/Fast Fourier Transform, default 1024-point (PASM: ~34ms using original test input data)

P2:

  • FFT/Fast Fourier Transform, default 1024-point (SPIN2: ~10ms using original test input data)

Requirements

P1/SPIN1:

  • spin-standard-library
  • Memory: FFT-N points longs * 2 (e.g., 1024-point FFT requires 1024 * 4 * 2 = 8192bytes)

P2/SPIN2:

  • p2-spin-standard-library
  • Memory: FFT-N points longs * 2 (e.g., 1024-point FFT requires 1024 * 4 * 2 = 8192bytes)

Compiler Compatibility

Processor Language Compiler Backend Status
P1 SPIN1 FlexSpin (6.1.1) Bytecode OK
P1 SPIN1 FlexSpin (6.1.1) Native/PASM OK
P2 SPIN2 FlexSpin (6.1.1) NuCode Builds, doesn't run
P2 SPIN2 FlexSpin (6.1.1) Native/PASM2 OK

(other versions or toolchains not listed are not supported, and may or may not work)

Limitations

  • Very early in development - may malfunction, or outright fail to build
  • TBD

Acknowledgements

  • dsp.fft.spin[2]: Based on Michael Rychlik (heater)'s heater_fft.spin