Основные принципы проектирования цифровых фильтров (IIR / FIR)


15

Хотя у меня есть солидный опыт в разработке звуковых движков и тому подобное, я довольно новичок в области проектирования цифровых фильтров, в частности, БИХ-фильтров и КИХ-фильтров. Другими словами, я пытаюсь узнать как можно больше о том, как проектировать фильтры и выводить их разностные уравнения. Я начинаю с основ, поэтому, пожалуйста, терпите меня, как я уже сказал, я пытаюсь учиться.

Вот мой вопрос:

Скажем, я хочу разработать фильтр нижних частот с определенной частотой среза - скажем, 300 Гц. Каков наилучший способ математически получить передаточную функцию, а затем вывести конкретное разностное уравнение для реализации фильтра в прямой форме I и прямой форме II (или пока только DF-1 ...)?

У меня есть некоторое представление о передаточных функциях и о том, как они соотносятся с разностными уравнениями из какого-то превосходного материала в Интернете, к сожалению, некоторые из них предполагают хорошие предварительные знания, поэтому это скорее сбивает с толку, чем помогает в моих поисках. Поэтому я думаю, что мне нужен более пошаговый пример, который поможет мне соединить точки.

Поэтому я в основном ищу помощь в разбивке процесса, начиная с выбора частоты среза и заканчивая выводом разностного уравнения.

Любая помощь будет высоко ценится. Я знаком со многими понятиями - импульсный отклик, ДПФ, математика, стоящая за ним. Думаю, мне нужна дополнительная помощь - концепция z-преобразования и использование полюса / нуля для разработки передаточной функции фильтра, а затем как работает частота среза играть во все это, чтобы, наконец, вывести разностное уравнение.

Поскольку я, как правило, учусь лучше всего на примере, я подумал, что могу спросить здесь. Большое спасибо всем, кто находит время, чтобы помочь мне.


2
Существует много методов проектирования фильтров. Вот несколько терминов, с которых можно начать: метод проектирования окон, дизайн фильтров наименьших квадратов и проект фильтров равных множеств (обычно с использованием алгоритма Паркс-Макклеллана). Они в основном ограничены конструкциями FIR-фильтров. Одним из распространенных способов создания БИХ-фильтров является сопоставление аналогового прототипа (например, фильтра Баттерворта) с соответствующим приближением цифрового фильтра. Это может быть сделано, например, с использованием методов билинейного преобразования или импульсной инвариантности.
Джейсон Р

Ответы:


20

Проектирование цифровых фильтров - очень большая и зрелая тема, и, как вы упомянули в своем вопросе, доступно много материалов. Здесь я хочу попробовать начать работу и сделать существующий материал более доступным. Вместо цифровых фильтров я должен говорить о фильтрах с дискретным временем, потому что я не буду здесь рассматривать коэффициент и квантование сигнала. Вы уже знаете о фильтрах FIR и IIR, а также о некоторых структурах фильтров, таких как DF I и II. Тем не менее, позвольте мне начать с некоторых основ:

Нерекурсивный линейный инвариантный по времени (LTI) фильтр может быть описан следующим разностным уравнением

(1)Y(N)знак равночас0Икс(N)+час1Икс(N-1)+...+часN-1Икс(N-N+1)знак равноΣКзнак равно0N-1часКИкс(N-К)

где - выходная последовательность, - входная последовательность, - индекс времени, - коэффициенты фильтра, а - длина фильтра (количество отводов). фильтра также являются импульсной характеристикой фильтра, потому что если входной сигнал является импульсным, т.е. , тоx ( n ) n h k N h k x ( n ) = δ ( n ) y ( n ) = h n h kY(N)Икс(N)NчасКNчасКИкс(N)знак равноδ(N)Y(N)знак равночасN(если память фильтра была инициализирована нулями). Уравнение (1) описывает линейную инвариантную по времени систему с конечной импульсной характеристикой (FIR). Сумма в правой части (1) является суммой свертки, то есть выходной сигнал получается путем свертки входного сигнала с импульсной характеристикой. Это всегда верно, но для БИХ-фильтров мы не можем явно вычислить сумму свертки, потому что импульсная характеристика бесконечно длинна, т.е. существует бесконечно много коэффициентовчасК, Одним из важных преимуществ FIR-фильтров является то, что они всегда стабильны, то есть для ограниченной входной последовательности выходная последовательность всегда ограничена. Другое преимущество состоит в том, что КИХ-фильтры всегда могут быть реализованы с точно линейной фазой, то есть они не добавят никаких фазовых искажений, кроме чистой задержки. Кроме того, проблема проектирования обычно проще, как мы увидим позже.

Рекурсивный фильтр LTI описывается следующим разностным уравнением:

(2)Y(N)знак равноб0Икс(N)+б1Икс(N-1)+...+бMИкс(N-M)--a1Y(N-1)-...-aNY(N-N)

