问题标签 [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.
iphone - 如何将 FFTW3 集成到 iPhone 应用程序中?
我正在尝试将 FFTW3(用 C 编写的 GNU FFT 库,http: //www.fftw.org/ )集成到 iPhone 应用程序中。我下载了源代码,发现有数百个 .h 和 .c 文件以及许多我无法识别的其他文件。我不是 linux 专家,所以我不太了解 .configure 文件和其他类似文件是如何工作的。而且由于没有filename.xcodeproj这样的文件,我需要自己设置XCode项目。
我想知道的是: 如何在 XCode 中获取文件并编译它们而不会出错?有什么经验或技巧吗?
c - 如何在 C 中使用 FFTW 从 PortAudio 的样本中提取频率信息
我想制作一个使用 PortAudio 录制音频数据的程序(我已经完成了这部分),然后显示录制的音频的频率信息(现在,我想显示每组样本的平均频率当他们进来时)。
根据我所做的一些研究,我知道我需要进行 FFT。因此,我在 C 中搜索了一个库来执行此操作,并找到了 FFTW。
不过,现在我有点失落了。我究竟应该如何处理我记录的样本以从中提取一些频率信息?我应该使用什么样的 FFT(我假设我需要一个真实的 1D 数据?)?
一旦我做了 FFT,我如何从它给我的数据中获取频率信息?
编辑:我现在也发现了自相关算法。好点吗?更简单?
提前非常感谢,对不起,如果这样,我绝对没有经验。我希望它至少有点意义。
c++ - 为什么在高斯上进行 FFT 时会出现负数?
我正在使用这个fftw库。
目前我正在尝试以 e^(-(x^2+y^2)/a^2) 的形式绘制二维高斯曲线。
这是代码:
原来负数出现了。我认为高斯的傅里叶变换是另一个高斯,它不应该包含任何负数。
此外,当前原点位于 in[0]
c++ - Windows 64 位上的 fftw3
我想在 Windows-64 位上使用 FFTW3。我按照FFTW 网站上的说明:下载包,解压缩,运行 lib.exe 以创建 .lib“导入库”。
这样做之后,我构建了我的应用程序(使用 FFTW3 dll 32 位运行得很好),我收到以下错误:
1>pyramidTransform.obj:错误 LNK2019:未解析的外部符号 __imp_fftw_destroy_plan 在函数“int __cdecl Fourier2spatialband1(int,int,float *,float ,double ( )[2],double ( )[2],double ( )[2]中引用)" (?fourier2spatialband1@@YAHHHPEAM0PEAY01N11@Z) 1>pyramidTransform.obj:错误 LNK2019:未解析的外部符号 __imp_fftw_execute 在函数“int __cdecl Fourier2spatialband1(int,int,float *,float ,double ( )[2],double ( )[2],double ( )[2])" (?fourier2spatialband1@@YAHHHPEAM0PEAY01N11@Z) 1>pyramidTransform.obj : 错误 LNK2019: 函数“int __cdecl Fourier2spatialband1(int,int,float *,浮动,双倍的 ()[2],double ( )[2],double ( )[2])" (?fourier2spatialband1@@YAHHHPEAM0PEAY01N11@Z) 1>pyramidTransform.obj : 错误 LNK2019: 函数“int __cdecl decompose( int,int,float *,int,int,float * *,float * *,float *,float * * *,float * * *,float * *,float * *)" (?decompose@@YAHHHPEAMHHPEAPEAM10PEAPEAPEAM211@Z) 1>pyramidTransform.obj : 错误 LNK2019: 函数 "int __cdecl decompose(int,int,float *,int,int,float * *,float * *,float *,float * * *,float * * *,float * *,float * *)" (?decompose@@YAHHHPEAMHHPEAPEAM10PEAPEAPEAM211@Z)
Additional Dependencies 的属性窗格清楚地显示我正在链接到 libfftw3-3.lib(在上面创建)。
我怎样才能知道 Visual Studio 试图链接到什么?有人在 Windows 64 位中使用 FFTW-3 运气吗?
c++ - 从逆离散 FFT 到频谱图
我需要找到一些通用 C++ 库,它采用反向 fft 输出(fftw_complex 格式,即两个双精度)并将这些数据转换为图像文件,例如 png。我可以瀑布 dffts 来获取 2d 数据(并使用 10log10(re re+im im) 来获取每个频率分量的幅度),但我不知道哪个图像库可以工作。
我确实曾经使用过一个名为 zimage 的旧程序,但它似乎不再可用。我的 Ubuntu 9.10 系统上没有 MATLAB(但我有 Octave)
Octave 可以生成瀑布图像吗?我还需要将频谱图转换为 wav 声音文件。
有任何想法吗??
linux - 如何编译独立的 FFTW 库?
我需要从 FFTW 源代码在 Ubuntu 10.04 中编译一个独立的 .a 或 .so 库。我发现源代码分发的目录布局非常复杂,以至于我不知道从哪里开始。
我还需要使用旧版本的 gcc。
android - 将fftw3静态链接到共享库
我正在开发一些适用于 Android 的音高校正软件,我希望使用 NDK 让 fftw3 在 Android 上工作。
音高校正库(talentedhack,http://code.google.com/p/talentledhack/以防万一有人想知道)依赖于 fftw3,所以我尝试将 fftw3 编译为静态库,然后将其链接到共享的有才华的黑客图书馆。目前我已经将 fftw3 构建为静态库 libfftw3.a,但我不断收到类似这样的未解决的参考错误
使用 ndk-build 编译有才华的黑客共享库时。不过,它似乎正确地拾取了文件,这令人费解。
我的 Android.mk 文件的相关部分如下所示:
从项目顶层调用 ndk-build 时失败的命令是:
/opt/android-ndk-linux/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc -nostdlib -Wl,-soname,libtalentedhack.so -Wl,-shared,-Bsymbolic /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/circular_buffer.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/fft.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/formant_corrector.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/lfo.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_detector.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_shifter.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_smoother.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/quantizer.o /path/to/project/ndk/local/armeabi/objs/talentedhack/talentedhack.o -Wl,--whole-archive -Wl,--no-whole-archive /path/to/project/bin/ndk/local/armeabi/libfftw3.a /opt/android-ndk-linux/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/libgcc.a /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libc.so /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libstdc++.so /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libm.so -Wl,--no-undefined -Wl,-z,noexecstack -L/opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib -llog -Wl,-rpath-link=/opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib -o /path/to/project/bin/ndk/local/armeabi/libtalentedhack.so
我不确定这是否是 fftw3 的问题,因为我遵循了他们关于移植的说明(获取源文件的子集,手动配置并构建它们),因为系统实际上没有 fftwf_execute 或任何由于使用了一些花哨的宏,或者如果 Android NDK 构建系统无法正确处理静态库,则在任何头文件中定义的其他函数(我可以告诉)。任何帮助都将不胜感激。
c - 实现 Hann 窗口
我获取输入数据块并通过 fftw 传递它们以获取一些光谱信息。一切似乎都在工作,但是我认为我遇到了一些混叠问题。
我一直在努力研究如何在我的数据块上实现一个 hann 窗口。谷歌让我失望了。我应该看的任何想法或链接?
更新
感谢 Oli 指出我实际上要解决的问题是频谱泄漏,而不是混叠...
iphone - 如何将 fftw3 和 sndfile 等第三方库链接到 Xcode 中的 iPhone 项目?
我正在尝试将 fftw3 和 sndfile 等第三方库链接到我在 Xcode3.2 中的 iPhone 项目。我通过在项目构建配置下将“标题搜索路径”设置为“/usr/local/include”并将“其他链接器标志”设置为“-lfftw3 -lsndfile”,使其在常规 Mac 项目中工作。但是,当我尝试使用相同的设置在 iPhone 项目中构建它时,它给了我“找不到 -lfftw3 的库”和退出代码 1 错误消息。
苹果不允许在 iPhone 上这样做吗?有没有办法解决这个问题?
c - FFTW:正向 fft 的倒数不等于原始函数
我正在尝试使用 FFTW 来计算快速求和,但遇到了一个问题:
(这里的 sparseProfile02[0] 是 FFTW_complex* 类型,只包含正实数据。)
由于我们有 dummy_sq = IFFT(FFT(sparseProfile02[ 0 ])),我们必须有 dummy_sq = n^3*sparseProfile02。但这仅在某些时候是正确的;事实上,只要 sparseProfile02 网格上的对应值为零(反之亦然),dummy_sq 网格上的值就是负数。有谁知道为什么会这样?