Selecting a Filter Structure (Digital Filter Design Toolkit)

LabVIEW Digital Filter Design Toolkit

Selecting a Filter Structure (Digital Filter Design Toolkit)

A filter structure specifies how you arithmetically use a set of filter coefficients to process an input signal. For a specified digital filter, dozens of mathematically equivalent implementation structures are available. For a floating-point digital filter, the effects of different implementation structures on the filter behavior are negligible in most cases. For a fixed-point digital filter, different implementation structures can result in different signal outputs.

In addition to FIR and IIR structures, the LabVIEW Digital Filter Design Toolkit also provides lattice structures. Lattice structures, including lattice allpass, lattice AR, lattice ARMA, and lattice MA, can be good alternatives for fixed-point filter implementation. For example, lattice structures can preserve the stability of fixed-point IIR filters as long as the lattice reflection coefficients have moduli less than one, regardless of how limited the arithmetic precision might be.

The Digital Filter Design Toolkit provides the following three categories of lattice structures.

  • Basic Section Type—Two multipliers per lattice section. This category offers the most general lattice structure.
  • One Multiplier Section Type—Only one multiplier per lattice section. This category saves resources on hardware targets such as field-programmable gate arrays (FPGAs).
  • Normalized Section Type—Four multipliers per lattice section. This category automatically scales the internal signals to help minimize the quantization effects in each lattice section at the cost of increasing the implementation complexity.

When you select a filter structure, you must balance a number of factors, including the filter type, implementation resources, and computational complexity. For IIR filters, you also need to consider the sensitivity to coefficient quantization of each structure. The following table lists the default filter structures that the Filter Design VIs use.

Design Method Default Structure
Kaiser Window FIR Direct Form
Dolph-Chebyshev Window FIR Direct Form
Windowed FIR FIR Direct Form
Remez/Equi-Ripple FIR Direct Form
Least Pth Norm FIR FIR Direct Form
IIR Notch Peak IIR Direct Form II
IIR Comb IIR Direct Form II
Arbitrary Group Delay IIR Direct Form II
Least Pth Norm IIR IIR Direct Form II
Butterworth IIR Cascaded Second-Order Sections Form II Transposed
Chebyshev IIR Cascaded Second-Order Sections Form II Transposed
Inverse Chebyshev IIR Cascaded Second-Order Sections Form II Transposed
Elliptic IIR Cascaded Second-Order Sections Form II Transposed
Bessel IIR Cascaded Second-Order Sections Form II Transposed
Maxflat IIR Cascaded Second-Order Sections Form II Transposed
Group Delay Compensator IIR Cascaded Second-Order Sections Form II Transposed

You can use the DFD Convert Structure VI to select a different filter structure, with the following caveats:

  • You cannot convert an IIR structure into or from an FIR structure.
  • You cannot convert a lattice allpass structure into or from a lattice AR structure.
  • You can convert an FIR filter to an FIR Symmetric filter structure only if the FIR filter has symmetric coefficients.
  • You can convert an FIR filter to an FIR Antisymmetric filter structure only if the FIR filter has antisymmetric coefficients.
  • You can convert an FIR filter to a lattice MA (minimum phase) filter structure only if the FIR filter is minimum phase.
  • You can convert an FIR filter to a lattice MA (maximum phase) filter structure only if the FIR filter is maximum phase.
  • You must use an allpass filter if you want to convert a filter structure to a lattice allpass structure.
  • You must use an all-pole IIR filter if you want to convert a filter structure to a lattice AR structure.

Refer to the Change Structure of Filter VI in the labview\examples\Digital Filter Design\Getting Started\Apply Filters directory for an example that demonstrates how to change the structure of a filter.

Open example