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.

Extended Capabilities

See Also

| |

Introduced in R2011a