sdr.Decimator.__call__(x: ArrayLike, mode: 'rate' | 'full' = 'rate') NDArray

Filters and decimates the input signal \(x[n]\) with the polyphase FIR filter.

Parameters:
x: ArrayLike

The input signal \(x[n]\) with sample rate \(f_s\) and length \(L\).

mode: 'rate' | 'full' = 'rate'

The non-streaming convolution mode.

  • "rate": The output signal \(y[n]\) has length \(L / r\) proportional to the decimation rate \(r\). Output sample 0 aligns with input sample 0.

  • "full": The full convolution is performed. The output signal \(y[n]\) has length \((L + N) r\), where \(N\) is the order of the multirate filter. Output sample delay aligns with input sample 0.

In streaming mode, the "full" convolution is performed. However, for each \(L\) input samples only \(L / r\) output samples are produced per call. A final call with input zeros is required to flush the filter state.

Returns:

The filtered signal \(y[n]\) with sample rate \(f_s / r\). The output length is dictated by the mode argument.