Before this:What is software-defined radio?Digital modulation & constellations
IQ data & complex signals
Key takeaways SDRs output IQ data — pairs of numbers, I (in-phase) and Q (quadrature, 90° apart). Together each pair captures the signal’s amplitude and phase at that instant, which is everything needed to represent any modulation. Plot I horizontally and Q vertically and you get the complex plane — exactly the constellation diagram. IQ also lets the receiver tell frequencies above the tuned centre from those below (positive vs. negative frequencies). One number is ambiguous; the pair is complete.
IQ is the language an SDR speaks, and it’s the concept that ties modulation, the constellation, and demodulation together. It looks abstract for about five minutes, then it clicks.
Why isn’t one number per sample enough?
Imagine sampling a wave’s height and getting “0.5.” Is the wave rising or falling? Is it a 1 kHz tone above your tuned frequency or 1 kHz below? A single amplitude reading can’t say — it’s ambiguous. To fully describe a wave at an instant you need two things: how strong it is (amplitude) and where in its cycle it is (phase). One number gives you only one of those.
I and Q, defined
The fix is to sample the signal twice, 90° apart in phase:
- I — In-phase: the signal measured against a reference cosine.
- Q — Quadrature: the same signal measured against a reference sine (90° shifted).
The quadrature-sampling receiver produces these two channels naturally when it mixes the signal down to baseband. Mathematically, I and Q are the real and imaginary parts of a complex number, which is why IQ samples are also called complex samples — but you don’t need the math to use them.
How I and Q encode amplitude and phase
Here’s the payoff. Treat each sample as a point with coordinates (I, Q):
- Its distance from the origin is the amplitude (how strong).
- Its angle around the origin is the phase (where in the cycle).
A pure, steady tone makes this point rotate around the origin at a constant rate — the rotation speed is the frequency. Modulation nudges the point to specific places: amplitude modulation changes its distance, frequency modulation changes its rotation rate, phase modulation jumps its angle.
To make it concrete, a few sample values and what they mean:
| I | Q | Amplitude (√(I²+Q²)) | Phase (angle) |
|---|---|---|---|
| 1.0 | 0.0 | 1.0 | 0° (pointing right) |
| 0.0 | 1.0 | 1.0 | 90° (straight up) |
| 0.71 | 0.71 | 1.0 | 45° |
| 0.5 | 0.0 | 0.5 | 0°, but half as strong |
Notice rows 1–3 have the same amplitude but different phase — a single real number couldn’t tell them apart, yet the I/Q pair does. That’s the whole reason SDRs work in pairs.
The constellation connection
If a point’s position encodes amplitude and phase, then plotting the symbols of a digital signal on the IQ plane shows exactly which state each one is — which is what a constellation diagram is. The constellation you watch in GopherTrunk’s Constellation panel is literally a scatter plot of IQ samples. Tight clusters = clean IQ; smeared clusters = noisy IQ. Now you know what’s being plotted.
Negative frequencies and why IQ allows them
Because IQ captures direction of rotation, the receiver can tell a signal above the tuned centre frequency from one below it — “positive” vs. “negative” frequencies relative to the centre. A single real number can’t distinguish the two (they’d look identical), but the I/Q pair can, because they rotate opposite ways. This is why an SDR can show and process the whole captured band, both sides of the centre, at once.
How GopherTrunk uses IQ
Everything GopherTrunk does starts from the IQ stream off your SDR. It digitally tunes and filters within that IQ to isolate a channel, demodulates it by tracking amplitude/phase over time, and renders the constellation and other scopes straight from the IQ so you can see signal quality. IQ isn’t a detail of the hardware — it’s the raw material of the entire pipeline.
Quick check: on the IQ plane, what does a sample's angle represent?
Recap
- IQ data = paired I (in-phase) and Q (quadrature, 90° apart) samples.
- Together they capture amplitude (distance) and phase (angle) — the full state of the wave.
- The IQ plane is the constellation diagram.
- IQ distinguishes positive vs. negative frequencies, so the whole band is usable.
- GopherTrunk’s entire pipeline runs on IQ.
Next: how much spectrum that IQ stream actually covers — sample rate, bandwidth, and Nyquist.
Frequently asked questions
What is IQ data in an SDR?
IQ data is the stream of paired numbers an SDR produces, where I is the “in-phase” component and Q is the “quadrature” component (90 degrees out of phase). Together each I/Q pair captures both the amplitude and the phase of the signal at that instant, which is everything needed to represent any modulation. Plotting I horizontally and Q vertically gives the complex plane used by constellation diagrams.
Why does an SDR output two numbers per sample instead of one?
A single amplitude reading can’t tell you phase — whether the wave is rising or falling, or which way it’s rotating. By sampling two components 90 degrees apart (I and Q), the receiver captures amplitude and phase together, and can even distinguish frequencies above and below the tuned centre (positive vs negative frequencies). One number is ambiguous; the pair is complete.
What do I and Q stand for?
I stands for In-phase and Q for Quadrature. They are two versions of the signal sampled 90 degrees apart in phase. Mathematically they’re the real and imaginary parts of a complex number, which is why IQ samples are often called complex samples.
How does IQ relate to the constellation diagram?
A constellation diagram is literally a plot of IQ samples — I on the horizontal axis, Q on the vertical. Each symbol’s amplitude is its distance from the centre and its phase is its angle. So the constellation you see in GopherTrunk is a direct picture of the IQ data coming off your SDR.