Products & Services Solutions Academia Support User Community Company

Learn more about Filter Design Toolbox   

islinphase - Determine whether filter is linear phase

Syntax

islinphase(h)
islinphase(h,tolerance)

Description

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

islinphase(h,tolerance) uses input argument tolerance to determine whether the filter coefficients are close enough in value to be considered symmetric or antisymmetric, returning 1 if true (the difference between the values is less than tolerance) and 0 if not.

The phase determination is based on the reference coefficients. A filter has linear phase if it is FIR and its transfer function coefficients are symmetric or antisymmetric. If it is IIR and it has poles on or outside the unit circle and both numerator and denominator are symmetric or antisymmetric, it is linear phase also.

Examples

This IIR filter has linear phase.

d = fdesign.lowpass('n,fc',10,0.55);
h = design(d,'window');
islinphase(h)
ans =

     1

Using the specification nb,na,fp,fst results in an IIR filter that is not linear phase in this design.

nb=15
na=10
d=fdesign.lowpass('nb,na,fp,fst',nb,na,0.45,0.55)
 
d =
 
               Response: 'Lowpass'     
          Specification: 'Nb,Na,Fp,Fst'
            Description: {4x1 cell}    
    NormalizedFrequency: true          
               NumOrder: 15            
               DenOrder: 10            
                  Fpass: 0.45          
                  Fstop: 0.55          
                                       

h=design(d) % Use the default design method iirlpnorm.
 
h =
 
 FilterStructure: 'Direct-Form II, Second-Order Sections'
      Arithmetic: 'double'    
       sosMatrix: [8x6 double]   
     ScaleValues: [-0.0051749857036492;1;1;1;1;1;1;1;1]
PersistentMemory: false    
                 
islinphase(h)

ans =

     0

See Also

isallpass, isfir, ismaxphase, 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