This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Automatic dynamic range scaling


hnew = autoscale(hd,x)


autoscale(hd,x) provides dynamic range scaling for each node of the filter hd. This method runs signal x through hd in floating-point to simulate filtering. autoscale uses the maximum and minimum data obtained from that simulation at each filter node to set fraction lengths to cover the simulation full range and maximize the precision. Word lengths are not changed during autoscaling.

hnew = autoscale(hd,x) If you request an output, autoscale returns a new filter with the scaled fraction lengths. The original filter is not changed.

For an introductory example of the automatic scale process, see Floating-Point to Fixed-Point Conversion of IIR Filters.


collapse all

hd = design(fdesign.bandpass,'ellip');
hd = convert(hd,'latticearma');
hd.arithmetic = 'fixed';
rng(4); x = rand(100,10); % Training input data.
hd(2) = autoscale(hd,x);
hfvt = fvtool(hd,'Analysis','magestimate','ShowReference','off');
legend(hfvt, 'Before Autoscaling', 'After Autoscaling')

See Also

Introduced in R2011a