Текст подпрограммы и версий ( Фортран ) ftfrr.zip |
Тексты тестовых примеров ( Фортран ) tftfrr.zip |
Текст подпрограммы и версий ( Си ) ftfrr_c.zip |
Тексты тестовых примеров ( Си ) tftfrr_c.zip |
Текст подпрограммы и версий ( Паскаль ) ftfrr_p.zip |
Тексты тестовых примеров ( Паскаль ) tftfrr_p.zip |
Вычисление коэффициентов действительного преобразования Фурье или вычисление значений функции по ее действительным коэффициентам Фурье. Длина действительного ряда (преобразуемого или вычисляемого) должна быть целой степенью двух.
Пусть задан действительный ряд X длины 2 * N. При вычислении действительного преобразования Фурье ряд X преобразуется в два действительных ряда A и B длины N + 1 по формулам
2N-1 A r = (1/N) ∑ X n cos (π r n / N) , r = 0, 1, ..., N n=0 2N-1 B r = (1/N) ∑ X n sin (π r n / N) , r = 0, 1, ..., N n=0
при этом B0 = BN = 0. . Для восстановления ряда X по заданным действительным коэффициентам Фурье, элементы ряда Х вычисляются по формуле
X r = (A0 / 2) + ((- 1) r AN / 2) + N-1 + ∑ (A n cos (π r n / N) + B n sin (π r n / N)) , n=1 r = 0, 1, ..., 2N - 1
B вычислениях используется метод быстрого преобразования Фурье. При больших N число операций пропорционально N * log2N. Данная подпрограмма подробно описана в [1, стp. 47] под именем RFFT.
1. | В.А.Морозов, Н.Н.Кирсанова, А.Ф.Сысоев, Комплекс алгоритмов быстрого преобразования Фурье дискретных рядов. Сб. "Численный анализ на ФОРТРАНе". вып. 15. Изд - во МГУ, 1976 г. |
SUBROUTINE FTFRR (P, N1, N2, A, B, X)
Параметры
P - | заданная вещественная переменная, признак преобразования Фурье. Если на входе P > 0., то вычисляются коэффициенты Фурье. Если на входе P < 0., то вычисляются значения функции; |
N1 - | заданная длина массивов действительных коэффициентов Фурье, N1 = N2 / 2 + 1 (тип: целый); |
N2 - | заданная длина массива значений функции, целая степень двух (тип: целый); |
A - | вещественный массив длины N1, содержащий коэффициенты разложения Фурье по четным гармоникам. При P < 0. задается на входе подпрограммы, при P > 0. - вычисляется; |
B - | вещественный массив длины N1, содержащий коэффициенты разложения Фурье по нечетным гармоникам. При P < 0. задается на входе подпрограммы, при P > 0. - вычисляется; |
X - | вещественный массив длины N2, содержащий значения функции. При P > 0. задается на входе подпрограммы, при P < 0. - вычисляется. |
Версии: нет
Вызываемые подпрограммы
FTF1C - | вычисление дискретного или обратного дискретного преобразования Фурье комплексного ряда длины, равной степени двух, методом быстрого преобразования Фурье. |
Замечания по использованию
1. |
При вычислении коэффициентов Фурье (P > 0.) исходная информация (ряд значений функции) сохраняется. | |
2. |
При вычислении значений функции (P < 0.) исходная информация (ряды коэффициентов Фурье) не сохраняется. | |
3. |
Если на входе подпрограммы задано P = 0., то никаких вычислений не производится. | |
4. | При вычислении коэффициентов Фурье первый и последний коэффициенты разложения Фурье по нечетным гармоникам равны нулю. |
DIMENSION A(5), B(5), X(8) DATA A(1), A(2), A(3), A(4), A(5) /0., 0., 1., 0., 0./ DATA B(1), B(2), B(3), B(4), B(5) /0., 1., 0., 0., 0./ P = - 1. N1 = 5 N2 = 8 CALL FTFRR (P, N1, N2, A, B, X) Результаты: X(1) = 1.0, X(2) = 0.70710678, X(3) = 0.0, X(4) = 0.70710678, X(5) = 1.0, X(6) = -0.70710678, X(7) = -2.0, X(8) = -0.70710678