Main Content

ismaxphase

Determine whether filter is maximum phase

Syntax

flag = ismaxphase(b,a)
flag = ismaxphase(sos)
flag = ismaxphase(d)
flag = ismaxphase(...,tol)

Description

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

flag = ismaxphase(sos) returns true if the filter specified by second order sections matrix, sos, is a maximum phase filter. sos is 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)].

flag = ismaxphase(d) returns true if the digital filter, d, has maximum phase. Use designfilt to generate d based on frequency-response specifications.

flag = ismaxphase(...,tol) uses the tolerance, tol, to determine when two numbers are close enough to be considered equal. If not specified, tol, defaults to eps^(2/3).

Examples

collapse all

Design maximum-phase and minimum-phase lattice filters and verify their phase type.

k = [1/6 1/1.4];
bmax = latc2tf(k,'max');
bmin = latc2tf(k,'min');
max_flag = ismaxphase(bmax)
max_flag = logical
   1

min_flag = isminphase(bmin)
min_flag = logical
   1

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

b = single([1 -0.9999]);
a = single([1 0.45]);
max_flag1 = ismaxphase(b,a)
max_flag1 = logical
   0

max_flag2 = ismaxphase(b,a,1e-3)
max_flag2 = logical
   1

Introduced in R2013a