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
be real, have even order, and have nonnegative zero-phase response.
h = firminphase(b,nz) specifies
the number of zeros,
lie on the unit circle. You must specify
an even number to compute the minimum-phase spectral factor because
every root on the unit circle must have even multiplicity. Including
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,
This example designs a constrained least squares filter with
a nonnegative zero-phase response, and then uses
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.