Майер Р.В. Решение задач в MathCAD. Применение MATHCAD в инженерных расчетах: Учебное пособие Преобразование фурье в маткаде

Поскольку результатом интерполяционных формул Ньютона и Лагранжа является один и тот же полином N –го порядка, то их погрешность ведет себя одинаково.

Пример 3.4. Для исходных данных, использованных в примере 3.1, вычислим значение полинома Ньютона. Сначала заполним таблицу разделенных разностей:

F(xi ,xj )

F(xi ,xj ,xk )

F(x0 ,x1 ,x2 ,x3 )

z–xi

Используя формулу Ньютона, получим:

P 3 (1)= –1+0.6 1+(–0.1) 1 (–1)+0.0857 1 (–1) (–2)= –0.129.

3.6 Ряды Фурье

Ряд Фурье позволяет изучать как периодические, так и непериодические функции, разлагая их на компоненты. Переменные токи и напряжения, смещения, скорость и ускорение кривошип- но-шатунных механизмов, акустические волны - это типичные практические примеры применения периодических функций в инженерных расчетах. В терминах обработки сигналов преобразование Фурье берет представление функции сигнала в виде временных рядов и отображает его в частотный спектр. То есть оно превращает функцию времени в функцию частоты; это разложение функции на гармонические составляющие на различных частотах. Преобразование Фурье может представить сигнал, изменяющийся во времени, в виде зависимости частоты и амплитуды, также оно даѐт информацию о фазе (рис.3.4).

Разложение в ряд Фурье основывается на предположении, что все имеющие практическое значение функции в интервале π ≤x≤ π можно выразить в виде сходящихся тригонометрических рядов (ряд считается сходящимся, если сходится последовательность частичных сумм, составленных из его членов).

Согласно гипотезе Фурье не существует функции, которую нельзя было бы разложить в тригонометрический ряд. Разложим функцию f (t ) в ряд на отрезке [–π, π]

f (t ) = a 0 /2 + a 1 cos(t ) + a 2 cos(2t ) + a 3 cos(3t ) + … + b 1 sin(t ) + b 2 sin(2t ) + b 3 sin(3t )+…,

где n-ые элементы ряда выражаются как

f (t) cos(nt)dt ,

Рис. 3.4. Иллюстрация к разложению в ряд Фурье

Коэффициенты a n и b n называют коэффициентами Фурье , а представление функции f (t ) по формуле (3.1) – разложением в ряд Фурье . Иногда разложение в ряд Фурье, представленное в таком виде, называют действительным разложением в ряд Фурье, а коэффициенты – действительными коэффициентами Фурье (в отличие от комплексного разложения).

Проанализируем выражения (3.2) и (3.3). Коэффициент a 0 представляет собой среднее значение функции f (t ) на отрезке [–π, π] или постоянную составляющую сигнала f (t ). Коэффициенты a n и b n (при n > 0) – это амплитуды косинусных и синусных составляющих функции (сигнала) f (t ) с угловой частотой равной n . Другими словами, данные коэффициенты задают величину частотных составляющих сигналов. Например, когда мы говорим о звуковом сигнале с низкими частотами (например, звуки бас-гитары), это означает, что коэффициенты a n и b n больше при меньших значениях n и наоборот – в высокочастотных звуковых

колебаниях (например, звук скрипки) больше при больших значениях n .

Колебание самого большого периода (или самой низкой частоты), представленное суммой a 1 cos(t ) и b 1 sin(t ) называют колебанием основной частоты или первой гармоникой. Колебание с периодом равным половине периода основной частоты – второй гармоникой, колебание с периодом равным 1/n основной частоты – n -гармоникой. Таким образом, с помощью разложения функции f (t ) в ряд Фурье, мы можем осуществить переход из временной области в частотную. Такой переход обычно необходим для выявления особенностей сигнала, которые «незаметны» во временной области.