Уравнение (2) показывает, что выходные данные состоят не только из взвешенных и задержанных входных выборок, но также из взвешенных прошлых выходных выборок. В общем случае импульсная характеристика такой системы бесконечно велика, т.е. соответствующая система является системой БИХ. Однако существуют особые случаи рекурсивных фильтров с конечной импульсной характеристикой. Обратите внимание, что импульсный отклик больше не задается ни коэффициентами ни как в случае FIR-фильтров. Одним из преимуществ БИХ-фильтров является то, что крутые фильтры с высоким затуханием в полосе задерживания могут быть реализованы с гораздо меньшими коэффициентами (и задержками), чем в случае КИХ, то есть они являются более эффективными в вычислительном отношении. Однако нужно быть осторожным с выбором коэффициентовбКaКaК потому что БИХ-фильтр может быть нестабильным, то есть их выходная последовательность может быть неограниченной, даже с ограниченной входной последовательностью.

Фильтры могут быть сконструированы в соответствии со спецификациями либо во временной (выборочной) области, либо в частотной области, либо в обоих случаях. Поскольку вы упомянули частоту среза в своем вопросе, я предполагаю, что вас больше интересуют спецификации в частотной области. В этом случае вам нужно взглянуть на частотные характеристики систем FIR и IIR. Частотный отклик системы - это преобразование Фурье ее импульсного отклика, при условии, что он существует (что имеет место для стабильных систем). Частотная характеристика КИХ-фильтра

(3)ЧАС(еJθ)знак равноΣКзнак равно0N-1часКе-JКθ

где - частотная переменная с дискретным временем:θ

θзнак равно2πееs

с фактической частотой и частотой дискретизации . Из (3) видно, что аппроксимация желаемой частотной характеристики с помощью системы КИХ является в основном проблемой полиномиальной аппроксимации. Для рекурсивных систем мы имеемееs

(4)ЧАС(еJθ)знак равноΣКзнак равно0MбКе-Jθ1+ΣКзнак равно1NaКе-Jθ

и вы получаете задачу рационального приближения, которая обычно намного сложнее, чем проблема полиномиального приближения в случае КИХ-фильтров. Из формулы (3) и (4) можно видеть , что частотная характеристика фильтра FIR, конечно , только частный случай отклика рекурсивного фильтра с коэффициентами , .aКзнак равно0Кзнак равно1,...,N

Теперь давайте кратко рассмотрим методы проектирования фильтров. Для КИХ-фильтров вы можете использовать обратное преобразование Фурье требуемой частотной характеристики, чтобы получить импульсную характеристику фильтра, которая непосредственно соответствует коэффициентам фильтра. Поскольку вы аппроксимируете желаемый отклик импульсным откликом конечной длины, вы должны применить гладкое окно к полученному импульсному отклику, чтобы минимизировать колебания в фактическом отклике частоты из-за явления Гиббса. Этот метод называется методом частотной выборки.

Для простых стандартных фильтров, таких как идеальные фильтры нижних, верхних, полосовых или полосовых фильтров (и некоторые другие), вы даже можете аналитически рассчитать точную импульсную характеристику, взяв обратное преобразование Фурье идеального требуемого отклика:

часКзнак равно12π-ππЧАС(еJθ)еJКθdθ

Этот интеграл легко оценить для кусочно-постоянных желаемых откликов, как в случае идеальных частотно-избирательных фильтров. Это даст вам бесконечно длинный, не причинный импульсный отклик, который должен быть обработан и сдвинут, чтобы сделать его конечным и причинным. Этот метод известен как оконный дизайн.

Есть, конечно, много других методов проектирования FIR-фильтров. Одним из важных численных методов является известный алгоритм обмена Паркс-Макклеллан, который разрабатывает оптимальные фильтры с постоянной полосой пропускания и пульсациями в полосе задерживания. Это метод числовой аппроксимации, и существует множество доступных программных реализаций, например, в Matlab и Octave.

Наиболее распространенным методом расчета БИХ для частотно-избирательных фильтров является метод билинейного преобразования. Этот метод просто использует аналитические формулы для построения оптимальных аналоговых фильтров (таких как фильтры Баттерворта, Чебышева, Кауэра / Эллиптика и Бесселя) и преобразует их в область дискретного времени, применяя билинейное преобразование к комплексной переменной (аналог домен), который отображает (мнимую) частотную ось комплексной плоскости в единичную окружность в комплексной плоскости (область дискретного времени). Не беспокойтесь, если вы еще не знаете много о сложных передаточных функциях в аналоговой или дискретной области времени, потому что существуют хорошие реализации метода билинейного преобразования, например, в Matlab или Octave.ssZ

Конечно, есть много более интересных и полезных методов, в зависимости от типа используемых вами спецификаций, но я надеюсь, что это поможет вам начать работу и сделает любой материал, с которым вы столкнетесь, более понятным. Очень хорошая (и бесплатная) книга, охватывающая некоторые основные методы проектирования фильтров (и многие другие), называется « Введение в обработку сигналов» от Orfanidis. Вы можете найти несколько примеров дизайна там. Еще одна замечательная классическая книга - « Digital Filter Design» от Parks and Burrus.


Вау, Мэтт, большое спасибо за подробный и вдумчивый ответ. Я обязательно углублюсь в это и действительно ценю ваше время. Благодарность!
поразрядно

Есть ли хороший учебник по дизайну вейвлет-фильтров? Мне любопытно на эту тему: dsp.stackexchange.com/questions/29090/… . Благодарность!
LCFactorization

Очень хорошее вступление и мотивация сделать что-то в области обработки сигналов
jomegaA
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.