问题标签 [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.

0 投票
2 回答
2941 浏览

c# - 使用 FFTWLib (C#):找不到 libfftw3-3.dll

我正在尝试在 Visual C# 2010 中使用 Tamas Szalay 的 FFTW 的 C# 端口,当我尝试使用 FFTW 中的函数(在本例中为 fftw.malloc)时出现上述错误。如果我手动将 dll 移动到项目的 /bin/debug/ 文件夹中,该错误就会消失,但后来我得到了

这让我觉得我有一个更深层次的问题。

可能相关:我在 x64 机器上运行它,DependencyWalker 说 fftwlib.dll 是为 x86 构建的。

0 投票
1 回答
1824 浏览

c# - 使用 FFTWLib (C#):使用 fftw.dft_r2c_2d() 会导致 vshost.exe 崩溃,如果 vshost 未运行,则主程序会崩溃

如标题所述:我正在尝试在 Visual C# 2010 Professional(试用版)中使用 Tamas Szalay 的 FFTW 的 C# 端口,当我尝试使用二维变换时出现上述错误。(当我切换到 dft_c2r_2d() 时问题仍然存在)。其他函数(特别是 fftw.malloc())工作正常。

细节:

控制台最多打印“3.7”。尝试运行FourierPlan = ...会导致程序崩溃并弹出一个消息框:

禁用 Visual Studio 主机进程只会将“vshost.exe”替换为“FFTFind”。

可能相关:我在 x64 环境(Windows Server Standard)中运行它,但 dll 和程序是 x86。这之前在 Visual C# 2010 Express 中导致了一个问题,该问题通过切换到专业试用版然后手动将配置目标从“x86”更改为“任何 CPU”来解决。

更新:运行提供的测试代码工作正常。

0 投票
1 回答
1354 浏览

image-processing - 图像拼接的相位相关(使用汉明窗)

我使用相位相关进行图像拼接,它为我的大部分测试数据提供了良好的结果。我只是缝合图像左右和上下(仅移位)但有一些奇怪的行为。第一个奇怪的坐标,我必须转换坐标

然后使用汉明窗口,似乎当我使用汉明窗口进行左右拼接时效果更好(即使在坏情况下),但如果我将汉明窗口用于上下拼接效果不佳(即使在好的情况下)。而且我认为我不需要将 LR 和 TB 的个别情况分开,我希望相位相关只是给我全局最大值,但似乎在理解 FFT 或相位相关方面存在一些错误。这是我使用的代码http://codepaste.ru/9415/

0 投票
1 回答
2021 浏览

fortran - Fortran 中用于 3D 复数数组的 MPI FFTW

我需要使用 MPI 在 Fortran 中对 3D 数组进行 FFT。我一直在查看 FFTW 网站,也尝试在网上查找示例,但我只能找到以下代码:

此代码计算二维数组的 FFT 变换。我的问题是:如何使用此代码计算 3d 数组的 FFT 变换?

0 投票
2 回答
7743 浏览

c - 如何使用 OpenCV 和 FFTW3 库显示图像的离散傅里叶谱 (DFT)?

我正在尝试生成简单图像的傅立叶光谱。但我得到的只是噪音。我尝试关注许多链接,这些链接建议缩小两者之间的值,[0, 255]但即使在缩放之后我也只能得到黑色图像,我这样做是这样的:

缩放代码:

请注意,我没有采用dft数组的第一个值,因为它太大(因为它是 DC 值)。也就是说,我是从k=1forloop图开始的。

后来我这样做是为了缩放

没有缩放的代码:

输出: 使用上面的代码我只会得到噪音

但是如果我像这样引入缩放: 缩放后的​​代码

缩放后的输出 缩放后

请告诉我我做错了什么?我应该如何进行缩放以获得正确的图像光谱。

0 投票
2 回答
908 浏览

matlab - Matlab 的 fftn 使用多线程会变慢?

我可以使用 12 核机器和一些严重依赖 fftn 的 matlab 代码。我想加快我的代码。

由于 fft 可以并行化,我认为更多的内核会有所帮助,但我看到的恰恰相反。

这是一个例子:

这给了我这个: 矩阵乘法和 fftn 的时序结果

矩阵乘法的加速非常好,但是当我使用所有内核时,我的 ffts 似乎慢了近 3 倍。这是怎么回事?

作为参考,我的版本是 7.12.0.635 (R2011a)

编辑:在采用 1D 变换的大型 2D 数组上,我遇到了同样的问题: 在此处输入图像描述

编辑:问题似乎是 fftw 没有看到 maxNumCompThreads 强制执行的线程限制。无论我将 maxNumCompThreads 设置在什么位置,我都会让所有 CPU 都全速运行。

在此处输入图像描述

那么......有没有一种方法可以指定我想在 Matlab 中为 fft 使用多少个处理器?

编辑:看起来如果没有在 .mex 文件中进行一些仔细的工作,我就无法做到这一点。http://www.mathworks.com/matlabcentral/answers/35088-how-to-control-number-of-threads-in-fft有答案。如果有人有一个简单的解决方案会很好......

0 投票
2 回答
1087 浏览

c - FFTW 结果为零

我试图让 FFTW 在 C 中工作。它曾经为另一个项目工作(在 JNI 中),我或多或少地从那个项目中复制代码,遗憾的是没有结果。

首先,我生成一个正弦信号,如下所示:

这行得通,我只是为了完整性而发布它。

接下来,我想使用 FFTW 转换信号,我使用以下方法(基于FFTW 文档)执行此操作:

请注意 FFTW 文档中的这一点:typedef double fftw_complex[2];

现在,这导致 -array 的所有值signal都是 -0.000000。我真的看不出这段代码的问题,所以请指出我做错了什么?

谢谢。

PS:为了清楚起见,从我的代码中删除了打印语句。

0 投票
4 回答
403 浏览

c++ - 非常大的浮点数会导致不确定性吗?

我在 win32 环境中运行 C++ 优化程序。该程序为 FFTW 和 pthreads 使用预构建的 DLL。

最近,程序发生了变化,它可以遇到非常大的数字,甚至可能是无穷大。在此更改之后,这个原本精简而强大的系统开始产生奇怪的症状 - 最明显的是它在不同的运行(在同一台计算机上,使用相同的二进制文件)产生不同的数值结果,甚至在这里和那里添加 printf 或虚拟分配从根本上改变了行为。

我仔细检查了所有可能的缓冲区溢出、内存分配、线程问题(我现在将线程池大小减少到 1)、堆栈大小,但经过数周的搜索,我什么也没找到。在更改之前,该程序没有不确定性或稳定性问题,它会定期运行数天。

我想知道问题是否出在 FFTW 模块上?或者这种浮点不稳定性是否源于大量数字?

0 投票
1 回答
1501 浏览

c++ - FFTW3:解释 fftw_plan_r2c_1d 输出并访问输出的虚部

我正在使用 MSVS 2008 中的 FFTW3 库对一些数据进行 r2c DFT (n=128)。我已经发现只使用了真实数据 DFT 输出的前半部分......如果我正在查看我的输出,这似乎是正确的:

0-64 --> 似乎是我输入转换的真正部分。

65-127 --> 总是 4.8367e-026 (我不知道为什么我期望它为零,因为它没有根据 FFTW 文档使用)

到目前为止,它似乎工作正常,但我想绘制一个功率密度谱,所以我也需要虚部,对吧?问题是我无法找到如何访问转换的虚部,我认为只需使用以下方法就可以了:

我怎样才能做到这一点?

谢谢你的帮助!

0 投票
1 回答
1810 浏览

imagemagick - ImageMagick 的 fftw3 代表

我为 Ubuntu 11.10 安装了 fftw3 包,然后安装了 ImageMagick。在执行图像 fft 时,出现以下错误

上没有列出 fftw 代表

我该如何解决这个问题?