问题标签 [fft]

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 投票
7 回答
3196 浏览

concurrency - 并行编程入门

所以看起来多核及其所有相关的并发症都将继续存在。我正在计划一个肯定会从并行性中受益的软件项目。问题是我几乎没有编写并发软件的经验。我在大学学习过它,并且很好地理解了概念和理论,但是从学校开始,我在构建可在多个处理器上运行的软件方面的有用经验为零。

所以我的问题是,开始多处理器编程的最佳方式是什么? 我主要熟悉 Mac OS X 上的 C/C++ 和 Obj-C 中的 Linux 开发,Windows 经验几乎为零。此外,我计划的软件项目将需要对大量数据进行 FFT 和可能的浮点比较。

有 OpenCL、OpenMP、MPI、POSIX 线程等……我应该从哪些技术入手?

以下是我正在考虑的几个堆栈选项,但不确定它们是否会让我尝试朝着我的目标努力:

  • 我应该获得 Snow Leopard 并尝试让 OpenCL Obj-C 程序在我的笔记本电脑上的 ATI X1600 GPU 上运行吗?或者
  • 我是否应该获得一个 Playstation 并尝试编写 C 代码以跨越其六个可用的 Cell SPE 内核?或者
  • 我应该用 Nvidia 卡构建一个 Linux 机器并尝试使用 CUDA 吗?

在此先感谢您的帮助。

0 投票
3 回答
8803 浏览

image-processing - 计算卷积的最快方法

我必须对许多图像的每一行应用卷积过滤器。经典的是 1024x1024 像素的 360 幅图像。在我的用例中,它是 720 张 560x600 像素的图像。

问题是我的代码比文章中宣传的要慢得多。

我已经实现了朴素卷积,它需要 2m 30s。然后我使用 fftw 切换到 FFT。我使用了 complex 2 complex,在每个转换中过滤两行。我现在20多岁。

问题是文章在 10 多岁左右做广告,对于经典条件甚至更少。所以我想问问这里的专家是否有更快的方法来计算卷积。

数值方法建议避免在 dft 中进行排序并相应地调整频域滤波器功能。但是没有代码示例如何做到这一点。

也许我会浪费时间复制数据。使用 real 2 real 转换,我不必将数据复制到复杂的值中。但无论如何我必须用 0 填充。

编辑:请参阅下面我自己的答案以获取进度反馈和有关解决此问题的更多信息。

问题(精确的重新表述):

我正在寻找一种算法或一段代码,以将非常快速的卷积应用于离散的非周期性函数(512 到 2048 个值)。显然,离散时间傅里叶变换是要走的路。不过,我想避免数据复制和转换为复杂的,并避免蝴蝶重新排序。

0 投票
2 回答
1418 浏览

math - MATLAB 中的 FFT(我需要帮助)

谁能告诉我是否可以在 MATLAB 中执行与 FFT 的集成?如何?请尽快回答并提供详细信息。

假设存在 2 个矩形平面,例如,inputx1y1变量访问,结果平面outputtetaxtetay变量访问。

这是伪代码中的积分:

在哪里:-1<= x1 <= 1 and -1<= y1 <= 1

tetax并且tetay应该改变,以便它们可以跨越最终的矩形平面。

我真的很感激一个及时而详细的答案。

0 投票
6 回答
12047 浏览

iphone - 你知道一个好的和高效的 FFT 吗?

我正在尝试找到一种非常快速有效的傅里叶变换(FFT)。有谁知道有什么好的。我需要在 iPhone 上运行它,所以它不能很密集。相反,也许你知道一个类似小波的,我需要频率分辨率,但只需要一个窄带(最大 10khz 的人声音频范围......即使 10Khz 也可能太高了)。我还考虑截断这个 FFT 以保持频率分辨率,同时消除不需要的频带。这是给 iPhone 的

...我已经查看了 Aurio touch 中的 FFT,但似乎这是一个 int FFT,但我的应用程序使用浮点数.....尝试使程序适应 int FFT 是否会大大提高性能(我真的不想这样做……加上 aurio touch 使用了一个不是那么好的基数 2 FFT)。

0 投票
1 回答
4532 浏览

algorithm - 如何制作MFCC算法?

我想做梅尔频率倒谱算法,但有些事情我不明白。

完成 FTT 后,我们需要“使用三角形重叠窗口将上面获得的频谱的功率映射到 mel 标度上”。

我知道如何计算三角形,我也知道如何传递给 mel scale。我只是不知道该怎么处理他们。

如果定义了三角形,我如何将上面获得的光谱功率映射到梅尔尺度上?

是这样的:将三角形内的频率相加,然后将其传递给mel scale?或根据权重值(由该点的三角形高度定义)对三角形内的频率求和,然后将其传递给 mel scale?还是根据权重值将三角形内的所有频率传递给mel scale?另一件事?

任何人都可以向我澄清这一点

0 投票
1 回答
1395 浏览

c# - 如何在应用快速傅立叶变换和高通滤波器后从麦克风录制到 .wav?

我从麦克风接收输入,然后在其上应用 fft。之后,我将高于 1KHz 的频率设为零(高通滤波器)。

我想知道在将麦克风输入传递给 fft 并应用高通滤波器之后如何记录麦克风的输入。

我正在使用 c#,我需要做什么?:P

0 投票
1 回答
2869 浏览

c# - 如何从fft计算ifft?

我做了一个 fft 来实时获得基频并实现高通和低通滤波器。

现在我希望能够在应用过滤器后录制到 .wav 文件。

首先,我必须反转 fft,这是我的问题。执行此操作的步骤是什么?

我使用这个项目中定义的 FFT 。

这是它的代码:

0 投票
1 回答
1213 浏览

c# - 如何从逆快速傅里叶变换转换为 .wav?

我用 fft 制作了一个带通滤波器。在那之后,我做了 ifft 来反转它并将它传递到时域。

我的 ifft 和 fft 的长度一样。

ifft 必须更长,或者有没有办法让它更长?如何将此 ifft 传递给 .wav?

0 投票
2 回答
18655 浏览

c# - C#库做fft和ifft?

是否有免费的 c# 库来进行快速傅立叶变换及其逆变换?

0 投票
5 回答
10901 浏览

c++ - 将 FFT 转换为频谱图

我有一个音频文件,我正在遍历该文件并在每个步骤中采集 512 个样本,然后将它们传递给 FFT。

我将数据作为块 514 浮动很长(使用 IPP 的 ippsFFTFwd_RToCCS_32f_I),实部和虚部交错。

我的问题是,一旦我有了这些复数,我该怎么办?目前我正在为每个值做

这给出了一些稍微有用的东西,但我宁愿通过某种方式将值从 0 到 1 范围内。他上面的问题是峰值最终会回到大约 9 或更多。这意味着事情变得严重饱和,然后频谱图的其他部分几乎没有出现,尽管当我通过试听的频谱图运行音频时它们看起来非常强。我完全承认我不是 100% 确定 FFT 返回的数据是什么(除了它代表我传入的 512 个样本长块的频率值)。特别是我对复杂数字的确切含义缺乏了解。

任何建议和帮助将不胜感激!

编辑:只是为了澄清。我的大问题是如果不知道比例是多少,返回的 FFT 值是没有意义的。有人可以指点我计算出这个比例吗?

Edit2:通过执行以下操作,我得到了非常漂亮的结果:

在我看来,这甚至比我看过的大多数其他频谱图实现看起来更好。

我在做什么有什么重大问题吗?