Home / Science / Engineering / RF and communications / Modulation and BER simulatorTool #634

BER simulator: BPSK, QPSK, 8-PSK, 16-QAM and 64-QAM constellations in noise, with bit error rate against Eb/N0

Send Gray-coded BPSK, QPSK, 8-PSK, 16-QAM or 64-QAM symbols through seeded white Gaussian noise at your Eb/N0 and see the noisy constellation. Count the bit and symbol errors with a 95 % interval and compare them with the theoretical rates. Sweep Eb/N0 to plot the simulated bit error rate against the theory curves of all five schemes, and download the sweep as CSV.

Keep it one tap away for everyday use.

Bookmark Modulation and BER simulator?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Modulate
  2. Add noise
  3. Decide
  4. BER curve
Nothing is uploadedWorks offline once open

Signal and noise

Eb/N0 is the energy per bit over the noise density, the fair way to compare schemes that carry different numbers of bits per symbol. Each symbol gets random Gaussian noise (AWGN) and is decided as the nearest constellation point. The seed makes the noise repeatable.

Constellation

The first 2,000 received symbols are drawn; the ideal points are labelled with their Gray-coded bits (up to 16 points), so neighbours differ by one bit.

Error rate against Eb/N0

Lines are the theoretical bit error rates of all five schemes; dots are this simulation of the chosen one. Points with no errors are left off (the rate is below about 1 in the number of bits sent).

Download

What it does

Digital radios, modems and Wi-Fi send bits as symbols: points in a plane of in-phase (I) and quadrature (Q) amplitude, called a constellation. Noise moves each received symbol away from its ideal point, and when it lands nearer a different point the receiver makes an error. This simulator shows that happening and measures it:

  • the constellation of BPSK, QPSK, 8-PSK, 16-QAM or 64-QAM with Gray-coded bit labels, and the cloud of received points at your Eb/N0,
  • the measured bit error rate (BER) and symbol error rate (SER), with a 95 % interval, next to the theoretical values,
  • a sweep of Eb/N0 that plots the simulated BER against the theory curves of all five schemes.

The noise is additive white Gaussian noise (AWGN) from a seeded random generator, so the same seed always gives the same result. The receiver picks the nearest constellation point (the optimum decision in this channel).

How to use it

  1. Pick the modulation and the Eb/N0 in dB: the energy per bit divided by the noise power density.
  2. Choose how many symbols to simulate. Rare errors need many symbols: to measure a BER of 10⁻⁵ you want at least a few million bits.
  3. Set the sweep range, step and symbols per point. The chart and table update on their own; download the sweep as CSV.

What the results mean

  • More bits per symbol needs more Eb/N0. BPSK and QPSK need about 10.5 dB for a BER of 10⁻⁶, 8-PSK about 13.9 dB, 16-QAM 14.4 dB and 64-QAM 18.8 dB. Higher orders carry more bits in the same bandwidth, so the choice is a trade between speed and robustness.
  • BPSK and QPSK have the same BER against Eb/N0. QPSK is two BPSK signals at right angles, so it doubles the bits per symbol for free.
  • Gray coding makes neighbouring points differ by one bit, so most symbol errors cost only one bit error and BER ≈ SER / bits per symbol.

Worked example

16-QAM at Eb/N0 = 10 dB with 100,000 symbols (400,000 bits) and seed 1: the simulation counts 687 bit errors, a BER of 1.72 × 10⁻³ (95 % interval 1.59 to 1.85 × 10⁻³). The exact theory for Gray-coded 16-QAM gives 1.75 × 10⁻³, inside the interval. The symbol error rate is 6.86 × 10⁻³ against 7 × 10⁻³ in theory, almost exactly four times the BER, as Gray coding predicts. Es/N0 is 16.02 dB (10 dB plus 10 log10 4).

The same setting with BPSK gives no errors at all in 100,000 bits, which fits the theoretical BER of 3.87 × 10⁻⁶: you would expect fewer than one error.

FAQ

Why do simulated points wander from the line at low error rates? Few errors means a large random spread. The 95 % interval shows how far the true rate could be; send more symbols to tighten it.

Is the 8-PSK BER exact? The 8-PSK symbol error rate is exact (Craig’s integral). Its BER uses the Gray approximation SER / 3, which is very close at the error rates that matter. BPSK, QPSK and square QAM are exact.

Does it model fading, phase noise or coding? No. It is the plain AWGN channel, the reference every real system is compared with. Use the link budget calculator to find the Eb/N0 a radio link actually delivers.

Where the numbers come from

  • Bit and symbol error rates of BPSK, QPSK and M-PSK in AWGN (Craig's integral for the M-PSK symbol error rate) and of square M-QAM, as in Proakis and Salehi, Digital Communications, and Simon and Alouini, Digital Communication over Fading Channels (equations only).
  • Exact bit error rate of Gray-coded square M-QAM from Cho and Yoon (2002), IEEE Transactions on Communications 50(7), 1074–1080 (equation only).
  • Wilson score interval for the measured error rate (Wilson, 1927).
  • Checked against SciPy (scipy.special.erfc, scipy.integrate.quad, and an independent exact QAM bit error rate summed from Gray PAM transition probabilities with scipy.stats.norm) and an independent NumPy Monte Carlo simulation.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-09.

Related tools

Link budget calculator #59 Work out whether a radio link will close: a CubeSat downlink, a ground station or a point-to-point link. Gives EIRP, free-space loss, G/T, C/N0, Eb/N0, the margin, the fastest data rate and the margin through a satellite pass. Antenna calculator #632 Work out antenna sizes from the frequency: half-wave dipole and quarter-wave monopole lengths, a rectangular microstrip patch (width, effective permittivity, fringing length, edge resistance and inset feed) and a starting Yagi-Uda layout, with every formula shown. Smith chart #633 Plot a load impedance on an interactive Smith chart and get the reflection coefficient, VSWR, return loss and mismatch loss, the impedance after any length of line, both L-network matching solutions with part values, and single open or shorted stub matching. 1D Schrödinger solver #923 Choose a textbook potential, type a formula or draw your own, and get the lowest energy levels and wavefunctions of the one-dimensional Schrödinger equation by the matrix (finite-difference) method, with the exact levels alongside for the box, harmonic oscillator, finite well, Morse, linear and Pöschl–Teller potentials. Adduct and neutral loss calculator #984 Type a formula or a neutral monoisotopic mass and get the m/z of 25 common electrospray adducts in positive and negative mode, the ions left after common neutral losses (water, ammonia, CO2, sugars, phosphate and your own), and match a list of observed m/z values within a ppm tolerance. With no molecule, it turns observed m/z values into candidate neutral masses. Air quality calculator #116 Convert gas concentrations between ppm, ppb, µg/m³ and mg/m³ at any temperature and pressure, and work out the US Air Quality Index (with the 2024 PM2.5 breakpoints), India's National AQI and Canada's Air Quality Health Index from your own readings.