ELE-350 · Lesson 9 of 12 · 22 min

Detection and bit error rate

A digital receiver ends every symbol period with a decision: which of the possible symbols was sent? Noise makes some of those decisions wrong, and the fraction that are wrong, the bit error rate, is the single most important measure of a digital link. This lesson derives how to make the decision optimally, shows that the best receiver filter is matched to the transmitted pulse, and computes the bit error rate of the main modulation schemes as a function of E_b/N₀, the ratio of energy per bit to noise density. It ends by converting bit error rates into packet error rates, the figure that matters to the TLR-1's requirement of fewer than one lost message in a million.

Amara now has candidate numbers: GFSK at 50 kb/s, a 256-bit packet and a receiver noise figure of 7 dB at the pole stations. What she still lacks is the required signal level, which depends on how often the demodulator errs at a given E_b/N₀. Daniel asks for a clear statement that the team can test on the bench: at what received power will one packet in a thousand fail, and how do retries get from there to one in a million?

Binary decisions in noise

Consider binary antipodal signaling, BPSK at baseband: in each bit period the receiver obtains a single number r = ±√E_b + n, where n is Gaussian noise with variance σ². The receiver must decide which sign was sent. If ones and zeros are equally likely, the decision that minimizes the probability of error is the maximum-likelihood rule: choose the symbol whose value is closer to r. For antipodal signals the threshold is zero. An error occurs when noise pushes r across the threshold, which happens with probability Q(√E_b/σ), the Gaussian tail of lesson 7.

\[P_e = P\big(n > \sqrt{E_b}\big) = Q\Big(\frac{\sqrt{E_b}}{\sigma}\Big) = Q\Big(\frac{d}{2\sigma}\Big)\]

The general rule in the second form holds for any pair of points separated by distance d in signal space: the error probability depends only on the distance between the points and the noise standard deviation. That is why lesson 8 rated modulations by d_min²/E_b. The remaining question is how large σ is for a given noise density N₀, which depends on how the receiver turns the waveform into the single number r.

The matched filter

Suppose the receiver passes the incoming waveform through a filter h(t) and samples the output at the end of the symbol. Which filter maximizes the signal-to-noise ratio of that sample? The answer, found with the Cauchy-Schwarz inequality, is the matched filter: an impulse response that is the time-reversed copy of the transmitted pulse. Its output SNR is 2E/N₀, where E is the pulse energy, and it depends only on the energy, not on the pulse shape. No filter can do better.

\[h(t) = s(T - t) \qquad \text{SNR}_{max} = \frac{2E}{N_0}\]

An equivalent receiver multiplies the incoming signal by a copy of the expected pulse and integrates over the symbol, called a correlator, which gives the same sample. For BPSK on a carrier, the correlator multiplies by the carrier and integrates, which is exactly the coherent demodulator of lesson 2 followed by an integrate-and-dump filter. The root-raised-cosine receive filter of lesson 6 is the matched filter for root-raised-cosine pulses, which is why splitting the raised cosine between the two ends is optimal.

With a matched filter or correlator, the noise in the decision variable has variance σ² = N₀/2 when the signal points are expressed in signal-space units of √joule. Substituting into the distance rule gives the error probabilities below. All of them depend on E_b/N₀, which is why that ratio, rather than SNR, is the standard measure for comparing digital schemes.

Error rates of the main schemes

\[\text{BPSK, QPSK: } P_b = Q\Big(\sqrt{\frac{2E_b}{N_0}}\Big) \qquad \text{coherent 2-FSK: } P_b = Q\Big(\sqrt{\frac{E_b}{N_0}}\Big)\]
\[\text{DPSK: } P_b = \tfrac{1}{2}e^{-E_b/N_0} \qquad \text{non-coherent 2-FSK: } P_b = \tfrac{1}{2}e^{-E_b/2N_0}\]

BPSK's antipodal points give the best result. QPSK, as two independent BPSK channels, has the same bit error rate. Coherent orthogonal FSK has points √2 times closer for the same E_b, so it needs twice the E_b/N₀, 3 dB more. Non-coherent detection, which compares the energy at each tone without knowing the phase, loses a little more, about 1 dB at low error rates: its error rate follows from the Rayleigh envelope of lesson 7. Differential PSK sits between coherent BPSK and non-coherent FSK. For M-ary schemes, a nearest-neighbor approximation counts the average number of closest points and multiplies by the pairwise error probability.

