Engee documentation

Discrete FIR Filter

FIR filter model.

discrete fir filter

Description

Block Discrete FIR Filter filters each channel of the input signal with a specified digital FIR filter. The unit can implement static filters with fixed coefficients.

This block filters each input signal channel independently in time.

The output signal size is equal to the input signal size, unless you specify a filter matrix for the parameters Coefficients. In this case, the output dimensions depend on the number of filter sets specified.

Specifying initial states

Block Discrete FIR Filter by default initialises with zero the internal filter states responsible for the signal values at the previous steps. This is equivalent to assuming that past inputs and outputs are zero. You can use the parameters *Initial states*parameter to set non-zero initial conditions for filter delays.

To determine the number of initial states to set and how to set them, see the table of acceptable initial states. parameters Initial states can take one of the forms described in the following table.

Initial state Description

Scalar

The block initialises all delay elements in the filter with a scalar value

Vector

If the vector consists of a single value, all delay elements in the filter are initialised with this value in the same way as a scalar. Otherwise, the length of the vector must be equal to the number of delay elements in the filter.

Matrix

The number of rows of the matrix must be equal to the number of delay elements in the filter. If the matrix has one column, it applies to all channels of the input signal, otherwise each column must correspond to a different channel.

Ports

Input

# IN_1 — input signal
scalar | vector | matrix | multidimensional array

Details

An input signal specified as a scalar, vector, matrix or array with any number of dimensions.

Block Discrete FIR Filter accepts real and complex signals of any numeric data type supported by Engee.

Data types

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Complex numbers support

No

Output

# OUT_1 — filtered signal
scalar | vector | matrix | multidimensional array

Details

Filtered output signal.

Block Discrete FIR Filter outputs real and complex signals of any numeric data type supported by Engee.

When the parameters are set to -1, the interval between the output signal calculation steps coincides with the interval of the input signal IN_1. Sample time value -1, the interval between steps of the output signal calculation coincides with the interval of the input signal IN_1.

Data types

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

Complex numbers support

No

Parameters

Main

# Coefficients — filter coefficients
Scalar / array of real numbers

Details

Specify a vector of coefficients for the transfer function. The filter coefficients must be specified as a string vector. If you specify a vector-string of filter coefficients, the block applies a single filter to the input. To apply multiple filters to the same input, specify a coefficient matrix where each row represents a different set of filter coefficients.

Default value

[0.5, 0.5]

Program usage name

Numerator

Tunable

Yes

Evaluatable

Yes

# Initial states — initial states of the filter
Scalar / array of real numbers

Details

Filter initial states as a scalar, vector, or matrix. See Specifying Initial States for details.

Default value

0

Program usage name

InitialStates

Tunable

Yes

Evaluatable

Yes

# Sample time — interval between calculation steps
SampleTime (real number / vector of two real numbers)

Details

Specify the interval between calculation steps as a non-negative number. To inherit a calculation step, set this parameters to -1.

Default value

-1

Program usage name

SampleTime

Tunable

No

Evaluatable

Yes