Skip to content

Signal Lab

Downloading
Loading stations

Digital communication simulator

Signal lab

Modulate a bit stream, send it through additive white Gaussian noise and detect it with a matched filter. Then compare the measured bit error rate of every scheme with its theoretical curve.

Signal settings

Modulation

Binary phase shift keying. Coherent correlation, sign decision.

Eb/N06.0 dB
Carrier cycles per bit2
Bits

Seed 2026. The same seed always gives the same bits and noise.

Bits in the waveform

16

Bit errors in the waveform

0

Theoretical BER, BPSK

2.39e-3

Pb = Q(sqrt(2 Eb/N0))

Eb/N0 for BER 1e-5

9.59dB

0.50 bit/s/Hz

Waveforms

Time in bit periods. Noise is drawn at the full simulation bandwidth (48 samples per bit), so the received trace looks noisier than what the correlator sees.

Data bits

Transmitted signal s(t)

Received signal r(t) = s(t) + n(t)

Sent and detected bits

00001111000011110000001100000000

Top row sent, bottom row detected. Errors are outlined in red.

Constellation

400 symbols at 6.0 dB, correlator outputs normalised to the ideal symbols

01In-phase (I)Quadrature (Q)
Correct decisionBit errorIdeal symbolDecision boundary

1 of 400 bits detected wrongly (2.5e-3).

Bit error rate analysis

Monte Carlo simulation for all four schemes from 0 to 12 dB, stopping at 200 errors per point or at the bit budget

ASK(circle markers: simulated)FSK(square markers: simulated)BPSK(triangle markers: simulated)QPSK(diamond markers: simulated)

The dashed theory curves are shown now. Run the simulation to add measured points.

Comparison at 6.0 dB Eb/N0
ModulationTheoretical BERSimulated BERBits / errorsEb/N0 for 1e-5Efficiency
ASK2.30e-2--12.60 dB0.50 b/s/Hz
FSK2.30e-2--12.60 dB0.33 b/s/Hz
BPSK2.39e-3--9.59 dB0.50 b/s/Hz
QPSK2.39e-3--9.59 dB1.00 b/s/Hz

BPSK and QPSK share one curve per bit; QPSK carries two bits per symbol in the same bandwidth. Coherent FSK and on-off ASK need 3 dB more.

Equations used

Bit energy and noise
Eb=∫0Tbs2(t) dt,n(t)∼N ⁣(0,N02) (two-sided)E_b = \int_0^{T_b} s^2(t)\,dt,\qquad n(t)\sim\mathcal N\!\left(0, \tfrac{N_0}{2}\right)\ \text{(two-sided)}
Coherent correlator (matched filter)
z=∫0Tr(t) ϕ(t) dtz = \int_0^{T} r(t)\,\phi(t)\,dt
BPSK and Gray-coded QPSK
Pb=Q ⁣(2Eb/N0)P_b = Q\!\left(\sqrt{2E_b/N_0}\right)
Coherent BFSK and on-off ASK
Pb=Q ⁣(Eb/N0)P_b = Q\!\left(\sqrt{E_b/N_0}\right)
Gaussian tail function
Q(x)=12 erfc ⁣(x/2)Q(x) = \tfrac12\,\mathrm{erfc}\!\left(x/\sqrt2\right)