"Чи є якесь практичне застосування?" Однозначно так, принаймні для перевірки коду та пов'язаних помилок.
"Теоретично, теорія та практика відповідають. На практиці вони не відповідають". Отже, математично ні, як відповів Метт. Тому що (як уже відповіли), Ж( F( x ( t ) ) ) =x(-t) (до потенційного коефіцієнта масштабування). Однак він може бути корисним обчислювально, оскільки вищевказане рівняння зазвичай реалізується за допомогою дискретного перетворення Фур'є та його швидкого аватара - FFT.
Перша причина виникає з бажання перевірити, чи реалізація Фур'є, чи кодована вами, кимось іншим чи з бібліотеки, робить те, що повинно бути зроблено з вашими даними. Впорядкування зразків, коефіцієнти масштабування, обмеження типу введення (реальність, бітова глибина) або довжина є джерелами потенційних подальших помилок для реалізацій Фур'є, таких як FFT. Тож як перевірка обґрунтованості завжди добре перевірити, чи реалізовані версії успадковують, принаймні приблизно, теоретичні властивості. Як ви побачите, як показав Machupicchu, ви не відновлюєте точно реальний зворотний вхід: навпаки, уявна частина не є точно нульовою, а реальна частина - це те, що очікувалося, але в межах невеликої відносної помилки через недосконалі комп'ютерні обчислення. (плаваюча точка) в межах машинно залежного допуску. Це видно на наступному малюнку. FFT застосовується двічі на випадковому 32-зразковому сигналі та перевертається. Як бачите, похибка невелика, використовуючи поплавці подвійної точності.
Якщо помилка не є відносно малою, можливо, у використаному коді можуть бути помилки.
Друга стосується величезних обсягів даних або великої кількості ітераційних обчислень FFT, як при томографії. Там попередні невеликі відносні помилки можуть накопичувати та поширюватись і навіть викликати обчислювальну розбіжність або помилки деяких деталей тут . Це видно на наступному малюнку. Для не дуже довгий сигнал х0 ( 1 е 6 зразків), ми виконуємо наступні ітерації: хk + 1= R e ( f( f( f( f( хк) ) )))
,
деf позначає FFT. Відображена цифра є підпробовою. І ми обчислюємо максимальну помилкумакс | хк- х0|при кожній ітерації.
Як бачимо, порядок величини помилки змінився, через розмір сигналу. Плюс до цього, максимальна помилка постійно зростає. Після 1000 ітерацій він залишається досить малим. Але ви можете здогадатися, що з кубом 1000 × 1000 × 1000 -пікселів та мільйонами ітерацій ця помилка може стати незначною.
Обмеження помилки та оцінка її поведінки за ітераціями може допомогти виявити таку поведінку та зменшити її за допомогою відповідного порогу чи округлення.
Додаткова інформація: