Skip to content

Releases: mhostetter/sdr

sdr v0.0.14

02 Feb 15:05
Compare
Choose a tag to compare

Released February 2, 2024

Changes

  • Added support for Python 3.12.
  • Added support for NumPy 1.26.
  • Pinned galois to v0.3.8.

Contributors

sdr v0.0.13

29 Jan 01:34
Compare
Choose a tag to compare

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 and sdr.BlockInterleaver.
  • Added generic continuous-phase modulation in sdr.CPM.
  • Added channel models sdr.BinarySymmetricChannel, sdr.BinaryErasureChannel, and sdr.DiscreteMemorylessChannel.
  • Added the Berlekamp-Massey LFSR synthesis algorithm in sdr.berlekamp_massey().
  • Added persistence plots in sdr.plot.raster(), sdr.plot.eye(), and sdr.plot.constellation().
  • Added galois dependency.
  • Renamed sdr.barker() to sdr.barker_code().
  • Renamed sdr.hadamard() to sdr.hadamard_code().
  • Renamed sdr.walsh() to sdr.walsh_code().
  • Renamed sdr.zadoff_chu() to sdr.zadoff_chu_sequence().

Contributors

sdr v0.0.12

07 Jan 19:55
Compare
Choose a tag to compare

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 argument sdr.plot.impulse_response().
  • Added Numba dependency with minimum version 0.55.
  • Modified design_multirate_taps() and polyphase_decompose() APIs.
  • Enabled Kaiser-method prototype filter design using polyphase_order and atten keyword arguments to
    polyphase FIR classes.
  • Standardized interpolation, decimation, rate, and delay properties of polyphase FIR classes.
  • Supported span of 1 for all pulse shape functions.
  • Fixed bug in phase of first NCO output sample.

Contributors

sdr v0.0.11

15 Dec 03:24
Compare
Choose a tag to compare

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

sdr v0.0.10

19 Nov 23:06
Compare
Choose a tag to compare

Released November 19, 2023

Changes

  • Added window-based FIR filter design in sdr.design_lowpass_fir(), sdr.design_highpass_fir(), sdr.design_bandpass_fir(), and sdr.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() to sdr.design_multirate_fir().
  • Renamed sdr.polyphase_matrix() to sdr.polyphase_decompose().

Contributors

sdr v0.0.9

12 Nov 21:13
Compare
Choose a tag to compare

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(), and sdr.ppb().
  • Moved sdr.DDS functionality into sdr.NCO. Removed sdr.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 with ruff.
  • Replaced black with ruff.
  • Improved type annotations.

Contributors

sdr v0.0.8

04 Sep 18:12
Compare
Choose a tag to compare

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
    in sdr.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

sdr v0.0.7

28 Aug 00:39
Compare
Choose a tag to compare

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() and decide_symbols() operate on 1 sample per symbol
    and modulate() and demodulate() operate on multiple samples per symbol.

Contributors

sdr v0.0.6

21 Aug 00:40
Compare
Choose a tag to compare

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

sdr v0.0.5

13 Aug 23:22
Compare
Choose a tag to compare

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() to sdr.plot.magnitude_response().
  • Removed superfluous methods like FIR.filter() and replaced with FIR.__call__().

Contributors