Main Content


Create an options object for second-order section scaling



opts = scaleopts(sysobj) uses the current settings in the filter System object™ to create an options object opts that contains specified scaling options for second-order section scaling. You can pass opts as an input to scale to apply scaling settings to a second-order filter.

opts = scaleopts(sysobj,'Arithmetic',arithType) returns filter coefficients for the filter System object with the arithmetic specified in arithType.


collapse all

Create an options scaling object that contains the scaling options settings you require.

EllipI = design(fdesign.lowpass('N,Fp,Ap,Ast',10,0.5,0.5,20),...
    'FilterStructure', 'df1sos',...
EllipI = 
  dsp.BiquadFilter with properties:

                       Structure: 'Direct form I'
                 SOSMatrixSource: 'Property'
                       SOSMatrix: [5x6 double]
                     ScaleValues: [6x1 double]
      NumeratorInitialConditions: 0
    DenominatorInitialConditions: 0
        OptimizeUnityScaleValues: true

  Show all properties

opts = scaleopts(EllipI)
opts =

              sosReorder: 'auto'
            MaxNumerator: 2
     NumeratorConstraint: 'none'
            OverflowMode: 'wrap'
    ScaleValueConstraint: 'unit'
           MaxScaleValue: 'Not used'

Input Arguments

collapse all

Input filter, specified as one of the following System objects:

Example: biquad = dsp.BiquadFilter('Structure', 'Direct form I', ...'SOSMatrix', s,'ScaleValues', g);

Arithmetic type used during analysis, specified as 'double', 'single', or 'fixed'. The function assumes a double precision filter when the arithmetic input is not specified and the filter System object is in an unlocked state. The scaleopts function chooses the default values of the scaling options according to the 'Arithmetic' value and the System object settings.

Output Arguments

collapse all

You can create an fdopts.sosscaling object, opts, using the scaleopts function.

The following table lists the properties of opts:



Description and Valid Value



Reorder section prior to scaling.

Valid options are 'auto' (default), 'none', 'up', 'down', 'lowpass', 'highpass', 'bandpass', and 'bandstop'.



Maximum allowed value for numerator coefficients.



Specifies whether and how to constrain numerator coefficient values. Options are 'none' (default), 'unit', 'normalize', and 'po2'.



Sets the way the filter handles arithmetic overflow situations during scaling. Valid options are 'wrap' (default), 'saturate', and 'satall'.



Specify whether to constrain the filter scale values, and how to constrain them. Valid options are 'unit' (default), 'none', and 'po2'.


'Not used'

Maximum allowed scale values. The filter applies the MaxScaleValue limit only when you set ScaleValueConstraint to a value other than unit. Setting MaxScaleValue to a numerical value automatically changes the ScaleValueConstraint setting to none.

Example: opts = scaleopts(biquad)

Version History

Introduced in R2011a