# 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 ```

## Version History

Introduced in R2013a