Filter Order Estimation (Butterworth) (G Dataflow)

Version:

Estimates the Butterworth filter order.

filter type

The type of filter that this node estimates.

Name Description
Lowpass

Estimates a lowpass filter.

Highpass

Estimates a highpass filter.

Bandpass

Estimates a bandpass filter.

Bandstop

Estimates a bandstop filter.

Default: Lowpass

frequency specifications

Band edge frequencies of the filter, in Hz.

lower pass frequency

First passband edge frequency in Hz.

Default: 0.2

lower stop frequency

First stopband edge frequency in Hz.

Default: 0.3

higher pass frequency

Second passband edge frequency in Hz. The node ignores this input for lowpass and highpass filters.

Default: 0

higher stop frequency

Second stopband edge frequency, in Hz. The node ignores this input for lowpass and highpass filters.

Default: 0

ripple specifications

Ripple level in the passband and stopband of the filter.

passband

Ripple level in the passband.

Default: 0.1

stopband

Ripple level in the stopband.

Default: 60

dB?

A Boolean value that specifies whether this node applies a decibel scale or a linear scale to the ripple levels.

 True The node applies a decibel scale to the ripple level. False The node applies a linear scale to the ripple level.

Default: True

error in

Error conditions that occur before this node runs. The node responds to this input according to standard error behavior.

Default: No error

sampling frequency

The sampling frequency in Hz.

This value must be greater than zero.

Default: 1.0 Hz, which is the normalized sampling frequency

estimated order

Minimum order value that the filter requires to meet the specifications you set.

low cutoff frequency

Low cutoff frequency. The cutoff frequency corresponds to the half-power frequency or the 3 dB frequency.

high cutoff frequency

High cutoff frequency. The cutoff frequency corresponds to the half-power frequency or the 3 dB frequency.

error out

Error information. The node produces this output according to standard error behavior.

Algorithm for Butterworth Order Estimation

This node uses the following equations to estimate the order of a Butterworth filter:

$N=⌈\frac{\mathrm{ln}\left({\epsilon }_{s}/{\epsilon }_{p}\right)}{\mathrm{ln}\left({\mathrm{\Omega }}_{s}/{\mathrm{\Omega }}_{p}\right)}⌉$
${\epsilon }_{p}=\sqrt{{10}^{{A}_{p}/10}-1}$
${\epsilon }_{s}=\sqrt{{10}^{{A}_{s}/10}-1}$
where
• N is the estimated order
• Ap is the passband ripple in dB
• As is the stopband ripple in dB
• $⌈⌉$ means Round Toward + Infinity

The following table lists the equations for calculating ${\mathrm{\Omega }}_{p}$ and ${\mathrm{\Omega }}_{s}$ for different types of filters:

 Lowpass filter ${\mathrm{\Omega }}_{p}={\mathrm{\Omega }}_{p1}$ ${\mathrm{\Omega }}_{s}={\mathrm{\Omega }}_{s1}$ Highpass filter ${\mathrm{\Omega }}_{p}=1/{\mathrm{\Omega }}_{p1}$ ${\mathrm{\Omega }}_{s}={1/\mathrm{\Omega }}_{s1}$ Bandpass filter $\begin{array}{c}{\mathrm{\Omega }}_{p}={\mathrm{\Omega }}_{p2}-{\mathrm{\Omega }}_{p1}\end{array}$ $\begin{array}{c}{\mathrm{\Omega }}_{s}=\mathrm{min}\left(|{\mathrm{\Omega }}_{s1}-\frac{{\mathrm{\Omega }}_{p1}{\mathrm{\Omega }}_{p2}}{{\mathrm{\Omega }}_{s1}}|,|{\mathrm{\Omega }}_{s2}-\frac{{\mathrm{\Omega }}_{p1}{\mathrm{\Omega }}_{p2}}{{\mathrm{\Omega }}_{s2}}|\right)\end{array}$ Bandstop filter $\begin{array}{c}{\mathrm{\Omega }}_{p}=\mathrm{max}\left(|\frac{1}{{\mathrm{\Omega }}_{p1}-\frac{{\mathrm{\Omega }}_{s1}{\mathrm{\Omega }}_{s2}}{{\mathrm{\Omega }}_{p1}}}|,|\frac{1}{{\mathrm{\Omega }}_{p2}-\frac{{\mathrm{\Omega }}_{s1}{\mathrm{\Omega }}_{s2}}{{\mathrm{\Omega }}_{p2}}}|\right)\end{array}$ $\begin{array}{c}{\mathrm{\Omega }}_{s}=\frac{1}{{\mathrm{\Omega }}_{s2}-{\mathrm{\Omega }}_{s1}}\end{array}$

where the various $\mathrm{\Omega }$ values equal as follows:

${\mathrm{\Omega }}_{p1}=\mathrm{tan}\left(\pi *\frac{\mathrm{lower pass frequency}}{\mathrm{sampling frequency}}\right)$
${\mathrm{\Omega }}_{p2}=\mathrm{tan}\left(\pi *\frac{\mathrm{higher pass frequency}}{\mathrm{sampling frequency}}\right)$
${\mathrm{\Omega }}_{s1}=\mathrm{tan}\left(\pi *\frac{\mathrm{lower stop frequency}}{\mathrm{sampling frequency}}\right)$
${\mathrm{\Omega }}_{s2}=\mathrm{tan}\left(\pi *\frac{\mathrm{higher stop frequency}}{\mathrm{sampling frequency}}\right)$

Where This Node Can Run:

Desktop OS: Windows

FPGA: Not supported