This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the 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.

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


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);


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.

See Also

| |

Introduced in R2011a

Was this topic helpful?