Projects you can run tonight
Each project is small enough to finish in an evening, and complete enough to actually run: every script executes end to end on simulated or recorded signals in under 15 minutes, with a checklist of what to look for when it works. A radio is optional.
A QPSK modem with a measured BER curve
Build a QPSK transmitter and receiver in NumPy with root-raised-cosine pulse shaping, an AWGN channel and a matched filter, then measure the bit error rate from 0 to 10 dB Eb/N0 against theory.
A headless GNU Radio FM receiver tested on synthetic IQ
Generate an FM test signal in NumPy, save it as SigMF, demodulate it with a headless GNU Radio 3.10 flowgraph and check the recovered tone frequency, deviation and audio SNR in code.
A LoRaWAN link budget and coverage map calculator
Compute EU868 LoRaWAN uplink sensitivity, time on air, duty-cycle limits and range per spreading factor from Semtech, LoRa Alliance, ITU-R and 3GPP sources, then map coverage around one gateway in NumPy.
An OFDM link with pilot-based channel estimation
Build a 64-subcarrier OFDM link in NumPy over a multipath Rayleigh channel, estimate the channel from comb pilots by least squares, interpolate, equalise with one tap per subcarrier and measure MSE and BER.