The GSM Codec

The "Global System for Mobile communications" (GSM) is a digital mobile radio system which is extensively used throughout Europe, and also in many other parts of the world. John Scourias has written a very good overview of the GSM system, which is available in both postscript and HTML here . Well worth a look.

The GSM full rate speech codec operates at 13 kbits/s and uses a Regular Pulse Excited (RPE) codec. For details on RPE codecs see the section earlier on hybrid codecs. Basically the input speech is split up into frames 20 ms long, and for each frame a set of 8 short term predictor coeffiecients are found. Each frame is then further split into four 5 ms sub-frames, and for each sub-frame the encoder finds a delay and a gain for the codec's long term predictor. Finally the residual signal after both short and long term filtering is quantized for each sub-frame as follows. The 40 sample residual signal is decimated into three possible excitaion sequences, each 13 samples long. The sequence with the highest energy is chosen as the best representaion of the excitation sequence, and each pulse in the sequence has its amplitude quantized with three bits. At the decoder the reconstructed excitation signal is fed through the long term and then the short term synthesis filters to give the reconstructed speech. A postfilter is used to improve the perceptual quality of this reconstructed speech.

The GSM codec provides good quality speech, although not as good as the slightly higher rate G728 codec. Its main advantage over other low rate codecs is its relative simplicity - it runs easily in real time on my 66 Mhz 486 PC for example, whereas CELP codecs need a dedicated DSP to run in real time. Theres a lot of information about GSM, including links to GSM source code they've written and executable code for DOS and Macs, on the Technical University of Berlin's Web page.



Back To Previous Page On to Next Page