标签: fft

如何在数据中找到周期?

我有一个数据集(一个数组),我需要在其中找到周期性.我该怎么办?有人说我可以使用FFT,但我不确定它会如何给我周期性.非常感谢您的帮助!

algorithm fft c#-3.0

17
推荐指数
3
解决办法
1万
查看次数

是否存在使用频率对数除法的FFT?

维基百科的Wavelet文章包含以下文字:

离散小波变换的计算复杂度也较低,与快速傅里叶变换的 O(N log N)相比,花费O(N)时间.这种计算优势不是变换所固有的,而是反映了频率的对数分割的选择,与FFT的等间隔分频相反.

这是否意味着还有类似FFT的算法使用频率的对数除法而不是线性?是O(N)吗?对于许多应用来说,这显然是优选的.

audio signal-processing logarithm fft

16
推荐指数
1
解决办法
8398
查看次数

什么是iOS/Android ARM设备最快的FFT库?

什么是iOS/Android ARM设备最快的FFT库?人们通常在iOS/Android平台上使用什么库?我猜vDSP是iOS上最常用的库.

编辑:我的代码是http://anthonix.com/ffts并使用BSD许可证.它在Android和iOS上运行,比libav,FFTW和vDSP更快.

EDIT2:如果有人可以访问POWER7机器(或其他机器),请给我发电子邮件.非常感谢.

干杯,

android arm fft neon ios

16
推荐指数
1
解决办法
2万
查看次数

在matlab中使用FFT去除图像中的图案和噪声

我正在使用clown.jpg图像来摆脱它所带来的明显模式/噪音.

在此输入图像描述

我在对图像进行FFT之前所做的第一步是将其重新调整为2的幂方形图像(即256 x 256).在matlab中使用FFT和fftshift可以在图像中心的强度下进行快速傅立叶变换.下图是使用前面提到的功能的结果.

在此输入图像描述

通过在FFT图像上手动归零"星形",我成功地消除了模式/噪声,如下所示:

在此输入图像描述

采用IFFT,我得到了更好的图像质量(未显示).

我的问题是,是否有一种将"星星"归零的自动方式?由于我们不想删除最明亮的"星形",DC分量和低值,因此我创建了一个将图像归零的区间.这样的阈值如下:

filter = (fLog > .7*max(fLog(:)) ) | (fLog < .25*max(fLog(:)) )

where fLog is the log(1+abs(Fourier image)) and .7 and .25 are the corresponding
interval percentages.
Run Code Online (Sandbox Code Playgroud)

输出掩码(我将乘以傅立叶图像)如下所示.黑色对应于0的值,白色对应于1.请注意,此蒙版的过滤会删除一些"星星"并保留一些直流分量.显然这种方法不是最好的.

在此输入图像描述

我正在阅读关于做高通滤波器的内容,但这似乎删除了傅立叶图像中的所有外部值.这是基于我之前的测试(我没有包括这些图像).

您是否建议突出显示除DC组件之外的高强度值.理想情况下,我想让面具看起来像:

在此输入图像描述

来源:http://users.accesscomm.ca/bostrum/Imaging/tips/tip1.html

在另一个网站中,有人提到使用"高通和水平校正FFT数据只保留代表光栅图案的杂散点".我不清楚如何做到这一点.

来源:http://www.robotplanet.dk/graphics/raster_removal/

对你的帮助表示感谢.

这是我的源代码帮助:

I = imread('clown.jpg'); % Read Image

% convert to grayscale
I = rgb2gray(I);

% normalize the image and conver to doubleI
I = double(mat2gray(I));

% Resize the image
I = imresize(I, [256 256]); …
Run Code Online (Sandbox Code Playgroud)

matlab design-patterns fft image-processing noise

16
推荐指数
1
解决办法
2万
查看次数

NTL上的"多项式对于FFT来说太大了"错误

我正在尝试使用NTL中的ZZ_pEX类来执行4096度的多项式的乘法运算.然而,它返回错误"Polynomial对于FFT来说太大了",我找不到让它工作的方法(甚至可以帮助NTL文档的东西),但幻灯片中的评论说它可以修复(不说怎么样!).

有人找到了解决方法吗?

c++ fft multiplication polynomial-math ntl

16
推荐指数
1
解决办法
365
查看次数

向我解释FFT

我想获取音频PCM数据并在其中找到峰值.具体来说,我想返回峰值出现的频率和时间.

