Какие функции реализуют операторы freqs feedback
Перейти к содержимому

Какие функции реализуют операторы freqs feedback

  • автор:

freqs

h = freqs( b , a , w ) возвращает комплексную частотную характеристику аналогового фильтра, заданного векторами коэффициентов b и a , оцененный на угловых частотах w .

[ h , wout ] = freqs( b , a , n ) использование n частота указывает, чтобы вычислить h и возвращает соответствующие угловые частоты в wout .

freqs( ___ ) без выходных аргументов строит величину и фазовые отклики как функции угловой частоты в окне текущей фигуры. Можно использовать этот синтаксис с любым из предыдущих входных синтаксисов.

Примеры

Частотная характеристика от передаточной функции

Найдите и изобразите частотную характеристику в виде графика передаточной функции

H ( s ) = 0 . 2 s 2 + 0 . 3 s + 1 s 2 + 0 . 4 s + 1 .

a = [1 0.4 1]; b = [0.2 0.3 1]; w = logspace(-1,1); h = freqs(b,a,w); mag = abs(h); phase = angle(h); phasedeg = phase*180/pi; subplot(2,1,1) loglog(w,mag) grid on xlabel('Frequency (rad/s)') ylabel('Magnitude') subplot(2,1,2) semilogx(w,phasedeg) grid on xlabel('Frequency (rad/s)') ylabel('Phase (degrees)')

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

Можно также сгенерировать графики путем вызова freqs без выходных аргументов.

figure freqs(b,a,w)

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

Частотная характеристика аналога Lowpass фильтр Бесселя

Спроектируйте аналог 5-го порядка lowpass фильтр Бесселя с приблизительно постоянной групповой задержкой до 1 0 4 рад/с. Постройте частотную характеристику фильтра с помощью freqs .

[b,a] = besself(5,10000); % Bessel analog filter design freqs(b,a) % Plot frequency response

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

Входные параметры

b A — Коэффициенты передаточной функции
векторы

Коэффициенты передаточной функции в виде векторов.

Пример: [b,a] = butter(5,50,’s’) задает пятый порядок Фильтр Баттерворта с частотой среза 50 рад/секунда.

Типы данных: single | double

w — Угловые частоты
положительный вектор действительных чисел

Угловые частоты в виде положительного вектора действительных чисел описываются в рад/секунда.

Пример: 2*pi*logspace(6,9) задает 50 логарифмически расположенных с интервалами угловых частот от 1 МГц ( 2π × 10 6 рад/секунда) и 1 ГГц ( 2π × 10 9 рад/секунда).

Типы данных: single | double

n — Количество точек оценки
200 (значений по умолчанию) | положительный целочисленный скаляр

Количество оценки указывает в виде положительного целочисленного скаляра.

Типы данных: single | double

Выходные аргументы

h — Частотная характеристика
вектор

Частотная характеристика, возвращенная как вектор.

wout — Угловые частоты
вектор

Угловые частоты, в который h вычислен, возвращен как вектор.

Алгоритмы

freqs возвращает комплексную частотную характеристику аналогового фильтра, заданного b и a . Функция оценивает отношение полиномов Преобразования Лапласа

H ( s ) = B ( s ) A ( s ) = b ( 1 ) s n + b ( 2 ) s n − 1 + ⋯ + b ( n + 1 ) a ( 1 ) s m + a ( 2 ) s m − 1 + ⋯ + a ( m + 1 )

вдоль мнимой оси на частоте указывает s = :

s = 1j*w; h = polyval(b,s)./polyval(a,s);

Смотрите также

Представлено до R2006a

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация Signal Processing Toolbox

  • Примеры
  • Функции и другая ссылка
  • Информация о релизах
  • PDF-документация

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

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

Разработка лабораторных практикумов по обработке сигналов на основе компьютерного моделирования Текст научной статьи по специальности «Компьютерные и информационные науки»

ЭЛЕКТРОННЫЕ ОБРАЗОВАТЕЛЬНЫЕ РЕСУРСЫ / ЛАБОРАТОРНЫЕ ПРАКТИКУМЫ / ОБРАБОТКА СИГНАЛОВ / КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ / СРЕДЫ РАЗРАБОТКИ / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / СРЕДА ГРАФИЧЕСКОГО ПРОГРАММИРОВАНИЯ LABVIEW / ELECTRONIC EDUCATIONAL RESOURCES / LABORATORY PRACTICAL WORKS / SIGNAL PROCESSING / COMPUTER MODELING / DEVELOPMENT OF SOFTWARE / GRAPHIC PROGRAMMING ENVIRONMENT LABVIEW

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бессонов А. С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Бессонов А. С.

Лабораторная установка для учебного курса «Цифровая обработка сигналов»

Сетевой учебно-исследовательский Центр коллективного пользования уникальным лабораторным оборудованием на базе веб-портала как элемент системы дистанционного образования

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

Новые технологии вычислительной техники в учебных планах кафедры информационных и управляющих систем СПбГПУ

Комплексный лабораторный практикум по электротехнике и электронике с использованием «Миниатюрной электротехнической лаборатории мэл-2», компьютерного моделирования, Mathcad и LabVIEW

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The features of the signal processing laboratory practical works created on the basis of computer modeling are considered. The brief review of existing approaches is given. The importance of the stage of the development environment choice is specified.The advantages of graphic programming environment LabVIEW are described. The software structure of a laboratory work on processing signals is offered.

Текст научной работы на тему «Разработка лабораторных практикумов по обработке сигналов на основе компьютерного моделирования»

УДК.004.94 ББК 32.973-018

РАЗРАБОТКА ЛАБОРАТОРНЫХ ПРАКТИКУМОВ ПО ОБРАБОТКЕ СИГНАЛОВ НА ОСНОВЕ КОМПЬЮТЕРНОГО

А.С. Бессонов, к.т.н., доц., доц. каф. Информационных систем Тел.: (495)434-94-45, E-mail: didugan4@mail.ru Московский государственный институт радиотехники, электроники и автоматики (технический университет) http:// www.mirea.ru

The features of the signal processing laboratory practical works created on the basis of computer modeling are considered. The brief review of existing approaches is given. The importance of the stage of the development environment choice is specified.The advantages of graphic programming environment LabVIEW are described. The software structure of a laboratory work on processing signals is offered.

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

Ключевые слова: электронные образовательные ресурсы, лабораторные практикумы, обработка сигналов, компьютерное моделирование, среды разработки, программное обеспечение, среда графического программирования LabVIEW.

Keywords: electronic educational resources, laboratory practical works, signal processing, computer modeling, development of software, graphic programming environment LabVIEW

