Skip to content

fhchl/pimp

Repository files navigation

pimp

Naive implementation of some adaptive filters in C. Also for ARM, so runs on Bela.

The following algorithms are implemented (and tested!):

  • Least-mean-squared filter
  • Fast block-wise Least-mean-squared filter
  • Recursive-Least-Squares filter

Get started

Clone

git clone https://github.com/fhchl/pimp.git
cd pimp
git submodule init && git submodule update

Build

mkdir build
cd build
cmake ..
make

Build for float instead of double

cmake .. -D PIMP_USE_DOUBLE=0
make

Build with pocketfft for BlockLMSFilter on x86 (only supports doubles)

cmake .. -D PIMP_FFTLIB=pocketfft
make

Build with Ne10 for BlockLMSFilter on ARM (only supports floats)

cmake .. -D PIMP_FFTLIB=ne10
make

Also build tests (requires python with numpy and scipy)

cmake .. -D PIMP_BUILD_TESTS=1 -D PIMP_FFTLIB=pocketfft
make

Run tests

make test

Cross compile for arm but test on x86

As described here: https://azeria-labs.com/arm-on-x86-qemu-user/

qemu-arm -L /usr/arm-linux-gnueabihf ./test_fft

About

Adaptive filters in C.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published