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.


Cast fixed-point filter to use double-precision arithmetic


hd = double(h)


hd = double(h) returns a new filter hd that has the same structure and coefficients as h, but whose arithmetic property is set to double to use double-precision arithmetic for filtering. double(h) is not the same as the reffilter(h) function:

  • hd, the filter returned by double has the quantized coefficients of h represented in double-precision floating-point format

  • The reference filter returned by reffilter has double-precision, floating-point coefficients that have not been quantized.

You might find double(h) useful to isolate the effects of quantizing the coefficients of a filter by using double to create a filter hd that operates in double-precision but uses the quantized filter coefficients.


collapse all

Construct a Lowpass Filter

h = dfilt.dffir(firgr(27,[0 .4 .6 1],... 
[1 1 0 0]));

Set h to use fixed-point arithmetic to filter. Quantize the coefficients.

h.arithmetic = 'fixed';

Cast h to double-precision

hd = double(h);

Set up an input signal.

n = 0:99; x = sin(0.7*pi*n(:));

Fixed-point output.

y = filter(h,x);

Floating-point output.

yd = filter(hd,x);

Compare the Fixed-point output with Floating-point output

FixedFloatNormDiff = 2.1234e-05

See Also

Introduced in R2011a