В последнее время происходят повсеместное внедрение новейших достижений информационных технологий в образовательный процесс и создание разнообразных электронных образовательных ресурсов (ЭОР), необходимость которых стала очевидной не только при дистанционной, но и при обычной очной форме обучения. В ряде вузов проводятся работы по разработке ЭОР, устанавливаются вычислительная техника, сетевое оборудование и уникальные лабораторные установки, создается специальное программное обеспечение (ПО).

Между тем развивается и другое направление, не требующее вложений значительных средств. К нему можно отнести такие простые ЭОР, как интерактивные курсы лекций и лабораторные практикумы, построенные на основе компьютерного моделирования объектов исследования, явлений

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

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

В предлагаемой статье анализируются подходы к созданию ЭОР указанного класса. Важными вопросами при этом являются выбор средств разработки программного

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

На основе определенных подходов могут создаваться комплексы ЭОР для конкретной специализации того или иного направления обучения.

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

1. Обзор курсов по обработке сигналов

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

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

1. Теоретические курсы. Примером может служить курс с названием «Теоретические основы цифровой обработки сигналов».

2. Курсы, связанные с разработкой программного обеспечения для решения задач обработки сигналов. К этой группе также относятся разработка программного обеспечения для микропроцессорных и микроконтроллерных устройств и систем, занимающихся цифровой обработкой сигналов.

3. Курсы, посвященные теоретическим аспектам построения устройств и систем обработки сигналов и автоматического управ-

4. Курсы, посвященные в большей мере практике использования устройств и систем обработки сигналов и управления.

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

Начальный этап проектирования ЭОР обязательно должен включать в себя определение направленности соответствующего курса и поставленных в нем основных и дополнительных целей и задач. Затем разработчик должен решить, какая из доступных сред разработки ПО наилучшим образом подходит для данного случая.

2. Среды разработки программного обеспечения

Для создания компьютерных практикумов имеется богатый выбор сред разработки ПО:

— математические среды обработки данных;

— среды программирования универсального назначения;

— среды графического программирования;

— среды графического моделирования систем.

В России из математических сред наиболее широкое распространение получили MATLAB фирмы MathWorks, Inc., MathCAD фирмы Mathsoft Engineering & Education, Inc. и Maple фирмы Waterloo Maple, Inc. Среды программирования универсального назначения представлены, прежде всего, продуктами фирм Microsoft и Borland, основанными на использовании алгоритмических языков С++ и Pascal — Visual С++, C+ + Builder, Delphi и др. Среди сред графического моделирования первенство держит SIMULINK фирмы MathWorks, Inc., а среди сред графического программирования и моделирования — LabVIEW компании National Instruments.

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

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

3. Особенности разработки моделей с помощью математических сред обработки данных

Разработка программного обеспечения практикума по обработке сигналов на основе той или иной математической среды обработки данных характерна для курсов, имеющих теоретическую направленность. Здесь на первый план выходит изучение математических методов и алгоритмов. Задачи моделирования входных сигналов и отображения результатов измерений решаются достаточно просто. Сам процесс обработки поддержан библиотеками многочисленных функций обработки данных.

Эти преимущества были отмечены многими авторами, после чего были созданы компьютеризированные курсы и практикумы по обработке сигналов. Среди них хочется выделить известные книги [1, 2] и электронное учебное пособие [3], созданное целиком в среде МаШСАБ.

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

Сравним реализации простого примера синтеза фильтра Баттерворта нижних частот и определения амплитудно-частотной (АЧХ), фазо-частотной (ФЧХ) и импульсной характеристик в средах MATLAB и MathCAD.

Работа в среде MATLAB основана на применении специального языка, значительно отличающегося от естественного математического языка, и вызове необходимых функций, состав которых необходимо знать и понимать. Для нашего примера текст программы, строящей АЧХ и ФЧХ фильтра пятого порядка, будет следующим: [z,p,k]=buttap(5); w=0:0.01:5; [b,a]=zp2tf(z,p,k) h=freqs(b,a,w); figure

plot(w,unwrap(angle(h))),grid. Для построения импульсной характеристики также используется специальная функция MATLAB — impz(b,a,Wn).

Из текста программы видно, что для достижения результатов (рис. 1) студенту нужно знать язык программирования и функции, предназначенные для синтеза фильтров Баттерворта. В то же время в явном виде математические операции обработки данных скрыты от пользователя и не отображаются, что может отрицательно сказаться на учебном процессе.

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

Рис. 1. Амплитудно-частотная (а) и фазо-частотная (б) характеристики фильтра Баттерворта нижних частот пятого порядка, полученные в МЛТЬЛБ

На рис. 2 можно видеть практически без 1

изменений формулу АЧХ фильтра Баттерворта порядка п

и формулу дискретизированной действительной части импульсной характеристики фильтра [2, с. 187]

И = 41Б(/) • 008(2-л-/• Т)#.

Такая модель лучше читается и понимается в учебном процессе, имеет преимущества и в ряде случаев становится более предпочтительной.

Однако наличие иных критериев в выборе среды разработки может заставить оказать предпочтение МЛТЬЛБ. Приведем две возможные причины:

— одной из целей курса является изучение и получение навыков работы в среде МЛТЬЛБ;

— образовательные учреждения, где планируется внедрение практикума, имеет лицензию на использование МЛТЬЛБ.

Эти причины могут повлиять на окончательный выбор сред разработки ЭОР, рассмотренных в последующих разделах.

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

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

А( f) ■ cos ( 0(f)) ,-30

3. Особенности разработки моделей с помощью универсальных сред визуального и графического программирования

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

Существуют курсы, в которых используется обучение основам обработки сигналов с применением компьютерных программ, написанных на известных алгоритмических языках [4]. Для работы с этими программами используются среды программирования универсального назначения. Их существенным недостатком является трудности при формировании (только при помощи базовых средств) интерфейса пользователя, в том числе предназначенного для графического отображения данных. Хорошим решением является привлечение дополнительных средств — библиотек классов или программных компонентов. Прекрасным средством, значительно расширяющим возможности визуальных сред MS Visual C++, Borland C++ Builder, являются библиотеки Measurement Studio компании National Instruments [5].

fa := 40 j : /Т x(f) := — k:=0..100

Рис. 2. Моделирование фильтра Баттерворта пятого порядка в MathCAD

Автор настоящей статьи, ведя занятия по разработке программного обеспечения виртуальных приборов (в рамках курса «Виртуальные средства измерений»), широ-

ко использует готовые функции обработки сигналов среды графического программирования Lab VIEW. На занятиях студенты самостоятельно создают LabVIEW-модели

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