Обратим внимание, что формулы (3.2) и (3.3) применимы для периодического сигнала с периодом равным 2π. В общем случае в ряд Фурье можно разложить периодический сигнал с периодом T , тогда при разложении используется отрезок [–T /2, T /2]. Период первой гармоники равен T и составляющие примут вид cos(2πt /T ) и sin(2πt /T ), составляющие n -гармоники - cos(2πtn /T ) и sin(2πtn /T ). Если обозначить угловую частоту первой гармоники ω0 = 2π/T , тогда составляющие n -гармоники принимают вид cos(ω0 nt ), sin(ω0 nt ) и

cos(nt ) b sin(nt ) ,

f (t)

где коэффициенты Фурье вычисляются по формулам

T / 2

(t ) cos(0 nt )dt ,

T / 2

f (t ) sin(0 nt )dt .

T / 2

T / 2

Разложение в ряд Фурье используется для гармонического или спектрального анализа периодических сигналов. Для спектрального анализа непериодических сигналов используется преобразование Фурье. Для этого ряд (3.4) представим, используя систему базисных функций в виде экспонент с мнимыми показателями:

2 j nt

f (t)

C n exp(

T / 2

2 j nt

f (t ) exp(

T / 2

Опустив ряд выкладок, выражение (3.6) запишем в виде

C () f (t ) exp(j t )dt .

Данная формула называется прямым преобразованием Фурье или преобразованием Фурье. Обычно преобразование Фурье обозначают той же (только прописной) буквой, что и аппроксимируемая функция (которая обычно обозначается строчной бук-

F () f (t ) exp(j t )dt .

Функция F (ω) называется функцией спектральной плотности (или просто спектральной плотностью, преобразованием Фурье, Фурье-образом). Область значений функции F (ω) в общем случае является множество комплексных чисел.

Обратное преобразование Фурье, обеспечивающее восста-

новление исходной функции f (t ) по функции спектральной плотности вычисляется следующим образом

f (t ) F () exp(j t )dt .

Дискретное преобразование Фурье (ДПФ, DFT - Discrete Fourier Transform) - это одно из преобразований Фурье, широко применяемых в алгоритмах цифровой обработки сигналов (его модификации применяются в сжатии звука в MP3, сжатии изображений в JPEG и др.), а также в других областях, связанных с анализом частот в дискретном (к примеру, оцифрованном аналоговом) сигнале. Дискретное преобразование Фурье требует в качестве входа дискретную функцию. Такие функции часто создаются путѐм дискретизации (выборки значений из непрерывных функций). Недостатком данного алгоритма является большой объем повторяющихся вычислений. Устранение этих избыточных операций приводит к так называемому алгоритму

быстрого преобразования Фурье, который обычно и используется.

Быстрое преобразование Фурье (БПФ, FFT) - алгоритм быстрого вычисления дискретного преобразования Фурье (ДПФ). То есть алгоритм вычисления за число действий, меньшее чем O(N 2 ), требуемых для прямого (по формуле) вычисления ДПФ (N - количество значений сигнала, измеренных за период, а также количество компонент разложения). Иногда под БПФ понимается один из быстрых алгоритмов, называемый алгоритмом прореживания по частоте/времени или алгоритмом по основанию 2.

Для того чтобы реализовать преобразование Фурье в пакете MathCAD , необходимо на панели Symbolic выбрать оператор fourier для прямого преобразования и invfourier - для обратного. Этот оператор нужно поместить следом за функцией, которую нужно преобразовать, а в качестве единственного параметра нужно указать переменную, относительно которой эта функция будет преобразована. Примеры использования показа-

ны рис. 3.5 для функции f (t ) e 2 t и на рис. 3.6, где к функции f (t ) применяется амплитудно-частотная модуляция, а далее результат раскладывается в ряд.

Рис. 3.5. Пример разложения в ряд Фурье с помощью символьной функции fourier

Рис. 3.6. Пример разложения в ряд Фурье с помощью символьной функции fourier

MathCAD содержит функции для быстрого дискретного преобразования Фурье (БПФ) и его обращения. Существует два типа функций для дискретного преобразования Фурье: fft и ifft , cfft и icfft . Эти функции дискретны: они берут в качестве аргументов и возвращают векторы и матрицы.

Функции fft и ifft используются, если выполнены следующие условия: (1) аргументы вещественные; (2) – вектор данных имеет 2m элементов.

Во всех прочих случаях используются функции cfft и icfft .

Соблюдать первое условие необходимо, потому что функции fft и ifft используют тот факт, что для вещественных данных вторая половина преобразования Фурье является комплексно – сопряженной с первой. MathCAD отбрасывает вторую половину вектора результата, что сохраняет время и память при вычислениях. Пара функций cfft и icfft не используют симметрию в преобразовании и могут использоваться для вещественных и комплексных чисел.

Второе условие требуется, потому что пара функций fft и ifft используют высокоэффективный алгоритм быстрого преобразования Фурье. Для этого вектора аргумента, используемо-

го функцией fft , должен состоять из 2m элементов. Алгоритм функций cfft и icfft допускает в качестве аргументов векторы и матрицы произвольного размера. Для двухмерного преобразования Фурье используются только эти функции. Функции fft и ifft , cfft и icfft взаимно обратные друг другу, то есть справедливо:

и icfft(cfft(v)) v .

На рис. 3.7 проиллюстрировано использование функций ff t(v) и ifft(v) для сигнала синусоидальной формы, на который наложены помехи с помощью функции rnd(x) , генерирующей случайные числа в диапазоне от 0 до x .

Рис. 3.7. Прямое и обратное преобразование Фурье с помощью функций fft и ifft

На данных графиках приведен Фурье образ сигнала c и сравнение исходного сигнала x с восстановленным из Фурье-образа. Б олее подробно о Фурье-анализе можно прочесть в и .

3.7 Метод наименьших квадратов

Во всех вышеизложенных методах приближения функции условия интерполяции выполнялось точно. Однако в тех случаях, когда исходные данные x i , f i , i= 1,…,N, заданы с некоторой погрешностью, можно требовать лишь приближенное выпол-

нение условий интерполяции: |F(x i ) – f i |< . Это условие означает, что интерполирующая функция F(x) проходит не точно через заданные точки, а в некоторой их окрестности, так, например, как это показано на рис. 3.8. Приблизим исходные данные глобальным полиномом. Если решать задачу интерполяции точно, то полином должен иметь степень N . При рассмотрении полинома Лагранжа мы выяснили, что полином N –й степени хорошо приближает исходную функцию только при небольших значениях N .

Рис. 3.8. Приближенное выполнение условий интерполяции

Будем искать полином низкой степени, например, P 3 (x )=a 1 +a 2 x+a 3 x 2 +a 4 x 3 . Если N >4, то точная задача решений не имеет: для четырех неизвестных коэффициентов (a 1 , a 2 , a 3 , a 4 ) условия интерполяции дают N >4 уравнений. Но теперь точного выполнения условий интерполяции не требуется, мы хотим, чтобы полином проходил рядом с заданными точками. Существует много таких полиномов, каждый из которых определяется своим набором коэффициентов. Среди всех возможных полиномов этого вида выберем тот, что имеет наименьшее среднеквадратичное отклонение в узлах интерполяции от заданных значений, т.е. многочлен должен быть самым близким к заданным точкам из всех возможных многочленов третьей степени в смысле метода наименьших квадратов (МНК). В i –й точке по-

лином P 3 (x ) отклоняется от значения f i на величину (P 3 (x i ) – f i ) . Суммируем квадраты отклонений полинома по всем точкам i= 1, 2,…, N, получим функционал квадратов отклонений:

G(a1 ,a2 ,a3 ,a4 ) (P3 (xi ) fi )2

a2 xi a3 xi 2 a4 xi 3 fi )2 .

Найдем минимум этого функционала. Для этого приравняем нулю его частные производные по переменным a 1 , a 2 , a 3 , a 4 . Используя стандартные правила дифференцирования, получим:

2 (a 1

a2 xi a3 xi 2 a4 xi 3 fi ) 0

a3 xi 2 a4 xi 3 fi ) 0

G 2 xi (a1 a2 xi

2 x i 2 (a 1

a2 xi

a3 xi 2 a4 xi 3 fi ) 0

2 x i 3 (a 1

a2 xi

a3 xi 2 a4 xi 3 fi ) 0

Собирая коэффициенты при неизвестных a i , получим СЛАУ относительно вектора неизвестных (a 1 , a 2 , a 3 , a 4 ):

N a1 xi a2 xi 2

a3 xi 3 a4 fi

xi 2 a2

xi 3 a3

xi 4

f i x i

xi 2 a1

xi 3 a2

xi 4 a3

xi 5

f i x i2

xi 3 a1

xi 4 a2

xi 5 a3

xi 6

f i x i3

Полученная система называется нормальной . Для ее решения используют стандартные методы решения СЛАУ. Как правило, число неизвестных системы (т.е. число коэффициентов интерполирующей функции) невелико, поэтому можно использовать точные методы решения СЛАУ, например, метод Крамера или метод Гаусса. Метод наименьших квадратов позволяет «приблизить» исходные данные с помощью линейной комбинации любых элементарных функций. Часто используются приближения линейной F (x )=a 1 +a 2 x, , тригонометрической F (x )=a 1 sin(x )+a 2 cos(x ), экспоненциальной F (x )=a 1 e x

N a1 xi a2

xi a1 xi 2 a2 fi xi

Вычисляем

xi 2 ,

f i x i ,

подставляем в нормальную

Рис. 3.9. Подбор линейной

5 a 1.4a

зависимости МНК

0.148. График функции F (x )=-0.04+0.57x показан на рис. 3.9 сплошной линией. Точками показаны исходные данные. Можно видеть, что найденная линейная функция действительно приближает заданные точки.

В MathCAD метод наименьших квадратов тесно связан с линейной регрессией (y(x) = b + ax ), поскольку коэффициенты a и b вычисляют из условия минимизации суммы квадратов ошибок |b + ax i – y i |. Для расчета в MathCAD имеются два дублирующих друг друга способа:

line (x,y) возвращает вектор из двух элементов коэффициентов линейной регрессии b + ax ;

11. ЭЛЕКТРИЧЕСКОЕ И МАГНИТНОЕ ПОЛЕ

Задача 34. Два точечных электрических заряда q 1 , q 2 имеют координаты (X 1 ,Y 1) и (X 2 ,Y 2). Рассчитайте распределение потенциала электрического поля, постройте эквипотенциальные линии и поверхность φ=φ(x,y).

Потенциал электрического поля, создаваемого зарядами q i с координатами (X i ,Y i), i=1, 2, ... в точке (x,y) равен:

Результаты расчета эквипотенциальных линий и поверхности φ=φ(x,y) --- в документе 24.mcd. Заряды положительные, поэтому по мере приближения к каждому из них потенциал возрастает.

Задача 35. Рядом с заряженной пластиной расположены два точечных заряда. Изучите распределение потенциала и постройте силовые линии напряженности электрического поля.

Зависимость φ=φ(x,y) определяется как в предыдущей задаче, напряженность электрического поля в двумерном случае равна:

Для построения силовых линий вычисляются проекции вектора напряженности на оси координат и создается матрица E i,j:=Ex(x i ,y j)+ 1i· Ey(x i ,y j) и нормированная матрица A i,j , используемая для построения векторного поля (25.mcd).

Задача 36. Рассчитайте индукцию магнитного поля, создаваемого двумя витками с током, и постройте силовые линии в случаях, когда токи сонаправлены и противоположно направлены.

Рассмотрим виток с током, лежащий в плоскости XOY, с центром в точке O. Разобъем его на элементы dl s , определим элементарный магнитный момент, создаваемый каждым элементом в точке наблюдения, и просуммируем их.

Элемент витка и точка наблюдения имеют координаты (r·cosφ s , r·sinφ s , 0), и (x, y, z) соответственно. Для расчета индукции магнитного поля используется закон Био--Савара--Лапласа:

где μ 0 --- магнитная постоянная, I --- сила тока. Решение приведено в документе 26.mcd. Витки расположены параллельно плоскости XOY, на экране получаются силовые линии магнитного поля в плоскости YOZ.

Задача 37. В рассмотренном случае постройте график зависимости модуля индукции магнитного поля от координаты вдоль оси витков с током и перпендикулярно ей.

Задача 38. Получите проекции вектора индукции магнитного поля на плоскость перпендикулярную оси соленоида (витка) с током.

Задача 39. Рассчитайте магнитное поле, создаваемое двумя (тремя) параллельными проводниками, по которым текут токи в различных направлениях.

Задача 40. Изучите магнитное поле, создаваемое соленоидом и прямолинейным проводником с током. Получите проекции индукции магнитного поля на плоскость, содержащую проводник с током.

Задача 41. Имеется два соленоида, расположенных соосно по отношению друг к другу. Постройте силовые линии магнитного поля в случаях, когда токи текут в одном направлении и в противоположных направлениях (27.mcd).

Тригонометрические ряды Фурье с помощью Mathcad.

Цель работы

Научиться раскладывать периодические функции в тригонометрические ряды Фурье с помощью Mathcad и строить графики частичных сумм ряды Фурье.

Оборудование

Пакет программ MathCAD.

Ход работы

Вариант

1) Разложить функцию в тригонометрический ряд Фурье

2) Разложить функцию в тригонометрический ряд Фурье по косинусам

