В обработке сигналов цифровой фильтр — это система, которая выполняет математические операции над дискретным сигналом с дискретным временем для уменьшения или улучшения определенных аспектов этого сигнала. Это отличается от другого основного типа электронного фильтра , аналогового фильтра , который обычно представляет собой электронную схему, работающую с непрерывными аналоговыми сигналами .
Система цифровой фильтрации обычно состоит из аналого-цифрового преобразователя (АЦП) для выборки входного сигнала, за которым следует микропроцессор и некоторые периферийные компоненты, такие как память для хранения данных и коэффициентов фильтрации и т. д. Программные инструкции (программное обеспечение), работающие на микропроцессоре, реализуют цифровой фильтр, выполняя необходимые математические операции над числами, полученными от АЦП. В некоторых высокопроизводительных приложениях вместо микропроцессора общего назначения или специализированного цифрового сигнального процессора (ЦСП) со специальной параллельной архитектурой используются ПЛИС или ASIC для ускорения операций, таких как фильтрация. [1] [2]
Цифровые фильтры могут быть дороже, чем эквивалентный аналоговый фильтр из-за их повышенной сложности, но они делают практичными многие конструкции, которые непрактичны или невозможны в качестве аналоговых фильтров. Цифровые фильтры часто могут быть сделаны очень высокого порядка, и часто являются фильтрами с конечной импульсной характеристикой, что позволяет получить линейную фазовую характеристику. При использовании в контексте аналоговых систем реального времени цифровые фильтры иногда имеют проблемную задержку (разницу во времени между входом и ответом) из-за связанных аналого-цифровых и цифро-аналоговых преобразований и фильтров сглаживания или из-за других задержек в их реализации.
Цифровые фильтры широко распространены и являются неотъемлемым элементом повседневной электроники, такой как радиоприемники , мобильные телефоны и AV-ресиверы .
Цифровой фильтр характеризуется своей передаточной функцией или, что эквивалентно, своим разностным уравнением . Математический анализ передаточной функции может описать, как она будет реагировать на любой входной сигнал. Таким образом, проектирование фильтра состоит из разработки спецификаций, соответствующих проблеме (например, фильтр нижних частот второго порядка с определенной частотой среза), а затем создания передаточной функции, которая соответствует спецификациям.
Передаточная функция для линейного, постоянного во времени цифрового фильтра может быть выражена как передаточная функция в Z -области ; если она является причинной, то она имеет вид: [3]
где порядок фильтра больше N или M. См. уравнение LCCD Z -преобразования для дальнейшего обсуждения этой передаточной функции .
Это форма рекурсивного фильтра , которая обычно приводит к поведению с бесконечной импульсной характеристикой (БИХ), но если знаменатель сделать равным единице , т.е. без обратной связи, то это становится фильтром с конечной импульсной характеристикой (КИХ).
Для анализа поведения данного цифрового фильтра можно использовать различные математические методы. Многие из этих методов анализа могут также использоваться в проектах и часто формируют основу спецификации фильтра.
Обычно фильтры характеризуются путем расчета того, как они будут реагировать на простой вход, такой как импульс. Затем можно расширить эту информацию для расчета реакции фильтра на более сложные сигналы.
Импульсная характеристика , часто обозначаемая или , является измерением того, как фильтр будет реагировать на дельта-функцию Кронекера . [4] Например, для данного уравнения разности можно установить и для и оценить. Импульсная характеристика является характеристикой поведения фильтра. Цифровые фильтры обычно рассматриваются в двух категориях: бесконечная импульсная характеристика (IIR) и конечная импульсная характеристика (FIR). В случае линейных не зависящих от времени FIR-фильтров импульсная характеристика в точности равна последовательности коэффициентов фильтра, и, таким образом:
С другой стороны, БИХ-фильтры являются рекурсивными, с выходом, зависящим как от текущих, так и от предыдущих входов, а также от предыдущих выходов. Общая форма БИХ-фильтра выглядит следующим образом:
Построение импульсной характеристики показывает, как фильтр реагирует на внезапное, кратковременное возмущение. Фильтр IIR всегда рекурсивен. В то время как рекурсивный фильтр может иметь конечную импульсную характеристику, нерекурсивный фильтр всегда имеет конечную импульсную характеристику. Примером является фильтр скользящего среднего (MA), который может быть реализован как рекурсивно [ требуется ссылка ] , так и нерекурсивно.
В дискретных временных системах цифровой фильтр часто реализуется путем преобразования передаточной функции в линейное уравнение с постоянным коэффициентом разности (LCCD) с помощью Z-преобразования . Дискретная передаточная функция в частотной области записывается как отношение двух полиномов. Например:
Это расширено:
и чтобы сделать соответствующий фильтр причинным , числитель и знаменатель делятся на наивысший порядок :
Коэффициенты знаменателя, , являются коэффициентами «обратной связи», а коэффициенты числителя являются коэффициентами «прямой связи», . Результирующее линейное разностное уравнение имеет вид:
или, для примера выше:
перестановка терминов:
затем, выполнив обратное z -преобразование:
и наконец, решив для :
Это уравнение показывает, как вычислить следующий выходной образец, , в терминах прошлых выходов, , текущего входа, , и прошлых входов, . Применение фильтра к входу в этой форме эквивалентно реализации прямой формы I или II (см. ниже), в зависимости от точного порядка оценки.
Проще говоря, например, с точки зрения программиста, реализующего приведенное выше уравнение в коде, его можно описать следующим образом:
= выходное или отфильтрованное значение = входное или входящее необработанное значение = номер выборки, номер итерации или номер периода времени
и поэтому:
= текущее отфильтрованное (выходное) значение = последнее отфильтрованное (выходное) значение = предпоследнее отфильтрованное (выходное) значение = текущее необработанное входное значение = последнее необработанное входное значение = предпоследнее необработанное входное значение
Хотя фильтры легко понять и рассчитать, практические проблемы их проектирования и внедрения значительны и являются предметом многих передовых исследований.
Существует две категории цифровых фильтров: рекурсивные фильтры и нерекурсивные фильтры . Их часто называют фильтрами с бесконечной импульсной характеристикой (БИХ) и фильтрами с конечной импульсной характеристикой (КИХ) соответственно. [5]
После проектирования фильтра его необходимо реализовать , разработав схему потока сигналов, описывающую фильтр с точки зрения операций над последовательностями выборок.
Заданная передаточная функция может быть реализована многими способами. Рассмотрим, как можно оценить простое выражение, например , – можно также вычислить эквивалент . Таким же образом все реализации можно рассматривать как «факторизации» одной и той же передаточной функции, но разные реализации будут иметь разные числовые свойства. В частности, некоторые реализации более эффективны с точки зрения количества операций или элементов хранения, необходимых для их реализации, а другие обеспечивают такие преимущества, как улучшенная численная устойчивость и уменьшенная ошибка округления. Некоторые структуры лучше подходят для арифметики с фиксированной точкой , а другие могут быть лучше для арифметики с плавающей точкой .
Прямой подход к реализации БИХ-фильтра — прямая форма I , где разностное уравнение оценивается напрямую. Эта форма практична для небольших фильтров, но может быть неэффективной и непрактичной (численно нестабильной) для сложных конструкций. [6] В общем случае эта форма требует 2N элементов задержки (как для входных, так и для выходных сигналов) для фильтра порядка N.
Альтернативная прямая форма II требует только N единиц задержки, где N — порядок фильтра — потенциально вдвое меньше, чем прямая форма I. Эта структура получается путем изменения порядка числителя и знаменателя прямой формы I, поскольку они фактически являются двумя линейными системами, и применяется свойство коммутативности. Затем можно заметить, что есть два столбца задержек ( ), которые отводятся от центральной сети, и их можно объединить, поскольку они избыточны, что дает реализацию, показанную ниже.
Недостатком является то, что прямая форма II увеличивает вероятность арифметического переполнения для фильтров с высокой добротностью или резонансом. [7] Было показано, что с увеличением добротности шум округления обеих топологий прямой формы неограниченно возрастает. [8] Это происходит потому, что концептуально сигнал сначала пропускается через фильтр всех полюсов (который обычно увеличивает усиление на резонансных частотах) до того, как результат этого насыщается, а затем пропускается через фильтр всех нулей (который часто ослабляет большую часть того, что усиливает фильтр всех полюсов).
Распространенной стратегией является реализация цифрового фильтра более высокого порядка (больше 2) как каскадной серии секций второго порядка «биквадрат» (или «биквадрат») [9] (см. цифровой биквадратный фильтр ). Преимущество этой стратегии заключается в том, что диапазон коэффициентов ограничен. Каскадирование секций прямой формы II приводит к N элементам задержки для фильтров порядка N. Каскадирование секций прямой формы I приводит к N + 2 элементам задержки, поскольку элементы задержки входа любой секции (кроме первой секции) избыточны по сравнению с элементами задержки выхода предыдущей секции.
Другие формы включают в себя:
Цифровые фильтры не подвержены нелинейностям компонентов, которые значительно усложняют конструкцию аналоговых фильтров. Аналоговые фильтры состоят из несовершенных электронных компонентов, значения которых указаны с предельным допуском (например, значения резисторов часто имеют допуск ±5%) и которые также могут меняться с температурой и дрейфовать со временем. По мере увеличения порядка аналогового фильтра и, следовательно, количества его компонентов, влияние переменных ошибок компонентов значительно увеличивается. В цифровых фильтрах значения коэффициентов хранятся в памяти компьютера, что делает их гораздо более стабильными и предсказуемыми. [12]
Поскольку коэффициенты цифровых фильтров являются определенными, их можно использовать для достижения гораздо более сложных и селективных конструкций — в частности, с помощью цифровых фильтров можно добиться меньшей пульсации полосы пропускания, более быстрого перехода и более высокого затухания полосы задерживания, чем это практично с аналоговыми фильтрами. Даже если бы конструкция могла быть достигнута с помощью аналоговых фильтров, инженерные затраты на проектирование эквивалентного цифрового фильтра, вероятно, были бы намного ниже. Кроме того, можно легко изменить коэффициенты цифрового фильтра, чтобы сделать адаптивный фильтр или параметрический фильтр, управляемый пользователем. Хотя эти методы возможны в аналоговом фильтре, они снова значительно сложнее.
Цифровые фильтры могут использоваться при проектировании фильтров с конечной импульсной характеристикой. Эквивалентные аналоговые фильтры часто более сложны, поскольку требуют элементов задержки.
Цифровые фильтры меньше полагаются на аналоговые схемы, что потенциально позволяет улучшить соотношение сигнал/шум . Цифровой фильтр будет вносить шум в сигнал во время аналоговой фильтрации нижних частот, аналого-цифрового преобразования, цифро-аналогового преобразования и может вносить цифровой шум из-за квантования. В аналоговых фильтрах каждый компонент является источником теплового шума (например, шума Джонсона ), поэтому по мере роста сложности фильтра растет и шум.
Однако цифровые фильтры вносят в систему более высокую фундаментальную задержку. В аналоговом фильтре задержка часто незначительна; строго говоря, это время, необходимое электрическому сигналу для распространения через схему фильтра. В цифровых системах задержка вносится элементами задержки на пути цифрового сигнала, а также аналого-цифровыми и цифро-аналоговыми преобразователями , которые позволяют системе обрабатывать аналоговые сигналы.
В очень простых случаях более экономически эффективно использовать аналоговый фильтр. Введение цифрового фильтра требует значительных накладных расходов, как обсуждалось ранее, включая два низкочастотных аналоговых фильтра.
Другим аргументом в пользу аналоговых фильтров является низкое энергопотребление. Аналоговые фильтры требуют значительно меньше энергии и поэтому являются единственным решением, когда требования к питанию жесткие.
При создании электрической схемы на печатной плате обычно проще использовать цифровое решение, поскольку блоки обработки данных значительно оптимизированы за годы. Создание той же схемы с аналоговыми компонентами заняло бы гораздо больше места при использовании дискретных компонентов . Двумя альтернативами являются FPAA [13] и ASIC , но они дороги для небольших партий.
Существуют различные способы характеристики фильтров, например:
Фильтр может быть представлен блок-схемой , которая затем может быть использована для получения алгоритма обработки выборки для реализации фильтра с помощью аппаратных инструкций. Фильтр также может быть описан как дифференциальное уравнение , набор нулей и полюсов или импульсная характеристика или ступенчатая характеристика .
Некоторые цифровые фильтры основаны на быстром преобразовании Фурье , математическом алгоритме, который быстро извлекает частотный спектр сигнала, позволяя манипулировать спектром (например, создавать полосовые фильтры очень высокого порядка) перед преобразованием измененного спектра обратно в сигнал временного ряда с помощью обратной операции БПФ. Эти фильтры дают O(n log n) вычислительных затрат, тогда как обычные цифровые фильтры, как правило, O(n 2 ).
Другой формой цифрового фильтра является модель пространства состояний . Широко используемый фильтр пространства состояний — это фильтр Калмана, опубликованный Рудольфом Калманом в 1960 году.
Традиционные линейные фильтры обычно основаны на затухании. В качестве альтернативы можно разработать нелинейные фильтры, включая фильтры передачи энергии [14] , которые позволяют пользователю перемещать энергию заданным образом, так что нежелательный шум или эффекты могут быть перемещены в новые частотные диапазоны, либо ниже, либо выше по частоте, распределены по диапазону частот, разделены или сфокусированы. Фильтры передачи энергии дополняют традиционные конструкции фильтров и вносят гораздо больше степеней свободы в конструкцию фильтров. Цифровые фильтры передачи энергии относительно легко проектировать, реализовывать и использовать нелинейную динамику.