Pages

Sunday, July 4, 2021

 

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 

No comments:

Post a Comment