Repository navigation
Mode Tone decoders CTCSS DCS DTMF selcall
Signalling tones and codes in narrow-FM audio or sound-card audio.
| Group | Two-way radio |
| Default frequency | 145.5 MHz |
| Default sample rate | 2 Msps |
| In the mode list | CTCSS, DCS, DTMF, selcall |
New in 0.2.7. Tested on generated signals only so far; recordings of real signals are welcome.
The mode Tone decoders (CTCSS, DCS, DTMF, selcall) (digital voice and two-way radio group) listens to the audio of a narrow-FM channel, or to a sound card, and reports every signalling tone and code in it. It is receive only.
| System | What is reported |
|---|---|
| CTCSS | the 50 tones of the EIA / TIA-603 list and its extension (67.0 to 254.1 Hz, "standard" or "extended"), with the measured frequency; the level of all 50 tones as bars |
| DCS | the 23 bit Golay (23,12) code word at 134.4 bit/s, as D023N or D023I (normal or inverted polarity), found at any start phase of the repeating word; whether the code is in the usual list of 83; the other code the same waveform reads as |
| DTMF | the 16 keys; keys pressed within 2.5 s are shown as one string |
| Five-tone sequential calls | ZVEI1 / PZVEI, ZVEI2 / ZVEI3, CCIR, EEA, EIA and DZVEI, with the repeat tone resolved to the repeated digit (the raw tones are in the details); 3 to 12 tones |
| SELCAL | the 16 tones of the aviation plan, two pairs (AB-CD) |
| Two-tone sequential | a generic page of a first tone (0.25 to 2 s) and a second one (0.8 s and longer): both frequencies are measured and shown |
The Live tab shows the sub-audible tone or code now, the strongest voice-band tone, the DTMF keys, the audio spectrum and the CTCSS bars. The History tab lists everything heard with its length and details.
Under Receiver the sound can be opened (a) always, (b) on any CTCSS tone or DCS code, (c) only on the chosen tone or code. It works like the squelch of a radio with CTCSS or DCS. It acts on the Listen sound only (the sub-audible tones are filtered out of it); the decoders always run. The state shows in the status bar and in the telemetry.
- An FM channel from a radio: the same front end as APRS / packet (offset removal, 96 kHz resampling, AFC, discriminator). 5 kHz of deviation is 0 dB.
- A sound-card source (Source panel, sound card): the real audio is used as it is at any rate of 8 kHz and up. Full scale is 5 kHz deviation.
All detectors work on the 8 kHz audio. CTCSS: a 4th-order 300 Hz low-pass, 1 kHz, a one-second Hann window, 50 Goertzel filters; a tone is announced when it holds the strongest place, stands clear of every other tone (3 times the power) and has at least 12 % of the band energy for 0.4 s. DCS: the same band, adaptive threshold, 12 timing phases, three consecutive words voted bit by bit, Golay check, marker bits 100, both polarities, all 23 rotations; the same code must come twice. DTMF: Goertzel filters over 205 samples with row/column dominance and twist tests. Five-tone: Goertzel filters on the tones of all plans over 16 ms, a two-step change tracker, the sequence closes after 160 ms of silence and is matched against every plan; the plan whose usual tone length is nearest is listed first (tone lengths are vendor specific, so several plans may fit the same digits: the others are named in the details). SELCAL: 100 ms Hann windows, two tones in balance, each pair at least 0.55 s. Two-tone: a 64 ms FFT with a parabolic frequency estimate.
- Tested with synthetic tones in noise and speech-like interference (harmonic voice with gliding pitch, syllables and fricatives) in loopback, not with real radios.
- The DCS bit polarity of the air (which deviation sign is a 1) is not checked against a real transmitter: if a radio's codes show as the inverted code, the receiver's FM sign convention is the cause. The code word layout is checked against the published pattern of code 023 (0x763813).
- The 83-code list is the one commonly published; a valid code outside it is still decoded and marked as not in the usual list.
- Tone lengths of the five-tone plans are not specified here; CCIR (100 ms) and EEA (40 ms) share their tones and are told apart by length only.
- Tone frequency tolerance of the voice-band decoders is about +-1.5 % of the nominal tone; a radio with a larger error is not decoded.
- Encrypted or digital voice squelch systems other than DCS (NAC, colour code) are not part of this mode.
Tone lists and layouts come from public descriptions: the EIA / TIA-603 CTCSS list, the DCS word (YO3IIU "Digital Coded Squelch codec", KB8ZQZ "DPL / DCS Information"), the five-tone plans, the SELCAL plan (ARINC 714). No decoder code of other projects is used.
- Receive only; nothing is sent. Encrypted traffic is never decoded.
- Try it without a radio: the mode has a built-in synthetic test signal.
- Receiving and the law: see Legal.
Getting started
Using OnAir
Tools and guides (0.2.7)
- Band survey
- Message database
- Watchlists
- TV recorder
- Time machine
- Pass scheduler
- Plugin SDK
- Headless server
- All guides
Radios
Modes by group
- TV
- Broadcast radio
- Aviation
- Maritime
- Satellite & navigation
- Two-way radio
- Cellular & rail
- Pagers
- IoT & sensors
- Weather & science
- Amateur: digital
- Amateur: voice & packet
- HF utility
- General & tools
Tutorials
- DVB-T2 TV with a HackRF
- FM radio with RDS
- Aircraft with ADS-B and the map
- Ships with AIS
- DAB+ digital radio
- Weather satellite images
- HF digital: FT8 and WSPR
- Digital voice: DMR, D-STAR, P25
- Pagers: POCSAG and FLEX
- Time stations and the clock
- Record IQ, then the Signal workbench
- The signal sample library
- Control a rig with Hamlib
- Two receivers and the multi-decoder
Reference
- Command line
- Remote-control API
- OnAir Web
- Host a receiver
- Voice codecs
- Transmit
- Build from source
- Contributing
- Code map
Help
Legal and privacy
More