double

Бросьте фильтр фиксированной точки, чтобы использовать арифметику с двойной точностью

Синтаксис

hd = double(h)

Описание

hd = double(h) возвращает новый фильтр hd это имеет ту же структуру и коэффициенты как h, но чье арифметическое свойство установлено в double использовать арифметику с двойной точностью в фильтрации. double(h) не то же самое как reffilter(h) функция:

  • hd, фильтр возвращен double имеет квантованные коэффициенты h представленный в формате с плавающей точкой с двойной точностью

  • Ссылочный фильтр возвращен reffilter имеет коэффициенты с плавающей точкой, с двойной точностью, которые не были квантованы.

Вы можете найти double(h) полезный, чтобы изолировать эффекты квантования коэффициентов фильтра при помощи double создать фильтр hd это действует в с двойной точностью, но использует квантованные коэффициенты фильтра.

Примеры

свернуть все

Создайте фильтр Lowpass

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

Установите h использовать вычисления с фиксированной точкой, чтобы отфильтровать. Квантуйте коэффициенты.

h.arithmetic = 'fixed';

Бросьте h к с двойной точностью

hd = double(h);

Настройте входной сигнал.

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

Фиксированная точка выводится.

y = filter(h,x);

Выход с плавающей точкой.

yd = filter(hd,x);

Сравните Фиксированную точку выход с выходом С плавающей точкой

FixedFloatNormDiff=norm(yd-double(y),inf)
FixedFloatNormDiff = 2.1234e-05

Смотрите также

Введенный в R2011a

Для просмотра документации необходимо авторизоваться на сайте