CDCSS Selective Signaling for LMR
General
CDCSS, also called DCS, is a digital subaudible selective signaling system.
It uses a code composed of 23 bits sent repeatedly at rate of 134.3 bits per
second. The code is based on the Golay (23,12) code first published in 1949.
This code has the ability to detect and correct any three bit or less error
that occurs in the 23 bit word.
The word is composed of a 12 bit data field and an 11 bit parity vector. In
CDCSS usage the 12 bits are divided into 4 octal digits, the first always
being set to 100 (octal), the 2nd, 3rd and 4th digits form the three octal
digit DCS code number. The word format is:
Shift Direction -----> Out
PPPPPPPPPPPFFFCCCCCCCCC
where P's are parity bits, F's are the fixed octal digit bits, and C's are
the octal digit bits. For the DCS code "023" this would be the binary word:
Parity Bit Generation
The original Golay algorithm used a binary polynomial to generate the parity
bits, but this method uses too much microcontroller time and memory. Keeping
all 512 23 bit words in ROM would take a minimum of 1472 bytes, keeping the
parity bits only in ROM would take a minimum of 704 bytes. It is possible to
save even more ROM without taking a lot of microcontroller time by using a
simpler way to calculate the needed parity bits. This method uses short
calculations, one for each parity bit, based on selected bits from the 9 bit
DCS code number:
P1 = C1 + C2 + C3 + C4 + C5 + C8 (MODULO TWO ADDITION)
P2 = NOT ( C2 + C3 + C4 + C5 + C6 + C9 )
P3 = C1 + C2 + C6 + C7 + C8
P4 = NOT ( C2 + C3 + C7 + C8 + C9 )
P5 = NOT ( C1 + C2 + C5 + C9 )
P6 = NOT ( C1 + C4 + C5 + C6 + C8 )
P7 = C1 + C3 + C4 + C6 + C7 + C8 + C9
P8 = C2 + C4 + C5 + C7 + C8 + C9
P9 = C3 + C5 + C6 + C8 + C9
P10 = NOT ( C4 + C6 + C7 + C9 )
P11 = NOT ( C1 + C2 + C3 + C4 + C7 )
DCS Transmission
The DCS word is transmitted and received in NRZ (non-return to zero) format
making modulation polarity important. The definition of a "1" is an upward
frequency shift and a "0" is a downward shift. DCS codes sent with this
polarity are considered to be positive polarity. However some radio systems
use inverted polarity to avoid interference and these are called negative DCS
codes. Because of this, provision must be made to use both polarities.
DCS code "+023" would be transmitted as:
The DCS word is sent continuously, starting when transmission begins. When
the user releases the PTT, the encoder will change the code to a pattern of
alternating 1's and 0's at 268.6 bits per second for 180 milliseconds, then
stop transmitting. This "turn off" code causes receiving decoders to mute,
thereby eliminating the squelch tail noise burst.
DCS Decoding
Use of the error correcting features of the Golay code are not possible
because there is no time gap between words, so accurate synchronization at
the decoder is not possible. It is not possible to discriminate between
codes "+023", "+340", "+766", "-047", "-375" or "-707"... all these codes
result in the same 23 bit pattern, but shifted in time. This prevents
convenient usage of all 512 possible codes. Almost all DCS codes have
duplicates, so most companies use 83 to 104 of the codes, selected for low
number of duplicates, low falsing likelihood and good decode sensitivity.
Regrettably, no industry standard recommended list of codes exists and is not
likely to, so it is wise to allow for all codes and to recommend the customer
choose from a "safe" list.
Pattern matching and software PLL techniques are normally used to accomplish
the decoding.
Performance Specifications
Decode:
Decode sensitivity..............Less than 8dB SINAD, DCS deviation = 10% of
rated system deviation.
Decode response time............Less than 250mS.
Decode de-response time.........Less than 350mS.
Receive distortion..............Receiver hum and noise ratio shall not be
degraded with DCS deviation at 20% of rated
system deviation.
Voice blocking..................Shall decode with a 10 uV RF signal applied,
10% DCS deviation and 90% 300Hz deviation.
Encode:
Encode response time............less than 10mS to transmit the first bit
after TX carrier begins.
Encode distortion
Hum and noise...........Transmit hum and noise ratio shall not be
degraded with a deviation of 20% of rated
system deviation.
Waveform overshoot......less than 5% of peak to peak deviation.
See appendix A for a list of Midland recommended codes.
MIDLAND CTCSS TONES (Hz):
67.0 69.4 71.9 74.4 77.0 79.7 82.5 85.4 88.5 91.5 94.8 97.4 100.0
103.5 107.2 110.9 114.8 118.8 123.0 127.3 131.8 136.5 141.3 146.2 150.0 151.4
156.7 159.8 162.2 165.5 167.9 171.3 173.8 177.3 179.9 183.5 186.2 189.9 192.8
196.6 198.0 199.5 202.7 203.5 206.5 210.7 218.1 225.7 229.1 233.6 241.8 250.3
254.1
APPENDIX A: MIDLAND DCS CODES
023 11101100011100000010011 346 01110101001100011100110
025 10101101110100000010101 351 00011101011100011101001
026 11001011101100000010110 356 10101001010100011101110
031 10100011111100000011001 364 11010000101100011110100
032 10111110101100000011010 365 01011110000100011110101
036 00010111110100000011110 371 00101011000100011111001
043 10110110110100000100011 411 11101110110100100001001
047 00011111101100000100111 412 11110011100100100001010
051 11111001010100000101001 413 01111101001100100001011
053 01101010101100000101011 423 10010111001100100010011
054 11011110100110000101100 431 11011000101100100011001
065 10111010001100000110101 432 11000101111100100011010
071 11001111001100000111001 445 11110111000100100100101
072 11010010011100000111010 446 11101010010100100100110
073 01011100110100000111011 452 10011111010100100101010
074 11101000111100000111100 454 10100101110100100101100
114 01101011110100001001100 455 00101011011100100101101
115 11100101011100001001101 462 01110101010100100110010
116 11111000001100001001110 464 01001111110100100110100
122 10111011010100001010010 465 11000001011100100110101
125 00001111011100001010101 466 11011100001100100110110
131 01111010011100001011001 503 01111000110100101000011
132 01100111001100001011010 506 01011111000100101000110
134 01011101101100001011100 516 10000011011100101001110
143 01101111010100001100011 523 01001110101100101010011
145 01010101110100001100101 526 01101001011100101010110
152 00111101100100001101010 532 00011100011100101011010
155 10001001101100001101101 546 00110011110100101100110
156 10010100111100001101110 565 00011000111100101110101
162 11010111100100001110010 606 10111011001100110000110
165 01100011101100001110101 612 11001110001100110001010
172 00001011111100001111010 624 00011110101100110010100
174 00110001011100001111100 627 00000011111100110010111
205 11011101001100010000101 631 11100101000100110011001
212 10110101011100010001010 632 11111000010100110011010
223 11010001110100010010011 654 10011000011100110101100
225 11101011010100010010101 662 01001000111100110110010
226 11110110000100010010110 664 01110010011100110110100
243 10001011011100010100011 703 01000101011100111000011
244 00111111010100010100100 712 00010111101100111001010
245 10110001111100010100101 723 01110011000100111010011
246 10101100101100010100110 731 00111100100100111011001
251 11000100111100010101001 732 00100001110100111011010
252 11011001101100010101010 734 00011011010100111011100
255 01101101100100010101101 743 00101001101100111100011
261 00101110111100010110001 754 01000001111100111101100
263 10111101000100010110011 777 01101010110100111111111
265 10000111100100010110101
266 10011010110100010110110
271 11110010100100010111001
274 11010101010100010111100
306 00011001111100011000110
311 01110001101100011001001
315 11011000110100011001101
325 00110010110100011010101
331 01000111110100011011001
332 01011010100100011011010
343 01010010111100011100011
Just some notes from my files and experience with selective signaling.
March 14, 1994