Main Content

designoptions

Show all options available for specified design

Description

example

options = designoptions(designSpecs,method) returns all design options available for a specification object, designSpecs, using a particular design method, method.

Examples

collapse all

Design a Butterworth filter with lowpass and highpass frequency responses. The filter design procedure is:

  1. Specify the filter design specifications using a fdesign function.

  2. Pick a design method provided by the designmethods function.

  3. To determine the available design options to choose from, use the designoptions function.

  4. Design the filter using the design function.

Lowpass Filter

Construct a default lowpass filter design specification object using fdesign.lowpass.

designSpecs = fdesign.lowpass
designSpecs = 
  lowpass with properties:

               Response: 'Lowpass'
          Specification: 'Fp,Fst,Ap,Ast'
            Description: {4x1 cell}
    NormalizedFrequency: 1
                  Fpass: 0.4500
                  Fstop: 0.5500
                  Apass: 1
                  Astop: 60

Determine the available design methods using the designmethods function. To design a Butterworth filter, pick butter.

designmethods(designSpecs,SystemObject=true)
Design Methods that support System objects for class fdesign.lowpass (Fp,Fst,Ap,Ast):


butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin
multistage

While designing the filter, you can specify additional design options. View a list of the options using the designoptions function. This function also shows the default design options the filter uses.

designoptions(designSpecs,'butter',SystemObject=true)
ans = struct with fields:
           FilterStructure: {'df1sos'  'df2sos'  'df1tsos'  'df2tsos'  'cascadeallpass'  'cascadewdfallpass'}
              SOSScaleNorm: 'ustring'
              SOSScaleOpts: 'fdopts.sosscaling'
              MatchExactly: {'passband'  'stopband'}
    DefaultFilterStructure: 'df2sos'
       DefaultMatchExactly: 'stopband'
       DefaultSOSScaleNorm: ''
       DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]

Use the design function to design the filter. Pass 'butter' and the specifications given by variable designSpecs, as input arguments. Specify the 'matchexactly' design option to 'passband'.

lpFilter = design(designSpecs,'butter',matchexactly='passband',SystemObject=true)
lpFilter = 
  dsp.SOSFilter with properties:

            Structure: 'Direct form II'
    CoefficientSource: 'Property'
            Numerator: [13x3 double]
          Denominator: [13x3 double]
       HasScaleValues: true
          ScaleValues: [0.4095 0.3669 0.3330 0.3059 0.2841 0.2666 0.2525 0.2414 0.2328 0.2263 0.2219 0.2193 0.4674 1]

  Use get to show all properties

Visualize the frequency response of the designed filter.

filterAnalyzer(lpFilter)

Highpass Filter

Construct a highpass filter design specification object using fdesign.highpass. Specify the order to be 7 and the 3 dB frequency to be 0.6π radians/sample.

designSpecs = fdesign.highpass('N,F3dB',7,.6)
designSpecs = 
  highpass with properties:

          Specification: 'N,F3dB'
               Response: 'Highpass'
            Description: {2x1 cell}
    NormalizedFrequency: 1
            FilterOrder: 7
                   F3dB: 0.6000

Determine the available design methods. To design a Butterworth filter, pick butter.

designmethods(designSpecs,SystemObject=true)
Design Methods that support System objects for class fdesign.highpass (N,F3dB):


butter
maxflat

While designing the filter, you can specify additional design options. View a list of the options using the designoptions function. This function also shows the default design options the filter uses.

designoptions(designSpecs,'butter',SystemObject=true)
ans = struct with fields:
           FilterStructure: {'df1sos'  'df2sos'  'df1tsos'  'df2tsos'  'cascadeallpass'  'cascadewdfallpass'}
              SOSScaleNorm: 'ustring'
              SOSScaleOpts: 'fdopts.sosscaling'
    DefaultFilterStructure: 'df2sos'
       DefaultSOSScaleNorm: ''
       DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]

To design the Butterworth filter, use the design function and specify 'butter' as an input. Set 'FilterStructure' to 'cascadeallpass'.

hpFilter = design(designSpecs,'butter',FilterStructure='cascadeallpass',SystemObject=true)
hpFilter = 
  dsp.CoupledAllpassFilter with properties:

               Structure: 'Minimum multiplier'
         PureDelayBranch: 0
    AllpassCoefficients1: {2x1 cell}
    AllpassCoefficients2: {2x1 cell}
                   Gain1: '-1'
                   Gain2: '1'

Visualize the highpass frequency response.

filterAnalyzer(hpFilter)

Design a direct-form I notching filter that has a filter order of 6, center frequency of 0.5, quality factor of 10, and a passband ripple of 1 dB.

Create a notch filter design specification object using the fdesign.notch function and specify these design parameters.

notchSpecs  = fdesign.notch('N,F0,Q,Ap',6,0.5,10,1);

Design the notch filter using the design function. The resulting filter is a dsp.SOSFilter System object™. For details on how to apply this filter on streaming data, refer to dsp.SOSFilter.

notchFilt = design(notchSpecs,SystemObject=true)
notchFilt = 
  dsp.SOSFilter with properties:

            Structure: 'Direct form II'
    CoefficientSource: 'Property'
            Numerator: [3x3 double]
          Denominator: [3x3 double]
       HasScaleValues: true
          ScaleValues: [0.7722 0.7722 1.3597 1]

  Use get to show all properties

Visualize the frequency response of the designed filter.

filterAnalyzer(notchFilt)

Input Arguments

collapse all

Filter specification object, specified as one of the fdesign functions.

Design method, specified as a character vector. You can pick a design method from the available methods given by the designmethods function.

Output Arguments

collapse all

Available design options, returned as a structure with the fields determined by the input filter specification object, designSpecs, and the design method chosen.

Version History

Introduced in R2007b

See Also

Functions