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: {1x6 cell}
              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);

Visualize the frequency response of the designed filter.

fvtool(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); 

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: {1x6 cell}
              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);

Visualize the highpass frequency response.

fvtool(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.BiquadFilter System object™. For details on how to apply this filter on streaming data, refer to dsp.BiquadFilter.

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

                   Structure: 'Direct form II'
             SOSMatrixSource: 'Property'
                   SOSMatrix: [3x6 double]
                 ScaleValues: [4x1 double]
           InitialConditions: 0
    OptimizeUnityScaleValues: true

  Show all properties

Visualize the frequency response of the designed filter using fvtool.

fvtool(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.

See Also

Functions

Introduced in R2007b