Фильтрация. Быстрая свертка. Занятие 3
План Фильтрация Фильтрация –Основные понятия, виды фильтров –Построение FIR-фильтров Быстрая свертка Быстрая свертка –Свертка в частотной области –Блочная свертка Применения фильтрации Применения фильтрации –Эквалайзеры –Реверберация –Передискретизация (ресамплинг)
Свертка и фильтрация Основные термины Основные термины –Свертка (convolution), фильтрация (filtering) –Фильтр (filter), ядро фильтра (kernel) –Импульсная, частотная и фазовая характеристики (impulse, frequency, phase response) Применения фильтрации Применения фильтрации –Анти-алиасинг изображений, нахождение границ –Звуковой эквалайзер –Моделирование реверберации помещения
Быстрая свертка Прямое вычисление: M·N умножений (M – размер ядра свертки, N – длина сигнала) Прямое вычисление: M·N умножений (M – размер ядра свертки, N – длина сигнала) Теорема свертки: свертка во временной области эквивалентна умножению в частотной области, умножение во временной области эквивалентно свертке в частотной области. Теорема свертки: свертка во временной области эквивалентна умножению в частотной области, умножение во временной области эквивалентно свертке в частотной области. Алгоритм быстрой свертки: Алгоритм быстрой свертки: 1.Вычислить спектры сигнала и ядра свертки (FFT) 2.Перемножить эти спектры 3.Вернуть полученный спектр во временную область (IFFT) Почему это быстрее? Потому что переход в частотную область и обратно быстрый: FFT Почему это быстрее? Потому что переход в частотную область и обратно быстрый: FFT
Быстрая свертка Как изменяется длина сигнала при свертке? Она увеличивается на длину ядра минус 1 (т.к. каждый входной отсчет превращается в ядро и они складываются с наложением) Как изменяется длина сигнала при свертке? Она увеличивается на длину ядра минус 1 (т.к. каждый входной отсчет превращается в ядро и они складываются с наложением) Значит, если взять сигнал длины N, ядро длины M и произвести свертку через FFT размера N, то результат свертки (длины N+M-1) не поместится в результате IFFT (длины N). Произойдет круговая свертка (заворачивание результата по времени). Значит, если взять сигнал длины N, ядро длины M и произвести свертку через FFT размера N, то результат свертки (длины N+M-1) не поместится в результате IFFT (длины N). Произойдет круговая свертка (заворачивание результата по времени). Следовательно, для предотвращения круговой свертки надо взять размер FFT как минимум N+M-1 Следовательно, для предотвращения круговой свертки надо взять размер FFT как минимум N+M-1
Частотная характеристика Получение частотной характеристики по ядру Получение частотной характеристики по ядру 1.Дополнение нулями 2.FFT 3.Берем модули комплексных коэффициентов Свертка = перемножение частотных характеристик Свертка = перемножение частотных характеристик * = Перемножение амплитуд = сложение децибелов
Виды фильтров Идеальные и реальные фильтры, виды искажений Идеальные и реальные фильтры, виды искажений FIR (finite impulse response) и IIR (infinite i. r.) фильтры FIR (finite impulse response) и IIR (infinite i. r.) фильтры Линейность фазы Линейность фазы
Построение фильтров Метод оконного взвешивания Метод оконного взвешивания –Построение фильтра с линейной фазой по произвольной заданной частотной характеристике –Частотная характеристика приближается с любым заданным уровнем точности Более сложные методы Более сложные методы –Чуть меньшее число точек ядра при соблюдении той же частотной характеристики –Специальные требования (к фазовой характеристике, к монотонности частотной характеристики и т.п.)
Построение фильтров Метод оконного взвешивания (идея метода – взять обратное FFT от требуемой АЧХ) Метод оконного взвешивания (идея метода – взять обратное FFT от требуемой АЧХ) 1.Дана требуемая АЧХ (частотная характеристика) 2.Произвольно выбираем размер FFT N и берем амплитуды коэффициентов Фурье по АЧХ (N/2+1 точка) 3.Записываем нули в фазы и делаем IFFT 4.Циклический сдвиг ядра 5.Применение весового окна 6.Контроль реальной полученной АЧХ (см. получение АЧХ по ядру фильтра) 7.Если АЧХ недостаточно соответствует требованиям – увеличиваем размер FFT и снова конструируем фильтр Подробности – см. в методичке
Весовые окна Прямоугольное (нет окна)Hamming BlackmanKaiser Формулы и картинки:
Вычисление свертки Быстрая свертка через FFT Быстрая свертка через FFT –Уже описана ранее –Неоптимальна по скорости, когда длины сигнала и ядра сильно различаются –Неприменима при потоковой обработке (когда входной сигнал поступает в реальном времени и его длина неизвестна) Секционная свертка Секционная свертка –Используем свойство линейности и инвариантности к сдвигу: разбиваем сигнал на блоки и делаем быструю свертку блочно –Увеличение длины каждого блока на M-1 сложение результатов с перекрытием (метод OLA: overlap-add) Подробности – см. в методичке
Блочная свертка Проблема секционной свертки: сигнал надо накапливать блоками, сравнимыми по размеру с длиной ядра свертки (иначе – неэффективно) задержки при real-time Проблема секционной свертки: сигнал надо накапливать блоками, сравнимыми по размеру с длиной ядра свертки (иначе – неэффективно) задержки при real-time Partitioned convolution (свертка с разбиением ядра) Partitioned convolution (свертка с разбиением ядра) –Цель – уменьшение задержки –Недостаток – некоторое увеличение времени обработки Секционная свертка: Разбиение ядра: (раскрываем скобки)
Эквалайзеры Эквалайзер – устройство коррекции тембра сигнала, изменяющее амплитуды его частотных составляющих Эквалайзер – устройство коррекции тембра сигнала, изменяющее амплитуды его частотных составляющих Изначально применялись для выравнивания АЧХ неидеального звукового тракта Изначально применялись для выравнивания АЧХ неидеального звукового тракта Вскоре стали использоваться и творчески, для создания нужных тембров или аккуратного совмещения инструментов в фонограмме Вскоре стали использоваться и творчески, для создания нужных тембров или аккуратного совмещения инструментов в фонограмме
АЧХ Амплитудно-частотная характеристика (frequency response) Амплитудно-частотная характеристика (frequency response) Добротность (Q) определяет ширину полосы воздействия Добротность (Q) определяет ширину полосы воздействия
Виды эквалайзеров По управлению АЧХ: По управлению АЧХ: –Параметрические: можно выбирать одну из имеющихся форм АЧХ и задавать ее параметры: центральную частоту, коэффициент усиления и добротность –Графические: пользователь «рисует» требуемую АЧХ непосредственно на дисплее или с помощью набора регуляторов усиления на различных частотах –Параграфические: гибрид предыдущих По принципу действия: По принципу действия: –Аналоговые: состоят из конденсаторов, катушек индуктивности, операционных усилителей –Цифровые: используют FIR или IIR фильтры
ФЧХ и ГВЗ Фазово-частотная характеристика (phase response) Фазово-частотная характеристика (phase response) –Изменение фазы в зависимости от частоты Групповое время задержки (group delay) Групповое время задержки (group delay) –Задержка различных частотных составляющих АЧХФЧХГВЗ
Импульсная характеристика Конечная (FIR) Конечная (FIR) –Легко достичь линейной ФЧХ Бесконечная (IIR) Бесконечная (IIR) –Нелинейная ФЧХ Звон фильтров Звон фильтров Линейная ФЧХНелинейная ФЧХ
Измерение реверберации Импульсный отклик помещения Импульсный отклик помещения Реверберация: прямой звук, ранние и поздние отражения Реверберация: прямой звук, ранние и поздние отражения
Измерение реверберации Способы измерения импульсного отклика: Способы измерения импульсного отклика: Единичный импульс (плохое соотношение сигнал/шум) Единичный импульс (плохое соотношение сигнал/шум) Звук стартового пистолета / лопающегося воздушного шарика (неровный спектр, маленькая энергия на НЧ) Звук стартового пистолета / лопающегося воздушного шарика (неровный спектр, маленькая энергия на НЧ) Шум измеряемого зала Используются материалы Дэвида Гризингера (Lexicon) Стартовый пистолет
Измерение реверберации Способы измерения импульсного отклика: Способы измерения импульсного отклика: Белый шум, MLS-последовательности (чувствительны к нелинейным искажениям) Белый шум, MLS-последовательности (чувствительны к нелинейным искажениям) «Плавающий синус» (swept sine) «Плавающий синус» (swept sine) Деконволюция Деконволюция Плавающий синус
Реверберация Что почитать: Что почитать: Дэвид Гризингер: Дэвид Гризингер: Ирина Алдошина: Ирина Алдошина:
Ресамплинг 1. Интерполяция нулями спектральные копии 2. Фильтрация (предотвращаем наложение спектров на шаге 3) 3. Прореживание 2