Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее
Пн янв 20, 2020 16:30:16
Добрый день, форумчане. Прошу дать совет. Имеется существующая программная реализация некого цифрового фильтра, состоящего из композиции рекурсивной и нерекурсивной части. Алгоритм вычисления конечного результата из программы легко выделить. Требуется оценить АЧХ и ФЧХ данной композиции. Возникают мысли, что это можно как-то смоделировать в программах Маткад или Матлаб. Какая из программ для этого подходит больше? Можно ли в данных программах получить требуемые АЧХ и ФЧХ без сложного вывода аналитических зависимостей только на основе исходных рекуррентных формул? По аналогии, как в Microcap можно смоделировать сложную существующую электрическую цепь и изучать ее характеристики без аналитического описания происходящих процессов.
Пн янв 20, 2020 18:36:10
В MATLAB'е можно не только построить график АЧХ и ФЧХ (функция freqz, затем plot после выделение модуля и фазы), но и синтезировать нужный тип фильтра (функции cheby1, cheby2, butter и ellip) с нуля по спецификации. Так же с помощью функции filter можно применить фильтр к любому сигналу, в том числе к одиночному импульсу или порогу высотой 1, получив таким образом импульсную и переходную характеристики.
Однако, чтобы полноценно работать с цифровыми фильтрами надо знать, что такое z-преобразование и передаточная функция фильтра (этим преобразованием описываемая). Чтобы по-быстрому въехать в вопрос можно прочитать цикл из четырёх статей Моделирование ЦОС в MATLAB автора Анны Солониной, изданных в журнале Компоненты и технологии. В интернете их на каждом шагу можно найти.
Если хотите освоить всё с нуля с минимумом необходимой теории и упором на практику, то книга Айфичер Э., Джервис Б. - Цифровая обработка сигналов. Практический подход вам в помощь. Есть ещё такие книжки:
Гарри Лем - Аналоговые и цифровые фильтры
Антонью. А. - Цифровые фильтры анализ и проектирование
Оппенгейм А., Шареф Р. - Цифровая обработка сигналов
Вт янв 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 связаны с комплексными числами и весьма сложны. Но здесь наконец на помощь приходит Маткад.
Это правильно, или я что-то напутал?
Ср янв 22, 2020 02:55:18
Если вы будете считать в матлабе, то вам надо найти коэффициенты a_i и b_i, а затем подставить их в функцию и отобразить выданный результат. Всё.
У вас уже есть какие-нибудь реальные цифры поиграться? Я бы мог продемонстрировать как это делается на конкретном примере.
Чт янв 23, 2020 17:24:24
Благодарю за желание помочь! Но у меня уже понемногу начало получаться в маткаде. Так что дальше наверное сам. Еще раз благодарю.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.