Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить

Моделирование цифрового фильтра

Пн янв 20, 2020 16:30:16

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

Re: Моделирование цифрового фильтра

Пн янв 20, 2020 18:36:10

В MATLAB'е можно не только построить график АЧХ и ФЧХ (функция freqz, затем plot после выделение модуля и фазы), но и синтезировать нужный тип фильтра (функции cheby1, cheby2, butter и ellip) с нуля по спецификации. Так же с помощью функции filter можно применить фильтр к любому сигналу, в том числе к одиночному импульсу или порогу высотой 1, получив таким образом импульсную и переходную характеристики.

Однако, чтобы полноценно работать с цифровыми фильтрами надо знать, что такое z-преобразование и передаточная функция фильтра (этим преобразованием описываемая). Чтобы по-быстрому въехать в вопрос можно прочитать цикл из четырёх статей Моделирование ЦОС в MATLAB автора Анны Солониной, изданных в журнале Компоненты и технологии. В интернете их на каждом шагу можно найти.

Если хотите освоить всё с нуля с минимумом необходимой теории и упором на практику, то книга Айфичер Э., Джервис Б. - Цифровая обработка сигналов. Практический подход вам в помощь. Есть ещё такие книжки:

Гарри Лем - Аналоговые и цифровые фильтры
Антонью. А. - Цифровые фильтры анализ и проектирование
Оппенгейм А., Шареф Р. - Цифровая обработка сигналов

Re: Моделирование цифрового фильтра

Вт янв 21, 2020 16:23:42

Благодарю за полезную информацию. Действительно, нужно «вкурить» в тему практически с нуля. На данном этапе еще маловато знаний. Но сейчас стоит конкретная задача, которую можно свести к исследованию характеристик фильтра по заданным рекуррентным соотношениям. Правильно ли я понимаю, что «Волшебных» программ, которые бы сами решили данную задачу, не бывает. Поэтому задача сводится к следующему:

1. По примененному в существующей программе алгоритму составить рекурентное уравнение. Должно получиться что-то типа:
a0*y(n) + a1*y(n-1) + a2*y(n-2) + … = b0*x(n) + b1*x(n-1) +…

2. Применяем Z-преобразование к данному уравнению. Фактически это сводится к заменам типа:
y(n) -> Y(z);
y(n-1) -> Y(z)*z-1;
y(n-2) -> Y(z)*z-2;

Примечание: не знаю, как здесь правильно отобразить степень. Поэтому здесь и далее z-1 - имеется в виду z в степени -1, e-jwT – имеется в виду e в степени –jwt.

Получаем уравнение в виде:
Y(z)*(a0 + a1*z-1 + a2*z-2 +…) = X(z)*(b0 + b1*z-1 + b2*z-2 + …);

3. Получаем передаточную функцию Н(z) вида:
Н(z) = Y(z) / X(z) = (b0 + b1*z-1 + b2*z-2 + …) / (a0 + a1*z-1 + a2*z-2 + …);

4. Применяем преобразование Фурье к данной передаточной функции. Фактически это сводится к замене z на ejwT:
z-1 = e-jwT;
z-2 = e-2jwT;

5. На основе полученной передаточной функции Н(jw) уже можно построить АЧХ и ФЧХ.

Вычисления в пунктах 4 и 5 связаны с комплексными числами и весьма сложны. Но здесь наконец на помощь приходит Маткад.

Это правильно, или я что-то напутал?

Re: Моделирование цифрового фильтра

Ср янв 22, 2020 02:55:18

Если вы будете считать в матлабе, то вам надо найти коэффициенты a_i и b_i, а затем подставить их в функцию и отобразить выданный результат. Всё.

У вас уже есть какие-нибудь реальные цифры поиграться? Я бы мог продемонстрировать как это делается на конкретном примере.

Re: Моделирование цифрового фильтра

Чт янв 23, 2020 17:24:24

Благодарю за желание помочь! Но у меня уже понемногу начало получаться в маткаде. Так что дальше наверное сам. Еще раз благодарю.
Ответить