问题标签 [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 投票
2 回答
17563 浏览

fft - 使用 GNU Octave FFT 函数

我正在使用 octave 的 fft 函数,但我无法真正弄清楚如何缩放它们的输出:我使用以下(非常短的)代码来近似一个函数:

基本上,它所做的是获取一个函数,计算一个区间的图像,fft-it,然后保留一些谐波,然后对结果进行 ifft。但是我得到了一个垂直压缩的图(输出的垂直比例是错误的)。有任何想法吗?

0 投票
1 回答
2534 浏览

signal-processing - 在八度音阶中使用 fft 进行外推

使用 GNU octave,我在一个信号上计算 fft,然后消除一些频率,最后重建信号。这给了我一个很好的信号近似值;但它并没有给我一种推断数据的方法。

基本上假设我已经绘制了三个半周期

然后添加一段低幅度、零中心的随机噪声。使用 fft/ifft,我可以轻松去除大部分噪音;但是我该如何推断我的信号数据的另外 3 个周期呢?(当然还有复制信号)。

数学方法很简单:您将函数分解为正弦/余弦的无限和,您只需要提取部分和并将其应用到任何地方。但我不太明白程序化的方式......

谢谢!

0 投票
3 回答
6101 浏览

python - 相位相关

如何通过 2 张图像的相位相关(使用 fft)确定旋转角度?http://en.wikipedia.org/wiki/Phase_correlation中给出的算法返回线性移位,而不是角度。它还提到必须将图像转换为对数极坐标来计算旋转。这种转换是如何在 python 中实现的?转换后算法的相同步骤是否成立?

0 投票
1 回答
3227 浏览

signal-processing - DSP - 使用 DFT 过滤频率

我正在尝试实现基于 DFT 的 8 波段均衡器,其唯一目的是学习。为了证明我的 DFT 实现有效,我输入了一个音频信号,对其进行了分析,然后再次重新合成它,而不对频谱进行任何修改。到现在为止还挺好。

我正在使用所谓的“计算 DFT 的标准方法”,即相关性。此方法计算长度为 N/2 + 1 个样本的实部和虚部。为了衰减我正在做的频率:

其中“k”是 0 到 N/2 范围内的索引,但我在重新合成后得到的是轻微失真的信号,尤其是在低频时。

输入信号采样率为 44.1 khz,由于我只想要一个 8 波段均衡器,我一次输入 DFT 16 个样本,因此我有 8 个频率箱可供使用。

有人可以告诉我我做错了什么吗?我试图在互联网上找到有关此主题的信息,但找不到任何信息。

提前致谢。

0 投票
2 回答
9013 浏览

c++ - 带 API 的实时频谱分析仪

我正在寻找可以在 Windows 上对波形进行实时频谱分析的 C 或 C++ API。

我不完全确定确定频率内容需要多大的样本窗口,但越小越好。例如,如果它可以处理 0.5 秒长的样本并确定频率内容到赫兹,那将是非常棒的。

0 投票
1 回答
8540 浏览

iphone - 确定 iPhone 上某个频率的大小

我想知道确定声音中给定频率幅度的最简单/最好的方法是什么。

据我了解,FFT 函数将返回信号中所有频率的幅度。如果我只关心特定频率,我想知道是否有任何捷径可以使用。

我将使用 iPhone 麦克风录制音频。我的猜测是我将使用音频队列服务进行录制,因为我不需要将音频录制到文件中。我正在使用 SDK 4.0,因此如果需要,我可以使用 Accelerate 框架中定义的任何函数(例如 FFT 函数)。

更新: 根据康拉德的建议,我将问题更新为更清楚。

0 投票
4 回答
26093 浏览

filtering - DSP - 通过 FFT 在频域中进行滤波

我一直在玩 FFT 的 Exocortex 实现,但我遇到了一些问题。

每当我在调用 iFFT 之前修改频率箱的幅度时,生成的信号都会包含一些咔嗒声和爆裂声,尤其是当信号中存在低频时(如鼓或贝司)。但是,如果我将所有 bin 衰减相同的因子,则不会发生这种情况。

让我举一个 4-sample FFT 的输出缓冲区的例子:

输出由成对的浮点数组成,每个浮点数代表单个 bin 的实部和虚部。因此,bin 0(数组索引 0、1)将代表 DC 频率的实部和虚部。如您所见,bin 1 和 3 都具有相同的值(除了 Im 部分的符号),所以我猜 bin 3 是第一个负频率,最后索引 (4, 5) 将是最后一个正频率仓。

然后衰减频率仓 1,这就是我所做的:

对于实际测试,我使用的是 1024 长度的 FFT,并且我总是提供所有样本,因此不需要 0 填充。

显然我做错了什么,但不知道是什么。

我不想使用 FFT 输出作为生成一组 FIR 系数的手段,因为我正在尝试实现一个非常基本的动态均衡器。

在频域中过滤的正确方法是什么?我错过了什么?

另外,真的需要衰减负频率吗?我已经看到了一个 FFT 实现,其中 neg。频率值在合成之前归零。

提前致谢。

0 投票
1 回答
2299 浏览

matlab - MATLAB中的FFT:错误的0Hz频率

我想在 MATLAB 中使用 fft 来分析一些保存为 Excel 文件的实验数据。我的代码:

但它绘制了一个带有大 0Hz 错误分量的图表,我的真实频率约为 395Hz,并且未显示在绘制的图表中。请告诉我有什么问题。

任何帮助,将不胜感激。

0 投票
1 回答
1611 浏览

iphone - 在 aurioTouch 示例应用程序中确定哪些频率对应于 x 轴

我正在查看适用于 iPhone SDK的aurioTouch 示例应用程序。当您选择“FFT”选项时,它具有一个基本的频谱分析仪。该应用程序缺少的一件事是 X 轴标签(即频率标签)。

aurioTouchAppDelegate.mm文件中,在第- (void)drawOscilloscope652 行的函数中,它具有以下代码:

据我了解,这部分代码用于决定在 UI 中为每个频率绘制哪个幅度。我的问题是如何确定循环y内每次迭代(或值)代表的for频率。

例如,如果我想知道 6kHz 的幅度是多少,我正在考虑添加类似于以下内容的行:

请注意,虽然他们选择使用变量 name y,但据我了解,它实际上代表频谱分析仪可视图中的 x 轴,而 y 的值drawBuffers[0][y]代表 y 轴。

0 投票
1 回答
3785 浏览

matlab - 在 OpenCV 中显示傅里叶变换

我只是在学习使用 OpenCV,但在使用 DFT 时遇到了问题。我已经完成了一个使用 MatLab 的信号处理课程,所以我正在尝试完成我们在该课程中所做的一些练习。我正在尝试获取并显示图像的 FT,因此我可以掩盖一些频率。我希望能够看到 FT,所以我知道要制作多大的面具,但是当我尝试时,我得到了这样的图像:
替代文字
而不是像其中一个
替代文本 http://www.ceremade。 dauphine.fr/~peyre/numerical-tour/tours/graphics_synthesis_fourier/index_03.png
我是不是忘记了某个步骤?我正在加载图像,将其类型转换为 CV_32FC1,获取它的矩阵,获取 DFT,然后将生成的矩阵转换回图像。我会发布我的代码
或者,如果有人有显示 FT 示例的链接?我只能找到将它用于卷积的那些。

编辑:我得到图像的阶段了吗?