Skip to content

Manual squelch setting

Tomasz Lemiech edited this page Oct 3, 2022 · 6 revisions

Squelch in RTLSDR-Airband is the same feature that you have in every analog scanner. When the signal level drops below a certain value, the squelch closes, ie. the signal gets muted.

RTLSDR-Airband uses automatic squelch by default. It constantly estimates the noise floor level in each channel and opens when the signal level exceeds the noise level estimate by about 10 dB. For proper operation it requires each channel to have a period of silence every now and then (and it means radio silence, not microphone silence - if the carrier is being transmitted, it's not a silence, even if nobody is speaking).

This approach works fine for most cases. However there are channels which transmit continuously, like ATIS (automatic airport information) or AWOS (weather information). If these are your channels of interest, you might find it necessary to set squelch manually. This can be done in two ways:

  • squelch_threshold (integer, <= 0) - specifies the minimum signal level (in dBFS) that should cause the squelch to open.
  • squelch_snr_threshold (integer or float, >= 0) - specifies the minimum signal-to-noise ratio (in dB) that should cause the squelch to open

These options are configurable per channel. Do not use them both simultaneously. Only one of them should be specified for the given channel.

Multichannel mode

channels: (
  {
    freq = 123.00;
    squelch_threshold = -30;        # in dB relative to the full scale
    outputs: ( ... );
  },
  {
    freq = 124.00;
    squelch_snr_threshold = 20.5;   # in dB relative to the noise floor
    outputs: ( ... );
  },
  ...
);

There are two channels in the above example:

  • The first channel is configured such that the squelch opens whenever the signal level exceeds -30 dBFS (decibels related to the full scale of the analog-to-digital converter, where 0 dBFS is maximum value possible and everything below it is negative). In order to keep the squelch open all the time, just set this value sufficiently low, so that it is always below the noise floor level (-80 dBFS for example).
  • The second channel is configured such that the squelch opens whenever the signal level is 20.5 dB higher than the noise floor (which is computed dynamically). As the default value for this option is 9.54 dB, setting it to 20.5 dB causes the squelch to be less sensitive than normal (ie. it will open only on strong transmissions). Setting squelch_snr_threshold causes the squelch to be open all the time.

Scan mode

channels: (
  {
    freqs = ( 126.3, 121.5, 128.225, 131.375 );
    squelch_threshold = -30;
# or...
    squelch_threshold = ( -30, -25, 0, -35.5 );
    outputs: ( ... );
  },
  ...
);

In scan mode, squelch can be configured in four ways:

  • squelch_threshold = -30; - this sets the squelch threshold to -30 dBFS for all scanned frequencies.
  • squelch_threshold = ( -30, -25, 0, -35.5 ); - this sets the squelch threshold separately for each scanned frequency. The order of threshold values is the same as the order of frequencies on the freqs list (of course the length of squelch list shall be no less than the length of freqs). A value of 0 means that auto squelch shall be used for this frequency.
  • squelch_snr_threshold = 20.5; - sets the squelch SNR threshold to 20.5 dB for all scanned frequencies.
  • squelch_snr_threshold = ( 30, 5, 0, -1.0 ); - this sets the squelch SNR threshold separately for each scanned frequency. A value of zero sets the squelch to be open all the time. A value of -1.0 (the only negative value allowed) skips the squelch SNR threshold configuration for a particular channel (ie. keeps the SNR threshold at the default value).

How to find the proper squelch value

When working in multichannel mode, first set the squelch_threshold to some low value, for example -80. This should cause the squelch to be always open. Run the program in the foreground and observe signal level in the textual waterfall of that channel. Then guess the value which will work for your case (of course it should be lower than the typical signal level in the channel) and put it in the config file.

In scan mode you can't set the squelch very low, as it will block the scanner, so use trial and error to find out a value which is high enough and then finetune it. Try using the simpler config variant first (ie. common threshold value for all frequencies). Use the advanced variant only if the first one does not perform well.

Clone this wiki locally