# designoptions

Show all options available for specified design

## Syntax

``options = designoptions(designSpecs,method)``

## 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\pi$ 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.

## Version History

Introduced in R2007b