Thanks for all the great ideas! Michael your package looks pretty neat. I notice you use ka9q-radio to grab a very wide spectrum so you can do the de-chirping yourself. I think I can add dechirping to radiod so you wouldn't have to work with such a high sample rate IQ stream.
It would generalize my existing fine tuning oscillator/mixer that follows the IFFT in the fast convolution. It's necessary because downconversion by FFT bin rotation must be in integral bins, ie, 40 Hz steps. When you give radiod a radio frequency, it computes the integer number of FFT bins to rotate and a remainder that tunes the post-IFFT oscillator in a +/-20 Hz range. (The Fourier mixing theorem: multiplication by a complex exponential, ie, mixing, in one domain becomes a shift in the other domain.)
I can easily modify that post-IFFT mixer LO to cover a much wider range and with chirping. The rest of the channel could stay the same. You'd probably want IQ output, but I could also supply AM, SSB, FM, whatever.
I would add two parameters to the radiod control protocol, eg,
chirp rate, Hz/s (negative or positive)
chirp start time, UTC or relative input sample count
At the appointed time the post-IFFT complex LO would start from 0 Hz and ramp negative or positive at the specified rate. The predetection IF bandwidth in the fast convolution would have to be wide enough to capture the chirp during a single frame time (20 ms), so if the chirp rate is 100 kHz/sec then the IF and pre-detection filter bandwidth would be >= 2 kHz. This is actually pretty low so you could do your own additional filtering, or you could turn on my "filter2", the optional secondary filter I put in mainly for sharp CW filtering.
I've been thinking of adding optional output sample rate conversion and it wouldn't be hard to do (I already use libsamplerate in 'monitor'). That could decouple the output sample rate from the instantaneous predetection IF bandwidth. Right now they're the same, eg., for NBFM the output sample rate is usually 24 kHz because I need ~18 kHz of IF bandwidth even though the audio baseband only goes to 5 kHz or so. I haven't done it yet. I usually feed FM demodulator output to Opus, which still produces a low bit rate stream on a high input sample rate if the actual bandwidth isn't very large.
Anyway, doing the dechirp inside ka9q-radio can greatly reduce the number of samples you have to deal with.
Phil
To view this discussion visit https://groups.google.com/d/msgid/hamsci/CB36B043-A660-48F7-B965-33226BF5FB89%40gmail.com.