Во-первых, я новичок в DSP и не имею реального образования, но я занимаюсь разработкой программы визуализации звука и представляю массив FFT в виде вертикальных полос, как в типичной визуализации частотного спектра.
Проблема, с которой я столкнулся, заключалась в том, что значения аудиосигнала менялись слишком быстро, чтобы создать приятный визуальный выход, если я просто отобразил значения FFT напрямую:
Поэтому я применяю простую функцию к значениям, чтобы «сгладить» результат:
// pseudo-code
delta = fftValue - smoothedFftValue;
smoothedFftValue += delta * 0.2;
// 0.2 is arbitrary - the lower the number, the more "smoothing"
Другими словами, я беру текущее значение и сравниваю его с последним, а затем добавляю часть этой дельты к последнему значению. Результат выглядит так:
Итак, мой вопрос:
Является ли это устоявшимся паттерном или функцией, для которой термин уже существует? Это так, каков термин? Я использую «сглаживание» выше, но я знаю, что это означает что-то очень специфическое в DSP и, возможно, не правильно. В остальном это могло быть связано с объемным конвертом, но не совсем то же самое.
Есть ли лучшие подходы или дальнейшее изучение решений, на которые я должен обратить внимание?
Спасибо за ваше время и извинения, если это глупый вопрос (читая другие обсуждения здесь, я осознаю, что мои знания намного ниже, чем в среднем кажется).
источник
Ответы:
То, что вы реализовали, - это однополюсный фильтр нижних частот, иногда называемый негерметичным интегратором . Ваш сигнал имеет разностное уравнение:
где - это входное значение (значение сглаженного столбца), а - сглаженное значение столбца. Это распространенный способ реализации простого низкочастотного фильтра низкой сложности. Я писал о них несколько раз в предыдущих ответах; см. [1] [2] [3] .y [ n ]x[n] y[n]
источник
Предупреждение: включите немного истории, старые бумаги (я люблю их) и перфокарты!
Вы использовали с форму: иногда записывается как:a=0.2 y(n)=y(n–1)+a[x(n)–y(n–1)], y(n)=ax(n)+(1–a)y(n–1).
Первая версия выше менее естественна, но она избегает одного умножения и более эффективна. Обе формулы дают линейный , причинный и бесконечный импульсный фильтр . История восходит к Пуассону, адаптивным фильтрам Колмогорова-Зурбенко , Брауну (Статистическое прогнозирование управления запасами . McGraw-Hill, 1959), Холту (1957) и Уинтерсу (1960). Он реализован в виде схемы рекурсивной фильтрации , известной под разными именами в литературе:
«Экспоненциальный» в названии связан с импульсным откликом с геометрической прогрессией, который определяет экспоненциальный спад: .h[n]=(1−a)u[n]an
Для исторической заметки Роберт Г. Браун и Артур Д. Литтл использовали этот метод в 1956 году в Экспоненциальном сглаживании для прогнозирования спроса , по-видимому, для табачной промышленности. Немного больше истории и объяснения можно найти в Holt-Winters прогнозирования для чайников (или разработчиков) - Часть I . Питер Zehna предлагает критический обзор в некоторых замечаниях по экспоненциальному сглаживанию , 1966. Глава Р. Брауна в Энциклопедии исследования операций и науки управления (книги Google) датируется историей 1944 года, читаемые страницы воспроизводятся здесь:
Многие методы расширяют это сглаживание, которое недействительно, когда данные имеют тенденцию или сезонность. Некоторые из них известны как двойное или тройное экспоненциальное сглаживание и фильтры Холта-Винтерса .
Вы также можете проверить: как работает этот «простой фильтр»?
источник
Обычный подход для аудиометров - это «детектор пиков с потерями».
Это немедленно реагирует на любое новое, пиковое или переходное состояние в сигнале, но оно задерживается на некоторое время, поэтому создает гораздо менее беспокойную картину. Распад должен быть константой от 0 до 1. Он контролирует, как быстро появляются бары, когда 0 мгновенно, а 1 - никогда.
источник
new_value
если он больше, чемcurrent_value * decay
В кругах подрядчиков Министерства обороны США этот конкретный фильтр часто называют «альфа-фильтром», поскольку его можно охарактеризовать одним параметром, который традиционно называется «альфа».
Он прямо аналогичен аналоговому низкочастотному фильтру RC.
Они чрезвычайно просты, имеют серьезные ограничения, но имеют неоспоримое преимущество перед более сложными (и сложными!) Фильтрами, которые, если вы держитесь подальше от их проблемных областей, они выполняют свою работу.
источник
Как упоминалось в других ответах, это однополюсный рекурсивный фильтр, тип фильтра с бесконечной импульсной характеристикой (IIR).
Большим источником информации об этой и других функциях DSP является Стивен В. Смит: Руководство для ученых и инженеров по цифровой обработке сигналов :
источник