Name Date Size #Lines LOC

..--

.github/H--262245

applications/H--5,2774,012

docs/H--1,4691,180

examples/H--2,4801,579

modules/H--40,01225,042

test/H--886698

test_app/H--10672

.gitignoreH A D09-Nov-2023763 6147

.gitlab-ci.ymlH A D17-Jun-20259.7 KiB350297

.pre-commit-config.yamlH A D05-Mar-2024724 2018

CHANGELOG.mdH A D27-Jun-20253.7 KiB175116

CMakeLists.txtH A D17-Jun-202513.3 KiB229212

CONTRIBUTING.mdH A D05-Mar-20243.3 KiB7150

KconfigH A D09-Aug-20241.4 KiB6252

LICENSEH A D13-Feb-201911.1 KiB203169

README.mdH A D12-Aug-20244.9 KiB8350

build_all.shH A D15-Aug-20242.7 KiB9261

component.mkH A D09-Nov-20233.2 KiB107103

idf_component.ymlH A D16-Aug-2024638 2419

README.md

1[![Component Registry](https://components.espressif.com/components/espressif/esp-dsp/badge.svg)](https://components.espressif.com/components/espressif/esp-dsp)
2
3# Espressif DSP Library
4
5ESP-DSP is the official DSP library for all Espressif chips. The library contains optimized functions for [ESP32](https://espressif.com/en/products/hardware/esp32/overview), [ESP32-S3](https://espressif.com/en/products/hardware/esp32s3/overview) and [ESP32P4](https://www.espressif.com/en/products/socs/esp32-p4) chips.
6
7## Overview
8
9ESP-DSP is intended to be used as an [ESP-IDF](https://github.com/espressif/esp-idf) component. For the introduction to ESP-IDF, refer to the [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/).
10
11The ESP-DSP library includes implementations of the following functions:
12- Matrix multiplication: [reference](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-apis.html#matrix-operations-apis)
13- Dot product: [reference](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-apis.html#dot-product), [example](https://github.com/espressif/esp-dsp/tree/master/examples/dotprod)
14- FFT: [reference](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-apis.html#fft), [example](https://github.com/espressif/esp-dsp/tree/master/examples/fft)
15- IIR: [reference](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-apis.html#iir), [example](https://github.com/espressif/esp-dsp/tree/master/examples/iir)
16- FIR: [reference](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-apis.html#fir)
17- Vector math operations: [reference](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-apis.html#math)
18- Kalman filter: [reference](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-apis.html#kalman)
19
20Many of the library functions are written in assembly and are optimized for the CPU configuration used in the ESP32. In addition to the optimized implementations, reference implementations written in ANSI C are provided.
21
22Function implementations are provided for single precision floating point (32-bit float), and 16-bit signed integers.
23
24## Documentation
25
26- [ESP-DSP Overview](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-library.html)
27- [ESP-DSP API Reference](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-apis.html)
28- [ESP-DSP Benchmarks](https://docs.espressif.com/projects/esp-dsp/en/latest/esp-dsp-benchmarks.html)
29
30Documentation found in the above links is automatically generated from the contents of this repository. If you find that some information is missing or incomplete, please report an issue.
31
32## Installation and Usage
33
34The ESP-DSP library is a component for the [ESP-IDF build system](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html).
35
36The recommended way to use the component is to install it from the [IDF Component Registry](https://components.espressif.com/components/espressif/esp-dsp).
37
38### Adding ESP-DSP component to an existing project
39
40In the project directory, run:
41```bash
42idf.py add-dependency "espressif/esp-dsp"
43```
44This will add the esp-dsp component as a dependency to the `main` component of your project. You can also add it by editing the `idf_component.yml` file manually.
45
46### Downloading ESP-DSP examples
47
48You can download the example projects from the IDF Component Registry website or use the `idf.py create-project-from-example` command. For example:
49
50```bash
51idf.py create-project-from-example "espressif/esp-dsp:basic_math"
52```
53
54Please refer to the [IDF Component Registry](https://components.espressif.com/components/espressif/esp-dsp) for the download links and the instructions.
55
56You can also use Git to clone this repository and find all the examples in the `examples/` subdirectory. For the list of the examples, please see [README.md](examples/README.md) in the examples directory.
57
58### Building and running ESP-DSP examples
59
60Build, flash and monitor as this is usually done for ESP-IDF projects:
61
62```bash
63idf.py -p PORT flash monitor
64```
65
66where `PORT` is the UART port name of your development board, such as `/dev/ttyUSB0` or `COM1`.
67
68Note that you need to set up ESP-IDF before building the project. Refer to the [ESP-IDF Getting Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html) if you don't have the environment set up yet.
69
70## Reporting Issues
71
72If you have found an issue in ESP-DSP, or wish to submit an enhancement request, please use the [Issues](https://github.com/espressif/esp-dsp/issues) section on Github.
73
74For general questions related to this library, please use the [esp32.com forum](https://esp32.com/).
75
76## Contributing to ESP-DSP
77
78Please check [CONTRIBUTING.md](CONTRIBUTING.md) if you'd like to contribute to ESP-DSP.
79
80## Copyrights and License
81
82All original source code in this repository is Copyright (C) 2018-2023 Espressif Systems. This source code is licensed under the Apache License 2.0 as described in the file LICENSE.
83