\[M\text{-PSK: } P_s \approx 2Q\Big(\sqrt{\tfrac{2E_s}{N_0}}\sin\tfrac{\pi}{M}\Big) \qquad M\text{-QAM: } P_s \approx 4\Big(1 - \tfrac{1}{\sqrt M}\Big)Q\Big(\sqrt{\tfrac{3E_s}{(M - 1)N_0}}\Big)\]
A graph of bit error rate on a logarithmic vertical axis from 1 in 10 to 1 in 10 million against E b over N 0 in dB from 0 to 16. Four curves fall steeply from left to right: BPSK and QPSK on the left, reaching 10 to the minus 6 at about 10.5 dB; DPSK about 0.8 dB to its right; coherent FSK 3 dB to the right of BPSK; and non-coherent FSK furthest right, reaching 10 to the minus 6 at about 14.2 dB. A dashed horizontal line marks 10 to the minus 6.
Bit error rate against E_b/N₀ for binary schemes in Gaussian noise. Each factor-of-ten improvement in error rate costs less than 1 dB at low error rates.

The curves share a striking shape. At high E_b/N₀ they fall extremely steeply: for BPSK, going from 10⁻⁵ to 10⁻⁶ costs only about 0.9 dB. A link that is a few decibels short of its target does not degrade gracefully; it falls off a cliff. That is why link budgets in lessons 11 and 12 add a margin, and why a small loss in the front end, like the SAW filter's 2 dB, matters more than it seems.

E_b/N₀ and SNR

A receiver's SNR is measured in its noise bandwidth B; E_b/N₀ is measured per bit. The two are related by the ratio of bit rate to bandwidth. For binary signaling with raised-cosine filtering, B ≈ (1 + α)R_b, so SNR is slightly below E_b/N₀; for a multilevel scheme carrying several bits per symbol in the same bandwidth, SNR is higher. Specifying the requirement as E_b/N₀ keeps the arithmetic honest when the data rate changes.

\[\text{SNR} = \frac{E_b}{N_0}\cdot\frac{R_b}{B} \qquad \text{required received power: } P_r = \frac{E_b}{N_0}\Big|_{req} + 10\log_{10}R_b - 174 + \text{NF}\ \ \text{(dBm)}\]

From bit errors to packet errors

The TLR-1 sends packets, and a packet is lost if any bit in it is wrong, unless coding corrects it. With independent bit errors at rate p, the probability that an N-bit packet arrives intact is (1 − p)^N, so the packet error rate is about Np when Np is small. A 256-bit packet with p = 10⁻⁵ fails about once in 400 attempts. Reaching a packet error rate of 10⁻³ needs p below about 4 × 10⁻⁶.

\[\text{PER} = 1 - (1 - p)^N \approx Np \quad (Np \ll 1)\]

Retries help enormously if failures are independent. The cabinet acknowledges every button press; if no acknowledgment arrives within a few milliseconds, the pole station sends again. With a per-attempt PER of 10⁻³ and up to three attempts, a message is lost only if all three fail: 10⁻⁹, far better than the requirement. The catch is the word independent. A burst of interference or a deep fade can last longer than the retry interval, so the attempts are correlated. Lesson 11 shows how fading changes the picture and why the retries are spread out in time and frequency.

Worked problem

Required received power for the pole stations

The TLR-1 uses non-coherent binary GFSK, approximated by orthogonal non-coherent FSK, at R_b = 50 kb/s with NF = 7 dB. Find the E_b/N₀ needed for a 256-bit PER of 10⁻³, and the received power that gives it. Allow 1.5 dB for the implementation losses of a real demodulator.

Show solution
  1. \[p = 1 - (1 - 10^{-3})^{1/256} \approx 3.91\times10^{-6}\]
  2. \[\tfrac{1}{2}e^{-E_b/2N_0} = p \;\Rightarrow\; \frac{E_b}{N_0} = 2\ln\frac{1}{2p} = 2\ln(1.28\times10^{5}) = 23.5 \;(13.7\ \text{dB})\]
  3. \[\frac{E_b}{N_0}\Big|_{req} = 13.7 + 1.5 = 15.2\ \text{dB}\]
  4. \[P_r = 15.2 + 10\log_{10}(50\,000) - 174 + 7 = 15.2 + 47.0 - 174 + 7 = -104.8\ \text{dBm}\]

