www.gusucode.com > signal 案例源码程序 matlab代码 > signal/ConvertLinearPhaseFilterToMinimumPhaseExample.m

    %% 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.

% Copyright 2015 The MathWorks, Inc.


%%

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