Products & Services Solutions Academia Support User Community Company

Learn more about Filter Design Toolbox   

ismaxphase - Determine whether filter is maximum phase

Syntax

ismaxphase(h)
ismaxphase(h,tolerance)

Description

ismaxphase(h) determines if the filter object h is maximum phase, and returns 1 if true and 0 if false. adapfilt, dfilt, and mfilt objects work with ismaxphase.

ismaxphase(h,tolerance) uses input argument tolerance to determine whether the zeros of the filter transfer function have values that are close enough to 1 to be considered 1 or greater (on or outside the unit circle, returning 1 if true (the difference between the coefficient value and 1 is less than tolerance) and 0 if not.

The phase determination is based on the reference coefficients. A filter is maximum phase when the zeros of its transfer function are on or outside the unit circle, or when the numerator is a scalar.

Examples

Two examples show ismaxphase in use. The first is a discrete-time dfilt object and the second an adaptive filter.

fp = 100;
fst= 120;
fs = 800;
ap = 1;
ast= 80;
d = fdesign.lowpass('fp,fst,ap,ast',fp,fst,ap,ast,fs);
h = design(d,'equiripple','minphase',true);
isminphase(h)

ans =

     1

To make this a maximum phase filter, use fliplr to change the coefficient order. Reordering the coefficients this way changes the phase from minimum to maximum.

h.numerator=fliplr(h.numerator);
ismaxphase(h)

ans =

     1

returns 1 so this is a maximum phase filter. Compare to isminphase.

For the adaptive filter example, try the following code:

x  = randn(1,500);     % Input to the filter
b  = fir1(31,0.5);     % FIR system to be identified
n  = 0.1*randn(1,500); % Observation noise signal
d  = filter(b,1,x)+n;  % Desired signal
mu = 1;                % NLMS step size
offset = 50;           % NLMS offset
ha = adaptfilt.nlms(32,mu,1,offset);
[y,e] = filter(ha,x,d);

After adapting, ha is an FIR filter that does not exhibit maximum phase.

ismaxphase(ha)

ans =

     0

See Also

isallpass, isfir, islinphase, isminphase, isreal, issos, isstable

  


Free Early Verification Kit

Learn how to apply early verification to your development process through these technical resources.

How much time do you spend on testing to ensure implementation meets system-level requirements?

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS