Electronic – Best method for sending data over a mono audio channel

datafskmodem

I'm looking for a way to send binary data over an audio channel on a video/audio transmitter. This will be an add-on feature to my product because it already has an audio interface. I'm hoping to be able to reach about 1 kbit/s data rate at a minimum, but higher would be nice. The requirements for any such protocol would be:

  • High noise immunity – so a signal with some noise and interference on it doesn't cause problems. Ideally, data would be either error free or flagged as having errors, as corrupt data could cause lots of problems. Weaker signals may introduce jitter and other nasties into the signal, so it should be capable of withstanding these.
  • Be able to work on a bandwidth limited (approx 8 kHz) audio channel. This includes slew rate limitations and variable jitter, including between clocks or bytes.
  • Be easy to implement, both transmitting and receiving, on a small microcontroller.

The protocol only needs to be one way as data will only be sent. The reason I ask this is because I've gone through lots of possible options (FSK, PSK, duty cycle modulation, Manchester, etc.) but have no idea which would be the best.

Best Answer

I think RQDQ has the right idea. The best method of sending digital data over restricted bandwidth audio lines is a problem that has already been solved for modems.

The 300 bit/s modems used audio frequency-shift keying to send data. In this system the stream of 1s and 0s in computer data is translated into sounds which can be easily sent on the phone lines. In the Bell 103 system the originating modem sends 0s by playing a 1,070 Hz tone, and 1s at 1,270 Hz, with the answering modem putting its 0s on 2,025 Hz and 1s on 2,225 Hz. These frequencies were chosen carefully, they are in the range that suffer minimum distortion on the phone system, and also are not harmonics of each other.

In the 1,200 bit/s and faster systems, phase-shift keying was used. In this system the two tones for any one side of the connection are sent at the similar frequencies as in the 300 bit/s systems, but slightly out of phase. ...