[TangerineSDR] ka9q-web success
John Melton
john.d.melton at googlemail.com
Wed Feb 28 06:53:43 EST 2024
I am also now on this list as well.
-- John G0ORX
On 2/28/24 11:30, Phil Karn via TangerineSDR wrote:
> Hi John,
>
> I just realized I wasn't subscribed to the TangerineSDR list, mainly
> because people usually cross-post to it and HamSCI and/or to me
> personally. I'm on it now.
>
> I'm glad you like G0ORX's ka9q-web; wish I could take credit for it
> but it's John's.
>
> Well, I guess I can take credit for part of it, namely designing
> ka9q-radio's multicast interfaces to make it easy to add on programs
> like ka9q-web as independent modules. You've already seen how you can
> run it on any machine on the same LAN as the ka9q-radio system(s) you
> want to control, not necessarily the same system(s) as those running
> ka9q-radio itself. I'm really happy John did this.
>
> This modularity should come in handy when you have a lot of small
> standalone boxes (eg., Raspberry Pis) each running ka9q-radio with a
> single SDR front end. I personally avoid running more than one copy of
> ka9q-radio on a computer because SDR front ends produce a lot of data
> that hits the USB subsystem pretty hard. We already have enough USB
> problems even with single SDR front ends. Also, I don't like to run
> much more than the one copy of ka9q-radio on each system, especially
> if the Linux kernel doesn't support real time scheduling.
>
> Monday night I pushed over some patches to fventuri/ka9q-web that
> enable IPv6 on the web service side. This should make it even easier
> to access the server remotely through a firewall, without all that
> port-forwarding klugery. Assuming of course that both ISPs and all
> routers in the path also support IPv6. It can be a pain to set up, but
> it's a good investment.
>
> Re your suggestion to zoom in further, I'm already thinking about
> this. It'll take some work, though. Right now, the spectral display is
> supported by the "spectrum" pseudo-demodulator inside ka9q-radio. It's
> one of 4 demodulator types in ka9q-radio, the others are linear
> (CW/SSB/IQ/AM); FM; and WFM (broadcast FM stereo.
>
> The ka9q-radio demodulators are fed frequency domain signals from a
> shared forward FFT. All of them perform an inverse FFT *except* for
> "spectrum"; it noncoherently sums up groups of FFT bin energies into
> the larger bins passed to the user. The FFT bins are by default 40 Hz
> wide, so the user can only request output bins in integer multiples of
> 40 Hz. So the closest you can now zoom into a spectrum using ka9q-web
> is 40 Hz per horizontal pixel.
>
> So I'm thinking of implementing another time domain/frequency domain
> conversion within the "spectrum" demodulator: convert a segment of the
> frequency domain data back to the time domain and then forward again
> to the frequency domain with narrower bins. This would require
> combining several 20 ms frames and increase latency, but this would
> also give me the chance to apply a time domain sampling window to
> reduce spectral leakage.
>
> Right now, while the A/D data fed to the forward FFT is partly
> overlapped in time to allow fast convolution, no windowing is applied
> in the time domain to keep the sin(f)/f spectral response of each 40
> Hz bin from smearing across adjacent bins. (I currently use Kaiser
> windowing only in the small IFFTs for the regular demodulators, not
> the big forward FFT.)
>
> This is no problem with a wide spectrum (e.g, 0-32 MHz) since those
> sidelobes are small compared to each pixel on your screen, but as you
> get down toward 1 bin/pixel you do start to see the sidelobes from the
> implicit rectangular (ie., missing) forward time window. This is
> obvious in ka9q-web when you zoom in on a strong AM signal with
> maximum resolution -- the carrier is noticeably spread out. It's also
> hard to see the 100 Hz subcarrier on WWV.
>
> I can make all this transparent to ka9q-web; the "spectrum" demod will
> allow smaller noncoherent bins, and give more accurate results for
> bins that are small multiples of 40 Hz.
>
> Since I'd only do this when zoomed in, the IFFT/second FFT operation
> will cover only a fraction of the input spectrum so it shouldn't cost
> much CPU. In fact, I have a bigger performance problem now just
> rendering a wideband spectrum (eg., 0-32 MHz) in ka9q-web because that
> requires summing every 40 Hz FFT bin into a small set of noncoherent
> bins for display. That's currently taking about 21% of a single i7
> core, almost half as much (50%) as the big forward FFT. Since I can't
> avoid that summing operation, I'm going to look into vectorizing it.
>
> Phil
>
>
>
More information about the TangerineSDR
mailing list