[an error occurred while processing this directive]
|
Переполнения точно нет.
y[n] = b*y[n-1] + a*(x[n] - x[n-1])
a=131071
b=117340
Фильтр существует только в модели, сделан из линий задержки и умножителей в симулинке.
Без умножения на 32 действительно лучше. Добавляется шум в 1 разряд.
Странно, но умножение как раз увеличивает шум, а не только входной сигнал. Причем Фильтр на сам сигнал действует (ослабляет его как надо), а шум нет.
Без умножения на 32 упираюсь в мертвую полосу.
При синусоидальном входном сигнале с амплитудой 20 и частотами 1.8 кГц и 0.18 кГц на выходе остается сигнал с амплитудой 5, хотя затухание должно быть на этих частотах 10 раз и 100 раз.
Может подскажите как побороться с мертвой полосой ?
Округление при усечении разрядности делал, пробовал и noise shaping
y[n] = b*y[n-1] + a*(x[n] - x[n-1]) - e[n-1],
где e[n-1] - младшие 17 бит сумматора
старшие 18 - это очередной y[n]