Bit Error Rate (BER) Simulator Back
Electrical & Communications

Bit Error Rate (BER) Simulator

Compute the bit error rate (BER) that decides the quality of a digital link. Adjust the signal-to-noise ratio Eb/N0, the modulation scheme and the error-correction coding gain to see the waterfall curve, constellation diagram and errored bits per second update in real time, and feel the key trade-offs of link design.

Parameters
Signal-to-noise ratio Eb/N0
dB
Ratio of energy per bit to noise density
Modulation scheme
Sets how many bits ride on each symbol
Bit rate
Mbps
Used to find the errored bits per second
Error-correction coding gain
dB
How much FEC lifts the effective Eb/N0
Results
Bit error rate BER
Errored bits per second (bits/s)
Spectral efficiency (bits/symbol)
Eb/N0 for BER=10⁻⁶ (dB)
Effective Eb/N0 (dB)
Link quality verdict
Constellation diagram — noisy received symbols

Around the ideal constellation points (white) and decision boundaries (dashed), the noisy received symbols (coloured) scatter. The lower the Eb/N0, the wider the spread; once a point crosses a boundary it becomes an error.

BER waterfall curve (BER vs Eb/N0)
Required Eb/N0 per modulation (BER=10⁻⁶)
Theory & Key Formulas

$$\text{BER}_{BPSK}=Q\!\left(\sqrt{2\,E_b/N_0}\right),\qquad Q(x)=\tfrac12\,\mathrm{erfc}\!\left(\tfrac{x}{\sqrt2}\right)$$

Bit error rate of BPSK over an AWGN channel. Q(x) is the upper-tail probability of the standard normal distribution, erfc the complementary error function. Eb/N0 is a linear ratio.

$$\text{BER}_{16\text{-}QAM}\approx\tfrac38\,Q\!\left(\sqrt{\tfrac45 E_b/N_0}\right),\quad \text{BER}_{64\text{-}QAM}\approx\tfrac{7}{24}\,Q\!\left(\sqrt{\tfrac27 E_b/N_0}\right)$$

Approximate BER for higher-order QAM. Higher-order QAM yields more bits per symbol but needs a higher required Eb/N0 to reach the same BER — the spectral-efficiency / required-Eb/N0 trade-off.

$$E_b/N_0\,[\text{lin}]=10^{(E_b/N_0[\text{dB}]+G_c)/10},\qquad N_{err}=\text{BER}\cdot R_b$$

Effective Eb/N0 (linear) and errored bits per second. Gc: coding gain [dB], Rb: bit rate [bps].

What is the Bit Error Rate (BER)?

🙋
You hear "bit error rate (BER)" all the time in communications — but what fraction is it, exactly?
🎓
Put simply, it is "out of the bits you send, how many get flipped". If you send a 0 and the receiver decides it was a 1, that is one bit error. A BER of 10⁻³ means one wrong bit in a thousand; 10⁻⁶ means one in a million. Voice calls tolerate a few errors, but bank data transfers want it essentially zero. So in link design, "what order of magnitude is the BER on this channel" is the single most important figure.
🙋
Why do bits get flipped at all? I'd think it's fine as long as the signal arrives.
🎓
The culprit is noise. Random fluctuations always creep in — inside the receiver, or from space. The model for this is AWGN (additive white Gaussian noise): a noise voltage gets added to the signal voltage. If the noise is small, the decision is right; but if the signal is weak or the noise large, the noise pushes the value across the boundary between 0 and 1. So what matters is not absolute signal strength but the ratio of signal to noise — Eb/N0. Lower the Eb/N0 slider on the left and watch the BER shoot up.
🙋
You're right — dropping 8 dB to 5 dB worsened the BER by several orders. The curve falls like a waterfall.
🎓
That is exactly the "waterfall curve". BER is hugely sensitive to Eb/N0, and over a narrow range it plunges. For BPSK, 8 dB gives about 2×10⁻⁴, but raise it to 11 dB and you go below 10⁻⁶. Just 3 dB — double the power — cuts errors by more than a hundredfold. The flip side: a marginal design can collapse with a tiny degradation. In practice, you keep a few dB of margin above the required BER because of this steepness.
🙋
If I switch the modulation to 16-QAM or 64-QAM, the BER gets worse at the same Eb/N0. Higher-order sounds better — why?
🎓
Higher-order QAM packs more bits into each transmission (each symbol): BPSK is 1 bit, 64-QAM is 6. So the throughput per unit bandwidth — the spectral efficiency — is six times higher. But look at the constellation diagram above. 64-QAM crams 64 points tightly together, so the gaps between them are small. A small noise displacement lands in a neighbour and causes an error. To reach the same BER, 64-QAM needs about 8 dB more Eb/N0 than BPSK. It is a "speed versus robustness" trade-off.
🙋
So when Eb/N0 is short, do I just drop to a lower modulation? What is the "coding gain" slider?
🎓
Good question — that is forward error correction (FEC). By adding redundant bits at the transmitter, the receiver can correct a number of errors. Coding gain measures that benefit as "how many dB of Eb/N0 you save to reach the same BER". A 5 dB gain shifts the whole waterfall curve 5 dB to the left. Real satellite links and 4G/5G earn several dB with turbo codes or LDPC codes, achieving usable BER even on weak signals. Raise the slider and you will see the required Eb/N0 drop.