3) Разложить функцию в тригонометрический ряд Фурье по синусам

Допуск к работе

3.2.1 Тригонометрическим рядом Фурье функции называют функциональный ряд вида

3.2.4 Для функции f(x) вычислены коэффициенты Фурье (при разложении её по косинусам)

a 1 = 5, a 2 = 6, a 3 = 7

Запишите тригонометрический ряд Фурье

3.2.5 Функцию f(x) раскладывают в ряд Фурье по синусам (нечётным образом), тогда

Лист
№ докум.№
Подпись
Лист
№ докум.
Подпись
Дата
Лист

3.1.2. Найти числовые характеристики случайной величины x (x – выигрыш владельца одного лотерейного билета).

В лотерее разыгрываются ____ билетов.

Из них выигрывают по ____ рублей

Из них выигрывают по ____ рублей.

3.1.3. Найти числовые характеристики случайной величины «х»

а). 0,15 б) -0,35 в) 0,35 г) 0,25 д) не определить.

3.2.3 В лотерее 200 билетов. Выигрышных билетов 30. Какова вероятность того, что билет не выигрышный?

а). 1,7 б) 0,7 в) 0,17 г) 0,85 д) 0,15

3.2.4 Запишите формулу для вычисления дисперсии дискретной случайной величины.

3.2.5 Запишите формулу для вычисления среднего квадратического отклонения дискретной случайной величины.

