Squelch algorithms

Pieter-Tjerk de Boer, PA3FWM pa3fwm@amsat.org

(This is an adapted version of part of an article I wrote for the Dutch amateur radio magazine Electron, January 2018.)

A squelch ensures that a receiver is quiet when no (desired) signal is being received, instead of making the band noise audible. The "decision" whether or not there is a desired signal, can be taken in different ways. Let's consider a few; most of them could be implemented either in analog hardware or digitally in software.

(1) The most obvious possibility is of course looking at the received signal strength. Only if that is above a user-set threshold, the squelch opens. A major disadvantage is that the threshold has to be adapted manually to the noise level, and that very weak but (in SSB and CW) still copyable stations produce too little increase in the total received power to open the squelch.

(2) For FM, a nice technique is to look at the higher audio frequencies (above the actual modulation) in the FM demodulator's output signal. Those are rather strong if pure noise is being received, but as soon as a signal is received, the high-frequency components will be very small.

(3) W9MKV and W9YAN already described a squelch for SSB on HF back in 1982 [1]. This works by continuously measuring what the dominant audio frequency is, and checking if this changes a couple of times per second; if so, then the squelch should open. The idea is that human speech has several syllables per second, of varying pitch. Their idea is based on a Motorola design.

(4) In 2013, DB1NV proposed [2] a squelch which uses two filters to monitor the audio power between 200 and 600 Hz, and between 1000 and 1500 Hz. Human speech has much more power in the former frequency range, while in the absence of speech (pure noise) both ranges are equally strong.

(5) I myself invented an algorithm for use in the WebSDR. This algorithm uses the fact that to send the audio over the Internet to the user, it is separated into a "predictable" part and a "remainder". The next sample of the predictable part is calculated on both sides (server and listener) from the previous samples and therefore does not need to be sent over the Internet. This prediction is never perfect; the difference is the "remainder"; only this needs to be sent.

Pure noise is totally unpredictable, so in case of pure noise the "remainder" part is much larger than the "predictable" part. Conversely, in human voice, especially vowels, the "remainder" part is quite small. So by continuously comparing the magnitude of the "remainder" to that of the "predictable" part, the computer can decide whether to open the squelch. This has worked well for several years in the WebSDR software. However, I wasn't quite satisfied with it, among others because the optimal choice of the threshold depends on the bandwidth, and because I'd rather decouple the squelch from the audio data compression.

Hence the development of a new algorithm, described here.


[1] Frank S. Reid W9MKV en David A. Link W9YAN: "Smart" Squelch for SSB. 73 Magazine, August 1982.
[2] Jochen Jirmann DB1NV: "Entwicklung einer spracherkennenden Rauschsperre für SSB". UKW-Tagung Weinheim 2013. Also in Funkamateur 7/2014.
Text on this page is copyright 2017, P.T. de Boer, pa3fwm@amsat.org .
Republication is only allowed with my explicit permission.