Documentation

This is machine translation

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

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

double

Cast fixed-point filter to use double-precision arithmetic

Syntax

hd = double(h)

Description

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.

Examples

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 coeffs.

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=norm(yd-double(y),inf)
FixedFloatNormDiff =

   2.1234e-05

See Also

Introduced in R2011a

Was this topic helpful?