________________________________________________________________________________

3.2.6. Д (у) = 25. Чему равно среднее квадратическое отклонение?

а). ± 5 б) 5 в) -5 г) не определить.

3.2.7 Как в MathCAD можно решить уравнение

______________________________________________________________________________

К работе допускается ______________

Результаты работы

4.1. М(х) = ____________ Д(х) = ____________ σ (х) = ___________

Лист
№ докум.
Подпись
Дата
Лист
ПР.140448.00.00
ПРАКТИЧЕСКАЯ РАБОТА 12

Нахождение точечных и интервальных оценок

неизвестных параметров распределения в Excel

1. Цель работы

По данной выборке научиться определять числовые характеристики выборки и оценивать неизвестные параметры генеральной совокупности, оценивать с данной доверительной вероятностью математическое ожидание генеральной совокупности.

2.Оборудование:

IBM PC, программная оболочка Microsoft Excel.

Ход работы

3. 1 Вариант

Оценить с заданной доверительной вероятностью γ= математическое ожидание генеральной совокупности по данной выборке

_____________________________________________________________________________________

3. 2 Допуск к работе

1. Как вычисляется среднее выборочное?

2. Как вычисляется выборочная дисперсия?

____________________________________________________________________________________________________________________________________________________________

3. Как вычисляется среднее квадратичное отклонение?

