From a clean idea to a real waveform
In the physical layer we have a 1 and a 0 in our head, but a wire or a radio only carries a continuously varying voltage or wave. The job of this guide is the translation: how do we shape a physical signal so the receiver can recover those exact bits? The earlier guide on analog versus digital signals told us the signal itself is always analog at heart; the digital part is the agreement about what counts as a 1 and what counts as a 0.
There are two broad ways to do this. The first, line coding, sends the bits directly as voltage levels on a wire, like flicking a flashlight on and off. The second, modulation, takes a steady humming carrier wave and gently distorts it to carry the bits, the way a radio station rides music on a high-frequency tone. Which one you pick depends mostly on the medium: a short copper link inside a building loves line coding; a radio channel or a phone line needs modulation.
Line coding: bits straight onto the wire
The most naive scheme is NRZ: hold a high voltage for a 1 and a low voltage for a 0. It works, but it has two nasty problems. First, a long run of identical bits is just a flat line, and the receiver's clock slowly drifts until it loses count of where one bit ends and the next begins. Second, a steady DC level can't pass through transformers and capacitors that many cables put in the path. Good line coding fixes both.
The classic trick is Manchester encoding, used by early Ethernet. Instead of a level, each bit is a transition in the middle of its time slot: a high-to-low edge means one value, a low-to-high edge the other. Because there is guaranteed a flip every single bit, the receiver re-syncs its clock constantly and never drifts, and the signal averages out to zero so it passes the DC-blocking parts. The price is that you spend two voltage changes per bit, so you need more bandwidth than the bare bit rate suggests, which ties straight back to the Nyquist limit from the last guide.
bits: 1 0 0 1 1
NRZ: ___ ___________
|________| |____ (long run = flat = drift risk)
Manchester: _ _ _ _ _
| |__| |__| |____| |__| | (edge in EVERY bit = self-clocking)
mid-bit flip: hi->lo = 1 , lo->hi = 0Modulation: riding a carrier wave
When the medium is air or an old phone line, raw voltage steps are useless; you need a carrier. A carrier is a pure sine wave, a steady tone, and a sine wave has exactly three knobs you can turn: its height (amplitude), its speed (frequency), and its starting offset (phase). Modulation means wiggling one of those knobs in step with your bits, while the receiver watches the wiggles and reads the bits back out. Turning amplitude on and off gives ASK; switching between two frequencies gives FSK; shifting the phase gives PSK.
This is also the line between baseband and broadband transmission. Baseband means the signal occupies the medium from zero hertz up, sitting at its natural frequency, exactly what line coding produces on a wire. Broadband transmission instead lifts the signal up to ride on a carrier at some higher frequency band. That lifting is what lets many conversations share one cable at different frequencies, which is the multiplexing story coming in the next guide.
Bit rate is not baud, and QAM exploits the gap
Here is the single most misunderstood idea in this whole rung. Baud is how many distinct symbols you send per second, one symbol per turn of the knob. Bit rate is how many bits you carry per second. They are only equal when each symbol means just one bit. The whole game of high-speed links is making one symbol stand for several bits at once, so the bit rate climbs far above the baud rate without sending symbols any faster.
If a symbol can be one of M distinct shapes, it carries log base 2 of M bits. With 4 shapes each symbol is worth 2 bits; with 16 shapes, 4 bits; with 256 shapes, 8 bits. So a link running at 1000 symbols per second (1000 baud) using 256-shape symbols delivers 8000 bps. That is the bit-rate-versus-baud gap turned into raw speed, and it is also why the data rate in bits per second can be many times the symbol rate.
QAM (Quadrature Amplitude Modulation) is the champion of this game and it powers your Wi-Fi, your cable modem, and 4G/5G. The trick is to vary amplitude AND phase at the same time, which lets you pack many distinct symbols into a grid called a constellation. 16-QAM uses 16 dots (4 bits each), 256-QAM uses 256 dots (8 bits each), and modern links push to 1024-QAM and beyond. Each dot is one symbol; the receiver decides which dot you most likely sent.
How a receiver turns a wave back into bits
It helps to walk the whole chain once, end to end, for a modulated QAM link. The sender's job is to chop bits into symbols and paint them onto the carrier; the receiver's job is to measure the arriving wave and guess the symbols back. The beautiful part is that nothing magic happens, just careful timing and a decision about which constellation dot is nearest.
- The sender slices the bit stream into groups, say 8 bits at a time for 256-QAM, and looks up which constellation dot each group maps to.
- For each dot, it sets the carrier's amplitude and phase to that dot's exact value and transmits it for one symbol period; faster symbols mean fewer microseconds each but demand more bandwidth.
- Along the way the channel weakens the signal (attenuation) and adds noise, so the dot arrives smeared into a fuzzy blob rather than a perfect point.
- The receiver recovers the carrier's timing, measures the incoming amplitude and phase, and finds which ideal constellation dot is closest to the measured blob.
- It reads off that dot's 8 bits and appends them to the stream. If noise pushed the blob past a neighbour's boundary, those bits flip, and that single misread is one entry in the bit error rate.
This is why the same physical link can carry wildly different speeds depending on conditions, and why two cables rated identically can perform differently in a noisy building. The encoding and modulation are not fixed laws of the cable; they are a negotiated choice the two ends make to stay just under the Shannon limit while keeping errors rare. Get this and you understand the whole physical layer: everything above it simply trusts that a stream of bits will come out the far end mostly intact.