*Released July 30, 2023*
Changes
- Added PSK modulation in `sdr.PSK`.
- Added symbol mapping: `sdr.binary_code()`, `sdr.gray_code()`.
- Added differential codes: `sdr.diff_encode()`, `sdr.diff_decode()`.
- Added a FIR interpolating filter in `sdr.FIRInterpolator`.
- Added error rate measurement in `sdr.ErrorRate`.
- Added signal measurement functions: `sdr.energy()`, `sdr.peak_power()`, `sdr.average_power()`, `sdr.papr()`, `sdr.peak_voltage()`, `sdr.rms_voltage()`, `sdr.crest_factor()`.
- Added channel models: `sdr.bec()`, `sdr.bsc()`, `sdr.dmc()`.
- Added signal impairments: `sdr.awgn()`, `sdr.frequency_offset()`, `sdr.sample_rate_offset()`, `sdr.iq_imbalance()`.
- Added probability functions: `sdr.Q()`, `sdr.Qinv()`.
- Added link budget functions: `sdr.fpsl()`, `sdr.parabolic_antenna()`.
- Added channel capacity functions: `sdr.awgn_capacity()`, `sdr.bec_capacity()`, `sdr.bsc_capacity()`.
- Added SNR conversion functions: `sdr.ebn0_to_esn0()`, `sdr.ebn0_to_snr()`, `sdr.esn0_to_ebn0()`, `sdr.esn0_to_snr()`, `sdr.snr_to_ebn0()`, `sdr.snr_to_esn0()`.
- Added plotting functions for modulation: `sdr.plot.ber()`, `sdr.plot.ser()`, `sdr.plot.constellation()`, `sdr.plot.symbol_map()`.
- Added more filter plotting functions: `sdr.plot.phase_response()`, `sdr.plot.phase_delay()`.
Contributors
- Matt Hostetter ([mhostetter](https://github.com/mhostetter))