Глава 5. Алгоритмические возможности MathCAD
Листинг 17. Некоторые свойства оператора for
Операторы прерывания. В системе MathCAD операторы прерывания представлены тремя командами: break, continue и return.
Операторы break и continue используются для прерывания работы циклов for и while, а оператор return – для прерывания всего блока операторов.
Если при выполнении цикла встречается оператор continue (перезапуск цикла), то вычисления в теле цикла останавливаются и цикл запускается снова. Если в цикле встречается оператор break (прерывание цикла), то выполнение тела цикла прекращается и происходит выход из цикла.
В примере, приведенном ниже (Листинг 18), создается функция PositivSubvector, выбирающая положительные координаты вектора х. Оператор continue перезапускает цикл каждый раз, когда встречается отрицательный компонент вектора х. В этом же примере строится функция FirstPositiv, выбирающая первую положительную координату вектора х. Важно, что если такая координата найдена, то оператор return останавливает выполнение функции (дальнейший перебор элементов вектора х не производится).
Листинг 18. Операторы continue и return
Оператор on error. Этот оператор является обработчиком тех или иных ошибок, возникающих при вычислении. Он записывается так:
Рис. 14 – Структура оператора on error
36
Профессиональные математические пакеты
Оператор on error выполняется следующим образом. Если при выполнении основной операции (расположенной справа от оператора on error) происходит ошибка, то вычисление этой операции прекращается и выполняется «операция в случае ошибки» (расположенная слева от on error), см. Листинг 19.
Листинг 19. Обработчик ошибок on error
5.1.Аналоговая модуляция
Аналоговая модуляция является таким способом преобразования цифрового сигнала в аналоговый, при котором двоичная информация кодируется изменением амплитуды (U), частоты (ω) или фазы ( ) гармонического сигнала F (t) U sin( t ) .
а)
"0" 5 B "1" 0 В
б)
F1 (t) U1 sin(t ) F2 (t) U2 sin(t )
в)
F1 (t) U sin( 1t ) F2 (t) U sin( 2t )
г)
F1 (t) U sin( t 1 ) F2 (t) U sin( t 2 )
Рис. 15 – Виды аналоговой модуляции
Основные способы аналоговой модуляции – амплитудная (б), частотная (в) и фазовая (г) показаны на Рис. 15. На графике (Рис. 15, а) приведена последовательность битов исходного сигнала S(t), представленная потенциальным кодом – логическому нулю соответствует +5 В, логической единице – 0 В.
Для построения на графике функции потенциального кода – последовательности битов исходного сигнала S(t), формируемого с тактовой частотой (частотой квантования) fd , необходимо определять номер тактового интервала (Листинг 20).
37
Глава 5. Алгоритмические возможности MathCAD
Воспользуемся встроенной функцией floor( ), вычисляющей целую часть числа. Рассмотрите, как построены функции целой части cel_chast(t/τ) и дробной части drob_chast(t/τ) числа t/τ. При формировании функции Signal(t) в локальную переменную numb заносится номер тактового периода, строящийся аналогично функции cel_chast(t/τ).
Листинг 20. Построение графика потенциального кода
5.2. Лабораторная работа №3. Программирование в MathCAD
Продолжительность – 4 часа.
Цель работы
Изучить операторы MathCAD, научиться применять их при написании программ. Научиться отслеживать значения числовых и логических переменных и выражений в процессе отладки программы. Освоить умение переводить мнемонические выражения в последовательность операторов. Восстановить знания из школьного курса физики о гармонической зависимости, закрепить понятия амплитуда, фаза и частота. Визуализировать отличия и сходства между цифровым и аналоговым сигналом.
Задание на лабораторную работу
1.В индивидуальном задании (Таблица 7, Приложение 3) в шестнадцатеричном
формате задан код Shex, который необходимо представить в виде двоичной последовательности signal.
2.Построить функцию Signal(t), отображающую на графике сигнал signal в виде
потенциального кода с заданной частотой квантования fd . |
|
|
3. Построить алгоритм кодирования |
данного сигнала |
заданным видом |
аналоговой модуляции F (t) U sin( t ) |
с заданными |
несущей частотой, |
амплитудой и фазой.
4.Построить цифровой сигнал Signal(t) и аналоговый сигнал F (t) на графике.
5.Использовать оператор on error для корректной обработки ошибок при вычислении.
6.Составить отчет, в котором отразить листинг программного кода с комментариями.
Контрольные вопросы
1.Какие виды аналоговой модуляции вы знаете?
2.Записать формулу гармонической функции, перечислить ее параметры.
3.Как построить цифровой сигнал на графике?
4.Существуют ли в природе чисто цифровые сигналы?
38
Профессиональные математические пакеты
6.ОПЕРАЦИИ МАТРИЧНОЙ АЛГЕБРЫ И ИХ РЕАЛИЗАЦИЯ
ВСРЕДЕ MATHCAD
Вкурсе линейной алгебры студенты знакомятся с такими понятиями как матрица и вектор, рассмотрим, какие инструменты для работы с матричными объектами предоставляет MathCAD. Под матрицей понимается прямоугольная таблица чисел размерности n×m.
Вектор – это такая матрица у которой n=1 или m=1. В средней школе давалось определение вектора как направленного отрезка прямой, важно понимать, что эти определения эквивалентны.
Над векторами и матрицами определены операции сложения и умножения на число – эти операции выполняются поэлементно и обладают свойствами линейности. Дополнительно определены операции произведения матриц и умножения матрицы на вектор. Свойства этих операций рассмотрены ниже.
Кроме того, для матриц введено понятие определителя – числа, некоторым образом характеризующего матрицу и понятие ранга – размерности линейнонезависимой системы векторов, составляющих матрицу. Строгое определение этих понятий дается в курсе высшей математики, здесь мы рассмотрим, как вычислять эти показатели и как ими пользоваться.
6.1.Матричные операции MathCAD
Всреде MathCAD операции над матрицами производятся в соответствии с правилами математики. Комплекс MathCAD содержит достаточно представительную библиотеку встроенных функций, в том числе и функций, работающих с матрицами. Ниже рассмотрены некоторые функции, осуществляющие матричные операции, используемые при выполнении лабораторных и практических работ.
Ввод и редактирование формата матриц с помощью шаблона
Интерфейс процессора MathCAD позволяет вводить матрицы с помощью шаблона, задаваемого в диалоговом окне (Рис. 16,б). Диалоговое окно вызывается командой главного меню Insert\Matrix, либо комбинацией клавиш-акселераторов Ctrl+M, либо нажатием на пиктограмму
палитры матричных операций (Рис. 16,а).
Рис. 16 – Матрицы и вектора в MathCAD. Диалоговое окно ввода матрицы
С помощью этого же диалога можно редактировать формат уже созданных матриц, добавляя/удаляя строки и столбцы. Эти действия вызываются кнопками Insert
и Delete.
Нумерация строк и столбцов в MathCAD по умолчанию начинается с нуля (Рис. 17). Принцип нумерации элементов матриц можно переопределить с помощью команды ORIGIN:=1 (после этого матрицы и вектора нумеруются не с 0, а с 1).
39
Глава 6. Операции матричной алгебры в MathCAD
Интерпретирующая система блокирует некорректную матричную операцию. При этом некорректный, нереализуемый оператор выделяется измененным цветом шрифта и комментарием в виде всплывающей подсказки. Таким образом, программист может контролировать принципиальную осуществимость матричных операций, связанную, в частности, и с размерностью операндов.
Рис. 17 – Некорректное обращение к элементу матрицы блокируется
Функции компоновки и декомпозиции матриц и векторов
В составе библиотеки встроенных функций MathCAD имеются функции, позволяющие производить, формировать матрицу из блоков-подматриц и выделять из заданной матрицы подматрицы нужного размера. Компоновку матрицы из блоков осуществляют функции augment, stack:
Листинг 21. Функции объединения матриц по строкам и столбцам
Выделение подматрицы выполняется функцией submatrix и оператором выделения столбца матрицы M< >. Функция выделения подматрицы submatrix имеет следующий синтаксис вызова:
submatrix(A, row1, row2 , col1, col2 ) ,
где A – исходная матрица, из которой извлекается фрагмент; row1 и row2– номера начальной и конечной выбираемых строк в матрице; col1 и col2– номера начального и конечного столбца в матрице A, включаемого в выделяемую подматрицу.
Листинг 22. Функции извлечения подматрицы
40