我对此的理解是我必须将PCM数据转储到一个数组中,将其设置为实数值,将复杂的部分设置为0.然后我接受FFT,然后得到一个数组.如果数组中的每个数字都是一个幅度值,我如何获得与每个数字相关的频率?另外,我是否考虑了真实和复杂部分的大小或者只是丢弃了复杂的值?

最后,如果我想在一首歌中找到峰值,我是否只需设置一个小窗口进行FFT并将其滑过所有音频?有关该窗口应该有多大的任何建议?

audio signals fft frequency

15
推荐指数
2
解决办法
8248
查看次数

如何使用C中的FFTW从PortAudio的样本中提取频率信息

我想制作一个程序,用PortAudio录制音频数据(我完成了这部分),然后显示录制音频的频率信息(现在,我想显示每组样本的平均频率)因为他们进来了).

从我做过的一些研究中,我知道我需要进行FFT.所以我用谷歌搜索了一个库,用C语言,找到了FFTW.

但是,现在我有点失落了.我应该怎么处理我记录的样本以从中提取一些频率信息?我应该使用什么样的FFT(我假设我需要一个真实的数据1D?)?

一旦我进行了FFT,如何从它给出的数据中获取频率信息?

编辑:我现在也发现了自相关算法.好点吗?更简单?

非常感谢,对不起,如果这样,我绝对没有经验.我希望它至少有点意义.

c audio fft portaudio fftw

15
推荐指数
1
解决办法
9025
查看次数

Android 2.3 Visualizer - 理解getFft()的麻烦

第一次在这里如此抱歉任何屠宰格式.

所以我对DSP是全新的,所以我对傅里叶变换只有非常全面的了解.我正在尝试为Android SDK 9构建一个可视化应用程序,其中包括android.media.audiofx.Visualizer中的Visualizer类 http://developer.android.com/reference/android/media/audiofx/Visualizer.html

方法getFft()的javadoc,这是我使用的状态:

"返回当前正在播放的音频内容的频率捕获.捕获是一个8位幅度的FFT.请注意,FFT的大小是指定捕获大小的一半,但是频谱的两侧都返回,产生的字节数相等捕获大小."

首先,"光谱的双方"是什么意思?该输出与标准FFT有何不同?

这是字节数组的一些示例输出,getFft()给出了124点以保持简单,我抓住了前31个分档.以下是前31个箱子的大小:

{123, -2, -23, -3, 6, -16, 15, -10, -8, -12, 9, -9, 17, -6, -18, -22, -8, 4, -5, -2, 10, -3, -11, 3, -4, -11, -8, 15, 16, 11, -12, 12}
Run Code Online (Sandbox Code Playgroud)

任何帮助或解释将不胜感激!

编辑: 因此,在盯着一堆图表后,看起来我的问题的一部分是谷歌没有指定使用的是哪个单位.几乎所有其他测量都是以mHz进行的,假设FTT输出也是mHz是否公平?有没有一个地方可以看到Visualizer类的源代码,所以也许我可以弄清楚幕后真的到底是怎么回事?

我继续抓住了getFft()的所有输出

93, -2, -28, -16, -21, 19, 44, -16, 3, 16, -9, -4, 0, -2, 21, 16, -3, 1, 2, 4, -3, 5, 5, 10, 6, 4, -9, 7, -2, -1, 2, 11, -1, 5, -8, …
Run Code Online (Sandbox Code Playgroud)

android signal-processing fft visualizer android-sdk-2.3

15
推荐指数
2
解决办法
1万
查看次数

n维快速傅立叶变换的计算复杂度?

我正在尝试编写一些代码来预测在给定的n维数组上执行离散傅立叶变换所需的时间,但我很难理解n维FFT的计算复杂性.

据我了解:

  • 长度的矢量的一维FFT N应该采取k*(N*log(N))其中k是一些定时恒定

  • 对于M*N矩阵,2D FFT应采用:

    N*(k*M*log(M)) + M*(k*N*log(N)) = k*M*N*(log(M)+log(N))

    因为它需要在每行和每列中采用1D FFT

这如何概括为ND案例?它应该遵循它应该是k*prod(dimensions)*sum(log(dimensions))吗?

math big-o fft

15
推荐指数
1
解决办法
9571
查看次数

python中的DFT矩阵

在python中获取二维DFT的DFT矩阵的最简单方法是什么?我在numpy.fft找不到这样的功能.谢谢!

python numpy fft scipy dft

15
推荐指数
3
解决办法
1万
查看次数