%% Convert Linear-Phase Filter to Minimum-Phase
% Use the window method to design a 25th-oder FIR filter with normalized cutoff frequency 0.4\pi rad/sample. Verify that it has linear phase but not minimum phase.

h = fir1(25,0.4);

h_linphase = islinphase(h)
h_minphase = isminphase(h)

%
% Use polystab to convert the linear-phase filter into a minimum-phase filter. Plot the phase responses of the filters.

hmin = polystab(h)*norm(h)/norm(polystab(h));

hmin_linphase = islinphase(hmin)
hmin_minphase = isminphase(hmin)

hfvt = fvtool(h,1,hmin,1,'Analysis','phase');
legend(hfvt,'h','hmin')

%
% Verify that the two filters have identical magnitude responses.

hfvt = fvtool(h,1,hmin,1);
legend(hfvt,'h','hmin')

% Copyright 2015 The MathWorks, Inc.