____________________________________________________________________________________________________________________________________________________________

4. Как вычисляется исправленная выборочная дисперсия?

____________________________________________________________________________________________________________________________________________________________

5. Чем точечная оценка неизвестного параметра распределения отличается от интервальной?

____________________________________________________________________________________________________________________________________________________________

6. Как вычисляется интервал для оценки математического ожидания генеральной совокупности?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________


7. Как обозначается коэффициент Стьюдента?

Изм.
Лист
№ докум.
Подпись
Дата
Лист
ПР.140448.00.00
____________________________________________________________________________________________________________________________________________________________

8. От чего зависит величина коэффициента Стьюдента?

____________________________________________________________________________________________________________________________________________________________

К работе допускается:______________________________________________

Результаты работы

σ в = S в = t γ =

Вывод

В ходе выполнения данной работы применил формулы точечных и интервальных оценок____________________________________________________________

_________________________________________________________________



Изм.
Лист
№ докум.
Подпись
Дата
Лист
ПР.140448.00.00

Математический смысл преобразования Фурье состоит в представлении сигнала у(х) в виде бесконечной суммы синусоид вида F(v)sin(vx). Функция F(v) называется преобразованием Фурье или интегралом Фурье, или Фурье-спектром сигнала. Ее аргумент v имеет смысл частоты соответствующей составляющей сигнала. Обратное преобразование Фурье переводит спектр F(V) в исходный сигнал у(х). Согласно определению,

