Бібліотека для перетворення Фур'є на трикутній решітці


11

Я шукаю досить швидкі реалізації дискретного перетворення Фур'є (DFT) на 2D трикутній або шестикутній решітці.

Я вдячний вказівникам на такі реалізації (особливо ті, які легко використовуються з Python або Mathematica), а також на описи того, як звести цю проблему до 1D DFT, який вже вбудований у багато систем.


Це моя перша публікація тут, я буду вдячний за допомогу в належному тегуванні питання.
Саболч

2
Що вам, здається, тут потрібно, - це кристалографічна трансформація Фур'є. Для довідок, ось це , це , це та це , але у мене виникають проблеми з підпрограмами FORTRAN, які можна безкоштовно завантажити. Можливо, вам доведеться прокатати власну реалізацію ...
JM

1
+1 для запитання. Я вважаю, що мітки зараз добре; якщо хтось вважає, що питання має бути позначене по-іншому, він його відредагує (якщо не зможе, він запитає когось, хто може).
Джефф Оксберрі

1
Це , це та це ще кілька посилань, які можуть бути корисними.
JM

1
@Mark Я також знайшов пару посилань (перед публікацією), включаючи те, яке дав Джефф, але я не знайшов жодного робочого коду. Проте я не знайшов терміна "кристалографічна трансформація Фур'є". Це насправді питання друга, який трохи соромився публікувати (але мене теж цікавить). Проблема з посиланнями полягає в тому, що потрібно прочитати їх і знайти потрібну роботу. Я повернусь врешті-решт і напишу про результат.
Саболч

Відповіді:


5

Є кілька робіт по Markus Püschel на своєму веб - сайті тут що обговорити Кулі-Тьюки типу (так я припускаю , що «швидкий») алгоритми для ґратчастих перетворень, таких як ДПФ на трикутних і шестикутних 2-D решіток. У трикутному випадку він називає DFT дискретним перетворенням трикутника (DTT). У Маркуса є код під назвою SPIRAL, який автоматично генерує код для перетворень, але виявляється, що ця робота DTT не є частиною SPIRAL, і на його веб-сайті немає жодної реалізації, яку я можу знайти. Я починаю вважати, що @JM має рацію і що вам може знадобитися прокатати власну реалізацію.

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


Мені завжди було цікаво, чим це відрізняється, ніж просто робити звичайний FFT за напрямками ґратчастої основи. Чи є перевагою, що це зберігає симетрію? Чому це важливо?
Віктор Лю

Я підозрюю, що коли ви формуєте свою (раніше?) Матрицю циркуляції, вона не матиме тих самих приємних властивостей, як раніше. . . Я розумію, що ФФТ полягає в тому, що через симетричність та самоподібність матриці перетворення можна використовувати реально розумні методи вирішення.
meawoppl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.