Polyphase FIR Filter

Block: Polyphase FIR Filter (frontend for a full PFB) (pfb_fir)
Block Author: Aaron Parsons
Document Author: Aaron Parsons

Contents

Summary

This block, combined with an FFT, implements a Polyphase Filter Bank which uses longer windows of data to improve the shape of channels within a spectrum.

Mask Parameters

Parameter Variable Description
Size of PFB: (2?) PFBSize The number of channels in the PFB (this should also be the size of the FFT which follows).
Total Number of Taps: TotalTaps The number of taps in the PFB FIR filter. Each tap uses 2 real multiplier cores and requires buffering the real and imaginary streams for 2PFBSize samples.
Windowing Function WindowType Which windowing function to use (this allows trading passband ripple for steepness of rolloff, etc).
Number of Simultaneous Inputs: (2?) n_inputs The number of parallel time samples which are presented to the FFT core each clock. The number of output ports are set to this same value.
Make Biplex MakeBiplex Double up the inputs to match with a biplex FFT.
Input Bit Width BitWidthIn The number of bits in each real and imaginary sample input to the PFB.
Output Bit Width BitWidthOut The number of bits in each real and imaginary sample output from the PFB. This should match the bit width in the FFT that follows.
Coefficient Bit Width CoeffBitWidth The number of bits in each coefficient. This is usually chosen to match the input bit width.
Use Distributed Memory for Coefficients CoeffDistMem Store the FIR coefficients in distributed memory (if = 1). Otherwise, BRAMs are used to hold the coefficients.
Add Latency add_latency Latency through adders in the FFT.
Mult Latency mult_latency Latency through multipliers in the FFT.
BRAM Latency bram_latency Latency through BRAM in the FFT.
Quantization Behavior quantization Specifies the rounding behavior used at the end of each butterfly computation to return to the number of bits specified above.
Bin Width Scaling (normal = 1) fwidth PFBs give enhanced control over the width of frequency channels. By adjusting this parameter, you can scale bins to be wider (for values > 1) or narrower (for values < 1).

Ports

Port Dir Data Type Description
sync in Boolean Indicates the next clock cycle contains valid data
pol_in in Inherited The (complex) time-domain stream(s).
sync_out out Boolean Indicates that data out will be valid next clock cycle.
pol_out out Inherited The (complex) PFB FIR output, which is still a time-domain signal.

Description

This block, combined with an FFT, implements a Polyphase Filter Bank which uses longer windows of data to improve the shape of channels within a spectrum.