Как видно, преобразование Фурье является существенно комплексной величиной, даже если сигнал действительный.

Преобразование Фурье действительных данных

Преобразование Фурье имеет огромное значение для различных математических приложений, и для него разработан очень эффективный алгоритм, называемый БПФ (быстрым преобразованием Фурье). Этот алгоритм реализован в нескольких встроенных функциях Mathcad, различающихся нормировками.

  • fft(y) - вектор прямого преобразования Фурье;
  • FFT(Y) - вектор прямого преобразования Фурье в другой нормировке;
  • ifft(v) - вектор обратного преобразования Фурье;
  • IFFT(V) - вектор обратного преобразования Фурье в другой нормировке;
    • у - вектор действительных данных, взятых через равные промежутки значений аргумента;
    • v - вектор действительных данных Фурье-спектра, взятых через равные промежутки значений частоты.

Аргумент прямого Фурье-преобразования, т. е. вектор у, должен иметь ровно 2 n элементов (n - целое число). Результатом является вектор с 1+2 n-1 элементами. И наоборот, аргумент обратного Фурье-преобразования должен иметь 1+2 n-1 элементов, а его результатом будет вектор из 2 n элементов. Если число данных не совпадает со степенью 2, то необходимо дополнить недостающие элементы нулями.

Рис. 15.24. Исходные данные и обратное преобразование Фурье (листинг 15.20)

Пример расчета Фурье-спектра для суммы трех синусоидальных сигналов разной амплитуды (показанных в виде сплошной кривой на рис. 15.24), приведен в листинге 15.20. Расчет проводится по N=128 точкам, причем предполагается, что интервал дискретизации данных ух равен А. В предпоследней строке листинга применяется встроенная функция if ft, а в последней корректно определяются соответствующие значения частот Qx. Обратите внимание, что результаты расчета представляются в виде модуля Фурье-спектра (рис. 15.25), поскольку сам спектр является комплексным. Очень полезно сравнить полученные амплитуды и местоположение пиков спектра с определением синусоид в листинге 15.20.

Листинг 15.20. Быстрое преобразование Фурье

Рис. 15.25. Преобразование Фурье (листинг 15.20)

Результат обратного,преобразования Фурье показан в виде кружков на том же рис. 15.24, что и исходные данные. Видно, что в рассматриваемом случае сигнал у(х) восстановлен с большой точностью, что характерно для плавного изменения сигнала.

Преобразование Фурье комплексных данных

Алгоритм быстрого преобразования Фурье для комплексных данных встроен в соответствующие функции, в имя которых входит литера "с".

  • cfft(y) - вектор прямого комплексного преобразования Фурье;
  • CFFT(y) - вектор прямого комплексного преобразования Фурье в другой нормировке;
  • icfft(y) -вектор обратного комплексного преобразования Фурье;
  • ICFFT(V) - вектор обратного комплексного преобразования Фурье в другой нормировке;
    • у - вектор данных, взятых через равные промежутки значений аргумента;
    • v - вектор данных Фурье-спектра, взятых через равные промежутки значений частоты.