Frequently Asked Questions

Over an AWGN (additive white Gaussian noise) channel, the bit error rate of BPSK is BER = Q(√(2·Eb/N0)). Q(x) is the upper-tail probability of the standard normal distribution, which can be written with the complementary error function as Q(x) = ½·erfc(x/√2). Eb/N0 is the ratio of energy per bit to the noise power spectral density. This tool implements erfc with the Abramowitz-Stegun rational approximation (accurate to about 1e-7) and computes QPSK, 16-QAM and 64-QAM from their own theoretical expressions.
Higher-order modulations pack more bits into every symbol, so the points of the constellation sit closer together. The closer the points, the smaller the noise displacement needed to cross into a neighbouring decision region and cause an error. To reach the same BER = 10⁻⁶, BPSK/QPSK need about 10.5 dB, 16-QAM about 14 dB and 64-QAM about 18.5 dB of Eb/N0. In other words, spectral efficiency (bits/symbol) and required Eb/N0 are a trade-off.
Forward error correction (FEC) adds redundant bits so the receiver can correct errors. Its benefit is expressed as coding gain — how many dB of Eb/N0 you save to reach the same BER. This tool treats the effective Eb/N0 as Eb/N0 + coding gain, which shifts the whole waterfall curve to the left. A 5 dB gain, for example, gives 5 dB better BER than an uncoded link on a noisy channel.
It is a plot of BER on a logarithmic axis against Eb/N0 in dB. As Eb/N0 rises, the BER falls extremely steeply over a narrow range — like a waterfall — which is why it is called the waterfall curve. For BPSK, raising Eb/N0 from 8 dB to 11 dB drops the BER from about 2×10⁻⁴ to below 10⁻⁶, more than two orders of magnitude. In design, you read off the minimum Eb/N0 that meets the required BER.

Real-World Applications

Adaptive modulation in mobile networks (4G/5G): A smartphone base station switches the modulation scheme instantly with the radio conditions. Close to the cell, where Eb/N0 is high, it uses 64-QAM or 256-QAM for high throughput; near the cell edge, where the signal weakens, it drops to QPSK or BPSK to keep the BER within bounds. This is adaptive modulation and coding (AMC), and the "required Eb/N0 per modulation" chart in this tool is exactly the relationship behind that switching decision.

Satellite and deep-space communication: A probe far from Earth has limited power and bandwidth and an extremely low-Eb/N0, harsh link. Here, powerful error-correction codes (LDPC codes, turbo codes, and historically convolutional codes plus Reed-Solomon) earn a large coding gain, and combined with robust low-order modulations such as BPSK or QPSK they deliver image data error-free even with tiny received power.

