RALCWI Vocoder
CMX608/CMX618/CMX638
6.2.
FEC and LLR Decoding
The Robust ALCWI 3600 bps Vocoder contains a Forward Error Correction (FEC) Encoder and an FEC
Decoder, which provide robust performance in a noisy channel. The interleaving of data and an unequal
error protection approach is used to provide effective protection against errors. A recursive, systematic,
convolutional encoder is used with a CRC to encode the data and Viterbi decoding with either “hard
decision” or “soft decision” metrics is used in the FEC Decoder. CRC decisions are used to improve the
quality of data regeneration in cases where the bit frame is greatly distorted by channel errors. In "soft
decision" mode, the incoming data is encoded with four bits representing the level of each "hard" bit as a
LLR (Log Likelihood Ratio), ranging from 0x0 for a '0' to 0xF for a '1'.
6.3.
DTX and SID Functions
To provide DTX functionality, the voice encoder contains a Voice Activity Detector (VAD) and the voice
decoder contains a Comfort Noise Generator (CNG). The VAD uses several analyzed voice parameters
(spectral envelope, pitch, energies of the signal’s decomposed components, etc.) to estimate the features
of the incoming signal and to switch the encoder to the silence or comfort noise transmission (SID) mode,
in the event of a non-voice signal being detected. If DTX mode is enabled, the voice decoder checks for
the possibility of an SID frame before the received frame is handled as a full Vocoder data frame. If SID is
detected, the decoder generates a “comfort noise” in accordance with the transmitted spectral envelope
and gain parameters.
6.4.
Single Tone Transfer
The Vocoder is designed to encode and decode voice, not continuous tones. If a siren or single tone is
the only audio input present, it will not be reliably encoded/decoded through the Vocoder. To overcome
this, the CMX608/CMX618/CMX638 includes a facility that detects the presence of a single tone at the
audio input and encodes it in a special frame. When a special frame is received, the tone is regenerated.
This facility is not available on the CMX638 when used in full-duplex mode.
Single Tone Transfer is enabled in the encoder by setting bit 12 in the VCTRL register ($11) to '1' and in
the decoder by setting bits 7 and 8 in the VCTRL register ($11) to '1'. This feature can be independently
enabled/disabled in the encoder or decoder. This is necessary as, when enabled, the decoder detection
can false with voice.
6.5.
Slip Management
Slip, or rather time-slip, is the effect that occurs when two asynchronous real-time systems must
communicate with each other. Two crystal controlled systems with the same value crystal will run at
basically the same speed, but there will be a slight difference due to inaccuracies. The accuracy of a
crystal depends on its quality and therefore its cost. Popular crystals have an accuracy better than 100
parts per million (ppm).
Taking a crystal accuracy of 100 parts per million as an example; this is the same as 1 part in 10,000.
Given we are using a sample rate of 8000 samples per second, to make calculations easy, we can
assume then that the accuracy of the CODEC is going to be approximately +/- 1 sample per second. With
two CODECs in the system, the worst case accuracy is therefore +/- 2 samples per second.
There are a number of ways of controlling slip:
Eliminate it altogether
Slip can be eliminated by deriving a common clock over the whole system and using PLL techniques for
supplying local clocks. In a digital radio system operating with fixed time slots for transmission, a
reference clock could be derived from the slot timing, this could then be used to control a PLL, which in
turn generates the master clock for the CODEC (this could be the external CODEC for a CMX608, or the
Vocoder itself - in a CMX618/CMX638 using the internal CODEC).
2014 CML Microsystems Plc
57
D/608_18_38/11