project:sdr:fcl
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
project:sdr:fcl [2016/07/10 08:32] – [Usage] spectrum oversample jenda | project:sdr:fcl [2016/11/25 07:29] (current) – ↷ Links adapted because of a move operation ruza | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== FCL, a fast spectrum channelizer ====== | ====== FCL, a fast spectrum channelizer ====== | ||
- | FCL splits wideband spectrum from your SDR into narrowband channels. This is useful for networks that have lots of transmitters side-by-side, | + | FCL splits wideband spectrum from your SDR into narrowband channels. This is useful for networks that have lots of transmitters side-by-side, |
It supports everything you would expect from a decent channelizer: | It supports everything you would expect from a decent channelizer: | ||
Line 11: | Line 11: | ||
We use a straightforward implementation that is cache- and vector-friendly and we have a sane pthreads scheduler. At least on our computers, FCL is 2 to 5 times faster than [[http:// | We use a straightforward implementation that is cache- and vector-friendly and we have a sane pthreads scheduler. At least on our computers, FCL is 2 to 5 times faster than [[http:// | ||
+ | |||
+ | You can find description of the mathematical principles of the channelizer in Chapter 2 of [[https:// | ||
The following chart compares FCL with GnuRadio 3.7.10. FCL was tuned using the hints below on this page, GnuRadio was profiled using volk_profile. Frequency correction in FCL was disabled. | The following chart compares FCL with GnuRadio 3.7.10. FCL was tuned using the hints below on this page, GnuRadio was profiled using volk_profile. Frequency correction in FCL was disabled. | ||
Line 20: | Line 22: | ||
===== Downloads ===== | ===== Downloads ===== | ||
- | http:// | + | https:// |
===== Usage ===== | ===== Usage ===== | ||
Line 35: | Line 37: | ||
< | < | ||
mkfifo / | mkfifo / | ||
- | mkfifo /tmp/pipe | ||
- | rtl_sdr -f 90e6 -s 2e6 -g 49 -p 44 - | ./fcl -n 20 -s 13 -f " | + | rtl_sdr -f 90e6 -s 2e6 -g 49 -p 44 - | ./fcl -n 20 -s 13 -f " |
</ | </ | ||
- | i.e. read data as uint8_t, channelize to 20 channels with 20/13 oversample, select channels 3 and 8 (they are interleaved in the output stream, use the GnuRadio Deinterleave block to get them), read frequency correction from /tmp/pipe, output to / | + | i.e. read data as uint8_t, channelize to 20 channels with 20/13 oversample, select channels 3 and 8 (they are interleaved in the output stream, use the GnuRadio Deinterleave block to get them), output to / |
- | The tool listens on localhost: | + | The tool listens on localhost: |
* setrot - set frequency correction in // | * setrot - set frequency correction in // | ||
* getrot - print current frequency correction | * getrot - print current frequency correction | ||
Line 47: | Line 48: | ||
* getpwr - print relative power of your channels. You can use this to e.g. detect BTSs | * getpwr - print relative power of your channels. You can use this to e.g. detect BTSs | ||
* getpwn N - increase number of FFT bins N-times (i.e. get much more detailed view of the spectrum); 1 <= N <= 32 | * getpwn N - increase number of FFT bins N-times (i.e. get much more detailed view of the spectrum); 1 <= N <= 32 | ||
+ | * gethisto - print histogram (evenly spaced at [0, 1] absolute values of input floats) of samples | ||
There is a convenient wrapper around gnuradio firdes called fir.py. | There is a convenient wrapper around gnuradio firdes called fir.py. |
project/sdr/fcl.1468139561.txt.gz · Last modified: 2016/07/10 08:32 by jenda