Для вещественнозначных векторов с 2m элементами можно применять пару функций fft/ifft. В алгоритме вычисления этих функций используются преимущества симметрии, существующей только для вещественных данных. Это позволяет сохранить и время, и память, необходимые для вычислений.
fft (v)
Возвращает дискретное преобразование Фурье 2m-мерного вещественнозначного вектора. Аргумент можно интерпретировать как результат измерений через равные промежутки времени некоторого сигнала.
Вектор v должен иметь 2m элементов. Результат — комплекснозначный вектор размерности 1+2m-1. Если v имеет размерность отличную от 2m, Mathcad выдает сообщение об ошибке “неверный размер вектора”.
Элементы вектора, возвращаемого fft, вычисляются по формуле
В этой формуле n — число элементов в v, i — мнимая единица.
Элементы в векторе, возвращенном функцией fft, соответствуют различным частотам. Чтобы восстанавливать фактическую частоту, необходимо знать частоту измерения исходного сигнала. Еслиv есть n-мерный вектор, переданный функции fft, и частота измерения исходного сигнала — fs, то частота, соответствующая , равна
Обратите внимание, что это делает невозможным обнаружить частоты выше частоты измерения исходного сигнала. Это — ограничение налагаемое не Mathcad, а самой сутью проблемы. Чтобы правильно восстанавливать сигнал по его преобразованию Фурье, необходимо произвести измерения исходного сигнала с частотой, по крайней мере вдвое большей, чем ширина полосы частот. Полное обсуждение этого явления лежит за пределами данного руководства, но его можно найти в любом учебнике по цифровой обработке сигналов.
ifft (v)
Возвращает обратное дискретное преобразование Фурье; результат — вещественнозначный.
Вектор v должен иметь 1+ 2m элементов, где m — целое. Результат есть комплекснозначный вектор размерности 2m+1. Если v имеет размерность, отличную от 1+ 2m, Mathcad выдает сообщение об ошибке “неверный размер вектора”.
Аргументv— вектор, подобный созданному функцией fft. Чтобы вычислить результат, Mathcad сначала создает новый векторw, комплексно сопряженный v, и присоединяет его к вектору v. Затем Mathcad вычисляет векторd, чьи элементы вычисляются по формуле:
Это та же самая формула, что и для fft, кроме знака минус в функции exp. Функции fft и ifft — точные обращения. Для всх вещественнозначных v справедливо ifft(fft(v))=v.