| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Filter Design Toolbox |
| Contents | Index |
| Learn more about Filter Design Toolbox |
s = scalecheck(hd,pnorm)
s = scalecheck(hd,pnorm) returns a row vector s that reports the p-norm of the filter computed from the filter input to the output of each second-order section. Therefore, the number of elements in s is one less than the number of sections in the filter. Note that this p-norm computation does not include the trailing scale value of the filter (which you can find by entering
hd.scalevalue(end)
at the MATLAB prompt.
pnorm can be either frequency-domain norms specified by L1, L2, or Linf or discrete-time-domain norms — l1, l2, linf. Note that the L2-norm of a filter is equal to the l2-norm (Parseval's theorem). This is not true for other norms.
s = scalecheck(hd,pnorm) returns s, a row vector whose elements contain the p-norm from the filter input to the input of the recursive part of each second-order section. This computation of the p-norm corresponds to the input to the multipliers in these filter structures, and are the locations in the signal flow where overflow should be avoided.
When hd has nontrivial scale values, that is, if any scale values are not equal to one, s is a two-row matrix, rather than a vector. The first row elements of s report the p-norm of the filter computed from the filter input to the output of each second-order section. The elements of the second row of s contain the p-norm computed from the input of the filter to the input of each scale value between the sections. Note that for df2sos and df1tsos filter structures, the last numerator and the trailing scale value for the filter are not included when scalecheck checks the scale.
For a given p-norm, an optimally scaled filter has partial norms equal to one, so matrix s contain all ones.
Check the Linf-norm scaling of a filter.
% Create filter design specifications hs = fdesign.lowpass; object. hd = ellip(hs); % Design an elliptic sos filter scale(hd,'Linf'); s = scalecheck(hd,'Linf')
Or, in another form:
[b,a]=ellip(10,.5,20,0.5);
[s,g]=tf2sos(b,a);
hd=dfilt.df1sos(s,g)
hd =
FilterStructure: 'Direct-Form I, Second-Order Sections'
Arithmetic: 'double'
sosMatrix: [5x6 double]
ScaleValues: [6x1 double]
PersistentMemory: false
States: [1x1 filtstates.dfiir]
1x1 struct array with no fields.
scalecheck(hd,'Linf')
ans =
0.7631 0.9627 0.9952 0.9994 1.0000norm, reorder, scale, scaleopts
![]() | scale | scaleopts | ![]() |

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 |