filtord

Description

example

n = filtord(b,a) returns the filter order, n, for the causal rational system function specified by the numerator coefficients, b, and denominator coefficients, a.

example

n = filtord(sos) returns the filter order for the filter specified by the second-order sections matrix, sos. sos is a K-by-6 matrix. The number of sections, K, must be greater than or equal to 2. Each row of sos corresponds to the coefficients of a second-order filter. The ith row of the second-order section matrix corresponds to [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)].

example

n = filtord(d) returns the filter order, n, for the digital filter, d. Use the function designfilt to generate d.

Examples

collapse all

Design a 20th-order FIR filter with normalized cutoff frequency $0.5\pi$ rad/sample using the window method. Verify the filter order.

b = fir1(20,0.5);
n = filtord(b)
n = 20

Design the same filter using designfilt and verify its order.

di = designfilt('lowpassfir','FilterOrder',20,'CutoffFrequency',0.5);
ni = filtord(di)
ni = 20

Design FIR equiripple and IIR Butterworth filters from the same set of specifications. Determine the difference in filter order between the two designs.

fir = designfilt('lowpassfir','DesignMethod','equiripple','SampleRate',1e3, ...
'PassbandFrequency',100,'StopbandFrequency',120, ...
'PassbandRipple',0.5,'StopbandAttenuation',60);
iir = designfilt('lowpassiir','DesignMethod','butter','SampleRate',1e3, ...
'PassbandFrequency',100,'StopbandFrequency',120, ...
'PassbandRipple',0.5,'StopbandAttenuation',60);
FIR = filtord(fir)
FIR = 114
IIR = filtord(iir)
IIR = 41

Input Arguments

collapse all

Numerator coefficients, specified as a scalar or a vector. If the filter is an allpole filter, b is a scalar. Otherwise, b is a row or column vector.

Example: b = fir1(20,0.25)

Data Types: single | double
Complex Number Support: Yes

Denominator coefficients, specified as a scalar or a vector. If the filter is an FIR filter, a is a scalar. Otherwise, a is a row or column vector.

Example: [b,a] = butter(20,0.25)

Data Types: single | double
Complex Number Support: Yes

Matrix of second order-sections, specified as a K-by-6 matrix. The system function of the Kth biquad filter has the rational Z-transform

${H}_{k}\left(z\right)=\frac{{B}_{k}\left(1\right)+{B}_{k}\left(2\right){z}^{-1}+{B}_{k}\left(3\right){z}^{-2}}{{A}_{k}\left(1\right)+{A}_{k}\left(2\right){z}^{-1}+{A}_{k}\left(3\right){z}^{-2}}.$

The coefficients in the Kth row of the matrix, sos, are ordered as follows.

$\left[\begin{array}{cccccc}{B}_{k}\left(1\right)& {B}_{k}\left(2\right)& {B}_{k}\left(3\right)\text{ }& {A}_{k}\left(1\right)& {A}_{k}\left(2\right)& {A}_{k}\left(3\right)\end{array}\right].$

The frequency response of the filter is the system function evaluated on the unit circle with

$z={e}^{j2\pi f}.$

Data Types: single | double
Complex Number Support: Yes

Digital filter, specified as a digitalFilter object. Use designfilt to generate a digital filter based on frequency-response specifications.

Example: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) specifies a third-order Butterworth filter with normalized 3 dB frequency 0.5π rad/sample.

Output Arguments

collapse all

Filter order, specified as an integer.

Version History

Introduced in R2013a