Digital data can be transmitted wirelessly over an analog channel in various ways. Let’s start with an explanation of digital data. Digital data in modern information systems is also known as binary data, which is represented by a string of “binary” digits (bits), each of which can only have one of two values, either 0 or 1. Sequencies of digital bits can be organized into groups of 8, which are known as bytes. An example of a common form of digital data organized into bytes are ASCII characters. For example, the alphanumeric character “A” can be represented as the sequence of bits “0100 0001” which is the number 65 in decimal base 10.
As an example, let’s represent the string “Hello World!” in Hexadecimal, then binary. I only suggest using HEX since most ASCII tables use this. To do this, we would take each character (case sensitive) and look up the ASCII HEX representation. The HEX representation of the string is “48656c6c6f20576f726c6421”. The binary representation is “010010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001”
So how would we transmit this wirelessly? To transmit a message (i.e. voice, data, music, etc.), we need to use an electromagnetic wave. Theoretically, we could use sound waves (i.e. sonar), but that would require a gas, liquid, or solid medium such as air or water. In order to transmit through a vacuum and to avoid very complicated transducer issues, we can transmit our message via EM radiation through a simple antenna (i.e. dipole). To transmit our zeros and ones, we need a transmitter that operates at a carrier frequency that meets our propagation needs, including power, frequency and bandwidth. The transmitter emits a carrier wave, which usually has a much higher frequency than the message signal does, since it is impractical to transmit signals with low frequencies. There are countless books concerning the subject, and it’s a bit beyond the scope of this article, but suffice to say that we have a transmitter ready for our data that operates in the AM radio frequency band at 1,000 kHz. How would we transpose the zeros and ones on the carrier wave? Perhaps the simplest method is to turn the transmitter “on” when there is a one and turn it “off” for a zero. This is called On-Off Keying (OOK), which is a relatively simple modulation scheme that is used in countless cheap consumer wireless remote control devices.
Unfiltered OOK tends to be very bandwidth inefficient. Due to the sharp rise/fall times of the transmitter switching on/off, there are frequency content transmitted well beyond our carrier due to the characteristics of the Fourier Transform for our signal. In this case, the signal contains very high sidelobe levels. These sidelobes can potentially spread out into adjacent channels and cause significant interference.
So, to combat the sidelobe problem, we can use pulse shaping (filtering) of the transmitted signal. By using a slowly transitioning on/off time, the spectrum is reduced. This is due to the reduced frequency composition of the Fourier transform of a smooth pulse vs. a rectangular pulse.
Notice that the pulses (ones) are now Gaussian shaped, which brings the sidelobes down 40-50 dB below the main lobe. Notice, however, that the width of the main lobe has increased as a result of the pulse shaping. In effect, with this rudimentary scheme, we have reduced the spectral crowding at the expense of a little more bandwidth in the main channel.
For the receiver, we need to monitor when a signal is being transmitted, rejecting noise to avoid false triggering. For that reason, we can add a header to our data prior to transmission. A Gold Sequence might be a good choice since it has very favorable cross-correlation characteristics and can be detected easily in the receiver using a matched filter. This allows for frame synchronization and subsequent reconstruction of the original data.
In the receiver, using an envelope detector is a simple implementation of the OOK decoding block:
In reality, using a matched filter is probably not necessary, since we can just look for a specific sequence of bits in a shift register and start grabbing the data following the sequence. In any case, the matched filter output is an interesting experiment and can possibly help in very low SNR environments.
In Part 2, I will examine Frequency Shift Keying (FSK), which is another popular modulation scheme for transmitting data.