Пример, моделирование которого в математических средах рассматривалось выше, в LabVIEW реализуется в виде передней панели и блок-диаграммы (рис. 3).

Как видно из рисунка, создание Lab-VIEW-моделей обработки сигналов не является совсем простым делом, требует знаний основ программирования и окупается в случае необходимости изучения основ программирования в данной среде. В качестве дополнительного примера здесь можно рассмотреть учебное пособие по цифровой обработке сигналов [6]. Оно предназначено для студентов, хорошо знающих LabVIEW, или применимо в случае, когда обработка сигналов и обучение программированию происходят одновременно.

В случае, когда основной целью дисциплины является моделирование сложных систем, при разработке следует пользоваться другими средами разработки. Однако появившийся с недавнего времени (начиная с версии 8.0) в составе LabVIEW модуль Control De-sign&Simulation Module позволяет успешно проводить такое программирование и изучать системы обработки сигналов и управления на уровне их функциональных схем ничуть не хуже, чем в специальных средах графического моделирования систем.

4. Особенности разработки моделей с помощью сред графического моделирования систем

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

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

Появление в составе LabVIEW средств Control Design&Simulation Module позволило использовать эту мощнейшую систему в режиме создания графических моделей. Графическое моделирование устройств и систем в LabVIEW и SIMULINK в этой части стали очень похожи (сравните рис. 4а и рис. 5а), но в распоряжении разработчика в LabVIEW имеются более развитые средства интерфейса пользователя, средства программирования и создания исполняемъх приложений и др., которых просто нет в средах MATLAB-SIMULINK. В результате появилась возможность создания разнообразнейших LabVIEW-ЭОР в виде отдельных программных продуктов, не требующих для использования среды разработки, а также легко тиражируемых и распространяемых.

5. LabVIEW- модели систем

Среда графического программирования LabVIEW удобна для создания моделей сложных устройств и систем обработки сигналов в виде «черного ящика», на основе которых можно проводить их исследование в целях определения характеристик, изучать особенности функционирования и разбираться в решаемых системой задачах.

Такая модель представляет собой своего рода учебный тренажер, который предоставляет возможности оперативно изменять входные сигналы, менять настройки и режимы работы (параметры модели) и изучать сигналы на выходе (результаты моделирования). Входные воздействия и условия для моделирования могут браться из файлов, сформированных заранее. Все сигналы, настройки, параметры и т.п. могут отображаться на разнообразнейших экранах и индикаторах в графическом и цифровом видах.

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

В качестве примера LabVIEW-модели на рис. 6 приведен вид передней панели модели, предназначенной для изучения функционирования системы согласованной фильтрации при решении задач распознавания сигналов.

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

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

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 3 Моделирование фильтра Баттерворта пятого порядка в среде Lab VIEW: а) передняя панель; б) блок-диаграмма

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

Рассмотренные выше подходы использовались при создании лабораторного практикума на основе компьютерного моделирования для курса «Преобразование измерительных сигналов». Его основными целями и задачами явились изучение математических основ и алгоритмов обработки измерительных сигналов. Вопросы программирования и изучения устройств и систем, реализующих указанные алгоритмы, в данный курс не вошли, но для лучшего понимания материала на системном уровне было решено использовать в составе лабораторных работ LabVIEW-moдели.

Рис. 4. Модель системы — фильтра Баттерворта

низких частот — в среде БЕУГОЬШК: а) — блок-схема; б) — результаты моделирования

Рис. 5. Блок диаграмма Lab VIEW:

а) кадр последовательной структуры,

содержащий функции модуля Control Design&Simulation Module;

б) кадр последовательной структуры содержащий базовые функции Lab VIEW

MATLAB 8.0 (R2012b): создание, обработка и фильтрация сигналов, Signal Processing Toolbox

Гамма НПФ сентябрь 23 контраткное производство F1

Новая матричная система компьютерной математики MATLAB 8.0 (R2012b) хорошо приспособлена для решения фундаментальных и прикладных задач создания и обработки сигналов. В этой статье впервые в отечественной литературе описаны возможности работы с сигналами как в среде самой системы MATLAB 8.0, так и с помощью Signal Processing Toolbox и нового пакета расширения этой системы — Simulink 8.0, реализующего блочное визуально-ориентированное имитационное моделирование. Автор благодарит корпорацию The MathWork [1] за предоставленную систему MATLAB 8.0 + Simulink 8.0, использованную для подготовки этой серии статей.

Введение

Окно справки по пакету расширения Signal Processing Toolbox системы MATLAB 8.0 представлено на рис. 1 на фоне рабочего окна самой системы с открытой вкладкой каталога пакетов расширения APPS. Одна из кнопок в панели инструментов Signal Analysis дает доступ к браузеру сигналов, фильтров и спектров, показанному в правой части окна справки. В левой части этого окна указаны наименования разделов пакета Signal Processing Toolbox.

Окно справки по пакету расширения Signal Processing Toolbox

Рис. 1. Окно справки по пакету расширения Signal Processing Toolbox

Как видно на рис. 1, пакет Signal Processing Toolbox состоит из следующих разделов:

  • Waveforms — создание сигналов с различной формой и разными законами модуляции;
  • Convolution and Correlation — свертка и корреляция сигналов ;
  • Transform — преобразование сигналов ;
  • Analog and Digital Filters — аналоговые и цифровые фильтры ;
  • Spectral Analysis — спектральный анализ.

Создание сигналов

Многие сигналы представлены как функции времени s(t), параметры которой можно изменять с помощью модуляции того или иного вида. Модуляцией называют процесс изменения какого-либо параметра (амплитуды, частоты, фазы и т. д.) по определенному закону, в результате чего сигнал становится переносчиком информации.

MATLAB 8.0 со своими встроенными средствами позволяет создавать множество сигналов. Например, простейшим является синусоидальный сигнал:

s = A sin(2π ft +j),

где A — амплитуда; f — частота; j — фаза сигнала. Задав эти параметры ( t — как вектор отсчетов сигнала, число элементов которого определяет число отсчетов сигнала):

>> t = 1:0.01:10; A=1; f=1; phi=0; >> s=A*sin(2*pi*f*t+phi);

можно легко построить график сигнала s ( t ):

>> plot(t, s)

Он показан на рис. 2 в графическом окне системы MATLAB. Такое построение осуществляется в командной строке, на что указывает приглашение к вводу >>. В командном окне также показано окно с краткими данными о системе MATLAB 8.0 (R2012b). Согласно этим данным система выпущена на рынок в 2012 году.

Окно командного режима

Рис. 2. Окно командного режима

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

Окно с подокнами меандра, апериодического треугольного импульса, пилообразного периодического импульса и периодического треугольного импульса

