CSP Community Spotlight: A Publicly Available python-Based SCF Estimator

The CSP Blog recently received a comment from a signal processor that needed a small amount of debugging help with their python spectral correlation estimator code.

The code uses a form of the time-smoothing method and aims to compute and plot the spectral correlation estimate as well as the corresponding coherence estimate. What is cool about this code is that it is clear, well-organized, on github, and is written using Jupyter Notebook. Moreover, there is a Google Colab function so that anyone can run the code from a chrome browser and see the results, even a python newbie like me. Tres moderne.

The researcher is Fabio Casagrande Hirono, and he is happy to share his code with the world. We found a little bug relating to the calculation of the denominator of the coherence function and after that things worked well.

The plotting of the obtained spectral correlation and coherence estimates is a bit different than my style. I use MATLAB’s waterfall.m, but Fabio uses matplotlib, which is likely to be of high interest to a lot of CSP Blog readers. Here is a sample:

Cool colors! And unlike my 3D plots, the hidden-line effect is not completely opaque–you can see the PSD curve lurking behind the bit-rate feature.

So go check it out. But remember that if you really want to learn CSP, or any kind of signal processing, writing your own code is indispensable. But now you have another tool in the toolkit to help you along the way.

Thanks Fabio!

Author: Chad Spooner

I'm a signal processing researcher specializing in cyclostationary signal processing (CSP) for communication signals. I hope to use this blog to help others with their cyclo-projects and to learn more about how CSP is being used and extended worldwide.

Leave a Comment, Ask a Question, or Point out an Error