Recent Releases of sdr
sdr - sdr v0.0.29
Released May 10, 2025
Changes
- Added fractional delay/advance filter in
sdr.FarrowFractionalDelay. - Added support for arbitrary degree Lagrange interpolating polynomials in Farrow filters.
- Added a
modekwarg to the Farrow filters. This allows the output to be aligned to the input or experience the full filter output with group delay. - Added time-varying offsets and errors in
sdr.sample_rate_offset(),sdr.frequency_offset(), andsdr.clock_error(). - Added
outputkwarg toNCO.step(). - Fixed bug in
sdr.Differentiatorwith order 2. - Improved documentation for
sdr.clock_error().
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] about 1 year ago
sdr - sdr v0.0.28
Released April 12, 2025
Changes
- Added
offset_ratetosdr.sample_rate_offset(). - Added application of clock error (frequency shift and time compression) in
sdr.clock_error(). - Fixed automatic axis scaling in plots.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 1 year ago
sdr - sdr v0.0.27
Released March 22, 2025
Changes
- Added generation of sinusoids in
sdr.sinusoid(). - Upgraded documentation styling.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 1 year ago
sdr - sdr v0.0.26
Released January 21, 2025
Changes
- Pinned
galoisversion to 0.4.4. - Added support for Python 3.13.
- Added support for NumPy 2.1.
- Added support for Numba 0.61.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 1 year ago
sdr - sdr v0.0.25
Released December 16, 2024
Changes
- Added calculation of difference of two random variables in
sdr.subtract_rvs(). - Added calculation of minimum of i.i.d. random variables in
sdr.min_iid_rvs(). - Added calculation of maximum of i.i.d. random variables in
sdr.max_iid_rvs(). - Renamed
sdr.sum_distribution()tosdr.add_iid_rvs(). - Renamed
sdr.sum_distributions()tosdr.add_rvs(). - Renamed
sdr.multiply_distributions()tosdr.multiply_rvs(). - Increased required
galoisversion tov0.4.3.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 1 year ago
sdr - sdr v0.0.24
Released September 5, 2024
Changes
- Added support for NumPy 2.1.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] almost 2 years ago
sdr - sdr v0.0.23
Released July 28, 2024
Changes
- Added calculation of filter noise bandwidth in
sdr.FIR.noise_bandwidth()andsdr.IIR.noise_bandwidth(). - Added calculation of threshold level above the noise power in
sdr.threshold_factor(). - Added numerical calculation of the PDF of the sum and product of random variables in
sdr.sum_distribution(),sdr.sum_distributions(), andsdr.multiply_distributions(). - Renamed
sdr.design_frac_delay_fir()tosdr.fractional_delay_fir(). - Renamed
sdr.design_lowpass_fir()tosdr.lowpass_fir(). - Renamed
sdr.design_highpass_fir()tosdr.highpass_fir(). - Renamed
sdr.design_bandpass_fir()tosdr.bandpass_fir(). - Renamed
sdr.design_bandstop_fir()tosdr.bandstop_fir(). - Renamed
sdr.design_multirate_fir()tosdr.multirate_fir(). - Allowed use of SciPy window definition using
scipy.signal.windows.get_window()for all filter design and plotting functions.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] almost 2 years ago
sdr - sdr v0.0.22
Released July 13, 2024
Changes
- Added support for NumPy v2.
- Increased required
galoisversion tov0.4.1. - Added calculation of instantaneous power in
sdr.power(). - Refactored
sdr.binary_code()andsdr.gray_code()to acceptlength, notdegree. - Reworked argument verification of entire public API.
- Improved nuisance warning suppression.
- Improved documentation.
- Fixed minor bugs.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] about 2 years ago
sdr - sdr v0.0.21
Released June 15, 2024
Changes
- Added Gold codes in
sdr.gold_code(). - Added calculation of primitive polynomials that generate preferred pair $m$-sequences in
sdr.preferred_pairs(). - Added check if two primitive polynomials form a preferred pair in
sdr.is_preferred_pair(). - Added plot of the discrete Fourier transform (DFT) in
sdr.plot.dft(). - Added plot of the discrete-time Fourier transform (DTFT) in
sdr.plot.dtft(). - Added plot of periodic and non-periodic auto- and cross-correlations (PACF, ACF, PCCF, and CCF) in
sdr.plot.correlation(). - Added general-purpose stem plot, styled like MATLAB, in
sdr.plot.stem(). - Added plot of Shannon's limit on $Eb/N0$ in
sdr.plot.shannon_limit_ebn0(). - Added support for
python -OOoptimization. - Increased required
galoisversion tov0.3.9.
Contributors
- Justin Charlong (@jcharlong)
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] about 2 years ago
sdr - sdr v0.0.20
Released June 9, 2024
Changes
- Removed
sdr.percent(),sdr.ppm(), andsdr.ppb(). - Added Shnidman's minimum required SNR approximation in
sdr.shnidman(). - Added Shannon's limit on $Eb/N0$ over the AWGN channel in
sdr.shannon_limit_ebn0(). - Added Shannon's limit on $S/N$ over the AWGN channel in
sdr.shannon_limit_snr(). - Added axis keyword argument
axto eachsdr.plotfunction. - Modified
sdr.sample_rate_offset()andsdr.frequency_offset()APIs to use offset and not ppm. - Renamed
sdr.fspl()tosdr.free_space_path_loss().
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] about 2 years ago
sdr - sdr v0.0.19
Released May 27, 2024
Changes
- Added calculation of Cramér-Rao lower bounds (CRLBs) for TOA, TDOA, FOA, and FDOA in
sdr.toa_crlb(),sdr.tdoa_crlb(),sdr.foa_crlb(), andsdr.fdoa_crlb(). - Added calculation of the effective SNR of the product of two signals in
sdr.composite_snr(). - Added calculation of RMS integration time in
sdr.rms_integration_time(). - Added calculation of RMS bandwidth in
sdr.rms_bandwidth(). - Added calculation of Shannon's capacity for the binary-input additive white Gaussian noise (BI-AWGN) channel in
sdr.biawgn_capacity(). - Renamed
sdr.to_real_pb()tosdr.to_real_passband(). - Renamed
sdr.to_complex_bb()tosdr.to_complex_baseband().
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] about 2 years ago
sdr - sdr v0.0.18
Released May 12, 2024
Changes
- Added support for coherent integration
n_cand non-coherent integrationn_ncto detection functionssdr.h0(),sdr.h1(),sdr.p_d(),sdr.p_fa(), andsdr.threshold(). - Added support for real/complex signals and linear/square-law detectors to
sdr.non_coherent_gain(). - Added calculation of minimum required SNR to achieve specified detection performance in
sdr.min_snr(). - Added Peebles's approximation of non-coherent gain using a square-law detector in
sdr.peebles(). - Renamed
sdr.h0_theory()tosdr.h0(). - Renamed
sdr.h1_theory()tosdr.h1().
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] about 2 years ago
sdr - sdr v0.0.17
Released March 10, 2024
Changes
- Added theoretical detection threshold calculation in
sdr.threshold(). - Added theoretical probability of detection calculation in
sdr.p_d(). - Added theoretical probability of false alarm calculation in
sdr.p_fa(). - Added test statistic distributions in
sdr.h0_theory()andsdr.h1_theory(). - Added support for coherent, linear, and square-law detectors.
- Added support for detection of real and complex signals.
- Added plot helper for detection distributions in
sdr.plot.detection_pdfs().
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 2 years ago
sdr - sdr v0.0.16
Released March 3, 2024
Changes
- Removed Python 3.7 support.
- Added Kasami codes in
sdr.kasami_code(). - Added coherent integration gain in
sdr.coherent_gain(). - Added coherent gain loss in
sdr.coherent_gain_loss(). - Added maximum integration time for coherent integration in
sdr.max_integration_time(). - Added maximum frequency offset for coherent integration in
sdr.max_frequency_offset(). - Added non-coherent integration gain in
sdr.non_coherent_gain().
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 2 years ago
sdr - sdr v0.0.15
Released February 4, 2024
Changes
- Fixed bug in support for Python 3.12.
- Made characteristic polynomial the default input for LFSRs, additive scramblers, and m-sequences.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 2 years ago
sdr - sdr v0.0.14
Released February 2, 2024
Changes
- Added support for Python 3.12.
- Added support for NumPy 1.26.
- Pinned
galoisto v0.3.8.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 2 years ago
sdr - sdr v0.0.13
Released January 28, 2024
Changes
- Added Fibonacci LFSRs in
sdr.FLFSR. - Added Galois LFSRs in
sdr.GLFSR. - Added maximum-length sequences in
sdr.m_sequence(). - Added additive scrambling in
sdr.AdditiveScrambler. - Added interleavers in
sdr.Interleaverandsdr.BlockInterleaver. - Added generic continuous-phase modulation in
sdr.CPM. - Added channel models
sdr.BinarySymmetricChannel,sdr.BinaryErasureChannel, andsdr.DiscreteMemorylessChannel. - Added the Berlekamp-Massey LFSR synthesis algorithm in
sdr.berlekamp_massey(). - Added persistence plots in
sdr.plot.raster(),sdr.plot.eye(), andsdr.plot.constellation(). - Added
galoisdependency. - Renamed
sdr.barker()tosdr.barker_code(). - Renamed
sdr.hadamard()tosdr.hadamard_code(). - Renamed
sdr.walsh()tosdr.walsh_code(). - Renamed
sdr.zadoff_chu()tosdr.zadoff_chu_sequence().
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 2 years ago
sdr - sdr v0.0.12
Released January 7, 2024
Changes
- Added automatic gain control in
sdr.AGC. - Added fractional delay FIR filters in
sdr.FractionalDelay. - Added generic polyphase FIR filters in
sdr.PolyphaseFIR. - Added polyphase FIR channelizers in
sdr.Channelizer. - Added linear, quadratic, and quartic polynomials to
sdr.FarrowResampler. - Added
FarrowResampler.flush()method. - Added
offsetkeyword argumentsdr.plot.impulse_response(). - Added Numba dependency with minimum version 0.55.
- Modified
design_multirate_taps()andpolyphase_decompose()APIs. - Enabled Kaiser-method prototype filter design using
polyphase_orderandattenkeyword arguments to polyphase FIR classes. - Standardized
interpolation,decimation,rate, anddelayproperties of polyphase FIR classes. - Supported span of 1 for all pulse shape functions.
- Fixed bug in phase of first NCO output sample.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 2 years ago
sdr - sdr v0.0.11
Released December 14, 2023
Changes
- Added heuristic phase error detector in
sdr.PED. - Added maximum-likelihood PED in
sdr.MLPED. - Added Hadamard codes in
sdr.hadamard(). - Added Walsh codes in
sdr.walsh(). - Added moving average FIR filter in
sdr.MovingAverager. - Added leaky integrating IIR filter in
sdr.LeakyIntegrator. - Added
FIR.group_delay()method. - Added
FIR.phase_delay()method. - Reworked
{FIR|IIR}.frequency_response()and removed{FIR|IIR}.frequency_response_log(). - Added support for explicit time axes in
sdr.plot.time_domain(t, x). - Added
y_axisoption to frequency-domain plots. - Added
x_axis="auto"option to frequency-domain filter plots. - Added NCO output formats of sine, cosine, complex exponential, or accumulated phase.
- Improved bandwidth of discrete-time differentiator in
sdr.Differentiator. - Added backward, trapezoidal, and forward discrete-time integration methods in
sdr.Integrator. - Updated Jupyter notebook examples.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 2 years ago
sdr - sdr v0.0.10
Released November 19, 2023
Changes
- Added window-based FIR filter design in
sdr.design_lowpass_fir(),sdr.design_highpass_fir(),sdr.design_bandpass_fir(), andsdr.design_bandstop_fir(). - Added fractional delay FIR filter design in
sdr.design_frac_delay_fir(). - Added ability to measure Euclidean distance in
sdr.euclidean(). - Added ability to measure Hamming distance in
sdr.hamming(). - Renamed
sdr.multirate_taps()tosdr.design_multirate_fir(). - Renamed
sdr.polyphase_matrix()tosdr.polyphase_decompose().
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 2 years ago
sdr - sdr v0.0.9
Released November 12, 2023
Changes
- Added polyphase rational resampling in
sdr.Resampler. - Added discrete-time FIR differentiating filters in
sdr.Differentiator. - Added discrete-time IIR integrating filters in
sdr.Integrator. - Added
sdr.percent(),sdr.ppm(), andsdr.ppb(). - Moved
sdr.DDSfunctionality intosdr.NCO. Removedsdr.DDS. - Added ability to seed the channel models.
- Added option to compute measurements along a specified axis.
- Added option to return measurements in decibels.
- Replaced
pylintwithruff. - Replaced
blackwithruff. - Improved type annotations.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] over 2 years ago
sdr - sdr v0.0.8
Released September 4, 2023
Changes
- Added minimum-shift keying (MSK) in
sdr.MSK. - Added pulse shape customization to linear modulations.
- Added theoretic detection performance of a matched filter in
sdr.ReplicaCorrelatorand an energy detector insdr.EnergyDetector. - Added Albersheim's minimum required SNR approximation in
sdr.albersheim(). - Added plotting of receiver operating characteristic (ROC) curves in
sdr.plot.roc(). - Added plotting of probability of detection curves in
sdr.plot.p_d(). - Added plotting of phase trees of continuous-phase modulation (CPM) in
sdr.plot.phase_tree(). - Added sensible time and frequency units to plots.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] almost 3 years ago
sdr - sdr v0.0.7
Released August 27, 2023
Changes
- Added generic linear modulation schemes in
sdr.LinearModulation. - Added $\pi/M$ PSK modulation in
sdr.PiMPSK. - Added offset QPSK modulation in
sdr.OQPSK. - Added rectangular pulse shapes in
sdr.rectangular(). - Added half-sine pulse shapes in
sdr.half_sine(). - Added pulse shaping in linear modulations. Now
map_symbols()anddecide_symbols()operate on 1 sample per symbol andmodulate()anddemodulate()operate on multiple samples per symbol.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] almost 3 years ago
sdr - sdr v0.0.6
Released August 20, 2023
Changes
- Added raster plots in
sdr.plot.raster(). - Added eye diagrams in
sdr.plot.eye(). - Added upsampling (without anti-aliasing filtering) in
sdr.upsample(). - Added downsampling (without anti-aliasing filtering) in
sdr.downsample(). - Added wavelength calculation in
sdr.wavelength(). - Supported real sinusoid mixing.
- Supported returning measurements in dB.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] almost 3 years ago
sdr - sdr v0.0.5
Released August 13, 2023
Changes
- Added polyphase FIR decimator in
sdr.Decimator(). - Added multirate FIR filter design in
sdr.multirate_taps(). - Added polyphase decomposition in
sdr.polyphase_matrix(). - Added linear to decibel conversion in
sdr.db(). - Added decibel to linear conversion in
sdr.linear(). - Added linear and zero-order hold polyphase FIR interpolators.
- Added a
stateproperty to FIR filters. - Added a
flush()method to FIR filters. - Added support for passing filter objects into filter plotting functions.
- Added ability to center or offset a time-domain plot.
- Improved the string representation of classes.
- Renamed
sdr.plot.frequency_response()tosdr.plot.magnitude_response(). - Removed superfluous methods like
FIR.filter()and replaced withFIR.__call__().
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] almost 3 years ago
sdr - sdr v0.0.4
Released August 6, 2023
Changes
- Added error vector magnitude measurement in
sdr.evm(). - Added complex mixing (frequency translation) in
sdr.mix(). - Added real passband to complex baseband conversion in
sdr.to_complex_bb(). - Added complex baseband to real passband conversion in
sdr.to_real_pb(). - Added binary and bipolar Barker sequences in
sdr.barker(). - Added complex-valued Zadoff-Chu sequences in
sdr.zadoff_chu(). - Added theoretical BER/SER for DE-PSK.
- Fixed theoretical BER/SER for PSK.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] almost 3 years ago
sdr - sdr v0.0.3
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)
- Python
Published by github-actions[bot] almost 3 years ago
sdr - sdr v0.0.2
Released July 16, 2023
Changes
- Added finite impulse response (FIR) filters in
sdr.FIR. - Added pulse shapes:
sdr.raised_cosine(),sdr.root_raised_cosine(),sdr.gaussian(). - Added plotting helper functions in
sdr.plot:sdr.plot.time_domain()sdr.plot.periodogram(),sdr.plot.spectrogram()sdr.plot.filter(),sdr.plot.frequency_response,sdr.plot.group_delay(),sdr.plot.impulse_response(),sdr.plot.step_response(),sdr.plot.zeros_poles()
- Added measurement functions:
sdr.papr(),sdr.crest_factor(). - Added bit packing and unpacking functions:
sdr.pack(),sdr.unpack(). - Added hexdump helper function in
sdr.hexdump(). - Improved type annotations.
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] about 3 years ago
sdr - sdr v0.0.1
Released July 9, 2023
Changes
- Added Farrow arbitrary resampling in
sdr.FarrowResampler. (#1) - Added infinite impulse response (IIR) filters in
sdr.IIR. (#3) - Added numerically-controlled oscillators (NCO) in
sdr.NCO. (#4) - Added direct digital synthesizers (DDS) in
sdr.DDS. (#4) - Added 2nd order, proportional-plus-integrator loop filters in
sdr.LoopFilter. (#4) - Added closed-loop PLL analysis in
sdr.ClosedLoopPLL. (#5)
Contributors
- Matt Hostetter (@mhostetter)
- Python
Published by github-actions[bot] about 3 years ago