Ориентация на матричные операции
Первое знакомство с пакетом Matlab
План:
1. Состав пакета Matlab
2. Документация и литература по Matlab
2.1. Help
2.2. Demos
3. Ориентация на матричные операции
4. Главное окно
5. Командное окно и простейшие операции в нем
6. Прочие окна-фреймы
7. Аналитические выкладки в Matlab
8. Графический интерфейс пользователя
9. Специализированные пакеты (sptool, fdatool,…)
10. Simulink
Литература:
1. Дьяконов В., Абраменкова И. Matlab – обработка сигналов и изображений. Специальный справочник. – СПб, Питер, 2002. – 602с.
Состав пакета Matlab
В несколько усеченном (более полная схема приведена в работе [1]) виде структуру пакета (системы) Matlab можно представить как показано на рис.1.
Рис.1
Как видно из рис.1, Matlab состоит из 2-частей – собственно пакета Matlab, предназначенного для решения вычислительных задач, и пакета Simulink, предназначенного для имитационного моделирования.
Каждый из этих пакетов обладает мощной библиотекой функций. Часть функций встроены в ядро пакета (например, тригонометрические функции sin, cos и т.п.) и выполняются предельно быстро. Значительная часть функций вынесена во внешнюю часть (Extensions) – эти функции выполняются медленнее. Однако в наличии внешней части есть большое достоинство: система открыта для пользователя. Т.е. пользователь может писать собственные функции (на языках пакета Matlab или C/C++) и внедрять их в пакет Matlab.
Наконец, ряд функций с помощью специального интерфейса объединены в «субпакеты» - это Toolboxes в Matlab и Blocksets в Simulink. Такое объединение удобно при решении задач определенного класса. Например, в задачах цифровой обработки сигналов часто встречаются функции преобразования Фурье, преобразования Гильберта, решения систем линейных уравнений и т.п. С их применением решаются задачи спектрального и корреляционного анализа, идентифиации систем и т.д. Есть и особого рода субпакеты – это «чужие» разработки, включенные в Matlab. Пример – пакет Symbolic Math для символьных вычислений, позволяющий упрощать аналитические выражения, брать интегралы и т.п.
2. Документация и литература по Matlab
Help
Помимо обычных и довольно многочисленных книг по покету Matlab, обращаем внимание на мощный, хорошо развитый (и особенно хорошо структурированный в последних версиях пакета) режим помощи (Help). Он просто незаменим в работе, даже если у вас есть литература (которая быстро устаревает). Запомнить имена многочисленных функций Matlab’a, не говоря уже об их синтаксисе – дело непосильное для нормального человека. Это – естественная расплата за мощь пакета, позволяющего осуществлять сложнейшие математические операции с помощью всего лишь одной-двух кратких команд.
Demos
В разделе Help имеется очень полезный подраздел Demos. Начиная с версии Matlab 6.0, вначале раздела Demos даны несколько мультимедийных уроков, обучающих использованию интерфейса пакета Matlab. Затем следует несколько тематических подразделов, среди которых нам особенно интересны:
Toolboxes>Symbolic Math
Toolboxes>Filter Design
Toolboxes>Image Processing
Toolboxes>Signal Processing
Toolboxes>Wavelet
Чрезвычайно полезно воспользоваться этими разделами для первоначального беглого знакомства с возможностями Matlab.
Ориентация на матричные операции
Принципиальной особенностью математического пакета Matlab является ориентация на матричные вычисления. Это, может быть, не очень удобно для тех, кто плохо знаком с основами матричной алгебры. Но зато такой подход очень хорошо подходит для описания цифровых систем обработки сигналов, оперирующих, в сущности, с дискретными последовательностями чисел.
Любопытным следствием такого подхода является то, что «обыкновенное» единичное число, именуемое скаляром, в Matlab’e также представляется как вектор - единичного размера.
Другое, значительно более важное, следствие матричного подхода – пользователю нужно быть чрезвычайно внимательным при выполнении операций умножения (*), деления (/), возведения в степень (^). Например, при простых вычислениях, где участвуют скалярные величины, можно использовать оператор умножения * в его привычном смысле – как оператор умножения числа на число. Однако если речь идет о перемножении векторов, тогда применение знака * дает результат в виде матрицы (при условии, что один из векторов – столбец, а другой - строка), а применение знака .* (знак умножения с точкой перед ним) дает новый вектор, элементы которого являются результатом перемножения соответствующих элементов множителей (при условии, что оба вектора – столбцы или строки).
Еще более сложно “устроена” операция деления: здесь различают деление слева направо (/ или ./) и справа налево (\ и .\).
Главное окно
По окончании загрузки пакета Matlab 6.0 открывается главное окно (рис.2), составными частями (фреймами) которого являются:
Ø командное окно (Command Window),
Ø окно быстрого запуска субпакетов (Launch Pad),
Ø окно рабочего пространства (Workspace),
Ø
окно истории команд (Command History),
Ø окно текущей директории (Current Directory).
Рис.2