Как построить ачх в матлабе
Перейти к содержимому

Как построить ачх в матлабе

  • автор:

Как построить АЧХ цифрового фильтра выполненного на ПЛИС

Программирование конфигурационной ПЗУ EPCS

Построить АЧХ цифрового фильтра несложно если использовать Matlab. Но как построить АЧХ цифрового фильтра, который находится в реальном железе, например в ПЛИС? Можно например приладить к ПЛИС АЦП и ЦАП, подавать на вход нужную частоту, пошагово изменяя ее регистрировать средний положительный уровень сигнала на выходе ЦАП и по точкам строить кривую. На мой взгляд все это достаточно муторно. Ведь вполне можно обойтись и без АЦП и ЦАП если использовать цифровой формирователь гармонического сигнала на базе фазового накопителя. В ПЛИС фирмы Altera это компонент NCO.

Как все можно сделать? Один из возможных вариантов — подавать на цифровой вход цифрового фильтра выход данных NCO пошагово меняя его выходную частоту за счет коэффициента инкремента фазы (Phase Increment Value). А результаты свертки по выборкам передавать на компьютер по любому возможному интерфейсу rs232, USB или даже Ethernet. Задача персонального компьютера — принять заданное количество данных через заданный конкретный промежуток времени (например 0.5. 5 сек), вычислить среднее положительное значение и отобразить его в относительных величинах на графике.

Для того, чтобы опробовать на практике задуманное можно воспользоваться отладочной платой от Terasic типа DE0Nano. Для обмена данными между ПЛИС и персональным компьютером вполне подойдет интерфейс Ethernet выполненный на базе процессора Nios II. Далее все как описано выше. Компьтер с помощью небольшой тестовой программы созданной на C++Builder посылает по интерфейсу Ethernet на модуль DE0Nano, в котором скофигурирован цифровой фильтр и модуль NCO, короткий пакет в котором в одном из байтов указан номер посылки. Программа Nios анализирует посланный пакет и отправляет в свою очередь на модуль NCO 32_х битный код частоты, которую он должен сформировать для подачи на фильтр. Одновременно с этим производится запуск фильтра с передачей результатов оцифровки с помощью SG-DMA в SDRAM подключенную к процессору Nios II. При заполнениии нужного количества памяти результатами выборок, обычно 1000. 3000 производится останов оцифровки и передача результатов работы фильтра на персональный копьютер по тому же интерфейсу Ethernet.

Теперь тестовая программа производит простейшую обработку принятых данных осредняя их положительные значения и выводит точку на график. Далее все повторяется, только со сменой на один шаг частоты формируемой модулем NCO, например на 1кГц. Таким образом через выбранное количество шагов на экране компа будет нарисована амплитудно частотная характеристика цифрового фильтра. Для наглядности картинка ниже по тексту. На ней показана АЧХ полосового фильтра (децимирование на 5) с центральной частотой 450кГц и полосой 430. 470кГц.

При большем количестве выборок картинка будет выглядеть почти идеально. Конечно желательно такую систему сделать универсальной для любого типа ПЛИС. Для этого можно поступить следующим образом: Интерфейс поменять на UART, модуль NCO выполнить в виде открытого проекта на VHDL (VERILOG), данные оцифровки заносить в обычную двухпортовую память, которая синтезируется практически в любой современной ПЛИС_ине. Качели с пуском фильтра и выдачей на комп данных остаются прежними. Это позволит создать проект встраиваемый практически в любую ПЛИС с помощью которого можно на базе реального железа быстро без шума и пыли просмотреть АЧХ любого цифрового фильтра. Ну а комповую прогу нужно будет выполнить с возможностью настройки под любые возможные варианты фильтров и частот. У кого какие предложения и замечания просьба пройти по ссылке для добавления комментов.

Как построить ачх в матлабе

Хотел бы я начать с Matlab’ а. Многие делают свои курсовики в Mathcad’ е, хотя по возможностям, а тем более по частотному анализу(в том числе построение графиков АЧХ, ФЧХ, АФХ) Matlab и проще и предпочтительнее . Сейчас вы сами убедитесь почему.

Итак, прежде всего вам необходимо открыть Matlab версии 6.5 или выше и задать в рабочем поле свою передаточную функцию. Вот пример:

Теперь, немного объясню. Переменные num и dem это вектор коэффициентов числителя и знаменателя соответственно заданной ПФ. Порядок написания коэффициентов идет в порядке убывания степени s. Строчка h=tf(num,dem) создает передаточную функцию h с числителем num и знаменателем dem . Дальше всё просто!

1.Построение АЧХ и ФЧХ — функция freqs(num,dem)
Набрав её в рабочем поле вы увидите примерно следующее:

Останется только отредактировать вид осей! Кстати, по умолчанию Matlab делает формат осей логарифмическим, не забудьте сменить его на линейный в настройках осей(Axes propeties)

Основы ЦОС: 22. АЧХ и ФЧХ

В данном видео рассказывается об амплитудно-частотной характеристике и фазо-частотной характеристике линейной стационарной системы, или фильтра. В видео визуально поясняется зависимость АЧХ системы от её передаточной функции, а также демонстрируется полный анализ фильтра в MATLAB определением большинства характеристик.

Ссылки на скачивание скриптов;

IP-ядра для ПЛИС и СнК от отечественного разработчика
Новые онлайн курсы ЦИТМ «Экспонента»

Сборник материалов VI всероссийской научно-практической конференции «Технологии разработки и отладки сложных технических систем»

Внимание! Изменение формата конференции “Технологии разработки и отладки сложных технических систем” на online

Построение АЧХ

Author24 — интернет-сервис помощи студентам

Здравствуйте! возник вопрос: при построении графика АЧХ функцией freqz(b,а) в каких единицах на графике выводится частота?можно ли без дополнительного численного задания частоты дискретизации сделать, чтобы график выводился в нормализованных частотах?т.е. от 0 до 1? если да, то как?Спасибо!

Добавлено через 15 минут
Как построить от 0 до 1 вопрос решился. Если кто может, объясните первую часть вопроса: в каких единицах измеряется частота при построении
H=freqz(b,a);
plot(abs(H))?
Спасибо

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Построение АЧХ и ФЧХ
Здраствуйте.. помогите пожалуйста с кодом.. пишет ошибку "Index exceeds matrix dimensions." но я не.

Построение АЧХ и ФЧХ сигнала
Здравствуйте! У меня есть следующий код: handle = fvtool(h); set(handle,’Analysis’,’freq’).

Построение АЧХ вейвлета в matlab-найти оптимальный вейвлет
Здравствуйте ! Кто знает, как построить АЧХ вейвлета именно в матлабе и что лучше брать за пример.

АЧХ (ТАУ)
Не знаком с matlab , если нетрудно напишите программу , для построения ачх. До этого темы смотрел.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *