论文标题

nfft.jl:非quidstant快速傅立叶变换的通用和快速的朱莉娅实现

NFFT.jl: Generic and Fast Julia Implementation of the Nonequidistant Fast Fourier Transform

论文作者

Knopp, Tobias, Boberg, Marija, Grosser, Mirco

论文摘要

非均等的快速傅立叶变换(NFFT)是著名的快速傅立叶变换(FFT)的扩展,可以将其应用于时间/空间或频域中的非均匀采样数据。这是一种近似算法,它允许以达到机器精度的方式控制近似误差,同时将算法复杂性与常规FFT保持相同的顺序保持。 NFFT在许多信号处理应用中起着重要作用,并且已经从理论和计算的角度进行了深入研究。 NFFT最快的CPU实现是在低级编程语言C和C ++中实现的,并且需要在代码通用性,代码可读性和代码效率之间妥协。朱莉娅(Julia)的编程语言有望在优化这三个相互矛盾的目标方面提供新的机会。在这项工作中,我们表明,朱莉娅确实允许开发NFFT实现,该实现完全是通用的,维度不平的,并且所需的代码比其他著名库的代码少约2-3倍,同时仍然是迄今为止开发的最快的NFFT实现之一。

The non-equidistant fast Fourier transform (NFFT) is an extension of the famous fast Fourier transform (FFT), which can be applied to non-equidistantly sampled data in time/space or frequency domain. It is an approximative algorithm that allows to control the approximation error in such a way that machine precision is reached while keeping the algorithmic complexity in the same order as a regular FFT. The NFFT plays a major role in many signal processing applications and has been intensively studied from a theoretical and computational perspective. The fastest CPU implementations of the NFFT are implemented in the low-level programming languages C and C++ and require a compromise between code generalizability, code readability, and code efficiency. The programming language Julia promises new opportunities in optimizing these three conflicting goals. In this work we show that Julia indeed allows to develop an NFFT implementation, which is completely generic, dimension-agnostic and requires about 2-3 times less code than other famous libraries while still being one of the fastest NFFT implementations developed to date.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源