The most natural instinct in SDR is the one that hurts you: turn the gain up to hear the weak stuff. Past a point, more gain does not pull in more signal - it lifts the receiver's own noise just as fast, drives the strong signals into distortion, and actively reduces how much you decode. There is an optimum, and it is usually well short of maximum. The clearest proof is not theory, it is a pile of aircraft tracking data, and you can watch the mechanism in the meter below.

[INFO]
Drag the gain and watch three things move together: the signal peak and the noise floor both climbing, the SNR rising to a peak and then falling, and the share of "too-strong" messages crossing the 5% line into overload. The sweet spot is the setting just below where overload starts.
◈ interactive artifact
Find the Gain Sweet Spot
A dBFS meter with a noise floor, a clipping line, and an ADS-B-style overload metric. Watch SNR peak and then fall as you push past the sweet spot toward maximum.

//Why More Gain Stops Helping

Gain multiplies everything coming into the receiver - the signal you want, the noise around it, and the strong signals you do not care about, all together. At low gain the receiver's own noise figure dominates, so turning gain up genuinely improves the signal-to-noise ratio. But once external noise sets the floor, extra gain raises signal and noise in lockstep and SNR stops improving. Keep going and you reach the front end's limit: strong signals hit the 1 dB compression point, the amplifier starts distorting, and it manufactures intermodulation products - false signals that were never on the air - from the real ones. Bench measurements on the common RTL-SDR dongles show exactly this: they overload on strong in-band signals, and multiple strong signals add roughly 3 dB each, pushing the front end into compression sooner than you would expect.

//The ADS-B Proof

Aircraft tracking makes this measurable, because the decoders count their own message quality. ADS-B receivers like dump1090 and readsb report the share of messages arriving "too strong" - above -3 dBFS, close to the ADC's ceiling. The well-known result from the tracking community: raising an RTL-SDR from a tuned gain around 49.6 dB up toward maximum pushed that strong-message share from roughly 2 to 3 percent past 10 percent, and the total number of good decodes dropped. The guidance that came out of it is a number worth keeping: keep the strong-message share under about 5 percent, and if you are over it, turn the gain down. The receiver with less gain decoded more aircraft. That is the whole lesson in one experiment.

[TECHNICAL NOTE]
This is why some decoders ship an adaptive-gain mode. An RTL-SDR has only about 30 to 35 dB of usable instantaneous dynamic range at a fixed gain setting, so no single gain can serve both the faint aircraft at the horizon and the airliner overhead. The adaptive logic watches for strong, message-shaped bursts that failed to decode - the signature of overload - and lowers gain to recover them.

//Dynamic Range, and Why 8 Bits Is the Whole Story

An ideal analog-to-digital converter has a signal-to-noise ratio of about 6.02 dB per bit (the 6.02 is 20 log10 of 2), plus a 1.76 dB constant. An RTL-SDR delivers 8-bit I/Q samples, so its theoretical dynamic range is about 48 dB (6 dB times 8 bits), or just under 50 dB if you include the full formula. That is the gap between the quietest and loudest thing it can represent at once. The usable figure in practice is lower still, 30 to 35 dB, which is precisely why gain staging matters: you are spending a narrow dynamic-range budget, and wasting it by cranking gain means the strong signals clip while the gain you added did nothing for the weak ones.

//Reading the Units: dB, dBm, dBFS, dBi

Half the confusion around gain is that "dB" is four different things depending on the suffix, and only some of them are absolute.

dB is a ratio

Plain dB expresses a ratio of two powers. Plus 3 dB is approximately double the power; plus 10 dB is exactly ten times; minus 3 dB is half. Gains and losses in dB add up along a signal chain, which is the entire reason the unit is convenient.

dBm is absolute power

dBm is power referenced to one milliwatt: 0 dBm is 1 mW, 30 dBm is 1 W, and a weak received signal might be -100 dBm. Because it is referenced, you can do real arithmetic with it - add antenna gain in dBi, subtract cable loss in dB.

dBFS is relative to the ADC ceiling

dBFS is referenced to the converter's full scale. A digitised sample sits at or below 0 dBFS; 0 dBFS means the sample has hit the largest value the ADC can represent - clipping. This is the scale the meter in the demo uses, and the -3 dBFS line is the "getting too close to the ceiling" warning that the ADS-B overload metric watches.

dBi vs dBd for antennas

Antenna gain comes in two references that differ by a fixed 2.15 dB. dBi is referenced to a theoretical isotropic radiator; dBd to a real half-wave dipole. A dipole is about 2.15 dBi, so dBi = dBd + 2.15. A vendor quoting dBi is quoting the larger-sounding number for the same antenna - worth knowing when you compare two spec sheets.

[WARNING]
The practical takeaway: set gain by result, not by instinct. Raise it while weak signals improve; the moment strong signals start overloading - the strong-message share climbing, decode rate falling, a DC-adjacent haze of intermod appearing - back off a step. For a general picture of the spectrum and the noise floor the meter draws from, see how an SDR works.

//Sourcing and Framing

The overload, 1 dB compression and intermodulation behaviour of RTL-SDR dongles is from rtl-sdr.com's bench measurements. The ADS-B result - strong-message share rising from ~2-3% past 10% as gain went from 49.6 dB toward maximum, with total decodes falling, and the "keep strong signals under ~5%, turn gain down" guidance - is from the FlightAware tracking community's gain-optimisation discussions, and the ~30-35 dB usable instantaneous dynamic range is from the dump1090 adaptive-gain documentation. The 6.02 dB-per-bit rule (plus 1.76 dB) is the standard ADC SNR relationship; the RTL-SDR 8-bit I/Q sample depth and the ~48 dB theoretical figure follow from it. The dB / dBm / dBFS / dBi definitions and the 2.15 dB dBi-dBd offset are standard references. The demo's numbers are an illustrative model of this behaviour, tuned to reproduce the ADS-B result's shape, not a capture off any particular device.