问题标签 [fftw]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 C++ 中使用 FFTW 求解一维热方程
我最近刚刚再次为学校学习编程,我的代码遇到了一个问题,涉及快速傅里叶变换包 FFTW。
在我的代码中,我从一个初始函数开始(在这种情况下 u(x,t=0) = sin(x) + sin(3*x) 并将使用 RK4 尝试求解热方程的 U_t。对于任何人谁有 FFTW 包的经验,我发送一个大小为 N 的数组并对其进行转换,取两个导数,然后进行逆变换来求解热方程的 U_xx。
当我在 t 的几次迭代后绘制 y[i] 的图时,这些值会迅速爆炸并在正负之间交替。
如果有人对可能导致这些奇怪结果的语法问题有任何建议,或者如果在我的数学方法中发现错误,我将非常感谢任何信息。谢谢你。
c - C中FFTW2例程的问题
我目前正在使用 FFTW2(西方最快的傅立叶变换)库,在用 Fortran 编写了一个成功的例程后,我正在转向 C。但是,当我尝试输入时,我在分配数据时遇到了一些问题要转换的数据(即 sin(x) 的值)。目前,我的代码是:
我一直在将此http://fftw.org/fftw2_doc/链接用于文档/教程目的,目前我的错误是“a->a 的类型参数无效(具有 afftw_complexa)”,以及 'a' 字符-> 和 fftw_complex 的任一侧上方都有克拉。我使用的模式与我在 Fortran 中编写时所用的模式基本相同,而且我似乎在遵循教程,实际上只是这里的这个任务让我弄乱了语法。作为记录,我使用的编译器是 nvcc,如果它有所作为(我之前尝试过 gcc)。如果这里的任何人以前都使用过 C 语言中的 FFTW2,你能帮我纠正我的错误吗?谢谢!
c - 如何在转置的数据数组上使用 fftw_plan_many_dft?
我有一个以列为主(Fortran 风格)格式存储的二维数据数组,我想对每一行进行 FFT 。我想避免转置数组(它不是方形的)。例如,我的数组
包含条目[r0_val0, r1_val0,..., r20_val0, r0_val1,...,r20_val255]
。
如果它是行主要的,我可以fftw_plan_many_dft
用来制定计划来解决阵列中的 21 个 FFT 中的每一个,例如:data
[r0_val0, r0_val1,..., r0_val255, r1_val0,...,r20_val255]
根据文档(FFTW 手册的第 4.4.1 节),该函数的签名是
我应该能够使用stride
anddist
参数来设置索引。从我可以从文档中了解到,要转换的数组中的条目被索引为in + j*istride + k*idist
wherej=0..n-1
和k=0..howmany-1
. (我的数组是一维的,并且有howmany
)。但是,以下代码会导致段。错误(编辑:步幅错误,请参阅下面的更新):
更新:
我在选择步幅时出错了。正确的调用是(正确的步幅是howmany
,不是N
):
c - FFTW Segfault(可能很简单的答案)
我正在尝试编写一个简单的 FFTW 例程(第 2 版),我想我已经把骨头搞定了,但是当我调用 fftwnd_one 函数时,我遇到了持久的段错误(我正在做一个维变换,但我使用 n 维代码是为了模块化)。但是,我认为我的问题出在计划创建中;谁能提供一些关于这段代码有什么问题的见解?如果是这样,我将不胜感激 - 谢谢!
作为参考,我在这里使用的函数是 sin(x)。我意识到并非所有的数学运算都已实现,我只是想让 FFTW2 库首先工作,然后我才能使数据变得有用。
c++ - fftw mingw 预编译二进制文件和 vs 2010 导致内存损坏?
我想知道是否有人从未使用与 Visual Studio 2010 项目链接的预编译 mingw fftw 二进制文件遇到内存损坏问题。奇怪的是,即使没有调用任何 fftw API,也只是 fftw 库链接(使用 lib /def:libfftw3-3.def 生成,如 fftw doc 所述)会给我的项目带来麻烦。好吧,我将尝试按照作者的建议在 vs 2010 中从头开始编译 fftw,但我很好奇仅链接 lib 会导致副作用的事实。据我所知,这似乎不是我们的 c++ 代码的问题......
一些环境。详细信息:赢得 32 位,vs 2010 中的非托管 c++ 项目
谢谢!
c - fftw接口与c中的complex.h
我正在使用此代码创建一个具有复杂数据类型的二维数组(来自 c 中的 complex.h)。然后我想“就地”找到那个数组的 fft。但是它给出了分段错误,我担心这是由于指针的不正确转换造成的。我们如何为 fftw 使用复杂数据类型?
请注意,我不想使用 fftw_complex 或 fftw_malloc。谢谢你。
c++ - 在 C/C++ 中使用 JACK 和 fftw 的音频频谱
在如何使用 C/C++ 中的 JACK 和 fftw 开发音频频谱方面,我需要帮助(文档、示例代码等)。我正在 Mac OS X (10.6+) 上开发。任何帮助都感激不尽。
python - 提高 Python 中的 FFT 性能
Python 中最快的 FFT 实现是什么?
似乎 numpy.fft 和 scipy.fftpack 都基于 fftpack,而不是 FFTW。fftpack 和 FFTW 一样快吗?使用多线程 FFT 或使用分布式 (MPI) FFT 怎么样?
c - 在 FFTW3 中取二阶导数
我已经使用前向 FFT 和 IFFT(标准化结果)测试了我的代码的一些实际功能,这工作正常。
但是,我想对实函数求二阶导数。为简单起见,我将sin(2*pi*t)
其作为测试用例。这是我使用的相关代码(库中的 FFT 函数):
现在问题来了:该算法适用于任何形式的函数sin( 2*pi*t*K)
,其中 K 是整数,但如果我将其作为测试函数sin(3*pi*t)
,则算法会失败。我无法在我的编码中看到错误。
请注意,因为函数是真实的,所以我只需要取一半的k
值。这不是问题。
c++ - ITK 中的双精度和智能指针问题
我遇到的问题是我使用Qt从GUI打开一个图像(通过我创建的ImageFrame类,这个类定义了PixelType如下:
在提取图像后,我会撒谎做一个 FFT,输入是真实数据。错误说:不能将'itk::SmartPointer'的第三个参数转换为'double *'和ImageFrame类的对象(它已将像素类型定义为double)。
1>.\prueba_r01.cpp(126) : error C2664: 'fftw_plan_dft_r2c_2d' : no se puede convertir el parametro 3 de 'itk::SmartPointer' a 'double *'
1> with
1> [
1> TObjectType=itk:: Image
1> ]
1> No hay disponible ningún operador de conversión definido por el usuario que pueda realizar esta conversión, o bien no se puede llamar al operador
现在我不明白为什么如果像素是双格式,它就不能计算 fft。有谁可以告诉我如何解决这个问题?非常感谢大家!