Link budgets for optical-fibre communication: On a long-haul optical link, you stack up fibre loss, dispersion and receiver noise into a link budget and estimate the Eb/N0 at the receiver. To meet the required BER (typically below 10⁻¹²), you design the amplifier spacing and the forward-error-correction overhead. Understanding the steepness of the waterfall curve makes it clear why securing a few dB of margin is a matter of survival.

Quality evaluation of Wi-Fi and IoT devices: In developing Wi-Fi or LPWA (LoRa, Sigfox) devices, receiver-sensitivity tests measure the minimum received power that meets a specified BER. Knowing the relationship between Eb/N0, BER and modulation — as in this tool — lets you assess how far a measured BER curve sits from the theoretical curve (the implementation loss) and estimate the room for improvement in antennas and receiver circuits.

Common Misconceptions and Pitfalls

The most common pitfall is treating Eb/N0 and SNR (carrier-to-noise ratio C/N) as the same thing. Eb/N0 is a ratio referenced to "energy per bit", while SNR and C/N are ratios of "in-band signal power to noise power". They are linked by SNR = (Eb/N0)·(Rb/B) (Rb: bit rate, B: bandwidth), and the conversion factor depends on the modulation and roll-off. This tool works entirely in Eb/N0, so comparing its values directly with an SNR meter on real hardware will be off by an order of magnitude. Always convert before comparing.

Next, expecting the theoretical BER here to appear directly on real hardware. What is computed here is the theoretical value for an idealised AWGN channel (white Gaussian noise only). A real radio link adds multipath fading, intersymbol interference, phase noise, non-linear distortion and synchronisation errors, so at the same Eb/N0 the measured BER is worse than the theoretical value. This gap is called implementation loss and is usually one to several dB. Treat the theoretical curve as a lower-bound benchmark — "it cannot get better than this".

Finally, the oversimplified view that "small BER is all that matters". With error correction, the waterfall curve shows threshold-like behaviour: there is a "waterfall region" where the BER plunges past a certain Eb/N0, with little effect just below it, and an "error floor" where uncorrectable errors remain. Moreover, errors are not always randomly scattered — under fading they occur in bursts. Burst errors call for interleaving, and even at the same average BER the practical quality varies greatly with how the errors are distributed. Evaluate not just the average BER but also the temporal distribution of errors.

How to Use

  1. Set Eb/N0 (energy per bit to noise power spectral density) in dB using the slider or numeric input—typical range 0–15 dB for QPSK modulation
  2. Enter bit rate in Mbps; standard values include 1 Mbps for legacy systems, 100 Mbps for Ethernet links, or 10 Gbps for fiber-optic backhaul
  3. Adjust coding gain (0–8 dB) to model forward error correction (FEC) like convolutional codes or turbo codes; higher gain reduces required Eb/N0 by approximately the gain value
  4. Read output BER, errored bits per second, and link quality verdict to assess digital link performance against ITU-T or 3GPP standards

Worked Example

For a 622 Mbps ATM link using QPSK with no coding: set Eb/N0 = 9.6 dB, bit rate = 622 Mbps, coding gain = 0 dB. Simulator outputs BER ≈ 1.2 × 10⁻⁶, or 746 errored bits/second. Spectral efficiency = 2 bits/symbol. Adding turbo code with 5 dB gain shifts required Eb/N0 for BER = 10⁻⁶ from 10.5 dB down to 5.5 dB, reducing frame loss in WCDMA networks from 0.08% to negligible levels.

Practical Notes

  1. Eb/N0 thresholds: BPSK uncoded requires ~9.6 dB for 10⁻⁹ BER in satellite comms; DVB-S2 with LDPC achieves 10⁻⁷ at 2.3 dB
  2. Spectral efficiency trade-off: 16-QAM provides 4 bits/symbol but needs 4–6 dB higher Eb/N0 than QPSK; use only when SNR margin exceeds 5 dB
  3. Coding gain validation: real convolutional code (rate 1/2, K=7) yields ~5.1 dB gain; account for code rate loss (0.3 dB penalty) in total link budget