Кирьянов Д. - MathCad 11 (1077323), страница 64
Текст из файла (страница 64)
15.24),приведен в листинге 15.20. Расчет проводится по N=128 точкам, причемпредполагается, что интервал дискретизации данных у£ равен Д. В предпо-Глава 15. Обработка данных407следней строке листинга применяется встроенная функция if ft, а в последней корректно определяются соответствующие значения частот О.±. Обратите внимание, что результаты расчета представляются в виде модуля Фурье-спектра (рис. 15.25), поскольку сам спектр является комплексным.Очень полезно сравнить полученные амплитуды и местоположение пиковспектра с определением синусоид в листинге 15.20.Листинг 15.20. Быстрое преобразование ФурьеN:=128хМАХхМАХ := 1 0 0i := 0 ..Д :=•N- 1Xj_ : = i • АУ1 : = s i n ( 2 • л- 0 .
0 5 • X i ) + 0 . 5 • s i n ( 2 • я • 0 . 1F:=ffti) + 0 . 25 . s i n ( 2 • п • 0 . 4(у)1xMAXРис. 1 5 . 2 5 . Преобразование Фурье{листинг 15.20}Результат обратного преобразования Фурье показан в виде кружков на томже рис. 15.24, что и исходные данные. Видно, что в рассматриваемом случаесигнал у(х) восстановлен с большой точностью, что характерно для плавного изменения сигнала.9Я4Часть III. Численные методы408Преобразование Фурье комплексных данныхАлгоритм быстрого преобразования Фурье для комплексных данных встроенв соответствующие функции, в имя которых входит литера "с".•cfft{y) — вектор прямого комплексного преобразования Фурье;• CFFT(y) — вектор прямого комплексного преобразования Фурье в другой нормировке;Пicfft(y) — вектор обратного комплексного преобразования Фурье;•IGFFT(V) — вектор обратного комплексного преобразования Фурье вдругой нормировке;• у — вектор данных, взятых через равные промежутки значений аргумента;• v — вектор данных Фурье-спектра, взятых через равные промежуткизначений частоты.Функции действительного преобразования Фурье используют тот факт, чтов случае действительных данных спектр получается симметричным относительно нуля, и выводят только его половину (см.
выше разд. "ПреобразованиеФурье действительных данных" этой главы). Поэтому, в частности, по 128действительным данным получалось всего 65 точек спектра Фурье. Если ктем же данным применить функцию комплексного преобразования Фурье(рис. 15.26), то получится вектор из 128 элементов. Сравнивая рис. 15.25и 15.26, можно уяснить соответствие между результатами действительного икомплексного Фурье-преобразования.cfft(y]1О204080100Рис.
15.26. Комплексное преобразование Фурье(продолжение листинга 15.20)120Глава 15. Обработка данных409Двумерное преобразование ФурьеВ Mathcad имеется возможность применять встроенные функции комплексного преобразования Фурье не только к одномерным, но и к двумерныммассивам, т. е. матрицам. Соответствующий пример приведен в листинге 15.21 и на рис. 15.27 в виде графика линий уровня исходных данных ирассчитанного Фурье-спектра.Листинг 15,21; Двумерное преобразование ФурьеЫ:= 6 4i := 0 ..N-1Yi,j :=sin3 : = 0 .. N - 1I+3 I10, |+ sin i|10F :=CFFT (y)F := s u b m a t r i x ( F , 7 , N - 7 , 7 , N - 7 )Re(F)Рис. 15.27. Данные (слева) и их Фурье-спектр (справа) (листинг 15.21)15.4.2.
Вейвлетное преобразованиеВ последнее время возрос интерес к другим интегральным преобразованиям, в частности вейвлетному (или дискретному волновому) преобразованию.Оно применяется, главным образом, для анализа нестационарных сигналови для многих задач подобного рода оказывается более эффективным, чемпреобразование Фурье.
Основным отличием вейвлетного преобразованияявляется разложение данных не по синусоидам (как для преобразованияФурье), а по другим функциям, называемым вейвлетобразующими. Вейвлетобразуюшие функции, в противоположность бесконечно осциллирующимсинусоидам, локализованы в некоторой ограниченной области своего аргумента, а вдали от нее равны нулю или ничтожно малы. Пример такойфункции, называемой "мексиканской шляпой", показан на рис. 15.28.Часть III. Численные методы410111HHAT(t)sin(t)0•1:/•_\•••/v-11i-s-ю0510ZРис. 1 5 . 2 8 . Сравнение синусоиды и вейвлетобразующей функцииИз-за своего математического смысла вей влет-спектр имеет не один аргумент, а два.
Помимо частоты, вторым аргументом ь является место локализации вейвлетобразующей функции. Поэтому ь имеет ту же размерность,что и х.Встроенная функция вейвлет-преобразованияMathcad имеет одну встроенную функцию для расчета вейвлет-преобразования на основе вейвлетобразующей функции Даубечи.•wave{y) — вектор прямого вейвлет-преобразования;•iwave(v) — вектор обратного вейвлет-преобразования;• у — вектор данных, взятых через равные промежутки значений аргумента;• v — вектор данных вей влет-спектра.Аргумент функции вейвлет-преобразования, т.
е. вектор у, должен так же,как и в преобразовании Фурье, иметь ровно 2П элементов (п — целое число). Результатом функции wave является вектор, скомпонованный из нескольких коэффициентов с двухпараметрического вей влет-спектра. Использование функции wave объясняется на примере анализа суммы двухсинусоид в листинге 15.22, а три семейства коэффициентов вычисленноговей влет-спектра показаны на рис. 15.29.Листинг 15.22. Поиск вейвлет-спектра Даубечи+ 0 . 3 -sin1 2-Лf ( t ) := s i n 2 -itINmax := 25650 j110i := 0 ..Nmax - 1Глава 15. Обработка данных411W := w a v e ( у)N l e v e l s :=I n (Nmax)1I n (2)Nlevels = 7k : = l , 2 .. N l e v e l sc o e f f s ( l e v e l ) •- s u b m a t r i x \ w , 2Cikl e v e l,l e v e l + 12- 1,0,0: = c o e f f s (k)floorNmaxРис. 15.29.
Вейвлет-спектр на основе функции Даубечи(листинг 15.22)Программирование других вейвлет-преобразованийПомимо встроенной функции вей влет-спектра Даубечи и возможностей пакета расширения Mathcadll, возможно непосредственное программирование алгоритмов пользователя для расчета вейвлет-спектров. Оно сводится каккуратному расчету соответствующих семейств интегралов.
Один из примеров такой программы приведен в листинге 15.23, а ее результат нарис. 15.30. Анализу подвергается та же функция, составленная из суммыдвух синусов, а график двухпараметрического спектра с{а,Ъ) выведен в виде привычных для вейвлет-анализа линий уровня на плоскости (а,Ь).(Листинг 15.23. Поиск вей влет-спектра на основе "мексиканской шляпы"f ( t):=sin2-я+ 0.3•sin50I2-ЯI10Часть III. Численные методы412dМНАТ ( t ) :=?expdt;Nmax :- 2 56ш (a . b, t) :=MHATf-bt{, b , t ) -f ( t )W ( a , b) :=dtNmaxNmax10b := 0 , 1 ..10i + 152 x 10N i i b : = W (a,](~Nmax10Примечание^Программа листинга очень проста, но исключительно далека от хорошейв смысле быстродействия. Каждый интеграл вычисляется независимо, безиспользования методов ускорения, типа применяемых в алгоритме БПФ.Рис.
15.30. Вейвлет-спектр на основе "мексиканской шляпы'(листинг 15.23}ЧАСТЬ IVОФОРМЛЕНИЕ РАСЧЕТОВГЛАВА 16Ввод-вывод данныхВ данной главе рассматриваются вопросы ввода входных данных в документы Mathcad и вывода результатов вычислений. В начале главы приведенократкое напоминание о числовом вводе-выводе значений, перечисляютсятипы данных, которые применимы в среде Mathcad (см.
разд. 16.1) при определении переменных и функций.Наиболее мощными средствами вывода результатов в Mathcad являютсяграфики, и именно их эффективному использованию посвящено основноесодержание главы (см. разд. 16.2—16.4).На применении динамической смены графиков основан аппарат созданиявидеофайлов анимации (см. разд. 16.5), который делает результаты работы вMathcad особенно эффектными. К тому же, Mathcad обладает целым спектром возможностей по вводу-выводу данных во внешние текстовые и графические файлы (см. разд. 16.6).16.1.
Числовой ввод-выводНаиболее простой и распространенный ввод-вывод данных в Mathcad реализован присваиванием и (либо численным, либо символьным) выводомнепосредственно в документе. Фактически документ Mathcad является одновременно и кодом программы и результатом ее выполнения. Поэтому самый простой и распространенный способ ввода-вывода — это непосредственное присвоение и вывод вычисленных значений в документах.Числовому вводу и выводу данных посвящена практически вся глава 4 (овводе данных см. разд. "Типы данных", "Размерные переменные", "Массивы"гл. 4, об управлении формой вывода — разд.
"Формат вывода числовых дан-ных" гл. 4), поэтому ограничимся напоминанием об этом важном элементесистемы Mathcad (листинги 16.1, 16.2).416Часть IV. Оформление расчетовЛистинг 16.1. Числовой ввод данныхi := 0 .. 4х:=1.5257285у := 1234, 56789012А :=f (х) :=х'Листинг 16.2. Числовой вывод данных (продолжение листинга 16.1)X =• 1 . 5 2 6f (х) = 2 .328У ==1234.568У = 1 .235 х 10"АА]=2•Г 1.[0з= 34( 1£ (А)10[ 1 5 22)f(i) =1616.2.
Создание графиковВ Mathcad встроено несколько различных типов графиков (см. рисунки этойглавы), которые можно разбить на две большие группы.•Двумерные графики:•XY (декартовый) график (XY Plot);• полярный график (Polar Plot).•Трехмерные графики:•график трехмерной поверхности (Surface Plot);• график линий уровня (Contour Plot);• трехмерная гистограмма (3D Bar Plot);• трехмерное множество точек (3D Scatter Plot);• векторное поле (Vector Field Plot).Глава 16.
Ввод-вывод данных417Деление графиков на типы несколько условно, т. к., управляя установкамимногочисленных параметров, можно создавать комбинации типов графиков,а также новые типы (например двумерная гистограмма распределения является разновидностью простого XY-графика).Все графики создаются совершенно одинаково, с помощью панели инструментов Graph (График), различия обусловлены отображаемыми данными.Внимание!Некорректное определение данных приводит, вместо построения графика, квыдаче сообщения об ошибке.Чтобы создать график, например двумерный Декартов:1. Поместите курсор ввода в то место документа, куда требуется вставитьграфик.2.