Skip to content

DIGITAL SIGNAL PROCESSING

Note

This component provides a set of functions designed for signal processing on edge devices, with a focus on lightweight and efficient implementations of commonly used signal processing algorithms.

Note

This component is a wrapper and extension of the official ESP32 digital signal processing library ESP-DSP, providing higher-level API interfaces. In simple terms, the TinyMath library corresponds to the Math, Matrix, and DotProduct modules in ESP-DSP, while the other modules in ESP-DSP correspond to the TinyDSP library. Additionally, TinyDSP provides some functionalities not available in ESP-DSP, focusing on scenarios such as structural health monitoring.

COMPONENT DEPENDENCIES

set(src_dirs
    .
    signal
    filter
    transform
    support
)

set(include_dirs
    .
    include
    signal
    filter
    transform
    support
)

set(requires
    tiny_math
)

idf_component_register(SRC_DIRS ${src_dirs} INCLUDE_DIRS ${include_dirs} REQUIRES ${requires})

ARCHITECTURE AND DIRECTORY

Dependency Diagram

Code Tree

tiny_dsp/
├── include/                     
│   ├── tiny_dsp.h               # entrance header file
│   └── tiny_dsp_config.h        # dsp module configuration file
├── signal/
│   ├── tiny_conv.h              # convolution - header file
│   ├── tiny_conv.c              # convolution - source file
│   ├── tiny_conv_test.h         # convolution - test header file
│   ├── tiny_conv_test.c         # convolution - test source file
│   ├── tiny_corr.h              # correlation - header file
│   ├── tiny_corr.c              # correlation - source file
│   ├── tiny_corr_test.h         # correlation - test header file
│   ├── tiny_corr_test.c         # correlation - test source file
│   ├── tiny_resample.h          # resampling - header file
│   ├── tiny_resample.c          # resampling - source file
│   ├── tiny_resample_test.h     # resampling - test header file
│   └── tiny_resample_test.c     # resampling - test source file
├── filter/
│   ├── tiny_fir.h               # FIR filter - header file
│   ├── tiny_fir.c               # FIR filter - source file
│   ├── tiny_fir_test.h          # FIR filter - test header file
│   ├── tiny_fir_test.c          # FIR filter - test source file
│   ├── tiny_iir.h               # IIR filter - header file
│   ├── tiny_iir.c               # IIR filter - source file
│   ├── tiny_iir_test.h          # IIR filter - test header file
│   └── tiny_iir_test.c          # IIR filter - test source file
├── transform/
│   ├── tiny_fft.h               # fast fourier transform - header file
│   ├── tiny_fft.c               # fast fourier transform - source file
│   ├── tiny_fft_test.h          # fast fourier transform - test header file
│   ├── tiny_fft_test.c          # fast fourier transform - test source file
│   ├── tiny_dwt.h               # discrete wavelet transform - header file
│   ├── tiny_dwt.c               # discrete wavelet transform - source file
│   ├── tiny_dwt_test.h          # discrete wavelet transform - test header file
│   ├── tiny_dwt_test.c          # discrete wavelet transform - test source file
│   ├── tiny_ica.h               # independent component analysis - header file
│   ├── tiny_ica.c               # independent component analysis - source file
│   ├── tiny_ica_test.h          # independent component analysis - test header file
│   └── tiny_ica_test.c          # independent component analysis - test source file
└── support/
    ├── tiny_view.h              # signal view/support - header file
    ├── tiny_view.c              # signal view/support - source file
    ├── tiny_view_test.h         # signal view/support - test header file
    └── tiny_view_test.c         # signal view/support - test source file