Digital signal processing¶
FIR filtering¶
- class sdr.FIR
Implements a finite impulse response (FIR) filter.
- class sdr.Differentiator(sdr.FIR)
Implements a differentiator FIR filter.
- sdr.design_lowpass_fir(order: int, ...) NDArray[float_]
Designs a lowpass FIR filter impulse response \(h[n]\) using the window method.
- sdr.design_highpass_fir(order: int, ...) NDArray[float_]
Designs a highpass FIR filter impulse response \(h[n]\) using the window method.
- sdr.design_bandpass_fir(order: int, ...) NDArray[float_]
Designs a bandpass FIR filter impulse response \(h[n]\) using the window method.
- sdr.design_bandstop_fir(order: int, ...) NDArray[float_]
Designs a bandstop FIR filter impulse response \(h[n]\) using the window method.
IIR filtering¶
- class sdr.IIR
Implements an infinite impulse response (IIR) filter.
- class sdr.Integrator(sdr.IIR)
Implements an integrator IIR filter.
Multirate filtering¶
- class sdr.Interpolator(sdr.FIR)
Implements a polyphase interpolating FIR filter.
- sdr.design_multirate_fir(up: int, ...) NDArray[float_]
Designs a multirate FIR filter impulse response \(h[n]\) using the Kaiser window method.
- sdr.polyphase_decompose(taps: ArrayLike, phases: int) NDArray
Decomposes the FIR filter taps \(h_i\) into the polyphase matrix \(H_{i, j}\) with \(B\) phases.
Arbitrary resampling¶
- class sdr.FarrowResampler
Implements a cubic Farrow arbitrary resampler.
- sdr.design_frac_delay_fir(length: int, delay) NDArray[float_]
Designs a fractional delay FIR filter impulse response \(h[n]\) using the Kaiser window method.
Correlation¶
Signal manipulation¶
-
sdr.mix(x: NDArray, freq: float =
0
, ...) NDArray Mixes the time-domain signal \(x[n]\) with a complex exponential or real sinusoid.
- sdr.to_complex_bb(x_r: NDArray[float_]) NDArray[complex_]
Converts the real passband signal \(x_r[n]\) centered at \(f_{s,r}/4\) with sample rate \(f_{s,r}\) to a complex baseband signal \(x_c[n]\) centered at \(0\) with sample rate \(f_{s,c} = f_{s,r}/2\).
- sdr.to_real_pb(x_c: NDArray[complex_]) NDArray[float_]
Converts the complex baseband signal \(x_c[n]\) centered at \(0\) with sample rate \(f_{s,c}\) to a real passband signal \(x_r[n]\) centered at \(f_{s,r}/4\) with sample rate \(f_{s,r} = 2f_{s,c}\).
- sdr.upsample(x: NDArray, rate: int) NDArray
Upsamples the time-domain signal \(x[n]\) by the factor \(r\).
- sdr.downsample(x: NDArray, rate: int) NDArray
Downsamples the time-domain signal \(x[n]\) by the factor \(r\).