Fast Hartley Transform (FHT) for AVR chips. This package is a modification of the outdated but popular ArduinoFHT library, which has been modified for ease of use and some memory optimizations.
What has been modified:
- The library architecture has been changed. Now, if you need a component, you need to import its header. Inside it is the declaration of functions, and the allocation of memory for buffers and value maps.
- Removed the map files of the calculated values and placed directly in the headers.
- Since the fht_mag_lin8 function works relatively poorly, a fht_mag_lin8_no_asm function was developed that is not written in assembly. Its essence is the use of Fast RSS, which was borrowed from the ApproxFFT library, which also has a refined look and feel and use of PROGMEM.
- Added support for PlatformIO, as well as the placement of the library in the Arduino repository.
What you need help with:
- Testing of all types of transformations based on different input data sizes, as well as varieties of AVR chips.
- Conversion of assembly codes to C code, for the possibility of porting to other architectures, as well as the ability to add 512 sample transformations. In particular, the transformation of a butterfly is interesting.
- Writing and finalizing documentation.
Open an issue on this GitHub page, we will try to solve your problems as soon as possible. We kindly ask you to check the source library for a recurrence of a bug before notifying about it. If it is present there, it is unlikely that without the help of a person who knows the assembler, it will be possible to fix it.