# isminphase

Determine whether filter is minimum phase

## Description

example

flag = isminphase(b,a) returns a logical output equal to 1 if the filter specified by numerator coefficients b and denominator coefficients a is minimum phase.

example

flag = isminphase(sos) returns 1 if the filter specified by second order sections matrix sos is minimum phase.

example

flag = isminphase(d) returns 1 if the digital filter d is minimum phase. Use designfilt to generate d based on frequency-response specifications.

example

flag = isminphase(___,tol) uses the tolerance tol to determine when two numbers are close enough to be considered equal.

## Examples

collapse all

Design a sixth-order lowpass Butterworth IIR filter using second order sections. Specify a normalized 3-dB frequency of 0.15. Check if the filter is minimum phase.

[z,p,k] = butter(6,0.15);
SOS = zp2sos(z,p,k);
min_flag = isminphase(SOS)
min_flag = logical
1

Redesign the filter using designfilt. Check that the zeros and poles of the transfer function are on or within the unit circle.

d = designfilt("lowpassiir",DesignMethod="butter",FilterOrder=6, ...
HalfPowerFrequency=0.25);
d_flag = isminphase(d)
d_flag = logical
1

zplane(d)

Given a filter defined with a set of single-precision numerator and denominator coefficients, check if it is minimum phase for different tolerance values.

b = single([1 1.00001]);
a = single([1 0.45]);
min_flag1 = isminphase(b,a)
min_flag1 = logical
0

min_flag2 = isminphase(b,a,1e-3)
min_flag2 = logical
1

## Input Arguments

collapse all

Filter coefficients, specified as vectors.

Data Types: single | double

Second order sections, specified as a k-by-6 matrix where 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 (biquad) filter. The ith row of the sos matrix corresponds to [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)].

Data Types: double

Digital filter, specified as a digitalFilter object.

Tolerance, specified as a positive scalar. The tolerance value determines when two numbers are close enough to be considered equal.

Data Types: double

## Output Arguments

collapse all

Logical output, returned as 1 or 0. The function returns 1 when the input is a minimum phase filter.

## Version History

Introduced in R2013a