Устойчивость БПФ/ОБПФ на "длинных" сигналах

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Устойчивость БПФ/ОБПФ на "длинных" сигналах

Сообщение Santik »

На процедуры двойной точности перешел :
call DFFTCF(n,X,FX)
call DFFTCB(n,FX,X)
Пока накопить ошибку тоже не удается...
Ну вот, после вычислений с двойной точностью:

M= 100000000
0.000E+00 0.000E+00
0.100E+01 -0.153E-08
0.000E+00 0.000E+00
0.000E+00 0.153E-08
0.000E+00 0.000E+00
0.000E+00 -0.153E-08
0.000E+00 0.000E+00
0.000E+00 0.153E-08

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: Устойчивость БПФ/ОБПФ на "длинных" сигналах

Сообщение Ivan Karamazov »

Я, конечно, должен сказать спасибо, что и делаю :)
На самом деле я (на данный момент) практически не сомневаюсь в устойчивости БПФ применительно к моим задачам, причем с хорошим запасом. Чисто для общего образования -- меня попрежнему смущает (чисто теоритически), на мой вкус немыслимая фича FFTW -- работа с числом отсчетов более 2**31-1. Равно как и вот такой фрагмент факов с fftw.org:
Question 3.4. FFTW slows down after repeated calls.
Probably, NaNs or similar are creeping into your data, and the slowdown is due to the resulting floating-point exceptions. For example, be aware that repeatedly FFTing the same array is a diverging process (because FFTW computes the unnormalized transform).
Здесь не вполне понятно, то ли причина в том, что между преобразованиями не выполнялась нормализация (прямое FFTW воззвращает ненормализованный спектр, для 1-D варианта каждую компоненту следует делить на число отсчетов), то ли... Во всяком случае, факт что FFTW внутри себя (успешно??) борется с возникающими в процессе вычислений "NaNs or similar" -- очень задумывает.
Еще раз, проблема (как проблема, а не праздный интерес) для меня снята.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

Ответить