Answer: The pole receiver needs about −105 dBm for one failed packet in a thousand. With coherent BPSK the requirement would be about 3.7 dB lower. Amara writes −105 dBm into the link budget as the sensitivity figure to verify on the bench.

Required E_b/N₀ for four binary schemes, a Monte Carlo check of BPSK, and the received power needed for the TLR-1 packet error target.
import math, random
Q = lambda x: 0.5 * math.erfc(x / math.sqrt(2))
def ber(scheme, ebn0_db):
    g = 10 ** (ebn0_db / 10)
    return {'BPSK': Q(math.sqrt(2*g)), 'DPSK': 0.5*math.exp(-g),
            'coh FSK': Q(math.sqrt(g)), 'noncoh FSK': 0.5*math.exp(-g/2)}[scheme]
def required(scheme, target):
    lo, hi = 0.0, 30.0
    for _ in range(60):
        mid = (lo + hi) / 2
        if ber(scheme, mid) > target: lo = mid
        else: hi = mid
    return hi
for s in ('BPSK', 'DPSK', 'coh FSK', 'noncoh FSK'):
    print(f"{s:10s}: Eb/N0 for 1e-5 = {required(s, 1e-5):5.2f} dB, for 1e-6 = {required(s, 1e-6):5.2f} dB")
# Monte Carlo check of BPSK at 6 dB with a correlator receiver
random.seed(9)
g = 10 ** (6 / 10); sigma = math.sqrt(1 / (2 * g)); n = 400000
errors = sum(1 for _ in range(n) if 1 + random.gauss(0, sigma) < 0)
print(f"BPSK at 6 dB: simulated {errors/n:.2e}, theory {ber('BPSK', 6):.2e}")
# packet error rate and the TLR-1 requirement
N = 256
p = 1 - (1 - 1e-3) ** (1 / N)
ebn0 = required('noncoh FSK', p)
print(f"bit error rate for PER 1e-3 with {N}-bit packets: {p:.2e}; noncoherent FSK needs {ebn0:.1f} dB")
print(f"received power with 1.5 dB implementation loss: {ebn0 + 1.5 + 10*math.log10(50e3) - 174 + 7:.1f} dBm")
for tries in (1, 2, 3):
    print(f"{tries} attempt(s), independent failures: message loss = {1e-3**tries:.0e}")
Output
BPSK      : Eb/N0 for 1e-5 =  9.59 dB, for 1e-6 = 10.53 dB
DPSK      : Eb/N0 for 1e-5 = 10.34 dB, for 1e-6 = 11.18 dB
coh FSK   : Eb/N0 for 1e-5 = 12.60 dB, for 1e-6 = 13.54 dB
noncoh FSK: Eb/N0 for 1e-5 = 13.35 dB, for 1e-6 = 14.19 dB
BPSK at 6 dB: simulated 2.53e-03, theory 2.39e-03
bit error rate for PER 1e-3 with 256-bit packets: 3.91e-06; noncoherent FSK needs 13.7 dB
received power with 1.5 dB implementation loss: -104.8 dBm
1 attempt(s), independent failures: message loss = 1e-03
2 attempt(s), independent failures: message loss = 1e-06
3 attempt(s), independent failures: message loss = 1e-09

The program confirms the hand calculation and shows the spread between schemes: at 10⁻⁶, BPSK needs about 10.5 dB, DPSK about 11.2 dB, coherent FSK about 13.5 dB and non-coherent FSK about 14.2 dB. The simulated BPSK error rate agrees with Q(√(2E_b/N₀)) within the statistical scatter of a few hundred thousand bits, which is a useful habit: whenever a formula drives a design, check it once by simulation.

Synchronization

