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')#

Square-Root Raised Cosine (SRRC) FIR filter.

This filter implements a square-root raised cosine FIR filter with a roll-off factor \(\rho\). The filter is truncated to span N_h symbol periods, with each symbol period containing oversampling samples.

The filter energy is normalized to 1 by default.

Attributes#

rhofloat

Roll-off factor \(\rho \in [0, 1]\).

oversamplingint

Oversampling factor (samples per symbol).

N_hint, optional

Half-length of the filter in symbol periods. Default is 10.

normbool, optional

If True, normalizes the filter energy to 1. Default is True.

scalefloat, optional

Amplitude scaling factor for the filter output. Default is 1.0.

methodLiteral[“lfilter”, “time”, “fft”], optional

Filtering method. Default is "lfilter".

is_mimobool, optional

Whether the filter supports MIMO input. Default is True.

axisint, optional

Axis along which to apply the filter. Default is -1.

namestr, optional

Name of the filter instance. Default is "SRRCFilter".

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:

  1. Computing the Fast Fourier Transform (FFT) of the input signal.

  2. Applying the brick wall filter in the frequency domain.

  3. 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.