Функции действительного преобразования Фурье используют тот факт, что в случае действительных данных спектр получается симметричным относительно нуля, и выводят только его половину (см. выше разд. "Преобразование Фурье действительных данных" этой главы). Поэтому, в частности, по 128 действительным данным получалось всего 65 точек спектра Фурье. Если к тем же данным применить функцию комплексного преобразования Фурье (рис. 15.26), то получится вектор из 128 элементов. Сравнивая рис. 15.25 и 15.26, можно уяснить соответствие между результатами действительного и комплексного Фурье-преобразования.

Рис. 15.26. Комплексное преобразование Фурье (продолжение листинга 15.20)

Двумерное преобразование Фурье

В Mathcad имеется возможность применять встроенные функции комплексного преобразования Фурье не только к одномерным, но и к двумерным массивам, т. е. матрицам. Соответствующий пример приведен в листинге 15.21 и на рис. 15.27 в виде графика линий уровня исходных данных и рассчитанного Фурье-спектра.

Листинг 15.21. Двумерное преобразование Фурье

Рис. 15.27. Данные (слева) и их Фурье-спектр (справа) (листинг 15.21)

Mathcad содержит функции для выполнения быстрого дискретного преобразования Фурье (БПФ) и его обращения. В Mathcad PLUS имеется также одномерное дискретное волновое преобразование и его обращение. Все эти функции имеют векторные аргументы. При определении вектора v для нахождения волнового преобразования или преобразования Фурье убедитесь, что первый элемент вектора имеет нулевой индекс: v 0 . Если элемент v 0 не определен, Mathcad автоматически устанавливает его равным 0. Это может привести к искажению результата.

Введение в дискретное преобразование Фурье

В Mathcad входят два типа функций для дискретного преобразования Фурье: fft/ifft и cfft /icfft . Эти функции дискретны: они берут в качестве аргументов и возвращают векторы и матрицы. Они не могут быть использованы с другими функциями.Используйте функции fft и ifft , если выполнены следующие два условия:
  • аргументы вещественны, и
  • вектор данных имеет 2 m элементов.

Используйте функции cfft и icfft во всех других случаях.
Первое условие необходимо, потому что функции fft/ifft используют тот факт, что для вещественных данных вторая половина преобразования Фурье является комплексно сопряженной с первой. Mathcad отбрасывает вторую половину вектора-результата. Это сохраняет и время и память при вычислениях.

Пара функций cfft/icfft не использует симметрию в преобразовании. По этой причине необходимо использовать их для комплексных данных. Так как вещественные числа - подмножество комплексных чисел, можно также использовать пару cfft/icfft для вещественных чисел.

Второе условие требуется, потому что пара функций fft/ifft использует высоко эффективный алгоритм быстрого преобразования Фурье. Для этого вектор аргумента, используемого с fft , должен иметь 2 m элементов. В функциях сfft/icfft использован алгоритм, который допускает в качестве аргументов как матрицы, так и векторы произвольного размера. Когда эта пара функций используется с матрицей в качестве аргумента, вычисляется двумерное преобразование Фурье.

Обратите внимание, что, если использована функция fft для прямого преобразования, необходимо использовать функцию ifft для обратного. Аналогично, если для прямого преобразования использована cfft , то для обратного необходимо использовать icfft .

Различные формулировки определения преобразования Фурье используют различные нормировочные коэффициенты и соглашения о знаке перед мнимой единицей в показателе экспоненты прямого и обратного преобразований. Функции fft, ifft, cfft и icfft используют 1/ как нормировочный коэффициент и положительный показатель степени в прямом преобразовании. Функции FFT , IFFT , CFFT и ICFFT используют 1/N как нормировочный коэффициент и отрицательный показатель степени в прямом преобразовании. Необходимо использовать эти функции попарно. Например, если используется CFFT в прямом преобразовании, необходимо использовать ICFFT в обратном.

Преобразование Фурье в вещественной области