All of the coherent results assume that the receiver knows the carrier phase and the symbol timing exactly. In practice, carrier recovery loops such as the Costas loop of lesson 2, or a decision-directed loop, estimate the phase, and timing loops estimate the sampling instant. Errors in either act like a loss of E_b/N₀: a phase error φ multiplies the BPSK signal component by cos φ, and a timing error lets ISI creep in, as the eye diagrams of lesson 6 showed. For short packets, estimates must be formed quickly from the preamble, which is one reason packet radios favor non-coherent FSK or differential schemes even though they need 1 to 4 dB more power. The 1.5 dB implementation loss in the example covers these effects together with filter and quantization imperfections; datasheets quote measured sensitivity, which includes them.

Required E_b/N₀ for a bit error rate of one in a million in Gaussian noise.
SchemeDetectionE_b/N₀ for 10⁻⁶Needs carrier phase?Comment
BPSK, QPSKCoherentabout 10.5 dBYesBest binary performance
DPSKDifferentialabout 11.2 dBNo, compares with last symbolSimple, small penalty
Coherent 2-FSKCoherentabout 13.5 dBYesRarely worth the complexity
Non-coherent 2-FSKEnvelope or frequencyabout 14.2 dBNoSimple, quick acquisition
16-QAMCoherentabout 14.5 dBYesFour bits per symbol

Common mistakes

  • MistakeComparing schemes by SNR when their bit rates or bandwidths differ.

    InsteadCompare by E_b/N₀, and convert with SNR = (E_b/N₀)(R_b/B).

  • MistakeUsing a receiver filter wider than the signal 'to be safe'.

    InsteadA filter wider than the matched filter collects extra noise and lowers the decision SNR.

  • MistakeMultiplying per-attempt failure rates as if retries were always independent.

    InsteadFades and interference bursts correlate failures; spread retries in time or frequency.

  • MistakeDesigning to the theoretical E_b/N₀ with no allowance for implementation.

    InsteadAdd an implementation loss of 1 to 3 dB, or use measured datasheet sensitivity.

Summary and key terms

  • The maximum-likelihood decision chooses the nearest constellation point; for two points P_e = Q(d/2σ).
  • The matched filter, h(t) = s(T − t), maximizes output SNR at 2E/N₀; a correlator is equivalent.
  • BPSK and QPSK: P_b = Q(√(2E_b/N₀)); coherent FSK needs 3 dB more and non-coherent FSK about 1 dB more again.
  • Error rates fall steeply with E_b/N₀, so links fail abruptly when they lose a few dB.
  • SNR = (E_b/N₀)(R_b/B); required power = E_b/N₀ + 10 log R_b − 174 + NF in dBm.
  • PER ≈ Np for N-bit packets; retries reduce message loss if failures are independent.
Bit error rate
The fraction of received bits that are wrong.
Maximum-likelihood detection
Choosing the symbol that makes the received value most probable; the nearest point in Gaussian noise.
Matched filter
The filter whose impulse response is the time-reversed transmitted pulse, maximizing output SNR.
Correlator
A receiver that multiplies by the expected pulse and integrates over the symbol.
E_b/N₀
Energy per bit divided by noise power spectral density, the standard measure for digital links.
Packet error rate
The fraction of packets containing at least one uncorrected error.
Implementation loss
The extra E_b/N₀ a real receiver needs beyond theory.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. Find the BPSK bit error rate at E_b/N₀ = 8 dB.

    Show answer

    g = 6.31; Q(√12.6) = Q(3.55) ≈ 1.9 × 10⁻⁴.

  2. Find the non-coherent FSK bit error rate at E_b/N₀ = 12 dB.

    Show answer

    ½e^(−15.85/2) ≈ 1.8 × 10⁻⁴.

  3. A link runs 100 kb/s with NF = 4 dB and needs E_b/N₀ = 11 dB. Find the required received power.

    Show answer

    11 + 50 − 174 + 4 = −109 dBm.

  4. A 1000-bit packet sees p = 10⁻⁵. Estimate the PER.

    Show answer

    About 10⁻², one packet in a hundred.

  5. What is the output SNR of a matched filter for a pulse of energy 2 × 10⁻¹⁷ J with N₀ = 4 × 10⁻²¹ W/Hz?

    Show answer

    2E/N₀ = 10⁴, 40 dB.

  6. Why does a 2 dB loss of E_b/N₀ near 10⁻⁶ hurt more than the number suggests?

    Show answer

    The curves are steep; 2 dB raises the BPSK error rate from 10⁻⁶ to roughly 8 × 10⁻⁵, about eighty times.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz