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,
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)
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.
Usage notes and limitations:
All inputs must be constant. Expressions or variables are allowed if their values do not change.