Modem DSP C Code
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
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
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.
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
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
48.5k (includes V.8)
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
NOW - sale is under licence - integration support offered