Beaglebone: Control: Implementing FFTW for signal processing

Although I wrote an fft for my phd work to run on a dsp board, common fft algorithms that have been optimized are now extant.  Perhaps I’ll put my code here for posterity … assuming I can track it down after 20 years.  But, you’d be foolish to write your own code without a pretty compelling need.

The Beaglebone platform gives some powerful features, including a linux OS that allows you to run standard code.  The PRU allows you to sample inputs at a reliable and fast sampling rate.  Combine these two features, and you can do some nifty signal processing on the Beaglebone.

Although I would love to use the PRU to do the signal processing as well, that microcontroller was not designed for mathematical computations.

The standard fft algorithm is available from fftw.org.  Download it and copy it to your Beaglebone.

You can use

wget fftw.org/fftw-version.tar.gz

to download it.

Unpack it using tar.

tar -xzf fftw-version.tar.gz

You will need makeinfo.  Install using

sudo apt-get install texinfo

This requires that you have access to the internet from your Beaglebone.  See wireless access (I think).

Configure it from the installation directory.

./configure

make

make install

I’ve found issues with clock mismatches on beaglebone, so you might have to

find . -exec touch {} \;

before configure and make will work.

A useful command (nothing to do with this work, but I need to put it somewhere for future use) …

grep -Hr PATTERN PATH

allows you to recursively look through files in PATH to see if they contain PATTERN.

Posted in: Robotics

Comments are closed.