This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Minimum-phase FIR spectral factor


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


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.


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


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


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