Sketch RLS is an adaptive filtering algorithm that brings sketching ideas into the classical recursive least squares algorithm. This is the python implementation of the algorithm.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
sim_data
README.md
adaptive_filters.py
figure_Complexity.py
figure_MSE_ar1.pdf
figure_MSE_plot.py
figure_MSE_sim.py
figure_MSE_test.py
figure_MSE_white.pdf
figure_complexity.pdf
filter_sim_routines.py
noise.py
sketch_rls.py
util.py

README.md

The Recursive Hessian Sketch for Adaptive Filtering

This is the companion code that was used to produce the figures of the paper The Recursive Hessian Sketch for Adaptive Filtering by Robin Scheibler and Martin Vetterli, submitted to ICASSP 2016.

Authors

Robin Scheibler, and Martin Vetterli are with Laboratory for Audiovisual Communications (LCAV) at EPFL.

Contact

Robin Scheibler
EPFL-IC-LCAV
BC Building
Station 14
1015 Lausanne

Run the code

All the code is pure python and uses only numpy, scipy, matplotlib. The code was run with ipython.

$ ipython --version
3.2.1

We use anaconda to install python, numpy, matplotlib, etc.

Code organization

All the classical adaptive filters are implemented in adaptive_filters.py.

The proposed algorithm is in sketch_rls.py.

Figures 2.

Simply run

$ ipython ./figure_Complexity.py

Figures 3.

Start an ipython cluster in the repository.

$ ipcluster start -n x

where x is the number of engines you want to use. You can change the number of loops directly in the script line 42. Then, run the command

$ ipython figure_MSE_sim.py

This will run the long simulation needed. The result will be stored in the folder sim_data and the name of the file will contain the date and time.

Copy the date and time in the file figure_MSE_plot.py line 61-64. Then run

$ ipython figure_MSE_plot.py

Finally, the file figure_MSE_test.py allows to be quickly edited to test different parameters.

$ ipython figure_MSE_test.py

License

Copyright (c) 2016, LCAV

This code is free to reuse for non-commercial purpose such as academic or educational. For any other use, please contact the authors.

Creative Commons License
Sketch RLS by LCAV, EPFL is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at https://github.com/LCAV/sketchrls.