FIR Double Column

Block: FIR Double Column (fir_dbl_col)
Block Author: Aaron Parsons
Document Author: Ben Blackman

Contents

Summary

Takes in real and imaginary numbers to be multiplied by the coefficients and then the filter sums the real and imaginary parts separately. Then both sums are output as well as a delayed version of the unchanged inputs.

Mask Parameters

Parameter

Variable

Description

Inputs

n_inputs

The number of real inputs and the number of imaginary inputs.

Coefficients

coeff

A vector of coefficients of this FIR. Should be the same number of coefficients as inputs.

Add Latency

add_latency

The latency of the internal adders.

Mult Latency

mult_latency

The latency of the internal multipliers.

Ports

Port

Dir

Data Type

Description

real

IN

Inherited

This real input is to be multiplied by one of the coefficients.

imag

IN

Inherited

This imaginary input is to be multiplied by one of the coefficients.

real_back

IN

Inherited

These real inputs correspond to the second half of the input stream. They get added to one of the real inputs before being multiplied by the coefficient.

imag_back

IN

Inherited

These imaginary inputs correspond to the second half of the input stream. They get added to one of the imag inputs before being multiplied by the coefficient.

real_out

OUT

Inherited

This output is real delayed by 1 cycle.

imag_out

OUT

Inherited

This output is imag delayed by 1 cycle.

real_back_out

OUT

Inherited

This output is real_back delayed by 1 cycle.

imag_back_out

OUT

Inherited

This output is imag_back delayed by 1 cycle.

real_sum

OUT

Inherited

This is the sum of all the multiplications between real and real_back and their corresponding coefficients.

imag_sum

OUT

Inherited

This is the sum of all the multiplications between imag and imag_back and their corresponding coefficients.

Description

Usage

This block takes in a number of inputs in parallel and outputs a delayed version of them and also multiplies the inputs by the coefficients. Then real_sum and imag_sum are computed and are delayed due to the latency in the adders which depends both on the add_latency and the number of inputs. For example, if you choose the number of inputs to be 2, then there will be 2 real and 2 real_back input ports along with 2 imag and 2 imag_back input ports. The FIR Double Column blocks takes advantage of the symmetric filter tap coefficients by adding the first and last inputs together before multiplying by the coefficient. This results in a more efficient FIR filter column.