Documentation

# firminphase

Minimum-phase FIR spectral factor

## Syntax

```h = firminphase(b) h = firminphase(b,nz) ```

## Description

`h = firminphase(b)` computes the minimum-phase FIR spectral factor `h` of a linear-phase FIR filter `b`. Filter `b` must be real, have even order, and have nonnegative zero-phase response.

`h = firminphase(b,nz)` specifies the number of zeros, `nz`, of `b` that lie on the unit circle. You must specify `nz` as an even number to compute the minimum-phase spectral factor because every root on the unit circle must have even multiplicity. Including `nz` can help `firminphase` calculate the required FIR spectral factor. Zeros with multiplicity greater than two on the unit circle cause problems in the spectral factor determination.

### Note

You can find the maximum-phase spectral factor, `g`, by reversing `h`, such that g = fliplr(h), and b = conv(h, g).

## Examples

collapse all

This example designs a constrained least squares filter with a nonnegative zero-phase response, and then uses `firminphase` to compute the minimum-phase spectral factor.

```f = [0 0.4 0.8 1]; a = [0 1 0]; up = [0.02 1.02 0.01]; lo = [0 0.98 0]; % The zeros insure nonnegative zero-phase resp. n = 32; b = fircls(n,f,a,up,lo); h = firminphase(b)```
```h = 1×17 0.2397 -0.1556 -0.2834 0.3866 0.0415 -0.2529 0.0584 -0.0028 0.0868 0.0079 -0.0978 0.0309 0.0095 0.0669 0.0171 -0.0111 -0.0019 ```

## References

Saramaki, T, Finite Impulse Response Filter Design, Handbook for Digital Signal ProcessingMitra, S.K. and J.F. Kaiser Eds. Wiley-Interscience, N.Y., 1993, Chapter 4.