# Eye pattern An **eye pattern**, also called an eye diagram, is an oscilloscope display formed by triggering repeatedly on a digital signal at its symbol rate and overlaying many successive unit intervals on the same axes, so the traces cross in a shape that, for several common line codes, resembles a row of open eyes strung between two rails. It is built as a statistical picture rather than a single waveform: at any point across the width of one unit interval, the brightness or density of the trace is a record of how often the signal has passed through that voltage at that moment in the bit period, so the whole display is close to a plot of the signal's [[Probability_density_function|probability density]], folded onto a single unit interval, with a color or intensity ramp often applied to make that density easier to read. The technique is old enough to predate the transistor: it was first used to set the sampling instants of the WWII-era SIGSALY secure speech system, one of that project's own list of engineering firsts.[^sigsaly] Because every [[Distortion|distortion]] a baseband link picks up — thermal noise, a channel that disperses fast edges, reflections from a mismatched connector, jitter in the clock that times the transitions — pushes the traces away from their ideal crossing points and toward the middle of the display, the width and height of the open eye at its center are a direct, single-glance measurement of how much margin a receiver has left before it starts making decision errors. This article carries the Jitter sketch, which builds an eye diagram live from randomly jittered transitions and lets the reader turn up two distinct kinds of timing error, watching the open eye at the center shrink from each in a different way. ## Calculation The source data for an eye pattern is simply the receiver's own analog or digitized signal, taken before the final bit decision is made, so that the display shows exactly what the decision circuit has to work with rather than the bits it eventually outputs. Building the display is a matter of slicing that continuous signal into segments exactly one unit interval long and stacking those segments on top of one another on the same [[Cartesian_coordinate_system|voltage-against-time axes]], which requires deciding, once per unit interval, exactly where a slice begins; an analog oscilloscope does this by triggering on the signal's own transitions or on a fixed level, while a digital instrument can slice at any of several different references. Slicing against a fixed rate uses a free-running clock at the known symbol rate with no attempt to track the incoming data's own timing, which is adequate when that data's clock is already known to be stable; slicing against a reference clock uses an external, independently generated timing signal instead, useful for characterizing a transmitter against a known-good standard; and slicing by clock recovery extracts the timing directly from the data stream's own transitions, typically with a [[Phase-locked_loop|phase-locked loop]], a feedback [[Control_system|control system]] in its own right, which is what a real receiver does and so is the reference method for judging how that receiver will actually perform. Integration is the accumulation step that turns a single overlaid slice into a usable eye pattern: thousands of slices, drawn on top of one another and allowed to persist briefly before fading, build up the density picture statistically, so that rare but damaging excursions eventually show up as faint traces reaching further into the eye than the bulk of the more common ones. ## Modulation The shape an eye pattern takes depends on the line code carrying the data. A simple two-level, non-return-to-zero (NRZ) code produces the archetypal single eye: one open diamond between a high rail and a low rail, with one crossing region at the center of the unit interval. MLT-3, a three-level code that steps between a negative, a zero and a positive level and is best known from 100BASE-TX Fast Ethernet, produces two stacked eyes rather than one, because a symbol now has three possible levels and therefore two gaps between adjacent levels for a trace to cross. Multilevel pulse-amplitude modulation (PAM) generalizes the same idea to more levels still: an M-level PAM signal opens M − 1 stacked eyes, packing more bits into every symbol at the cost of a smaller voltage gap, and so a smaller eye height, between each pair of adjacent levels for the same overall signal swing. Phase-shift keying does not vary the transmitted amplitude at all, so its eye pattern is normally drawn after the receiver has demodulated the phase back down to a baseband symbol stream, at which point it opens and closes by exactly the same noise and timing mechanisms as any other line code's eye, on the recovered in-phase and quadrature signals that also form a [[Constellation_diagram|constellation diagram]] at the sampling instants. ## Channel effects A transmission [[Communication_channel|channel]] rarely passes every frequency in a digital signal's spectrum equally, and a link's designer routinely fights that with emphasis: boosting the higher frequencies at the transmitter, cutting them at the receiver, or both, to flatten the channel's uneven response before it can round off fast edges and smear one bit's energy into its neighbors. Left uncorrected, high-frequency loss from a cable's skin effect and a circuit board's dielectric loss behaves like an unintended [[Low-pass_filter|low-pass filter]] built into the channel, attenuating sharp transitions far more than slow ones, which is exactly the mechanism that narrows the eye horizontally and vertically through intersymbol interference: shaping a pulse so that it crosses zero at every neighboring symbol instant, the same zero-intersymbol-interference condition a raised-cosine filter is designed to satisfy, is what keeps that interference from closing the eye even as the channel's bandwidth is traded away.[^ell137][^ell138] Impedance mismatches at a connector, a via or an unterminated stub reflect part of the signal's energy back down the [[Transmission_line|line]], where it arrives late and adds to whatever symbol is passing at that later instant; on an eye pattern this shows up as extra, structured noise around the crossing points and the rails rather than as any change in the pattern's basic shape. ## Measurements An eye pattern reduces a link's health to a short list of measurements read straight off the open eye. Eye height, the vertical gap between the high and low rails at the center of the unit interval, is the voltage margin a receiver has against a wrong decision; eye width, the horizontal gap between the two crossing regions, is the timing margin available for the receiver to sample at the wrong instant and still decide correctly; and the crossing percentage, where the rising and falling edges intersect relative to the rails, flags an asymmetric or duty-cycle-distorted signal even when the height and width both look adequate. Interpreting these measurements means reading them against a channel's own pulse shaping: because zero-intersymbol-interference pulse shaping only fixes the crossing instants and leaves the rest of the waveform between them free, a wider excess bandwidth typically buys a taller, more sharply defined eye at a given [[Noise_(electronics)|noise]] level, while a narrower one saves bandwidth at the cost of an eye that opens less fully between symbols.[^ell135][^ell138] The single most sensitive measurement, though, is usually timing rather than voltage: because a wandering sample clock closes the eye horizontally regardless of how clean the signal's levels are, jitter on the crossing instants is tracked separately from height and width, and it is jitter, not amplitude noise, that the Jitter sketch on this page is built to isolate. ## Microsims The Jitter sketch builds a live eye diagram by synthesizing fresh three-bit traces every frame, each with its two crossing instants displaced by a random amount, and drawing the result onto a persistence buffer that fades gradually, so the display accumulates into the same statistical eye a real oscilloscope would show. The displacement is drawn from two distinct populations set by separate sliders: random jitter, an unbounded, Gaussian scatter around the ideal crossing instant, quoted by the standard deviation of that scatter; and deterministic jitter, a bounded, repeatable offset idealized in the sketch as two crossing populations displaced to either side of center by a fixed amount, the dual-Dirac model. A third slider sets the bit rate, so the sketch's readouts can be given in real time units. A crossing-time [[Histogram|histogram]] alongside the eye plots exactly this mixture as it accumulates, two humps at plus and minus half the deterministic offset, each smeared by the random jitter's Gaussian spread, next to the ideal dual-Dirac shape the model predicts; a running readout compares the sketch's own measured spread against that prediction and reports the eye opening as a percentage of the unit interval. *Try:* Raise the random jitter slider until the histogram's two humps blur into one and the eye's sides fuzz inward without limit, then bring random jitter back down and raise deterministic jitter instead, and watch the same two humps march apart by a fixed amount, walling the eye in from both sides rather than fuzzing it. A three.js companion sim renders this same closing eye in more depth, overlapping many bits under roll-off, noise and jitter together to show how each squeezes the opening shut. <!-- SIGSIM:BEGIN g35 — Signal Processing portal microsim (framework build, specs/sims/Eye_pattern.json); do not hand-edit inside --> **Microsim — three.js (Wikitube framework), pending deploy:** *Eye pattern: overlapped bits and the receiver's margin* will play here once `https://wikitube-3d-microsims.netlify.app/signal/Eye_pattern.html` is live. <!-- pending: <div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/signal/Eye_pattern.html" data-title="Eye pattern"></div> --> *Built from `MICROSIM_GUIDE/specs/sims/Eye_pattern.json`; part of the [[Signal_processing]] set ([[PORTAL_Signal_Processing]]).* <!-- SIGSIM:END --> ## Wikipedia : Wikitube **Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Eye_pattern) : [Wikitube](https://en.wikitube.io/wiki/Eye_pattern) Skeleton mirrored at revision 1374164098. Prose, emphasis and the microsims are Wikitube's own. ## See also - [[Constellation_diagram]] - [[Communication_channel]] - [[Phase-locked_loop]] - [[Noise_(electronics)]] - [[Transmission_line]] - [[Probability_density_function]] ## Notes The Jitter sketch is ILLUSTRATIVE: real deterministic jitter from duty-cycle distortion or intersymbol interference is rarely two clean spikes, and the dual-Dirac model used here and in the sketch's own histogram is a standard idealization of that jitter, not a measurement of any particular real channel. ## References The description of an eye pattern as a folded probability density, and the standard height, width and crossing-percentage measurements, are established results in digital communications and are not separately footnoted here, per Wikitube style guide §6.1. The items below ground the article's history and its worked figures. [^sigsaly]: Boone, J. V.; Peterson, R. R. *The Start of the Digital Revolution: SIGSALY Secure Digital Voice Communications in World War II.* Center for Cryptologic History, National Security Agency, July 2000 (lists the multilevel eye pattern among SIGSALY's engineering firsts). https://www.nsa.gov/portals/75/documents/about/cryptologic-heritage/historical-figures-publications/publications/wwii/sigsaly.pdf [^ell135]: Ellingson, S. *Radio Systems Engineering*, Revised First Edition. 2023, p. 135 (PDF page). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/radio-systems-engineering . CC BY-NC. [^ell137]: Ellingson, S. *Radio Systems Engineering*, Revised First Edition. 2023, pp. 136-137 (PDF pages). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/radio-systems-engineering . CC BY-NC. [^ell138]: Ellingson, S. *Radio Systems Engineering*, Revised First Edition. 2023, p. 138 (PDF page). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/radio-systems-engineering . CC BY-NC. ## External links - Jitter, live sketch: https://editor.p5js.org/sciencenibber/full/fzZs4ZHl7 - Jitter, editor fork: https://editor.p5js.org/sciencenibber/sketches/fzZs4ZHl7 <!-- Hubs: Signal_processing. Portals: PORTAL_Signal_Processing. Signal Processing portal wave 1 · 2026-09-17 · drafted. -->