Чи є якесь практичне застосування для виконання подвійного перетворення Фур'є? … Або обернене перетворення Фур'є на вході в часовій області?


11

У математиці можна взяти подвійну похідну, або подвійний інтеграл функції. Існує багато випадків, коли виконання подвійних похідних моделей є практичною реальною ситуацією, як, наприклад, пошук прискорення об'єкта.

Оскільки перетворення Фур'є приймає як вхідний сигнал реальний або складний сигнал і видає складний сигнал як вихід, ніщо не заважає тобі взяти цей вихід і застосувати перетворення Фур'є вдруге ... Чи є якісь практичні користі для виконання це? Чи допомагає це моделювати деякі складні ситуації в реальному світі?

З тією ж логікою, ніщо не завадить тобі взяти зворотну трансформацію Фур'є свого вихідного вхідного сигналу часової області ... чи це колись буде корисним? Чому чи чому б ні?

Відповіді:


9

"Чи є якесь практичне застосування?" Однозначно так, принаймні для перевірки коду та пов'язаних помилок.

"Теоретично, теорія та практика відповідають. На практиці вони не відповідають". Отже, математично ні, як відповів Метт. Тому що (як уже відповіли), Ж(Ж(х(т)))=х(-т) (до потенційного коефіцієнта масштабування). Однак він може бути корисним обчислювально, оскільки вищевказане рівняння зазвичай реалізується за допомогою дискретного перетворення Фур'є та його швидкого аватара - FFT.

Перша причина виникає з бажання перевірити, чи реалізація Фур'є, чи кодована вами, кимось іншим чи з бібліотеки, робить те, що повинно бути зроблено з вашими даними. Впорядкування зразків, коефіцієнти масштабування, обмеження типу введення (реальність, бітова глибина) або довжина є джерелами потенційних подальших помилок для реалізацій Фур'є, таких як FFT. Тож як перевірка обґрунтованості завжди добре перевірити, чи реалізовані версії успадковують, принаймні приблизно, теоретичні властивості. Як ви побачите, як показав Machupicchu, ви не відновлюєте точно реальний зворотний вхід: навпаки, уявна частина не є точно нульовою, а реальна частина - це те, що очікувалося, але в межах невеликої відносної помилки через недосконалі комп'ютерні обчислення. (плаваюча точка) в межах машинно залежного допуску. Це видно на наступному малюнку. FFT застосовується двічі на випадковому 32-зразковому сигналі та перевертається. Як бачите, похибка невелика, використовуючи поплавці подвійної точності.

дані, її подвійний перевернутий FFT та помилка

Якщо помилка не є відносно малою, можливо, у використаному коді можуть бути помилки.

Друга стосується величезних обсягів даних або великої кількості ітераційних обчислень FFT, як при томографії. Там попередні невеликі відносні помилки можуть накопичувати та поширюватись і навіть викликати обчислювальну розбіжність або помилки деяких деталей тут . Це видно на наступному малюнку. Для не дуже довгий сигнал х0 ( 1е6 зразків), ми виконуємо наступні ітерації:

хк+1=Rе(f(f(f(f(хк)))))
, деf позначає FFT. Відображена цифра є підпробовою. І ми обчислюємо максимальну помилкумакс|хк-х0|при кожній ітерації.

даних, його чотириразовий FFT та максимальні помилки під час ітерацій

Як бачимо, порядок величини помилки змінився, через розмір сигналу. Плюс до цього, максимальна помилка постійно зростає. Після 1000 ітерацій він залишається досить малим. Але ви можете здогадатися, що з кубом 1000×1000×1000 -пікселів та мільйонами ітерацій ця помилка може стати незначною.

Обмеження помилки та оцінка її поведінки за ітераціями може допомогти виявити таку поведінку та зменшити її за допомогою відповідного порогу чи округлення.

Додаткова інформація:


1
Я дуже люблю цю відповідь, і я би позначив її як прийняту відповідь, але я думаю, що те, що більшість людей, які приходять до цього питання, шукати - це теоретична інформація, яку Метт надав у посиланні. +1, хоча для чудової відповіді.
tjwrona1992

1
Я дуже вдячний за ваш коментар. Однак я оновив відповідь відповідними цифрами, щоб показати, що помилки в дискретних реалізаціях Фур'є мають значення.
Лоран Дюваль

17

х(-т)

Зворотне перетворення Фур'є, застосоване до сигналу часової області, просто дає спектр з частотною інверсією. Подивіться на цю відповідь для отримання більш детальної інформації.


4
Ви просто рекурсивно підірвали мені розум.
tjwrona1992

Чи я ілюструю, що Метт. L сказав, але в 2D з моїм кодом? тобто отримуємо f (-x, -y).
Machupicchu

@Machupicchu, так, це виглядає правильно.
tjwrona1992

ха - ха , то ви можете вибрати свою відповідь оголошення верхній ^^ (він має 53К репутацію , так що лань НЕ мак - яких відмінностей для нього ха - ха)
Machupicchu

Одразу після того, як я сказав, що зрозумів, що, ймовірно, простіші способи, ніж подвійне перетворення Фур'є в час, перевернути сигнал ха-ха
tjwrona1992,

16

