Arte SheetsLearn. Try. Understand.

RF & Wireless Transceiver Design, Receiver Linearity & Dynamic Range

RF Receiver IIP3, IMD3 & Spurious-Free Dynamic Range Formula

Calculate RF Front-End Input-Referred Two-Tone Third-Order Intermodulation Product IMD3 (dBm = 3*Pin - 2*IIP3), Carrier-to-Intermod Suppression (dBc), Two-Thirds-Slope Spurious-Free Dynamic Range SFDR (dB), and Noise-Floor Headroom.

Master the 3:1 cubic IMD3 slope—+10 dB of blocker power boosts in-band distortion by +30 dB!

When two strong adjacent-channel interferers at frequencies f1 and f2 enter a weakly nonlinear LNA or mixer of Input Third-Order Intercept Point IIP3 (dBm) at equal tone power Pin (dBm), cubic nonlinearity generates in-band Third-Order Intermodulation Distortion products at 2*f1 - f2 and 2*f2 - f1 whose input-referred power climbs 3 dB for every 1 dB of Pin: IMD3 (dBm) = 3 * Pin - 2 * IIP3, giving Carrier-to-Intermod Suppression dBc = Pin - IMD3 = 2 * (IIP3 - Pin)! Setting IMD3 equal to the receiver’s Minimum Detectable Signal / Channel Noise Floor MDS (dBm) yields the classic Two-Thirds-Slope Spurious-Free Dynamic Range: SFDR (dB) = (2 / 3) * (IIP3 - MDS)!

Verify on a 5G Sub-6 GHz Cellular Front End—TwoTone_Blocker_Pin = -30.0 dBm (B2), Receiver_Input_IIP3 = +5.0 dBm (B3), and Channel_Noise_Floor_MDS = -100.0 dBm (B4): Input-Referred IMD3 lands right at 3*(-30) - 2*(5) = -100.00 dBm (E2), Relative IMD3 Suppression is 2*(5 - (-30)) = 70.00 dBc (E3), Spurious-Free Dynamic Range is (2/3)*(5 - (-100)) = 70.00 dB (E4), and Noise-Floor Headroom (MDS - IMD3) is 0.00 dB (E5)!

RF Linearity Metric (Pin = -30 dBm, IIP3 = +5 dBm, MDS = -100 dBm)FormulaVerified Output
Input-Referred IMD3 (dBm)3 * Pin_dBm - 2 * IIP3_dBm-100.00 dBm (-70.00 @ -20 dBm)
Carrier-to-IMD3 Ratio (dBc)2 * (IIP3_dBm - Pin_dBm)70.00 dBc (50.00 dBc @ -20 dBm)
Spurious-Free Dynamic Range (dB)(2 / 3) * (IIP3_dBm - MDS_dBm)70.00 dB
Noise-Floor Margin MDS - IMD3 (dB)MDS_dBm - Input_IMD3_dBm0.00 dB (-30.00 dB Desense @ -20)

RF Receiver Spurious-Free Dynamic Range (SFDR) Formula

Validate small-signal polynomial validity Pin <= IIP3 - 10 dB (below 1-dB compression P1dB ≈ IIP3 - 9.6 dB) and MDS < Pin!

=LET(pi_n, B2, ip_3, B3, md_s, B4, IF(OR(pi_n > ip_3 - 10, md_s >= pi_n), "Invalid Small-Signal IIP3 Input", ROUND((2 / 3) * (ip_3 - md_s), 2)))

+10 dB Near-Far Blocker Surge Check (Set Pin = -20.0 dBm)

Raise TwoTone_Blocker_Pin B2 by +10 dB from -30.0 dBm to -20.0 dBm: Input-Referred IMD3 E2 jumps +30 dB to -70.00 dBm, slashing suppression E3 to 50.00 dBc and desensitizing the receiver by 30.00 dB above the noise floor (E5 = -30)!

=IF(ISTEXT(E4), E4, ROUND(B4 - (3 * B2 - 2 * B3), 2))

Try the example

Use the original values or change them to test your understanding.

Further reading