Кирьянов. Самоучитель MathCad 11. Кирьянов д в
Скачать 10.75 Mb.
|
Листинг 15.19. Полосовая фильтрациях : = ( От . 6 5 . 2 5 . 9 7 . 7 8 . 7 6 . 7 7 . 5 7 . 9 8 . 1 8 . 7 9 . 7 8 . 8 1 0 . 4 ) : = m e a n ( у т Глава 15. Обработка данных 405 у у - N := rows ( у :=0 .. N - 1 N=17 := if i < w : = 7 i := j = 0 j = i < w , m m i d d l e - i + 1 = О + 1 j = i-w+1 15.4. Интегральные преобразования Интегральные преобразования массива сигнала ух) ставят в соответствие всей совокупности данных ух) некоторую функцию другой координаты. Рассмотрим встроенные функции для расчета интегральных преобразований, реализованных в Mathcad. 15.4.1. Преобразование Фурье Математический смысл преобразования Фурье состоит в представлении сигнала ух) в виде бесконечной суммы синусоид вида Ffv) Функция Ffv) называется преобразованием Фурье или интегралом Фурье или Фурье-спектром сигнала. Ее аргумент v имеет смысл частоты соответствующей составляющей сигнала. Обратное преобразование Фурье переводит спектр F(V) в исходный сигнал ух. Согласно определению, F{v) у(х) Как видно, преобразование Фурье является существенно комплексной величиной, даже если сигнал действительный. Преобразование Фурье действительных данных Преобразование Фурье имеет огромное значение для различных математических приложений, и для него разработан очень эффективный алгоритм Часть III. Численные методы называемый БПФ (быстрым преобразованием Фурье. Этот алгоритм реализован в нескольких встроенных функциях Mathcad, различающихся норми- ровками. О — вектор прямого преобразования Фурье — вектор прямого преобразования Фурье в другой нормировке — вектор обратного преобразования Фурье — вектор обратного преобразования Фурье в другой нормировке у — вектор действительных данных, взятых через равные промежутки значений аргумента — вектор действительных данных Фурье-спектра, взятых через равные промежутки значений частоты. Внимание! Аргумент прямого Фурье-преобразования, те. вектору, должен иметь ровно элементов целое число. Результатом является вектор с элементами. И наоборот, аргумент обратного Фурье-преобразования должен иметь элементов, а его результатом будет вектор из 2" элементов. Если число данных не совпадает со степенью 2, то необходимо дополнить недостающие элементы нулями 15.24. Исходные данные и обратное преобразование Фурье (листинг Пример расчета Фурье-спектра для суммы трех синусоидальных сигналов разной амплитуды (показанных в виде сплошной кривой на рис. приведен в листинге 15.20. Расчет проводится по N=128 точкам, причем предполагается, что интервал дискретизации данных равен Д. В предпо- Глава 15. Обработка данных 407 следней строке листинга применяется встроенная функция ft, а в последней корректно определяются соответствующие значения частот Обратите внимание, что результаты расчета представляются в виде модуля Фу- рье-спектра (рис. 15.25), поскольку сам спектр является комплексным. Очень полезно сравнить полученные амплитуды и местоположение пиков спектра с определением синусоид в листинге 15.20. Быстрое преобразование Фурье 1 0 Д : = • хМАХ i 0 .. N - 1 i Ау . 2 5 . s i n ( 2 • п • 0 . 4 1 5 . 2 5 . Преобразование Фурье {листинг Результат обратного преобразования Фурье показан в виде кружков на том же рис. 15.24, что и исходные данные. Видно, что в рассматриваемом случае сигнал ух) восстановлен с большой точностью, что характерно для плавного изменения сигнала. 9Я4 Часть III. Численные методы Преобразование Фурье комплексных данных Алгоритм быстрого преобразования Фурье для комплексных данных встроен в соответствующие функции, в имя которых входит литера "с — вектор прямого комплексного преобразования Фурье CFFT(y) — вектор прямого комплексного преобразования Фурье в другой нормировке — вектор обратного комплексного преобразования Фурье вектор обратного комплексного преобразования Фурье в другой нормировке; • у — вектор данных, взятых через равные промежутки значений аргумента вектор данных Фурье-спектра, взятых через равные промежутки значений частоты. Функции действительного преобразования Фурье используют тот факт, что в случае действительных данных спектр получается симметричным относительно нуля, и выводят только его половину (см. выше разд. "Преобразование Фурье действительных данных" этой главы Поэтому, в частности, по действительным данным получалось всего 65 точек спектра Фурье. Если к тем же данным применить функцию комплексного преобразования Фурье (рис. то получится вектор из 128 элементов. Сравнивая рис. и 15.26, можно уяснить соответствие между результатами действительного и комплексного Фурье-преобразования. О 20 40 80 100 120 15.26. Комплексное преобразование Фурье (продолжение листинга 15.20) Глава 15. Обработка данных 409 Двумерное преобразование Фурье В Mathcad имеется возможность применять встроенные функции комплексного преобразования Фурье не только к одномерным, но и к двумерным массивам, те. матрицам. Соответствующий пример приведен в листинге и на рис. 15.27 в виде графика линий уровня исходных данных и рассчитанного Фурье-спектра. Листинг Двумерное преобразование Фурье 64 i := 0 .. N - 1 3 : = 0 .. N - 1 F :=CFFT , + - 1 0 i | 1 0 F ( F , 7 , N - 7 , 7 , N - 7 ) 15.27. Данные (слева) и их Фурье-спектр (справа) (листинг 15.21) 15.4.2. Вейвлетное преобразование В последнее время возрос интерес к другим интегральным преобразованиям, в частности (или дискретному волновому преобразованию. Оно применяется, главным образом, для анализа нестационарных сигналов и для многих задач подобного рода оказывается более эффективным, чем преобразование Фурье. Основным отличием вейвлетного преобразования является разложение данных не по синусоидам (как для преобразования Фурье), а по другим функциям, называемым Вейвле- тобразуюшие функции, в противоположность бесконечно осциллирующим синусоидам, локализованы в некоторой ограниченной области своего аргумента, а вдали от нее равны нулю или ничтожно малы. Пример такой функции, называемой "мексиканской шляпой, показан на рис. 15.28. Часть III. Численные методы 0 - ю 10 Сравнение синусоиды и вейвлетобразующей функции Из-за своего математического смысла вей имеет не один аргумента два. Помимо частоты, вторым аргументом ь является место локализации вейвлетобразующей функции. Поэтому имеет туже размерность и х. Встроенная функция вейвлет-преобразования Mathcad имеет одну встроенную функцию для расчета вейвлет-преобра- зования на основе вейвлетобразующей функции Даубечи. wave{y) — вектор прямого вейвлет-преобразования; — вектор обратного вейвлет-преобразования; • у — вектор данных, взятых через равные промежутки значений аргумента вектор данных вей влет-спектра. Аргумент функции вейвлет-преобразования, те. вектору, должен так же, как ив преобразовании Фурье, иметь ровно элементов (п — целое число. Результатом функции wave является вектор, скомпонованный из нескольких коэффициентов с двухпараметрического вей влет-спектра. Использование функции wave объясняется на примере анализа суммы двух синусоид в листинге 15.22, а три семейства коэффициентов вычисленного вей показаны на рис. Листинг 15.22. Поиск вейвлет-спектра Даубечи f := 2 + 0 . 3 j 256 i := 0 .. - 1 Глава 15. Обработка данных := w a v e ( у l e v e l s 1 (2) k : = l , 2 .. N l e v e l s N l e v e l s = 7 ( l e v e l ) , 1 , 0 , 0 (Рис. 15.29. Вейвлет-спектр на основе функции Даубечи (листинг Программирование других вейвлет-преобразований Помимо встроенной функции вей влет-спектра Даубечи и возможностей пакета расширения возможно непосредственное программирование алгоритмов пользователя для расчета вейвлет-спектров. Оно сводится к аккуратному расчету соответствующих семейств интегралов. Один из примеров такой программы приведен в листинге 15.23, а ее результат на рис. 15.30. Анализу подвергается та же функция, составленная из суммы двух синусов, а график двухпараметрического спектра с{а,Ъ) выведен в виде привычных для линий уровня на плоскости (а,Ь). (Листинг Поиск вей влет-спектра на основе f ( t ) + 50 10 Часть III. Численные методы ( t ) ? 2 56 f (a . b, t) { b) 10 i + 15 t - b , b , t ) ( t ) d t Nmax b 0 , 1 .. 10 2 x 1 0 Nmax 10 Примечание Программа листинга очень проста, но исключительно далека от хорошей в смысле быстродействия. Каждый интеграл вычисляется независимо, без использования методов ускорения, типа применяемых в алгоритме БПФ. Рис. 15.30. Вейвлет-спектр на основе "мексиканской шляпы' (листинг 15.23} ЧАСТЬ ОФОРМЛЕНИЕ РАСЧЕТОВ ГЛАВА 16 Ввод-вывод данных В данной главе рассматриваются вопросы ввода входных данных в документы и вывода результатов вычислений. Вначале главы приведено краткое напоминание о числовом значений, перечисляются типы данных, которые применимы в среде Mathcad (см. разд. 16.1) при определении переменных и функций. Наиболее мощными средствами вывода результатов в Mathcad являются графики, и именно их эффективному использованию посвящено основное содержание главы (см. разд. На применении динамической смены графиков основан аппарат создания видеофайлов анимации (см. разд. 16.5), который делает результаты работы в особенно эффектными. К тому же, Mathcad обладает целым спектром возможностей по вводу-выводу данных во внешние текстовые игра- фические файлы (см. разд. Наиболее простой и распространенный ввод-вывод данных в Mathcad реализован присваиванием и численным, либо символьным) выводом непосредственно в документе. Фактически документ Mathcad является одновременно и кодом программы и результатом ее выполнения. Поэтому самый простой и распространенный способ ввода-вывода — это непосредственное присвоение и вывод вычисленных значений в документах. Числовому вводу и выводу данных посвящена практически вся глава 4 (о вводе данных см. разд. "Типы данных, "Размерные переменные, "Массивы" гл. 4, об управлении формой вывода — разд. "Формат вывода числовых данных" гл. 4), поэтому ограничимся напоминанием об этом важном элементе системы Mathcad (листинги 16.1, 16.2). 416 16.1. Числовой ввод данных Часть IV. Оформление расчетов := 0 .. 4 := 1 А := f (х) Листинг 16.2. Числовой вывод данных (продолжение листинга 16.1) X = У А А ] • 1 . 5 2 Г 4 ) . 0 = 3 f ( х У = 1 £ Ах. Создание графиков В Mathcad встроено несколько различных типов графиков (см. рисунки главы), которые можно разбить на две большие группы Двумерные графики (декартовый) график (XY полярный график (Polar Plot). Трехмерные графики: • график трехмерной поверхности (Surface график линий уровня (Contour трехмерная гистограмма (3D Bar трехмерное множество точек (3D Scatter векторное поле (Vector Field Plot). Глава 16. Ввод-вывод данных 417 Деление графиков на типы несколько условно, т. к, управляя установками многочисленных параметров, можно создавать комбинации типов графиков, а также новые типы (например двумерная гистограмма распределения является разновидностью простого Все графики создаются совершенно одинаково, с помощью панели инструментов (График, различия обусловлены отображаемыми данными. Внимание! Некорректное определение данных приводит, вместо построения графика, к выдаче сообщения об ошибке. Чтобы создать график, например двумерный Декартов Поместите курсор ввода в то место документа, куда требуется вставить график. Если на экране нет панели Graph (График, вызовите ее нажатием кнопки с изображением графиков на панели Math (Математика. Нажмите на панели Graph (График) кнопку X-Y Plot для создания Де- картового графика или другую кнопку для иного желаемого типа графика. В в обозначенном месте документа появится пустая область графика с одним или несколькими (рис. 16.1, слева. Введите в местозаполнители имена переменных или функций, кото- должны быть изображены на графике. В случае Декартова графика это два местозаполнителя данных, откладываемых по осям хи Рис. 1 6 . 1 . Создание Декартового графика при панели Если имена данных введены правильно, нужный график появится на экране. Созданный график можно изменить, в том числе меняя сами данные, форматируя его внешний вид или добавляя дополнительные элементы оформления. Примечание Правильному заданию данных и форматированию графиков посвящены соответствующие разделы этой главы Часть IV. Оформление расчетов Самый наглядный способ создания графика — с помошью панели инструментов (График. Однако точно также создаются графики путем выбора соответствующего элемента подменю Insert / Graph (Вставка / График, показанного на рис. 16.2, либо нажатием соответствующей типу графика горячей клавиши. Чтобы удалить график, щелкните в его пределах и выберите в верхнем меню (Правка) пункт Cut (Вырезать) или Delete (Удалить [15.2]' file • ] Region fireak Component • Hath " M O ! • 16.2. Создание графика посредством меню Двумерные графики К двумерным графикам относят графики в Декартовой и полярной системах координат. Созданный однажды график одного типа нельзя переделать в график другого типа (в отличие от трехмерных фафиков). Для построения XY-графика необходимы два ряда данных, откладываемых по осям хи. график двух векторов Самый простой и наглядный способ получить Декартов график — это сформировать два вектора данных, которые будут отложены вдоль осей хи Последовательность построения графика двух векторов и у показана на рис В этом случаев местозаполнители возле осей вводятся просто имена векторов. Также допускается откладывать по осям элементы векторов, те. вводить в местозаполнители возле осей имена и соответственно (рис. 16.4). В результате получается график, на котором отложены точки, соответствующие парам элементов векторов, соединенные отрезками прямых линий. Образованная ими ломаная называется рядом данных или кривой (trace). Глава 16. Ввод-вывод данных 419 Рис. 16.3. график двух векторов Рис. график двух векторов, заданных элементами Обратите внимание, что Mathcad автоматически определяет границы графика, исходя из диапазона значений элементов векторов. Стоит отметить, что подобным образом легко создать и график столбцов или строк матрицы, применяя оператор выделения столбца и откладывая Часть IV. Оформление расчетов соответствующие выражения по осям графика (множество подобных примеров Вы на рисунках гл и 12). график вектора и ранжированной переменной В качестве переменных, откладываемых по любой из осей, можно использовать саму ранжированную переменную 16.5). При этом подругой оси должно быть отложено либо выражение, явно содержащее саму ранжированную переменную, либо элемент вектора с индексом по этой ранжированной переменной, но никак не сам вектор 16.5. Графики вектора и ранжированной переменной. график функции Нарисовать график любой скалярной функции f (х) можно двумя способами. Первый заключается в дискретизации значений функции, присвоении этих значений вектору и прорисовке графика вектора. Собственно, таки были получены графики синуса на рис. 16.3—16.5. Второй, более простой способ, называемый быстрым построением графика заключается во введении функции в один из местозаполнителей (например у оси у, а имени аргумента — в местозаполнитель у другой оси (рис. 16.6). В результате сам создает график функции в пределах значений аргумента, по умолчанию принятых равными от —10 до 10. Разумеется, впоследствии можно поменять диапазон значений аргумента, и график автоматически подстроится под него. Необходимо заметить, что если переменной аргумента функции было присвоено некоторое значение до построения в документе графика, то вместо быстрого построения графика будет нарисована зависимость функции с учетом этого значения. Примеры двух таких графиков приведены на рис. 16.7. Глава 16. Ввод-вывод данных 421 Рис. 16.6. Быстрое построение графика функции i := О . 1 6 := 1 • 0 . 4 16.7. Графики функций от векторного аргумента. Полярный график Для создания полярного графика необходимо нажать кнопку Polar Plot на панели Graph (Графики вставить в местозаполнители имена переменных и функций, которые будут нарисованы в полярной системе координат угол (нижний местозаполнитель) и радиус-вектор (левый местоза- полнитель). Точно также, как при создании Декартова графика (см. разд. по осям могут быть отложены два вектора слева, элементы векторов и ранжированные переменные в различных сочетаниях, а также может быть осуществлено быстрое построение графика функции (рис. 16.8, справа). Форматирование полярных графиков практически идентично форматированию Декартовых, поэтому все, сказанное ниже об оформлении двумерных графиков на примере графиков, в полной мере относится и к полярным Часть IV. Оформление расчетов := sin(x) 0.. 10 210 120 \ 240 90 0.6 2 7 0 X • 0 . 4 6 0 / 3 0 0 3 0 \ 3 3 0 1 5 0 2 1 0 1 2 0 2 4 0 [ P o l a r P l o t 9 0 o.6 300 270 z 1 6 . 8 . Полярные графики Построение нескольких рядов данных На одном графике может быть отложено до 16 различных зависимостей. Чтобы построить на графике еще одну кривую, необходимо выполнить дующие действия. Поместите линии ввода таким образом, чтобы они целиком захватывали выражение, стоящее в надписи координатной оси у (рис. 16.9). 2. Нажмите клавишу <,>. 3. В результате появится местозаполнитель, в который нужно ввести выражение для второй кривой. Щелкните в любом месте вне этого выражения (на графике или вне его). После этого вторая кривая будет отображена на графике. На рис. 16.9 уже нарисованы два ряда данных, а нажатие клавиши с запятой <,> приведет к появлению третьего с помощью которого можно определить третий ряд данных Примечание bЧтобы убрать один или несколько рядов данных с графика, удалите клавишами или Описанным способом будет создано несколько зависимостей, относящихся к одному аргументу. На 16.9 построены графики пар точек и одного итого же аргумента — элементов вектора Об этом говорит единственная метках у оси абсцисс. Вместе стем, имеется возможность отображения на одном и том же графике зависимостей разных аргументов Глава 16. Ввод-вывод данных 423 Для этого достаточно расставить по очереди метки всех зависимостей у обеих осей Ох У 0 |