The data pumps: D-Modem's signal processing¶
A modem turns data into sound and sound back into data. The part that
does this is called the data pump. Each modem standard (V.21, V.34,
V.90 and so on) is a different way of doing it, and each has its own
pump. D-Modem's pumps are all open source, written in C++, in dsp/.
They run on any processor.
They replace Smart Link's closed, 32-bit-only DSP library. They offer the same programming interface that library had, so the rest of the modem did not need to change. The original library is kept only as a test partner.
For the programming interface, the tables of every pump and how the receiver works inside, see the technical details.
The standards¶
| Standard | Top speed | What it is |
|---|---|---|
| Bell 103, V.21 | 300 bit/s | the earliest modems |
| V.23 | 1200 bit/s one way, 75 the other | used by Minitel and videotex |
| Bell 212A, V.22 | 1200 bit/s | with a fast connect for card terminals |
| V.22bis | 2400 bit/s | |
| V.29 FastPOS | 9600 bit/s, one way at a time | card terminals and vending machines calling their bank's host |
| V.26 ter | 2400 bit/s | duplex on a dial-up line with echo cancelling, mostly European |
| V.26 bis | 2400 bit/s one way, 75 the other | the older dial-up version, run like V.23 |
| V.32, V.32bis | 9600, 14400 bit/s | |
| V.32terbo | 19200 bit/s | AT&T's unpublished extension of V.32bis, rebuilt from a modem that has it |
| HST | 16800 bit/s one way, 300 the other | USRobotics' protocol for bulletin boards, rebuilt from the Courier's DSP firmware |
| PEP | about 20000 bit/s, one way at a time | Telebit's TrailBlazer protocol of hundreds of carriers, rebuilt from its patents |
| V.61 | 4800 bit/s with speech, 14400 without | talking and sending data at once, the voice added onto the modem's carrier (ASVD) |
| V.FC | 28800 bit/s | Rockwell's pre-V.34 protocol; its data mode rebuilt from the Courier's DSP firmware |
| V.34 | 33600 bit/s | the fastest purely analogue modem |
| V.90 | 56000 bit/s down, 33600 up | "56k" modems |
| V.92 | 56000 down, up to 48000 up | V.90 plus faster start-up, call waiting and a faster upload |
| V.91 | about 62000 bit/s both ways | two modems that are both on digital lines |
| V.29, V.33, V.27ter | 9600, 14400, 4800 bit/s | classic modems for 4-wire leased lines |
| V.26, Bell 201, 202, 208 | 2400, 2400, 1200, 4800 bit/s | older 4-wire leased line modems |
| V.cvm | 175 to 3500 bit/s | D-Modem's proposal for data through mobile phone calls |
| V.wb | about 149000 bit/s each way | D-Modem's own mode for a bare pair of wires |
| Text telephones | 45 to 1200 bit/s | TTY (Baudot), DTMF, EDT, Bell 103, V.23 (Minitel), V.21 and V.18's own mode, with V.18 automatic detection, for deaf and hard of hearing users |
| Contact ID | (DTMF digits) | alarm panels reporting to a monitoring centre; D-Modem can be either end |
| Fixed-line SMS | 1200 bit/s | text messages to and from home phones that have an SMS button, as some European phone companies offered; D-Modem can be the phone or the message centre |
| V.8bis | (a start-up) | agreeing on the kind of call before V.8, the first part of voice and data together (V.70, V.61) |
| Modem relay (V.150.1) | the far modem's speed | data calls through a gateway that answers the far modem itself, sent as bytes over the internet (see Modem relay) |
| Clear channel | 64000 bit/s | a fully digital ISDN data call, with no modulation at all (see ISDN) |
There are also pumps for call progress (dial tone, dialling, busy, ringing, the answer tone), caller ID, voice (playing and recording sound), and fax (see Fax).
When a modem calls, the V.8 negotiation lets both ends agree on the best
standard they share. The page on V.8 and V.34 explains it.
V.8bis can come before it, for the two ends to agree on the
kind of call (AT+A8E=1,1,,1).
K56flex, an older 56k standard from before V.90, works at both ends:
D-Modem answers a K56flex modem with it, and calls a K56flex server with
it. See its own page.
USRobotics' x2, the other early 56k standard, is in progress: D-Modem
answers an x2 modem as the server, and the start-up completes, but the
x2 modem does not yet accept the data. See its own page.
The two ends of a 56k call¶
V.90 and V.92 are lopsided. One end, the digital modem, sits on a fully digital phone connection; in the 1990s that was the internet provider's equipment. The other, the analogue modem, is the customer's modem on an ordinary phone line. The digital end sends exact digital values that the phone network turns into sound for the analogue end, which is how it reaches 56000 bit/s.
D-Modem can be either end:
- as the digital modem on a SIP or phone-system line (see V.90);
- as the analogue modem on a real phone line, through modem hardware (see V.90 analogue modem).
Testing¶
ctest --test-dir build -L quick runs every pump against itself through
a simulated line. See Building and testing and
Interop against other soft modems.