[Ground-station] KA9Q SDR updates
karn at ka9q.net
Thu Jun 21 01:42:48 EDT 2018
On 6/19/18 22:20, Paul Williamson via Ground-Station wrote:
> On Ubuntu 16.04, I also ran into the fftwf_make_planner_thread_safe()
Many of the cycles in my package are spent in FFTs filtering by fast
convolution, so I went to some lengths to perform these transforms in
separate parallel threads whenever possible. That's why I'm using the
newer version of the FFTW3 package that provides this call.
Each filter runs in two separate threads. The first does the forward
FFT, i.e., time -> frequency conversion, and hands the frequency domain
data to the second thread, which multiplies it by the desired response
and performs the IFFT (frequency->time) conversion.
There can be several filters, each with their own frequency response and
decimation ratio, all sharing a common forward FFT, and with each
FFT/IFFT running in its own thread. Example: FM mode, where the
demodulated audio enters two filters. One selects the 0-300 Hz range and
decimates to a 1500 Hz sampling rate to detect and decode PL/CTCSS
tones. The other cuts 0-300 Hz and applies a -6dB/octave de-emphasis
curve to produce the audio you actually hear. The two filters share a
common forward FFT so the two IFFTs can run in parallel on separate CPU
The "planner" refers to the part of FFTW3 that creates new FFT instances
as opposed to actually executing them. The earlier version is
thread-safe during execution but not setup.
The newer version has been bundled with Debian Linux for some time, and
since Ubuntu is based on Debian I had assumed that the current versions
of Ubuntu would also have it. Is that not true?
More information about the Ground-Station