How exactly is GQRX converting signal in any frequency to produce audio output?

Is it actually done by gqrx or some other element of the stack?


GQRX contains signal processing code, mostly executed in the shape of GNU Radio flow graphs, that convert the complex baseband representation of the RF signal that you get from your SDR device, to audio samples, which are then handed off to your operating system's sound system, which then hands them to the sound card, which converts them to analog, and speakers finally produce the audio output.

So, total flow:

  • Antenna picks of RF electric or magnetic field, converts to conducted wave
  • SDR device takes said wave, amplifies, mixes, filters down to low IF or IQ baseband
  • SDR device has an ADC (analog-to-digital converter) that converts the electrical signal to digital numbers, so-called samples
  • If they aren't already, they're typically mixed down to complex baseband.
  • The complex baseband samples are sent to your PC
  • The operating system handles the data transfer between the SDR device hardware and its software driver
  • The SDR device driver hands them off to gqrx (which under the hood uses GNU Radio to deal with the sample processing)
  • gqrx mixes, filters and decimates the high-rate complex samples to select the channel you care about into a typically lower-rate string
  • gqrx applies a demodulator algorithm to these, resulting in real-valued audio samples
  • gqrx further processes the audio samples (filtering, de-emphasis, gain…)
  • gqrx uses your operating system's audio system interface to hand these samples off
  • that sound system might resample them to a sampling rate that works with the sound card, and/or add in other audio streams
  • the sound system converts the audio samples into the format the sound card understands and makes sure that a new buffer of samples is present whenever the sound card is done with the last one
  • the sound card takes the audio samples and converts them to analog domain
  • the analog audio signal gets filtered and amplified
  • the resulting audio-frequency analog voltage signal can be fed to a speaker
  • the speaker converts the electrical signal to audible output

Thus, I can't quite pinpoint where the "conversion to audio output" happens, specifically. I'd argue that strictly speaking it's in the speaker, but you probably mean "conversion to some representation of the resultant audible signal", and that would probably be part of the GNU Radio flow graphs that gqrx sets up. If you mean "where is the analog audio-frequency electrical signal produced", it's in the sound card.

  • $\begingroup$ Amazing answer, thanks! $\endgroup$ – Łukasz Zaroda Jan 26 '20 at 1:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.