Releases: mhostetter/sdr
Releases · mhostetter/sdr
sdr v0.0.14
Released February 2, 2024
Changes
- Added support for Python 3.12.
- Added support for NumPy 1.26.
- Pinned
galois
to v0.3.8.
Contributors
- Matt Hostetter (@mhostetter)
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.Interleaver
andsdr.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
galois
dependency. - 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)
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
offset
keyword 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_order
andatten
keyword arguments to
polyphase FIR classes. - Standardized
interpolation
,decimation
,rate
, anddelay
properties 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)
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_axis
option 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)
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)
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.DDS
functionality 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
pylint
withruff
. - Replaced
black
withruff
. - Improved type annotations.
Contributors
- Matt Hostetter (@mhostetter)
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.ReplicaCorrelator
and 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)
sdr v0.0.7
Released August 27, 2023
Changes
- Added generic linear modulation schemes in
sdr.LinearModulation
. - Added
$\pi/M$ PSK modulation insdr.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)
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)
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
state
property 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)