Je recherche des implémentations raisonnablement rapides de la transformée de Fourier discrète (DFT) sur un réseau 2D triangulaire ou hexagonal.
J'apprécierais des pointeurs vers de telles implémentations (en particulier celles facilement utilisables depuis Python ou Mathematica), ainsi que vers des descriptions de la façon de réduire ce problème au DFT 1D, qui est déjà intégré à de nombreux systèmes.
libraries
fourier-analysis
Szabolcs
la source
la source
Réponses:
Il y a plusieurs articles de Markus Püschel sur son site Web ici qui discutent des algorithmes de type Cooley-Tukey (donc je suppose que c'est "rapide") pour les transformations de réseau, comme les DFT sur les réseaux 2D triangulaires et hexagonaux. Dans le cas triangulaire, il appelle la DFT la transformée en triangle discret (DTT). Markus a un code appelé SPIRAL qui génère automatiquement du code pour les transformations, mais il semble que ce travail TNT ne fasse pas partie de SPIRAL, et il n'y a aucune implémentation sur son site Web que je puisse trouver. Je commence à penser que @JM a raison et que vous pourriez avoir besoin de lancer votre propre implémentation.
Une chose que les résumés notent est que pour les réseaux triangulaires et hexagonaux 2D, la transformation n'est pas séparable en composants 1D, vous ne pourrez donc pas réduire le problème à deux transformées 1D.
la source