AlgoTron DSP Software for Telecoms & Audio
a TI DSP Third Party Network Member

Home Modems Telephony Audio Utilities Consultancy Glossary Index Contact us

Contact us


V.34 Modem DSP C Code

Description: implements the ITU Data Modem function V.34, so offering full- and half-duplex data transmission at rates of Nx2.4kb/s from 33.6kb/s to 2.4kb/s over the analog telephone network.
         To achieve such rates, the software adapts the signal bandwidth for each connection by selecting the best symbol rate / carrier frequency combination in individual directions via channel sounding. The data rate can be matched to line conditions in each direction. As conditions change during transmission, the data rates can be renegotiated.
         Optimal error performance is assured by the use of 4D trellis coding, equalisation by flexible pre-coding and pre-emphasis, shell mapping and signal "warping". Full-duplex channel separation is achieved by echo-cancelling. In half-duplex transmission, eg for V.34 fax, an additional function is a separate full-duplex control channel with rates of 1.2 or 2.4kb/s for signalling purposes. The software includes rate conversion at the sample interface for the different V.34 symbol rates.
         The C code is suitable for any processor with an ANSI-compliant C compiler. It is designed especially for efficient operation on low-cost fixed-point DSP- and general-purpose micro-processors. All data memory is specified as 16-bit integer words. Multiplies are integer 16x16-bit with 32-bit products.
         The code is operated by subroutines for initialisation and for main-routine processing of input/output sample blocks and data. The user is responsible for interfacing samples and data to hardware. The code is re-entrant to facilitate multi-channel operation. A comprehensive user's guide is provided with the code, together with example application files. Test results are available.

Interfaces: at the sample interface, the code can operate at 8.0kHz and 9.6kHz sample rates. Transmit and receive samples are transferred on a common clock, to which the transmit clock is synchronised. The receive clock is interpolated in the code for synchronisation to the far-end modem. At the data interface, data is transferred in buffers under pointer control.
         At the control interface, the code has three 16-bit control word to sequence operation and to set operating parameters, and two diagnostic words to convey data transfer status and signal quality.

Performance: the software algorithms have been carefully designed for excellent performance under noisy or poor line conditions. Over flat channels, near matched-filter performance is obtained. Over the very severe "ConUS Poor Voice" channel in the TAS Telephone Network Emulator – 30dB attenuation across the 3kHz band – the modem code still operates at up to 16.8kb/s. SNR for 10-6 Error Rate (flat channel, 4kHz BW noise):

  • 17dB - 14.4kb/s; 25.5dB - 24kb/s; 34dB - 33.6kb/s

Processor Load:

Mode MIPS# Data memory (words) Prog memory (bytes)#
Full-duplex 38.9 7.9k 40.8k (includes V.8)
Half-duplex 27.0 2.3k 39.9k (includes V.8)
Full- + Half-duplex 38.9 7.9k 48.4k (includes V.8)

Example figures are for optimum performance from compiling for the TI TMS320C5000(C55x) DSP processor. They apply to both 8.0kHz and 9.6kHz sample rates. Complexity is selectable and, at a small cost in SNR performance, usage can be reduced by: 4.3MIPS, 0.8kwords data memory, and 1.6kwords program memory. The data memory allocation span for far-end echo cancellation of 1.2secs round-trip delay (RTD) is selectable.

Availability: NOW - sale is under licence - integration support offered

Home Modems Telephony Audio Utilities Consultancy Glossary Index Contact us