How do we calculate BER vs. SNR for real systems?
In real systems such as BPSK over an AWGN channel, bits are transmitted as signals (e.g., +√P or −√P). Due to noise, the received signal becomes:
y = √P · x + n
where n ∼ N(0, σ²), and x ∈ {−1, +1}.
At the receiver, we perform detection (e.g., using sign detection). The probability of a bit error is given by the Gaussian Q-function:
BER = Q(√(2P / σ²)) = Q(√(2·SNR))
This gives the theoretical BER vs. SNR curve.
BER vs. SNR from Gaussian Q factor
Linear Equalization (e.g., Zero Forcing)
When you're using an equalizer like Zero Forcing (ZF), you get:
- Effective noise enhancement depending on the channel matrix H
- The diagonal elements of W = (HHH)−1 (in ZF) tell you how noise variance is scaled after equalization.
So the BER becomes:
BERi = Q( √(2·Ωs / (σ²·Wii)) )
Where:
- Ωs = symbol power
- Wii = noise amplification from equalizer
Channel Knowledge in Zero-Forcing (ZF) Equalization
In Zero-Forcing (ZF) equalization, the receiver must know the channel matrix H in order to compute (HHH)−1HH, which is the ZF equalizer.
Channel Estimation is typically performed at the receiver using:
- Pilot symbols
- Training sequences
Once the receiver estimates H, it can compute the ZF equalizer.