У той час як перетворення Фур'є безпосередньо двічі поспіль просто дає тривіальну тимчасову інверсію , яка була б набагато дешевше реалізувати без FT, там є корисні речі , які можна зробити, взявши перетворення Фур'є, застосовуючи деякі інші операції, а потім знову Фур'є, перетворюючи результат цього. Найвідоміший приклад - автокореляція , яка є своєрідною згорткою сигналу із самим собою. А згортки O ( n 2 ), якщо реалізовані наївно, але лише O ( n · log n) при об'їзді через перетворення Фур'є. Таким чином, автокореляція, як правило, здійснюється за допомогою сигналу FT'ing, приймаючи абсолютний квадрат і IFT-ін, що повертається у часову область.


2
Також є цепструм , зворотне перетворення Фур'є логарифму перетворення Фур'є. Його можна використовувати для виявлення періодичних сигналів.
Оллі Ніємітало,

12

ЯЯ(х,у)=zху

https://ch.mathworks.com/help/matlab/ref/fft2.html

Спробуйте це:

x=imread('cameraman.tif');
X=fft2(fft2(x));
imagesc(abs(X));

і порівняйте з:

x=imread('cameraman.tif');
X= ifft2(fft2(x));
imagesc(abs(X));

скоріше так. Я застосував fft2 до разів, а не ifft2 вдруге. Я думаю, що це ілюструє те, що сказав @Matt L.:

"отримання перетворення Фур'є в два рази еквівалентно інверсії часу",

ви можете бачити, що зображення перевернуте через -i уявного негативного, а не позитивного в ifft ().

введіть тут опис зображення

Я також робив це для 1D сигналу (наприклад, тимчасового):

введіть тут опис зображення


Я знаю, що існує таке поняття, як 2D перетворення Фур'є, але це не те саме, що приймати вхідний сигнал і запускати його за допомогою алгоритму, потім брати вихід цього запуску і запускати його знову.
tjwrona1992

1
Перетворення Фур'є відокремлюється.
Machupicchu

Моє запитання також стосуватиметься 2D перетворення Фур'є. Теоретично можна прийняти 2D вхідний сигнал, застосувати 2D перетворення Фур'є, потім взяти 2D вихідний сигнал і використовувати його як вхід і застосувати 2D перетворення Фур'є знову.
tjwrona1992

подивіться в Matlab, що відбувається, якщо ви зробите наступне: пор. Я оновив свій відповідь
Machupicchu

1
Я б запропонував використовувати реальну частину замість абсолютного значення
Лоран Дюваль

6

Для відповіді на друге питання, в цифрового зв'язку існує технологія використовується в мобільних телефонах прямо зараз , що дозволяє ефективно використовувати застосування IFFT в сигнал тимчасової області. OFDM застосовує IFFT до послідовності часових областей даних на передавачі, а потім повертає цю послідовність із FFT на приймачі. Хоча в літературі подобається використовувати IFFT-> FFT, це насправді не має значення, який з них є першим.

схема передавача OFDM

Ключова перевага тут сильно пов'язана з відповіддю. Існує тип спотворень, який називається багатошаровим згасанням , і мобільні телефони в густих міських районах повинні мати багато з цим. Нам подобається моделювати багатошаровий вицвітання як згортку з невідомими коефіцієнтами. Оскільки ланцюжок подій виглядає приблизно як IFFT-> Transmit-> Apply multipath-> Receive-> FFT, багатошаровий зникнення пройде через FFT і стане простим множенням по точці з невідомими значеннями. Ці значення набагато простіше передбачити та виправити, ніж коефіцієнти згортки.

Цей ефект також робить сигнал більш стійким до багатошаровості / згасання, що може вивести (або "нуль") весь частотний канал. У цій статті описано, як

Таке багатошлункове поширення може створювати глибокі спектральні нулі в частотній смузі прийнятих радіосигналів через руйнівну інтерференцію двох примірників сигналу, що надходять у дещо інший час. Нуль в OFDM може зняти одне або кілька піднесучих. Цей же нуль у QAM з одною несучою може скинути послідовно сусідні символи, залежно від конкретного шаблону даних у той момент. В крайньому випадку втрата сигналу навіть можлива. Потім воно зменшується до сили FEC відновити початкову послідовність даних.


Ого, це неймовірно цікаво! Дякую! :)
tjwrona1992

1

Ця інформація була надана користувачем "Птахи", але він не мав достатньої репутації, щоб розмістити її сам, тому я опублікую її тут для нього, оскільки вона здається актуальною та корисною.

"Мені не вистачає балів на цьому форумі, щоб додати коментар, тому я роблю це тут: подивіться вихідний код для Accord.Math Hilbert Transform, і ви зрозумієте, чому це може бути життєздатним варіантом: https: //github.com/primaryobjects/Accord.NET/blob/master/Sources/Accord.Math/Transforms/HilbertTransform.cs

Практичне використання включає побудову передавачів SSB або майже будь-який план модуляції. Подивіться на IQ модуляцію, і ви побачите, чому фазовий зсув -90 градусів актуальний. Добуток тригонометричних принципів. наприклад https://user.eng.umd.edu/~tretter/commlab/c6713slides/ch7.pdf

Трансформація Гільберта використовує середній крок між ЗПТ з нулю негативних компонентів. Ви можете зловживати ним і для фільтрації інших частот. "

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.