Skip to content

Configuring channels for multichannel mode

charlie-foxtrot edited this page Apr 24, 2023 · 12 revisions

Multichannel mode explained

If you have ever used any graphical SDR console (like SDRSharp or GQRX) you already have an idea of how multichannel mode works. You tune the receiver to a particular center frequency and then you can observe a specific chunk of frequency spectrum all at once. The width of this chunk is equal to the sampling rate configured on the device. Once you have the waterfall running, you may click anywhere on it to listen to any narrowband channel that fits in the spectrum chunk that you see. RTLSDR-Airband does the same thing - except that it can simultaneously demodulate multiple narrowband channels and produce a separate audio stream for each one.

Channel configuration

channels is a list of channels to be received. Each channel is a separate group of settings enclosed in braces { }. As we are working in multichannel mode, you may define any number of channels you want.

Syntax

devices: ({
  mode = "multichannel";    # this can be omitted as it's the default setting
  ...                       # other device settings
  channels: (
    {
      freq = 123.45;
#     modulation = "am";
#     afc = 0;
      outputs: ( ... );
    }
  );
});

Want more channels? Just repeat the braced section several times and separate individual sections with a comma, like this:

devices: ({
  mode = "multichannel";    # this can be omitted as it's the default setting
  ...                       # other device settings
  channels: (
    {
      freq = 123.45;
#     modulation = "am";
#     afc = 0;
      outputs: ( ... );
    },
    {
      freq = 123.6;
#     modulation = "am";
#     ampfactor = 1.0;
#     afc = 0;
#     ctcss = 110.9;
#     notch = 110.9;
#     notch_q = 10.0;
#     bandwidth = 8000;
      outputs: ( ... );
    }
#   , .... more channels here
  );
});

Remember, do not put a comma after the closing brace of the last channel. This is a syntax error.

Explanation of keywords

  • freq (frequency, required) - this is the frequency of your channel of interest.
  • modulation (string, optional) - channel modulation, either "am" (the default) or "nfm". The latter is only available if NFM support has been enabled when building the program, otherwise you will get "unknown modulation" error on program start.
  • ampfactor (float, optional) - amplification factor, ie. the the volume knob for this stream. The default is 1.0, which means default volume (unchanged). Any positive value is allowed. Values between 0.0 and 1.0 cause the stream to be attenuated, while values above 1.0 cause it to be amplified. You can use this feature to change the volume of all outputs from this channel. NOTE: ampfactor can be set on a mixer output as well and will be applied afterward.
  • afc (integer, optional) - automatic frequency correction. The default is 0 (off). When turned on (by putting a positive number here) it will attempt to switch to adjacent FFT bin in case when the signal power there is higher than in the FFT bin chosen for the configured channel frequency. Most probably you won't need this in practice.
  • ctcss (float, optional) - enables Continuous Tone-Coded Squelch System (CTCSS) support with a tone at the given frequency (in Hertz). Default: disabled. See CTCSS for more details.
  • notch (float, optional) - enables notch filter and sets it to the given frequency (in Hertz). Default: disabled. See Notch filter for more details.
  • notch_q (float or a list of floats, optional) - configures the selectivity of the notch filter. The higher the value, the more selective (i.e. narrower) the filter is. The default is 10.0. See Notch filter for more details.
  • bandwidth (frequency or a list of frequencies, optional) - enables lowpass-filtering of the channelized I/Q signal (before demodulation). This might help in situations where neighboring channels are closely spaced and interfere with the channel of interest. See Limiting channel bandwidth for more details.
  • outputs (list, required) - a list of outputs where the produced audio is to be sent. Each channel must have at least one output configured.

Now you may want to read about:

Or if you don't need this, jump straight to:

Clone this wiki locally