Рис. 3. Окно с подокнами меандра, апериодического треугольного импульса, пилообразного периодического импульса и периодического треугольного импульса

Представленная программа (она задается в редакторе) дает примеры создания и графической визуализации четырех типов простых сигналов (меандра, одиночного треугольного импульса, пилообразного импульса и симметричного треугольного импульса) (рис. 3):

subplot(2,2,1); t=0:0.01*pi:5*pi; plot(t, square(t,20)) xlabel(‘Время( с)’);ylabel(‘Уровень’); title(‘Square’) subplot(2,2,2);t=–10:0.1:10; plot(t, tripuls(t,5,0.5)) xlabel(‘Время( с)’);ylabel(‘Уровень’); title(‘Tripuls’) subplot(2,2,3);t=0:0.01:20; plot(t, sawtooth(t,1)) xlabel(‘Время( с)’);ylabel(‘Уровень’); tit(t,1’) subplot(2,2,4);t=0:0.01:20; plot(t, sawtooth(t,1/2)) xlabel(‘Время( с)’);ylabel(‘Уровень’); title(‘Sawtooth(t,1/2’) Следующая программа создает четыре непрерывных сигнала, относящихся к функциям Гаусса (рис. 4): subplot(2,2,1); tc = gauspuls(‘cutoff’,50e3,0.6,[],–40); t = –tc : 1e–6 : tc; yi = gauspuls(t,50e3,0.6); plot(t,yi) xlabel(‘Время( с)’);ylabel(‘Уровень’); title(‘Gauspuls’) subplot(2,2,2); fc = 2E9; fs=100E9; tc = gmonopuls(‘cutoff’,fc); t = –2*tc : 1/fs : 2*tc; y = gmonopuls(t,fc); plot(t,y) xlabel(‘Время( с)’);ylabel(‘Уровень’); title(‘Gmonopuls’) subplot(2,2,3); fc = 2E9; fs=100E9; D = [2.5 10 17.5]’ * 1e–9; tc = gmonopuls(‘cutoff’,fc); t = 0:1/fs:160*tc; yp = pulstran(t,D,@gmonopuls,fc); plot(t,yp): xlabel(‘Время( с)’);ylabel(‘Уровень’); title(‘Pulstrain@gmonopuls’) subplot(2,2,4); x = linspace(0,4*pi,300); plot(x,diric(x,4)); axis tight; hold on plot(x,diric(x,8)); axis tight; hold off xlabel(‘Время( с)’);ylabel(‘Уровень’); title(‘2 Diric’) t = (1:10)’; x = randn(size(t)); ts = linspace(–5,15,600)’; y = sinc(ts(:,ones(size(t))) – t(:,ones(size(ts)))’)*x; plot(t,x,’o’,ts,y)

Временные диаграммы четырех сигналов, относящихся к функциям Гаусса

Рис. 4. Временные диаграммы четырех сигналов, относящихся к функциям Гаусса

Важное значение имеет функция sinc (или sin(π t )/π t при t ≠ 0 и 1 при t = 0). Функция sinc( t ) представляет обратное преобразование Фурье для прямоугольного импульса с высотой 1 и шириной 2π:

Кроме того, эту функцию можно использовать как базисную для восстановления любого сигнала g ( t ) по его отсчетам, если спектр сигнала ограничен условием –p < w < p:

Получение непрерывной кривой, проходящей через точки (отсчеты) произвольного сигнала

Рис. 5. Получение непрерывной кривой, проходящей через точки (отсчеты) произвольного сигнала

Это положение, вытекающее из известной теоремы Котельникова, иллюстрирует приведенный ниже пример для десяти случайных точек сигнала (рис. 5):

t = (1:10)’; x = randn(size(t)); ts = linspace(–5,15,600)’; y = sinc(ts(:,ones(size(t))) – t(:,ones(size(ts)))’)*x; plot(t,x,’o’,ts,y)

Подобный метод восстановления аналогового сигнала из его цифровых отсчетов ныне применяется во всех цифровых осциллографах.

Сложные модулированные сигналы

Рис. 6. Сложные модулированные сигналы

Сложные модулированные сигналы показаны на рис. 6, здесь chirp — период частотно-модулированного сигнала, sawtooth — сигнал с частотной модуляцией по треугольному закону, pulstrain — скачок с линейным спадом, pulstran gauspuls — последовательность импульсов Гаусса с убывающей амплитудой. Для создания этих четырех модулированных сигналов служит программа:

subplot(2,2,1); t = 0:0.001:0.4; y = chirp(t,0,1,250); plot(t,y) xlabel(‘Время( с)’);ylabel(‘Уровень’); title(‘Chirp’) subplot(2,2,2); fs = 100; t = 0:1/fs:2; y = vco(sawtooth(2*pi*t,0.75),[0.1 0.4]*fs,fs);plot(t,y); xlabel(‘Время (с)’);ylabel(‘Уровень’); title(‘Sawtooth’) subplot(2,2,3); t = 0 : 1/1e3 : 1; d = 0 : 1/3 : 1; y = pulstran(t,d,‘tripuls’,0.1,–1); plot(t,y) xlabel(‘Время (c)’);ylabel(‘Уровень’); title(‘Pulstrain’) subplot(2,2,4); t = 0 : 1/50E3 : 10e–3; d = [0 : 1/1E3 : 10e–3 ; 0.8.^(0:10)]’; y = pulstran(t,d,‘gauspuls’,10e3,0.5); plot(t,y); xlabel(‘Время (с)’);ylabel(‘Уровень’); title(‘Pulstrain (gauspuls)’)
y = chirp(t,f0,t1,f1,[ ‘method’,phi])

формирует выборку (дискретные значения) косинусоидального сигнала с частотой от f 0 в начальный момент времени t до f 1 в конечный момент времени t 1. Звук такого сигнала напоминает визг, откуда и его название (chirp). По умолчанию t = 0, f 0 = 0 и f 1 = 100. Необязательный параметр phi (по умолчанию 0) задает начальную фазу сигнала. Другой необязательный параметр — method — задает закон изменения частоты: linear — линейный закон (по умолчанию), quadratic — квадратичный и logarithmic — логарифмический.

Функция strips позволяет детально (по частям с длительностью 0,25 с) рассмотреть первые два сложных сигнала, например частотно-модулированного от функции vco. В разделе модуляция/демодуляция есть пример с GUI (рис. 7), иллюстрирующий такие сигналы с различными видами модуляции.

Визуализация модулированных сигналов

Рис. 7. Визуализация модулированных сигналов

Свертка и корреляция сигналов

Пусть имеется две последовательности, представленные векторами a и b . Сверткой называют одномерный массив, вычисляемый следующим образом:

При записи этого выражения учтено, что нумерация индексов массивов в MATLAB идет с единицы (1). Свертка реализуется функцией conv(a,b):

a = [2 4 6]; b = [3 5 7]; c = conv(a,b) c = 6 22 52 58 42

Операцию свертки часто используют для вычисления сигнала на выходе линейной системы y по сигналу на входе x при известной импульсной характеристике системы h :

Эту операцию можно использовать для осуществления простейшей фильтрации сигнала:

x = randn(5,1); % Создание вектора из пяти случайных чисел h = [1 1 1 1]/4; % Усредняющий фильтр с длиной 4 y = conv(h,x) % Результат свертки (фильтрации) y = 0.2977 0.5950 0.5856 0.6674 0.4134 0.1161 0.1255 0.0437

Для двух векторов x и y с длиной m и n определена операция свертки:

Линейная и циклическая свертка

Рис. 8. Линейная и циклическая свертка

Обратная свертке функция — это [q,r] = deconv(z,x). Она фактически определяет импульсную характеристику фильтра (рис. 8):

x = [2 1 2 1]; y = [1 2 3]; clin = conv(x,y); xpad = [x zeros(1,6–length(x))]; ypad = [y zeros(1,6–length(y))]; ccirc = ifft(fft(xpad).*fft(ypad)); subplot(211); stem(clin,‘markerfacecolor’,[0 0 1]); title(‘Linear Convolution of x and y’); set(gca,‘ylim’,[0 11]); subplot(212) stem(ccirc,‘markerfacecolor’,[0 0 1]); set(gca,‘ylim’,[0 11]); title(‘Circular Convolution of xpad and ypad’);

Очистка от шума линейно-нарастающего сигнала

Рис. 9. Очистка от шума линейно-нарастающего сигнала

Свертку часто применяют для очистки сигналов от шума (рис. 9):

x = –4:0.01:4; rng default; y = x+randn(size(x)); coeffs = polyfit(x,y,1); yfit = coeffs(2)+coeffs(1)*x; plot(x,y); hold on; plot(x,yfit,‘r’,‘linewidth’,2);hold off

Для двумерных массивов также существует функция свертки: Z = conv2(X,Y) и Z = conv2(X,Y,‘option’). Возможна и многомерная свертка — функция convn. Новая функция mscohere строит график зависимости квадрата модуля функции когерентности от частоты (рис. 10):

randn(‘state’,0); h = fir1(30,0.2,boxcar(31)); h1 = ones(1,10)/sqrt(10); r = randn(16384,1); x = filter(h1,1,r); y = filter(h,1,x); mscohere(x,y,512,[],[],256)

Зависимость квадрата модуля функции когерентности от частоты

Рис. 10. Зависимость квадрата модуля функции когерентности от частоты

Следующая программа строит отсчеты двух сигналов с задержкой на три отсчета — треугольного сигнала и шума (рис. 11):

rng default; x = triang(20); y = [zeros(3,1); x]+0.3*randn(length(x)+3,1); subplot(211);stem(x,‘markerfacecolor’,[0 0 1]);axis([0 22 –1 2]); subplot(212);stem(y,‘markerfacecolor’,[0 0 1]);axis([0 22 –1 2]);

Два коррелированных сигнала — треугольный и шума

Рис. 11. Два коррелированных сигнала — треугольный и шума

Кросс-корреляцию этих сигналов обеспечивает программа (рис. 12):

[xc,lags] = xcorr(y,x); [~,I] = max(abs(xc)); figure; stem(lags,xc,‘markerfacecolor’,[0 0 1]);

Кросс-корреляция сигналов

Рис. 12. Кросс-корреляция сигналов

Преобразование сигналов

В MATLAB всегда много внимания уделялось различным преобразованиям сигнала [2–5], в частности спектральным. Спектр дискретного сигнала является периодическим, и прямое дискретное преобразование Фурье (ДПФ или Discrete Fourier Transform, DFT) определяется выражением:

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

ДПФ легко обеспечивает восстановление непрерывных периодических сигналов с ограниченным спектром. Для этого нужно номер отсчета k поменять на нормированное время t / T . Тогда формула восстановления при четном числе отсчетов будет иметь вид:

Для получения полосы частот сигнала от 0 до π/ T приходится смещать нумерацию отсчетов. При нечетном числе отсчетов суммирование ведется при n , меняющемся от –( N –1)/2 до ( N –1)/2. Коэффициенты X ·( n ) с отрицательными номерами вычисляют из соотношения симметрии.

Частотным спектром случайного процесса является преобразование Фурье от корреляционной функции случайного процесса Rx :

В радиоэлектронике особый интерес представляет спектральная оценка сильно зашумленных сигналов. Для таких сигналов применяются два подхода: непараметрический — использующий только информацию, извлеченную из сигнала (реализован в методах периодограмм и Уэлча), и параметрический — предполагающий наличие некоторой статистической модели сигналов, параметры которой подлежат определению. Реализовано восемь классов алгоритмовспектрального анализа : Periodogram, Welch, MTM (Thomson multitaper method), Burg, Covariance, Modified Covariance, Yule-Walker, MUSIC (Multiple Signal Classification) и Eigenvector. Их подробное описание дано в [4–6].

Периодограммы, спектрограммы и их применение

Обычный спектр строится методом быстрого преобразования Фурье (БПФ, FFT) часто с применением временного окна, предотвращающего разрывы сигнала на концах интервала анализа спектра. Например, так реализованы периодограммы. Для построения спектрограмм используется разбивка интервала анализа на короткие окна. Короткое окно пробегает общий интервал анализа, и в каждом частичном интервале строится свой спектр. Их наложение дает спектрограмму, определенную в пространстве «уровень – частота – время» (на плоскости уровень представляется цветом), тогда как обычный спектр определен в плоскости «уровень – частота».

Построение спектрограмм сигналов, модулированных по различным законам: логарифмическому, линейному, треугольному и синусоидальному

Рис. 13. Построение спектрограмм сигналов, модулированных по различным законам: логарифмическому, линейному, треугольному и синусоидальному

На рис. 13 показано построение четырех спектрограмм для сигналов с различными законами частотной модуляции. Нетрудно увидеть, что во всех случаях закон модуляции отчетливо распознается и позволяет судить об области частот, в которой действует сигнал (chirp или vco). Этот рисунок строит следующая программа:

subplot(2,2,1); t = 0.5:0.001:2; y = chirp(log(t),0,1,500); spectrogram(y,256,250,256,1E3,‘yaxis’) subplot(2,2,2); t = –2:0.001:0; y = chirp(t,0,1,250); spectrogram(y,256,250,256,1E3,‘yaxis’) subplot(2,2,3);fs = 10000; t = 0:1/fs:2; x = vco(sawtooth(2*pi*t,0.75),[0.1 0.4]*fs,fs); spectrogram(x,kaiser(256,5),220,512,fs,‘yaxis’) subplot(2,2,4);fs = 10000; t = 0:1/fs:2; x = vco(sin(2*pi*(fs/5000)*t),[0.1 0.4]*fs,fs); spectrogram(x,kaiser(256,5),220,512,fs,‘yaxis’)

Сравнение периодограммы и спектрограммы сигнала sinc(t)

Рис. 14. Сравнение периодограммы и спектрограммы сигнала sinc(t)

Из сказанного может сложиться неверное представление о явных преимуществах спектрограмм по сравнению с периодограммами (функция psd). То, что это далеко не так, показывает программа для сигнала sinc (рис. 14):

Fs = 10000; t = 0:0.1/Fs:0.0001; x = sinc(t); Hs=spectrum.periodogram(‘Blackman’); subplot(1,2,1); psd(Hs,x,‘Fs’,Fs) subplot(1,2,2); spectrogram(x) title(‘Sinc spectogram’)

Эта программа строит периодограмму и спектрограмму функции sinc(t). Теперь беспомощной оказывается спектрограмма, по которой ничего нельзя сказать о спектре сигнала и области его частот. А периодограмма более информативна: она указывает на вид спектра и область занимаемых им частот. В частности, хорошо видно постоянство спектра в начальной области частот, присущее этой функции. Правда, вид спектрограммы сильно зависит от типа короткого окна: в данном случае задано окно Блэкмана (Blackman). Вид периодограммы также зависит от выбора окна, но глобального.

Чем сложнее сигнал, тем более детальной и эффектной оказывается спектрограмма. На рис. 15 показан пример модуляции/демодуляции с построением спектрограммы сложного звукового сигнала. Кстати, оригинальный сигнал и сигнал, прошедший модуляцию/демодуляцию, можно воспроизвести на компьютере, оборудованном звуковой картой и акустической системой. Это можно сделать при различных видах модуляции.

Спектрограмма сложного акустического сигнала с амплитудной модуляцией

Рис. 15. Спектрограмма сложного акустического сигнала с амплитудной модуляцией

Похожие на спектрограммы картинки дают вейвлетограммы и скайлеграммы, получаемые при вейвлет-анализе сигналов [7]. Порою они более информативны. Но вейвлеты в Signal Ptocessing Toolbox не реализованы: они описаны и используются в отдельном пакете расширения Wavelet Toolbox.

Для выполнения дискретного преобразования Фурье различными методами служит GUI-окно Discrete Fourier Transform (рис. 16).

Спектр пилообразного сигнала в окне дискретного Фурье-преобразования

Рис. 16. Спектр пилообразного сигнала в окне дискретного Фурье-преобразования

Оно позволяет задать один из трех видов сигнала (синусоида, меандр и пилообразный) и его периодограмму (спектр) при одном из шести видов окон. Как сигнал, так и окно можно загружать извне из файла или рабочего пространства MATLAB. Нетрудно убедиться в большом влиянии на вид спектра выбранного окна.

Оконные функции и браузер окон

Учитывая важную роль окон, в Signal Processing Toolbox входит 21 N ‑точечное окно ( N — целое число), называемое по фамилии предложивших окно ученых, например Hamming, Blackman, Bartlett, Chebyshev, Taylor, Kaiser и т. д. Для просмотра временных и амплитудно-частотных характеристик всех окон есть соответствующие функции, но удобно пользоваться GUI-браузером окон wvtool.

wvtool(rectwin(64),hamming(64),hann(64),gausswin(64))

позволяет строить четыре типа 64‑точечных окон — прямоугольное, Хемминга, Ханна и Гаусса. Можно задать окна и отдельными командами.

Сравнение в браузере трех окон Кайзера с параметром бетта 1,5, Блэкмана и Блэкмана-Харисса

Рис. 17. Сравнение в браузере трех окон Кайзера с параметром бетта 1,5, Блэкмана и Блэкмана-Харисса

Это, а также сравнительное построение трех других типов окон обеспечивает следующая программа (рис. 17):

H = sigwin.kaiser(128,1.5); H1 = blackman(128); H2 = blackmanharris(128); wvtool(H,H1,H2)

Конструктор окон

Рис. 18. Конструктор окон

Существует также конструктор-анализатор окон с GUI-интерфейсом, окно которого (рис. 18) открывается командой:

wintool
wintool(obj1, obj2, …)

По умолчанию в нем открывается окно объекта sigwin, но можно открыть и другие окна (в том числе окно пользователя) из списка Current Window Information. Открытые окна появляются в третьем нижнем окне. Окна можно скопировать, добавить в список, установить в рабочее пространство MATLAB или стереть.

Изменение числа отсчетов и интерполяция сигналов

Изменение числа отсчетов широко используется в технике цифровой обработки сигналов. Для уменьшения числа отсчетов применяются операция децимации и функция decimate (рис. 19):

t=0:.00025:1;x=sin(2*pi*30*t)-sin(2*pi*70*t); y=decimate(x,4); subplot(121); stem(x(1:120)), axis([0 120 -2 2]); title(‘Original Signal’); subplot(122); stem(y(1:30)); title(‘Decimated Signal’)

Уменьшение частоты дискретизации сигнала (децимация)

Рис. 19. Уменьшение частоты дискретизации сигнала (децимация)

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

t = 0:0.001:1; x = sin(2*pi*30*t) - sin(2*pi*70*t); y = interp(x,4); subplot(121); stem(x(1:20));axis([0 20 –2 2]); title(‘Оригинальный сигнал’); subplot(122); stem(y(1:80)); title(‘Сигнал после интерполяции’); axis([0 80 –2 2]);

Интерполяция сигнала и увеличение частоты его дискретизации

Рис. 20. Интерполяция сигнала и увеличение частоты его дискретизации

Аналоговые и цифровые фильтры

Фильтры имеют особое значение при обработке сигналов. С их помощью осуществляется очистка сигналов от шума или реализуются избирательные свойства систем. Будем считать, что читатель знаком с теорией фильтров.

Фильтрующие цепи обычно задаются своей операторной передаточной характеристикой:

h ( s ) = a ( s )/ b ( s ).

Имея векторы коэффициентов полиномов a ( s ) и b ( s ), с помощью функции freqs можно построить АЧХ и ФЧХ фильтрующей цепи в логарифмическом масштабе (рис. 21):

a = [1 0.4 1]; b = [0.2 0.3 1]; w = logspace(–1,1); freqs(b,a)

Построение логарифмической АЧХ и ФЧХ системы по ее операторной передаточной характеристике

Рис. 21. Построение логарифмической АЧХ и ФЧХ системы по ее операторной передаточной характеристике

В Signal Processing Toolboox входит множество функций по расчету и проектированию различных фильтров — нижних, верхних частот и полосовых. Порою для получения важных характеристик фильтров достаточно задать нужную строку программного кода. Например, построение характеристик аналогового фильтра Бесселя (рис. 22) реализуется следующим программным фрагментом:

[b,a] = besself(5,10000); freqs(b,a);

Для просмотра практически всех характеристик фильтров можно использовать визуализатор фильтров fvtool. Приведенная ниже программа дает характеристики фильтра Бесселя нижних частот (рис. 23):

[z,p,k] = ellip(6,3,50,300/500); [sos,g] = zp2sos(z,p,k); Hd = dfilt.df2tsos(sos,g); h = fvtool(Hd) set(h,‘Analysis’,‘freq’)

Характеристики аналогового эллиптического фильтра нижних частот

Рис. 23. Характеристики аналогового эллиптического фильтра нижних частот

Открытое меню Analysis дает представление обо всех доступных видах анализа фильтров. Среди них построение АЧХ и ФЧХ фильтра, импульсная и переходная характеристики, групповая задержка и т. д.

Конструирование двух цифровых фильтров НЧ (FIR и Баттерворта) со сравнительным построением их характеристик в окне fvtool (рис. 24) обеспечивает следующая программа:

d=fdesign.lowpass(‘Fp,Fst,Ap,Ast’,1000,1200,1,60,20000); Hd1=design(d,‘equiripple’); %FIR equiripple design Hd2=design(d,‘butter’); %Butterworth design fvtool([Hd1 Hd2],‘legend’,’on’); axis([0 2 –100 10])

АЧХ двух цифровых фильтров для сравнения

Рис. 24. АЧХ двух цифровых фильтров для сравнения

Программа строит и другие характеристики фильтров, например переходные и импульсные. Напомним, что переходная характеристика является реакцией системы (фильтра) на единичный скачок, а импульсная — на импульс единичной площади с длительностью, стремящейся к нулю (рис. 25).

Импульсные характеристики двух цифровых фильтров

Рис. 25. Импульсные характеристики двух цифровых фильтров

Интерактивный конструктор-анализатор фильтров fdatool

В Signal Proccesing Toolbox входит интерактивный конструктор-анализатор фильтров с GUI-интерфейсом. Он позволяет без какого-либо программирования анализировать и проектировать семь основных типов фильтров (таблица).

Метод конструирования

Функция

feedback

sys = feedback( sys1,sys2 ) возвращает объект модели sys для соединения отрицательной обратной связи объектов модели sys1,sys2 .

От фигуры, модели sys с обратной связью имеет u как входной вектор и y как выходной вектор. Обе модели, sys1 и sys2 , должно или быть непрерывным или дискретным с идентичными шагами расчета.

sys = feedback( sys1,sys2 , feedin , feedout ) вычисляет модель sys с обратной связью использование связей ввода и вывода, заданных с помощью feedin и feedout . Используйте этот синтаксис, когда это необходимо, чтобы соединить только подмножество доступного I/Os систем MIMO.

sys = feedback( sys1,sys2 ,’name’) вычисляет модель sys с обратной связью с соединениями обратной связи, заданными соответствующими именами ввода-вывода моделей MIMO sys1 и sys2 . Используйте ‘name’ отметьте только, когда все необходимые I/Os в наборе систем MIMO правильно назовут.

sys = feedback( ___ , sign ) возвращает объект модели sys для обратной связи с типом обратной связи, заданной sign . По умолчанию, feedback принимает отрицательную обратную связь и эквивалентен feedback(sys1,sys2,-1) . Чтобы вычислить систему с обратной связью с положительной обратной связью, используйте sign = +1 .

Примеры

Объект и контроллер с модульной обратной связью

pendulumModelAndController.mat содержит инвертированную модель G передаточной функции маятника SISO и его связанный ПИД-регулятор C .

Загрузите инвертированный маятник и модели контроллеров к рабочей области.

load('pendulumModelAndController','G','C'); size(G)
Transfer function with 1 outputs and 1 inputs.
size(C)
PID controller with 1 output and 1 input.

Используйте feedback создать цикл отрицательной обратной связи с G и C .

sys = feedback(G*C,1)
sys = 1.307e-06 s^3 + 3.136e-05 s^2 + 5.227e-06 s --------------------------------------------------------- 2.3e-06 s^4 + 1.725e-06 s^3 - 4.035e-05 s^2 - 5.018e-06 s Continuous-time transfer function.

sys результирующая передаточная функция непрерывного времени замкнутого цикла, полученная с помощью отрицательной обратной связи. feedback преобразует модель C ПИД-регулятора в передаточную функцию прежде, чем соединить его с моделью G передаточной функции непрерывного времени . Для получения дополнительной информации см. Правила, Которые Определяют Тип модели.

Объект с контроллером в пути к отрицательной обратной связи

В данном примере рассмотрите две передаточных функции, которые описывают объект G и контроллер C соответственно.

G ( s ) = 2 s 2 + 5 s + 1 s 2 + 2 s + 3 C ( s ) = 5 ( s + 2 ) s + 1 0

Создайте передаточные функции контроллера и объект.

G = tf([2 5 1],[1 2 3],'inputname',"torque",'outputname',"velocity"); C = tf([5,10],[1,10]);

Используйте feedback создать цикл отрицательной обратной связи с помощью G и C .

sys = feedback(G,C,-1)
sys = From input "torque" to output "velocity": 2 s^3 + 25 s^2 + 51 s + 10 --------------------------- 11 s^3 + 57 s^2 + 78 s + 40 Continuous-time transfer function.

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

Цикл положительной обратной связи с объектом и контроллером

В данном примере рассмотрите две передаточных функции, которые описывают объект G и контроллер C соответственно.

G ( s ) = 2 s 2 + 5 s + 1 s 2 + 2 s + 3 C ( s ) = 5 ( s + 2 ) s + 1 0

Создайте передаточные функции контроллера и объект.

G = tf([2 5 1],[1 2 3],'inputname',"torque",'outputname',"velocity"); C = tf([5,10],[1,10]);

Используйте feedback создать цикл положительной обратной связи с помощью G и C .

sys = feedback(G,C,+1)
sys = From input "torque" to output "velocity": -2 s^3 - 25 s^2 - 51 s - 10 --------------------------- 9 s^3 + 33 s^2 + 32 s - 20 Continuous-time transfer function.

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

Цикл отрицательной обратной связи с системами MIMO

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

В данном примере создайте две случайных непрерывных модели в пространстве состояний с помощью rss .

G = rss(4,2,2); C = rss(2,2,2); size(G)
State-space model with 2 outputs, 2 inputs, and 4 states.
size(C)
State-space model with 2 outputs, 2 inputs, and 2 states.

Используйте feedback соединять эти две модели в пространстве состояний в цикле отрицательной обратной связи согласно вышеупомянутой фигуре.

sys = feedback(G,C,-1); size(sys)
State-space model with 2 outputs, 2 inputs, and 6 states.

Получившаяся модель в пространстве состояний sys 2 входа, 2 выходных модели с 6 состояниями. Цикл отрицательной обратной связи завершается таким образом что,

  • Первый выход G соединяется с первым входом C
  • Второй выход G соединяется со вторым входом C

Обратная связь на основе имен ввода-вывода

mimoPlantAndController.mat содержит 2 входа, 2 выходных модели объекта управления передаточной функции G и 2 входа, 2 выходных моделей контроллеров передаточной функции C быть соединенным можно следующим образом:

Во-первых, загрузите объект и модели контроллеров к рабочей области.

load('mimoPlantAndController.mat','G','C'); size(G)
Transfer function with 2 outputs and 2 inputs.
size(C)
Transfer function with 2 outputs and 2 inputs.

По умолчанию, feedback соединил бы первый выход G к первому входу C и второй выход G к второму входу C . Для того, чтобы соединить объект и контроллер согласно фигуре, назовите соответствующий I/Os этих двух систем, чтобы гарантировать правильные связи.

G.InputName

ans = 2×1 cell

G.OutputName

ans = 2×1 cell

C.InputName

ans = 2×1 cell

C.OutputName

ans = 2×1 cell

Затем используйте ‘name’ отметьте с помощью feedback команда, чтобы установить связи согласно именам ввода-вывода.

sys = feedback(G,C,'name');

Получившаяся передаточная функция отрицательной обратной связи замкнутого цикла sys имеет соединения обратной связи в необходимом порядке.

Задайте связи ввода и вывода в обратной связи

Считайте объект пространства состояний G с пятью входными параметрами и четырьмя выходными параметрами и контроллером обратной связи пространства состояний K с тремя входными параметрами и двумя выходными параметрами. Выходные параметры 1, 3, и 4 из объекта G должен быть подключен контроллер K входные параметры и контроллеры выход к входным параметрам 2 и 4 из объекта.

В данном примере сгенерируйте рандомизированные модели в пространстве состояний непрерывного времени с помощью rss для обоих G и K .

G = rss(3,4,5); K = rss(3,2,3);

Задайте feedout и feedin векторы на основе вводов и выводов, которые будут соединены в обратной связи.

feedin = [2 4]; feedout = [1 3 4]; sys = feedback(G,K,feedin,feedout,-1); size(sys)
State-space model with 4 outputs, 5 inputs, and 6 states.

sys результирующая модель в пространстве состояний замкнутого цикла, полученная путем соединения заданных вводов и выводов G и K .

Входные параметры

sys1,sys2 — Системы, чтобы соединиться в обратной связи
модели динамической системы

Системы, чтобы соединиться в обратной связи в виде моделей динамической системы. Динамические системы, которые можно использовать, включают:

  • Непрерывное время или дискретное время числовые модели LTI такой как tf , zpk , pid , pidstd , или ss модели.
  • Модели частотной характеристики такой как frd или genfrd .
  • Обобщенные или неопределенные модели LTI такой как genss или uss Модели (Robust Control Toolbox) . (Используя неопределенные модели требует программного обеспечения Robust Control Toolbox™.) Получившаяся обратная связь принимает
  • текущие значения настраиваемых компонентов для настраиваемых блоков системы управления.
  • номинальные значения модели для неопределенных блоков системы управления.

Для получения дополнительной информации см. модели динамической системы.

Когда sys1 и sys2 два различных типа модели, feedback использует правила приоритета, чтобы определить получившуюся модель sys . Например, когда модель в пространстве состояний и передаточная функция соединяются в обратной связи, получившаяся система является моделью в пространстве состояний на основе правил приоритета. Для получения дополнительной информации см. Правила, Которые Определяют Тип модели.

feedin — Подмножество входных параметров, которые будут использоваться
вектор

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

От фигуры, feedin содержит индексы входного вектора объекта MIMO P и задает, какое подмножество входных параметров u вовлечены в обратную связь. Получившаяся модель sys имеет те же входные параметры как G , с их сохраненными порядками.

feedout — Подмножество выходных параметров, которые будут использоваться
вектор

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

feedout задает который выходные параметры объекта MIMO G используются для обратной связи. Получившаяся модель sys имеет те же выходные параметры как G , с их сохраненными порядками.

sign — Тип обратной связи
-1 (значение по умолчанию) | +1

Тип обратной связи в виде -1 для отрицательной обратной связи или +1 для положительной обратной связи. feedback принимает отрицательную обратную связь по умолчанию.

Выходные аргументы

sys — Система с обратной связью
модель динамической системы

Система с обратной связью, возвращенная как SISO или модель динамической системы MIMO. sys может быть одно из следующего в зависимости от правил приоритета:

  • Непрерывное время или дискретное время числовые модели LTI, такой как tf , zpk , ss , pid , или pidstd модели.
  • Обобщенные или неопределенные модели LTI такой как genss или uss Модели (Robust Control Toolbox) . (Используя неопределенные модели требует программного обеспечения Robust Control Toolbox.)

Когда sys1 и sys2 два различных типа модели, feedback использует правила приоритета, чтобы определить получившуюся модель sys . Например, когда модель в пространстве состояний и передаточная функция соединяются в обратной связи, получившаяся система является моделью в пространстве состояний на основе правил приоритета, обрисованных в общих чертах в Правилах, Которые Определяют Тип модели.

Ограничения

  • Соединение обратной связи должно быть свободно от алгебраических циклов. Например, если D1 и D2 являются проходными матрицами sys1 и sys2 , это условие эквивалентно:
  • I + D1D2, несингулярный при использовании отрицательной обратной связи
  • I − D1D2, несингулярный при использовании положительной обратной связи

Советы

  • Для сложных структур обратной связи использовать append и connect .

Смотрите также

Темы

  • Правила, которые определяют тип модели
  • Обратная связь MIMO
  • Использование FEEDBACK для замыкания контура

Представлено до R2006a

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация Control System Toolbox

  • Примеры
  • Функции и другая ссылка
  • Информация о релизах
  • PDF-документация

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

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

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

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