spandsp: The V.27ter transmitter

spandsp 0.0.6

The V.27ter transmitter

# What does it do?

The V.27ter transmitter implements the transmit side of a V.27ter modem. This can operate at data rates of 4800 and 2400 bits/s. The audio output is a stream of 16 bit samples, at 8000 samples/second. The transmit and receive side of V.27ter modems operate independantly. V.27ter is used for FAX transmission, where it provides the standard 4800 and 2400 bits/s rates.

# How does it work?

V.27ter uses DPSK modulation. A common method of producing a DPSK modulated signal is to use a sampling rate which is a multiple of the baud rate. The raw signal is then a series of complex pulses, each an integer number of samples long. These can be shaped, using a suitable complex filter, and multiplied by a complex carrier signal to produce the final DPSK signal for transmission.

The pulse shaping filter for V.27ter is defined in the spec. It is a root raised cosine filter with 50% excess bandwidth.

The sampling rate for our transmitter is defined by the channel - 8000 samples/s. This is a multiple of the baud rate at 4800 bits/s (8-PSK at 1600 baud, 5 samples per symbol), but not at 2400 bits/s (4-PSK at 1200 baud, 20/3 samples per symbol). The baud interval is actually 20/3 sample periods at 2400bis/s. A symmetric FIR is used to apply root raised cosine filtering in the 4800bits/s mode. In the 2400bits/s mode a polyphase FIR filter is used. This consists of 20 sets of coefficients, offering zero to 19/20ths of a baud phase shift as well as root raised cosine filtering. The appropriate coefficient set is chosen for each signal sample generated.

The carrier is generated using the DDS method. Using 2 second order resonators, started in quadrature, might be more efficient, as it would have less impact on the processor cache than a table lookup approach. However, the DDS approach suits the receiver better, so then same signal generator is also used for the transmitter.