Для вещественнозначных векторов с 2 m элементами можно применять пару функций fft/ifft . В алгоритме вычисления этих функций используются преимущества симметрии, существующей только для вещественных данных. Это позволяет сохранить и время, и память, необходимые для вычислений. Вектор v должен иметь 2 m элементов. Результат - комплекснозначный вектор размерности 1+2 m-1 . Если v имеет размерность отличную от 2 m , Mathcad выдает сообщение об ошибке “неверный размер вектора ”.

Элементы вектора, возвращаемого fft, вычисляются по формуле

В этой формуле n - число элементов в v , i - мнимая единица.

Элементы в векторе, возвращенном функцией fft , соответствуют различным частотам. Чтобы восстанавливать фактическую частоту, необходимо знать частоту измерения исходного сигнала. Если v есть n -мерный вектор, переданный функции fft , и частота измерения исходного сигнала - f s , то частота, соответствующая, равна

Обратите внимание, что это делает невозможным обнаружить частоты выше частоты измерения исходного сигнала. Это - ограничение налагаемое не Mathcad, а самой сутью проблемы. Чтобы правильно восстанавливать сигнал по его преобразованию Фурье, необходимо произвести измерения исходного сигнала с частотой, по крайней мере вдвое большей, чем ширина полосы частот. Полное обсуждение этого явления лежит за пределами данного руководства, но его можно найти в любом учебнике по цифровой обработке сигналов.

Вектор v должен иметь 1+ 2 m элементов, где m - целое. Результат есть комплекснозначный вектор размерности 2 m+1 . Если v имеет размерность, отличную от 1+ 2 m , Mathcad выдает сообщение об ошибке “неверный размер вектора ”.Аргумент v - вектор, подобный созданному функцией fft. Чтобы вычислить результат, Mathcad сначала создает новый вектор w , комплексно сопряженный v , и присоединяет его к вектору v . Затем Mathcad вычисляет вектор d , чьи элементы вычисляются по формуле:

Это та же самая формула, что и для fft , кроме знака минус в функции exp . Функции fft и ifft - точные обращения. Для всх вещественнозначных v справедливо ifft(fft(v))=v.

Преобразование Фурье в комплексной области

Имеются две причины, по которым не могут быть использованы пары преобразований fft/ifft, обсужденные в предыдущем разделе:
  • Данные могут быть комплекснозначны. Это означает, что Mathcad не может больше использовать симметрию, имеющую место в вещественном случае.
  • Вектор данных может иметь размерность, отличную от 2 m . Это означает, что Mathcad не может пользоваться преимуществом высокоэффективного алгоритма БПФ, используемого парой fft/ifft .
Комплексное преобразование Фурье требует следующих функций:
Рисунок 3: Использование быстрых преобразований Фурье в Mathcad.

Пара преобразований cfft/icfft может работать с массивами любого размера. Однако они работают значительно быстрее, когда число строк и столбцов может быть представлено в виде произведения большого количества меньших сомножителей. Например, векторы с длиной 2 m относятся к этому классу, так же как и векторы, имеющие длины, подобные 100 или 120. С другой стороны, вектор, чья длина - большое простое число, замедлит вычисление преобразования Фурье.

Функции cfft и icfft - обратные друг к другу. То есть icfft(cfft(v))=v. Рисунок 3 показывает примеры использования преобразования Фурье в Mathcad.

Когда в качестве аргумента cfft используется матрица, результат есть двумерное преобразование Фурье исходной матрицы.

Альтернативные формы преобразования Фурье

Определения преобразования Фурье, обсужденные выше, не являются единственно возможными. Например, следующие определения для дискретного преобразования Фурье и его обращения можно найти в книге Ronald Bracewells, The Fourier Transform and Its Applications (McGraw-Hill, 1986): Эти определения весьма распространены в технической литературе. Чтобы использовать эти определения вместо обсужденных в предыдущем разделе, используйте функции FFT , IFFT , CFFT и ICFFT . Они отличаются следующим:

Функции FFT , IFFT , CFFT и ICFFT используются аналогично функциям, обсужденным в предыдущем разделе.

Волновое преобразование

A Mathcad PLUS включены две функции волновых преобразований: для выполнения прямого одномерного дискретного волнового преобразования и его обращения. Преобразование выполняется с использованием четырехкоэффициентного волнового базиса Даубечи.