I want to build a Python module receiving FFT data from a receiver (bandwidth from 20 mhz to 6 ghz). My goal is:
- Estimate noise floor.
- Detect energy over the noise floor (signal detection).
- Classify detected signal: Center frequency, low frequency, high frequency.
So, the input to this module will be FFT data with unknown signal/s and white noise. The expected output is a description of the signal/s detected (if any).
I was reading a lot of documentation but I don't see any Scipy.signal library performing these functions.
Related to point 1, I didn't find any library.
Related to point 2, I think find peaks could be a good option, but I need to estimate first noise floor.
Related to point 3, I only was able to find some matlab functions: obw, meanfreq, medfreq and powerbw. Also I found a python spectrum library but seems to create a Power Spectrum Density without signal description (I mean center, high and low frequency).
Note: this module is not oriented to audio spectrum analyzer (spectrum bandwidth from 20 mhz to 6 ghz).
Anyone knows some python library to perform this functions? Any advice to start building this module?