sdr.PolyphaseFIR(branches: int, taps: ArrayLike, input: 'hold' | 'top-to-bottom' | 'bottom-to-top' = 'hold', output: 'sum' | 'top-to-bottom' | 'bottom-to-top' | 'all' = 'sum', streaming: bool = False)

Creates a polyphase FIR filter.

Parameters:
branches: int

The number of polyphase branches \(B\).

taps: ArrayLike

The prototype filter feedforward coefficients \(h[n]\).

input: 'hold' | 'top-to-bottom' | 'bottom-to-top' = 'hold'

The input connection method.

  • "hold": The input signal \(x[n]\) is passed to each polyphase partition (used in interpolation).

  • "top-to-bottom": The input signal \(x[n]\) is commutated across the polyphase partitions from top to bottom.

  • "bottom-to-top": The input signal \(x[n]\) is commutated across the polyphase partitions from bottom to top (used in decimation).

output: 'sum' | 'top-to-bottom' | 'bottom-to-top' | 'all' = 'sum'

The output connection method.

  • "sum": The output of each polyphase partition is summed to produce the output signal \(y[n]\) (used in decimation).

  • "top-to-bottom": The output of each polyphase partition is commutated from top to bottom (used in interpolation).

  • "bottom-to-top": The output of each polyphase partition is commutated from bottom to top.

  • "all": The outputs of each polyphase partition are used in parallel (used in channelization).

streaming: bool = False

Indicates whether to use streaming mode. In streaming mode, previous inputs are preserved between calls to __call__().