Fast Fourier transform in Assembler

Discuss development of drivers for external hardware and components, such as LCD screens, sensors, motor drivers, etc.
Target audience: Users and developers of drivers.
Post Reply
User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Fast Fourier transform in Assembler

Post by pythoncoder » Mon Feb 05, 2018 11:30 am

Not really a driver for external components but I couldn't find a better place for this.

I've updated this rather old library with considerably improved documentation. There are also improvements to the Python code (the assembler code is unchanged). As an example the test/demo programs contained workrounds for firmware issues which have long been fixed.

It uses ARM Thumb assembler so it's specific to STM processors. Data arrays comprise floats and are processed using the on-chip FPU. On a Pyboard it does a 1024 point transform in 12ms. It supports polar and dB conversion and the use of window functions. It uses the Cooley-Tukey DFT algorithm so sample arrays must comprise 2**N elements where N is an integer. To save RAM transforms are performed in-place (i.e. the input arrays are used for output values).

It supports data acquisition using a Pyboard ADC with simple demo programs for this.

Interface changes are minimal and designed not to break existing applications.
Peter Hinch
Index to my micropython libraries.

Post Reply