Дискретное преобразование Фурье
Для выполнения дискретного преобразования Фурье функции нужно задать набор ее значений в равноотстоящих узлах. Этот набор задается в МС как вектор. Чтобы создать такой вектор, нужно выбрать отрезок, на котором производится разложение функции в ряд Фурье. Если функция периодическая, то длина отрезка берется равной периоду. В противном случае берется отрезок, на котором сосредоточены важные для пользователя значения функции. Если отрезок будет небольшим, то частоты гармоник будут разделены большими интервалами и дискретное преобразование Фурье будет плохо соответствовать непрерывному преобразованию.
После того как выбран отрезок, нужно выбрать число узлов на отрезке. Это число также должно быть большим, чтобы коэффициенты ряда Фурье были вычислены достаточно точно.
В качестве примера возьмем функцию
Отрезок возьмем [−10;], чтобы ненулевой график был в середине отрезка. Тогда. Так как формулы (9) применялись к отрезку [0; T], то нам придется функцию продолжить периодически на всю ось с периодомT и взять ее описание на этом промежутке. График функции приведен на рис. 47.
Всоответствии с графиком функцию на отрезке [0;T] можно записать в виде
При выборе числа узлов нужно учитывать следующий аспект. Система МС при выполнении дискретного преобразования Фурье использует так называемое быстрое преобразование Фурье. Это особый способ вычисления коэффициентов в формуле (9), требующий меньшего числа арифметических операций, чем непосредственный счет по формуле (9).
Наиболее экономичным счет получается, если число узлов N является степенью двойки: . Поэтому возьмем. Тогда расстояние между соседними узлами будет равно. Положим. Запишем в системе МС функцию. Заметим, что эта формула верна только на отрезке [0; T]. Установим нумерацию индексов с 0. Создадим вектор значений функции, для набора двоеточия потребуется нажать клавишу «;»:
Для выполнения быстрого преобразования Фурье в МС существуют четыре функции: fft, cfft, FFT, CFFT. Эти функции можно найти, щелкнув на панели инструментов на кнопке , в раскрывшемся окне слева нужно выбрать разделFourier Transform. Функции, написанные малыми буквами, отличаются на числовой множитель от функций, записанных большими буквами и сменой знака у индекса.Они соответствуют симметричной записи преобразования Фурье. Функции FFT, CFFT соответствуют формулам (9). Функция FFT применяется, если значения функции вещественны и . В противном случае применяется функцияCFFT. Если значения функции вещественны, то получается изкомплексным сопряжением:. Поэтому функцияFFT возвращает вектор половинной длины только для неотрицательных значенийq. Функция CFFT возвращает вектор такой же длины, как и ее аргумент. Итак, . Векторw имеет лишь компонент.
Посмотрим, как распределена амплитуда по частотам. Для этого построим график модуля компонент вектораw. Создадим список узлов и построим график, в качестве аргумента указавk, а в качестве функции . График приведен на рис. 48.
График может показаться странным. Это потому, что заметные амплитуды есть только при небольших значениях k и график слился с вертикальной осью. Уменьшим число узлов , рис. 49. Теперь на графике явно видно, что наибольшие амплитуды соответствуют значениям от 0 до 10, а дальше амплитуды быстро убывают.
Для выполнения обратного дискретного преобразования Фурье используются функции:ifft, icfft, IFFT, ICFFT. По обозначениям легко догадаться, какая из них обращает действия какой функции прямого преобразования. Значение функции прямого преобразования является аргументом функции обратного преобразования. Применим IFFT к вектору w: . Посмотрим, насколько различаются векторv исходных значений функции и вектор z значений, полученных после прямого и обратного преобразований Фурье: . Видим, что отличие очень мало, т.е. обратное преобразование достаточно точно восстанавливает исходную функцию.
- Оглавление предисловие
- Основные понятия и вычислительные методы (теоретическая часть)
- Метод Гаусса
- Метод lu-разложения
- Обращение матрицы и вычисление определителя
- Число обусловленности матрицы (системы уравнений)
- Вычислительные методы для решения нелинейных уравнений
- Метод половинного деления
- Метод Ньютона (метод касательных)
- Метод секущих
- Метод итераций
- Преимущества и недостатки методов
- Методы решения систем нелинейных уравнений
- Метод Ньютона для систем уравнений
- Метод итераций для систем уравнений
- Некоторые сведения о полиномах и их корнях
- Полиномиальные уравнения
- Вычисление интегралов
- Дифференциальные уравнения (численные методы)
- Жесткие системы дифференциальных уравнений
- Аналитическое решение систем линейных дифференциальных уравнений с постоянными коэффициентами
- Нахождение экстремумов функции нескольких переменных
- Метод покоординатного спуска
- Симплекс-метод
- Метод наискорейшего спуска
- Метод Ньютона
- Преобразования Фурье и Лапласа
- Применение системы mathcad для решения вычислительных задач (практическая часть)
- Исправления
- Продолжение простейших вычислений
- Точность
- Символьные вычисления
- Переменные
- Функции пользователя
- Операции математического анализа
- Построение графиков функций одного переменного
- Задания для самостоятельной работы
- Матрицы
- Векторы
- Системы линейных уравнений
- Число обусловленности матрицы
- Собственные числа и собственные векторы матрицы
- Графики функций двух переменных
- Задания для самостоятельной работы
- Нахождение корней нелинейного уравнения
- Решение систем нелинейных уравнений
- Корни многочлена
- Наибольший общий делитель двух многочленов
- Кратные корни
- Результант
- Задания для самостоятельной работы
- Полиномиальные уравнения
- Вычисление определенных интегралов
- Решение дифференциальных уравнений
- Задания для самостоятельной работы
- Системы дифференциальных уравнений
- Решение жестких систем дифференциальных уравнений
- Решение линейных систем дифференциальных уравнений с постоянными коэффициентами
- Задания для самостоятельной работы
- Нахождение экстремумов функции
- Экстремумы функции многих переменных
- Преобразования Фурье и Лапласа
- Дискретное преобразование Фурье
- Задания для самостоятельной работы