Products & Services Solutions Academia Support User Community Company

Learn more about Filter Design Toolbox   

validstructures - Structures for specification object with design method

Syntax

validstructures(d)
validstructures(d,'designmethod')
c = validstructures(d,'designmethod')

Description

validstructures(d) returns the list of structures for all design methods that are available for d.

validstructures(d,'designmethod') returns a list of the filter structures available for the specification object d and the design method in designmethod. Knowing which structures apply to your combination of design method and specification makes deciding on a filter structure to implement easier.

To determine the available structures, validstructures considers the filter response, such as lowpass or bandstop. It also considers the specifications you use to define the response, such as filter order or stopband attenuation, because changing the filter specifications often changes the available structures.

c = validstructures(d,'designmethod') returns the output cell array c that contains the filter structures as character strings.

Examples

These examples demonstrate some results of applying validstructures to a combination of a specification object and a design method.

Example 1

An interpolator that uses the Polyphase Length and Stopband Attenuation options to design the filter.

d=fdesign.interp(6,'PL,Ast',20,65)

d =
 
               Response: 'Lowpass interpolator'                          
          Specification: 'PL,Ast'                                        
            Description: {'Polyphase Length';'Stopband Attenuation (dB)'}
    InterpolationFactor: 6                                               
    NormalizedFrequency: true                                            
        PolyphaseLength: 20                                              
                  Astop: 65                                              
                                                                         
designmethods(d)

FIR Design Methods for class fdesign.interp (PL,Ast):

kaiserwin

validstructures(d,'kaiserwin')

ans = 

    'firinterp'    'fftfirinterp'

Now you can specify the filter structure when you design the filter hm.

hm=design(d,'kaiserwin','FilterStructure','firinterp')
 
hm =
 
FilterStructure: 'Direct-Form FIR Polyphase
                  Interpolator'
         Arithmetic: 'double'  
          Numerator: [1x120 double]  
InterpolationFactor: 6   
       PersistentMemory: false

Example 2

A CIC decimator is used as a specification object. Because the object is a decimator and the structure is defined as CIC, the only valid structure is cicdecim.

d=fdesign.cicdecim(5)
 
d =
 
               Response: 'CIC Decimator' 
          Specification: 'Fp,Ast'  
            Description: {'Passband Frequency';'Aliasing 
Attenuation(dB)'}
      DifferentialDelay: 5   
    NormalizedFrequency: true   
                  Fpass: 0.01 
                  Astop: 60    
   
designmethods(d)

FIR Design Methods for class fdesign.cicdecim (Fp,Ast):

multisection

c=validstructures(d,'multirate')

c = 

    'cicdecim'

Example 3

This default highpass specification object has more design methods available, however, changing the design method changes the valid filter structures.

d=fdesign.highpass;
designmethods(d)

Design Methods for class fdesign.highpass (Fst,Fp,Ast,Ap):

butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin

validstructures(d,'equiripple')

    'dffir'    'dffirt'    'dfsymfir'    'dfasymfir'    'fftfir'

Using the cheby2 method results in both IIR filter structures and cascade allpass structure options..

c=validstructures(d,'cheby2')

c = 

    'df1sos' 'df2sos' 'df1tsos' 'df2tsos' 'cascadeallpass'
'cascadewdfallpass'

Example 4

Multirate filters support validstructures.

d=fdesign.rsrc(4,5); 
designmethods(d)

FIR Design Methods for class fdesign.rsrc (TW,Ast):

equiripple
kaiserwin

validstructures(d,'kaiserwin')

    'firinterp'    'fftfirinterp'

See Also

design, designmethods, designopts, fdesign

  


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