Filters#
- class SRRCFilter(rho: float, oversampling: int, N_h: int = 10, norm: bool = True, scale: float = 1.0, method: Literal['lfilter', 'time', 'fft'] = 'lfilter', is_mimo: bool = True, axis: int = -1, name: str = 'SRRCFilter')#
Implement a Square-Root Raised Cosine (SRRC) FIR filter.
This filter corresponds to a square-root raised cosine FIR filter. It has a rolloff factor specified by beta. The filter is truncated to span symbols, and each symbol period contains sps samples. The order of the filter, sps*span, must be even.
The filter energy is normalized to 1.
Attributes#
- rhofloat
Roll-off factor for the filter.
- N_hint
Length of the filter before oversampling.
- oversamplingint
Oversampling factor for the filter.
- scalefloat
Amplitude scaling factor for the filter.
- methodLiteral[“auto”, “time”, “fft”]
Method for filter design (“auto”, “time”, “fft”).
- H(NFFT)#
Frequency response for fft method
- class BWFilter(wn: float, is_mimo: bool = False)#
Implements a frequency domain low-pass brick wall filter.
This filter attenuates frequencies above a specified critical frequency. The critical frequency is normalized from 0 to 1.
Signal Model#
The filter operates in the frequency domain by applying a brick wall (ideal) low-pass filter to the input signal. The filter’s transfer function \(H\) is defined as:
\[\begin{split}H[k] = \begin{cases} 1 & \text{if } |w[k]| \leq w_n \\ 0 & \text{if } |w[k]| > w_n \end{cases}\end{split}\]where:
\(w[k]\) is the angular frequency of the k-th component.
\(w_n\) is the critical angular frequency.
The filtering process involves:
Computing the Fast Fourier Transform (FFT) of the input signal.
Applying the brick wall filter in the frequency domain.
Performing the inverse FFT to obtain the filtered time-domain signal.
Attributes#
- wnfloat
The critical frequency or frequencies. Values should be normalized from 0 to 1, where 1 is the Nyquist frequency. This determines the cutoff point for the filter.