Анализ и обработка сигналов в среде MATLAB
Покупка
Основная коллекция
Тематика:
Системы автоматического моделирования
Издательство:
Новосибирский государственный технический университет
Автор:
Щетинин Юрий Иванович
Год издания: 2011
Кол-во страниц: 115
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-7782-1807-9
Артикул: 631969.01.99
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 09.03.02: Информационные системы и технологии
- ВО - Магистратура
- 01.04.02: Прикладная математика и информатика
- 09.04.02: Информационные системы и технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство образования и науки Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Ю.И. ЩЕТИНИН АНАЛИЗ И ОБРАБОТКА СИГНАЛОВ В СРЕДЕ MATLAB Утверждено Редакционно-издательским советом университета в качестве учебного пособия по курсу «Теория и обработка сигналов» для студентов III курса АВТФ направлений 200100 «Приборостроение», 230400 «Информационные системы и технологии», 201000 «Биотехнические системы и технологии» НОВОСИБИРСК 2011
УДК 004.42:621.391.42(075.8) Щ 702 Рецензенты: Ярославцев А. Ф., д-р техн. наук, проф., зав. кафедрой беспроводных информационных сетей и систем СибГУТИ Моторин С.В., д-р техн. наук, проф. кафедры ССОД НГТУ Щетинин Ю.И. Щ 702 Анализ и обработка сигналов в среде MATLAB: учеб. пособие / Ю.И. Щетинин. - Новосибирск : Изд-во НГТУ, 2011. -115 с. ISBN 978-5-7782-1807-9 Пособие предназначено для студентов факультета автоматики и вычислительной техники (АВТФ) НГТУ направлений 200100 «Приборостроение», 230400 «Информационные системы и технологии», 201000 «Биотехнические системы и технологии». Оно может быть полезным для студентов других направлений обучения, использующих в своей работе MATLAB. В пособии представлено краткое описание системы MATLAB фирмы The MathWorks, Inc., а также ее пакета - расширения для обработки сигналов Signal Processing Toolbox. Рассмотрены операционная среда системы, операции с матрицами, векторами и полиномами, основы языка программирования и использования графики MATLAB. Изложены также вопросы представления сигналов в среде пакета Signal Processing Toolbox, анализа непрерывных и дискретных по времени систем, синтеза аналоговых и дискретных (цифровых) фильтров. Изложение материала сопровождается практическими примерами и заданиями для самостоятельного выполнения. УДК 004.42:621.391.42(075.8) ISBN 978-5-7782-1807-9 © Щетинин Ю.И., 2011 © Новосибирский государственный технический университет, 2011
ОГЛАВЛЕНИЕ Введение..................................... 1. ОСНОВЫ MATLAB............................. 1.1. Что такое MATLAB?..................... 1.2. Получение справочных сведений......... 1.3. Векторы и матрицы..................... 1.4. Операции с матрицами и векторами...... 1.5. Поэлементные операции с массивами..... 1.6. Полиномы.............................. 1.7. Двумерные графики..................... 1.8. Трехмерные графики.................... 1.9. Программирование в MATLAB............. 1.10. Символьные вычисления в MATLAB......... 2. АНАЛИЗ И ОБРАБОТКА СИГНАЛОВ В MATLAB 2.1. Signal Processing Toolbox............. 2.2. Представление сигналов в MATLAB....... 2.3. Анализ линейных непрерывных систем.... 2.4. Анализ линейных дискретных систем..... 2.5. Оконные (весовые) функции............. 2.6. Спектральный анализ сигналов.......... 2.7. Синтез аналоговых фильтров............ 2.8. Синтез дискретных (цифровых) БИХ-фильтров.. 2.9. Синтез дискретных (цифровых) КИХ-фильтров.. 2.10. Графическая интерактивная оболочка SPTool.... Литература................................... ...4 ... 5 ... 5 .. 13 . 16 ..23 ..28 ..32 .33 .38 .41 .46 .. 50 . 50 ..52 .58 . 66 ..77 .81 .88 .93 100 108 114 3
Введение Данное учебное пособие предназначено для студентов факультета автоматики и вычислительной техники (АВТФ) НГТУ направлений 200100 «Приборостроение», 230400 «Информационные системы и технологии» и 201000 «Биотехнические системы и технологии», изучающих на третьем курсе обучения дисциплину «Теория и обработка сигналов». Основной целью курса является изучение математических основ представления и анализа сигналов; анализа, проектирования и моделирования систем обработки сигналов. В зарубежных университетах подобный курс чаще всего имеет название «Signals and systems». Лабораторный практикум по курсу построен на использовании системы MATLAB компании The MathWorks, Inc. и ее пакета-расширения Signal Processing Toolbox. Для выполнения заданий практикума необходимо практическое умение пользоваться инструментарием пакета и элементами программирования на языке MATLAB. В пособии в краткой форме изложены основы работы и обработки сигналов в MATLAB в объеме, необходимом для выполнения лабораторных работ и курсовой работы. Материал первой части пособия имеет характер изложения базовых сведений по MATLAB и в этом отношении может быть полезен для любого начинающего пользователя вне зависимости от предметной области его интересов. Вторая часть пособия включает рассмотрение более специальных тем, а именно - базовых средств MATLAB по обработке сигналов, реализованных в пакете-расширении Signal Processing Toolbox. Изучение материала данного пособия предполагает выполнение (повторение) пользователем упражнений в среде MATLAB. Здесь полезно следовать латинскому изречению: fit fabricando fa be г (путем практики вырабатывается мастер). Для проверки уровня практического владения материалом наиболее важные разделы и темы сопровождаются упражнениями для самостоятельного выполнения.
1. ОСНОВЫ MATLAB 1.1. Что такое MATLAB? Система MATLAB (сокращение от MATrix LABoratory - матричная лаборатория) компании MathWorks, Inc. - интерактивная программа для инженерных и научных расчетов, ориентированная на вычисления с массивами (векторами и матрицами) данных. Ядро системы состоит из специальной среды разработки (Development Environment), обширной библиотеки математических функций (Mathematical Function Library), собственного языка программирования высокого уровня (Language MATLAB) и развитой подсистемы графики (Graphics). MATLAB имеет расширения в виде нескольких десятков дополнительных программных пакетов для вычислений и обработки данных в самых различных областях. Среди этих пакетов-расширений MATLAB в контексте рассматриваемого учебного курса можно отметить следующие программные продукты: • Signal Processing Toolbox - пакет для анализа, моделирования и проектирования систем обработки сигналов, • Filter Design Toolbox - пакет проектирования фильтров, • Fixed Point Toolbox - пакет обработки с фиксированной запятой, • Wavelet Toolbox - пакет вейвлет-анализа сигналов, • Simulink - пакет моделирования динамических систем, • Symbolic Math Toolbox - пакет программ для решения задач в символьном (аналитическом) виде, • Control System Toolbox - пакет моделирования, анализа и проектирования систем автоматического управления. Большое количество дополнительных пакетов-расширений вместе с тщательной проработкой и постоянным развитием ядра системы объясняют исключительную популярность MATLAB в университетах. По данным компании MathWorks, система используется более чем в 5000 университетов и колледжей. Имеется студенческая версия MATLAB Student Edition of MATLAB, являющаяся упрощенной версией системы и имеющая существенно более низкую стоимость. 5
Система MATLAB является средой, основанной на применении матричных (векторных) математических вычислений. По умолчанию операндами в ней являются матрицы или векторы. Этой особенностью MATLAB отличается от других систем автоматизации научно-технических вычислений, в которых для векторизации вычислений нужно использовать специальные процедуры или команды. При запуске MATLAB на экране монитора отображается его рабочий стол (Desktop MATLAB, рис. 1). Основным окном рабочего стола является командное окно (Command Window). Одновременно на экран могут быть выведены и другие окна MATLAB, например Workspace (рабочая область (пространство)), Command History (история команд), Current Directory (текущий каталог). Рабочая область (Workspace) MATLAB - это область памяти, в которой хранятся переменные текущего сеанса работы. С помощью команд меню Desktop пользователь может реконфигурировать рабочий стол согласно своим предпочтениям. |Меню| | Текущий каталог | Рис. 1 6
В MATLAB любые и даже весьма сложные вычисления можно выполнять в режиме прямых вычислений, т. е. без подготовки специальной программы. В этом режиме вычисления производятся в командном окне Command Window (рис. 1) в интерактивном режиме. MATLAB используется как мощный калькулятор, который способен производить не только обычные для калькуляторов вычисления, но и операции с векторами и матрицами, комплексными числами, рядами и полиномами и другие самые сложные вычисления. При этом можно также строить и выводить графики различных функций - от простой синусоиды до сложной трехмерной фигуры. Сеанс работы с MATLAB называется сессией (session). Работа в режиме прямых вычислений имеет диалоговый (интерактивный) характер: в командную строку вводится очередная команда, нажатием клавиши «Enter» задается ее исполнение, далее отображаются результаты исполнения команды. Точка с запятой в конце команды подавляет вывод на экран результатов вычисления команды. Символ >> является знаком приглашения к вводу очередной команды и готовности системы к ее исполнению. Все команды MATLAB должны вводиться в нижнем регистре символов. Например, команда >> sqrt(43.7) ans = 6.6106 вычисляет квадратный корень из 43,7 и присваивает результат системной переменной ans (англ. answer - ответ). Если присвоить результат этого вычисления переменной у, то ввод и вывод будут иметь вид >>у = sqrt(43.7) У = 6.6106 >>у= sqrt(43.7); >> У У = 6.6106 Точка с запятой в конце команды (;) подавляет вывод результатов вычисления или присваивания на экран. Без использования точки с 7
запятой вычисления сопровождаются выводом в рабочее окно зачастую огромных массивов ненужных пользователю промежуточных результатов. Поэтому в большинстве случаев в конце команды ставят точку с запятой. Допускается вводить в одной строке несколько команд, разделяя их запятой или точкой с запятой. Если для вводимого выражения не хватает одной строки, то часть выражения можно перенести на новую строку с помощью многоточия «...» - трех или более точек. Используя клавиши управления курсором f и |, можно в соответствующем порядке вызывать в командную строку ранее введенные команды текущего сеанса работы (сессии) для их повторного исполнения или редактирования. Символ процента % обозначает комментарий MATLAB, например >> x=sin(pi/5) % вычисление синуса х = 0.5878 Команда >> diary <filename> позволяет сохранять в файле с именем filename дневник сеанса работы, включающий все текстовые результаты ввода / вывода текущей сессии MATLAB. Такой файл имеет ASCII-формат и может быть открыт в любом текстовом редакторе. MATLAB имеет следующие базовые арифметические операции: - сложение (a+b, 15+23); - вычитание (a-b, 17-3); - умножение (a*b, 0.18*6.12); - деление (a/b, 92.4/15); - возведение в степень (aAb, 7.4Л4). MATLAB вычисляет выражение слева направо в обычном порядке приоритета операции возведения в степень над операциями умножения и деления, и последних - над операциями сложения и вычитания. Для изменения порядка вычислений используются скобки. Примеры: >> 7*3Л2+15/3-2 ans = 66 >> (7*3)л2+15/3-2 ans = 444 8
MATLAB поддерживает простую в использовании встроенную арифметику комплексных чисел. В большинстве математических функций MATLAB аргументы и результаты вычислений предполагаются комплексными числами. Например, >> sqrt(-3) ans = О + 1.73211 Для обозначения мнимой единицы в MATLAB зарезервированы переменные i и у. Примеры: >> х=3+41 х = 3.ОООО + 4.ОООО1 > > у= 2*(1+4*j) У= 2.ОООО + 8.ОООО1 Часто используемые функции комплексного аргумента: > > abs(x) % модуль числа х = 5 > > angle(x) % аргумент (фаза) числа в радианах х = О.9273 > > conj(x) % комплексно сопряженное число х=3-41 > > 1тад(х) % мнимая часть числа ans = 4 > > геа1(х) % действительная часть числа ans = 3 На рис. 1 в окне Command Window представлены команды вычисления сигнала в виде суммы синусоидальной и косинусоидальной составляющих на временном интервале 0 < t < 2: > > t=Q:Q.Q1:2; > > f1=4; > > f2=9; > > x=s1n(2*p1*f1*t)+cos(2*p1*f2*t); >> plotCt^) 9
>> grid >> xlabel('t') >> ylabel('x(t)') В данном примере заметна характерная особенность MATLAB как системы векторно-матричных вычислений. В процедуре вычислений задается набор (вектор) значений переменной - аргумента t, и для этого набора вычисляются векторы значений тригонометрических функций синуса и косинуса, а также их суммы, т. е. сигнала х. На рис. 2 показан график этого сигнала, построенный командой plot(t, х) в окне графики Figure 1 MATLAB. Как можно видеть из рис. 1 и рис. 3, все используемые в сессии переменные отображаются в окне Workspace вместе с их значениями и типами данных. В окне рабочей области их можно просматривать, редактировать значения и удалять из памяти (рис. 3). Рис. 3 10