Questions tagged «fft»

快速傅立叶变换是一种有效的算法,可以计算离散傅立叶变换(DFT)及其逆。

1
消除F2F信号中的噪声
(此问题与从原始WAV提取二进制磁条卡数据有关) 我正在从信用卡磁条上提取二进制序列。 如您所见,信号在一处明显下降。在图像的左侧也有轻微的降级。 只是使用IIR(即)平滑,但所得到的信号不被平滑数学; 如果我将信号区分两次,则噪声会以复仇的方式返回:Xout=0.9Xoutlast+0.1XinXout=0.9Xoutlast+0.1XinX_{\rm out} = 0.9X_{\rm out_{last}} + 0.1X_{\rm in} 我的问题是:我可以去除噪声,使导数干净吗? 如果是这样,怎么办? 编辑:这是一些损坏的波浪的特写: EDIT(2): 我正在考虑的几种方法: 首先,我可以对受损扇区两侧的信号进行泰勒近似,然后将近似融合在一起。 其次,我可以进行FFT,去除高频分量并进行反向FFT。我现在将尝试第二种方法...
11 fft  noise 

2
从互相关图得到什么?
假设我们有两个音频信号x(t)和y(t)受噪声影响,如下所示。我们想对这两个信号进行互相关,互相关图如下所示。 在此相关图中,峰值约为-11毫秒。我试图了解我们如何解释此图中的峰值?这是什么意思?也请解释一下我们从相关函数的傅立叶变换中得到什么。 提前致谢!

4
Radix-4 FFT与Radix-2
radix-4的实现是否比等效编码的radix-2 FFT更快?如果是这样,为什么会更快呢?
10 fft 

2
通过简单地缩放数据来增加幅度(可能是FFT质量)是否有效?
我正在使用Mark Borgerding撰写的“ KISS FFT”版本。它接受一个16位定点输入值的数组,并生成一个32位浮点结果数组。 我发现,如果输入幅度较低,则许多浮点结果值都会为零,但是如果我仅对输入进行缩放(例如乘以系数16),则输出值将为零,因此输出似乎包含更多详情。(这对我来说不是很重要,但是为了保持一致性,我然后将结果浮点值除以相同的比例因子。) 无论如何,这似乎很有效,就产生结果而言,以前我只是得到几乎全为零的缓冲区,但是我想知道是否有某些原因可能不是有效的方法。 (请注意,这种方法意味着数据具有更多的“粗度​​” /粒度,尤其是通常不会出现的低级噪声。我几乎想知道注入是否明智?一些低电平噪声来代替输入中的零值。)
10 fft 

3
色度二次采样:如何正确计算数据速率
我很难理解在利用Y'UV图像中的色度二次采样时如何计算数据速率: 我有以下示例进行计算: 图像分辨率:352*288 频率:25 fps 对于(4:4:4),示例计算如下: (352px * 288px) * 3 color channels * 25 fps * 8 bit = 60 825 600 bit/s 到目前为止,一切都很好。 但是现在来了(4:2:0): (352px*288px) * 1.5 color channels * 25 * 8 = 30 412 800 bit/s 现在,尝试将此示例转换为例如(4:1:1),我意识到我不确定自己是否正确理解如何计算1.5个颜色通道的比率。 我对计算的第一个猜测是在(4:2:0)的情况下: 2/4*3=1.5 color channels 同样,对于(4:1:1),我将计算颜色通道的比率为: 1/4*3=0.75 color channels 但是我根本不确定这是否是正确的方法。 …

1
创建频谱图
我一直在尝试确定此任务的逻辑,并计划使用KissFFT源程序包执行快速傅立叶变换。请让我知道这是否正确: 分配FFT结构,即。我正在使用的窗口大小kiss_fft_alloc(N,0,NULL,NULL) 在哪里N。输入缓冲区将是N类型为的元素数组kiss_fft_scalar。输出缓冲区将是N/2 + 1类型为的元素数组kiss_fft_cpx。 解码N(窗口大小)PCM样本数。 对于每个PCM样本,平均每个通道的振幅(无符号样本),并从0缩放到2(除以65536.0),然后将结果存储到输入缓冲区中。 在输入缓冲区上执行窗口化(即Hanning)。 对输入缓冲区执行快速傅立叶变换,并将其存储到输出缓冲区中。由于我使用实数值作为输入,因此可以使用kiss_fftr()。 对于N/2输出值,获取转换后数据的平方大小,然后使用以下公式将这些值转换为dB刻度: 10 * log10 (re * re + im * im) 绘制N/2步骤6中的值。 丢弃输入缓冲区的前半部分,解码下一个(窗口大小/ 2)PCM样本,并对数据执行缩放和加窗操作。这样可以有效地滑动输入窗口,并避免必须在已处理的PCM样本上重做数学运算。 循环至步骤5,重复这些步骤,直到处理完所有样本为止。 从中释放已使用的内存kiss_fft_alloc()。 建议在执行FFT之前先从输入窗口中减去一个值,以使所得的DC值的大小为零。我应该从输入数据中减去平均值还是平均值? 另外,选择窗口大小时需要考虑哪些事项?除此之外,按照KissFFT的说明,它必须是偶数,使用较小的窗口大小也有好处。它会提供更好的图形吗?我认为大窗口大小会减少必须执行的FFT数量,这是使用大窗口大小的唯一好处吗? XXx 预先感谢您提供的所有指导。

2
您如何处理复杂信号功率谱中的负频率?
当我们应用上的实信号的DFT运算获得,然后取的平方量值,,功率谱是对称的。您可以将正频率或负频率作为的频率信息。X [ k ] X [ k ] | X [ k ] | 2 X [ k ]x [ n ]X[ñ]x[n]X[ k ]X[ķ]X[k]X[ k ]X[ķ]X[k]| X[ k ] |2|X[ķ]|2\lvert X[k]\rvert^2X[ k ]X[ķ]X[k] 但是,对于复数值信号而言并非如此。功率谱不对称。 在这种情况下,您将如何确定原始信号中的频率分量? 我们可以不去掉负频率部分吗?

2
FFT中的伪像
我最近意识到FFT并不是完美的。这意味着,如果我先接收信号,然后进行FFT,然后进行逆FFT,则结果输出与输入不完全相同。这是一张图片,向您展示我的意思: 我认为这张图片很容易说明。IFFT信号只是“ FFT频谱”的逆变换,“差异”图是IFFT信号与原始信号之间的差异()。IFFT-原始IFFT-原始\text{IFFT - Original} 显然有一些文物,尽管它们确实很小。我想知道为什么它们首先出现。这是因为傅立叶变换的有限窗口吗?还是由于FFT算法中的问题? 注意:此图有32点,但是我已经检查了100、1000、1024、256和64点,并且总有这个残差存在相似大小的差异(或)。10− 1610-1610^{-16}10− 1510-1510^{-15}

1
我可以使用FFT来解释加速度计的手势吗?
我需要检测在查看加速度计数据时发生的两种不同的手势。这是一个失败的过程(就我所能做到的简短): 可以说,iPhone在保持面朝上的同时来回摆动。用户可以进行一次振荡(一次向前或向后一次手势),也可以连续振荡任意时间(第二次手势)。 目前,我的代码维护着最近50帧中设备加速度计数据(y轴)的列表。此数据的每一帧都通过FFT算法(该http://goo.gl/yi3mn)进行处理,然后尝试解释给定的频域。我注意到振荡速度与频率空间中低范围的功率之间有很强的关系。 问题是,我需要检测(在运动在屏幕上动态显示动画时实时)刚结束的振荡是奇异的,还是在相反方向上继续发生另一振荡。在此我要指出,加速度计可与压力板配合使用。当振荡停止时,输入数据将显示与执行振荡时相反的值。这使得很难看到单次向前运动和两次向前然后向后运动之间的明显区别(在每个第一次振荡的结束时)。 谁能建议我如何利用FFT来解密准确的幅度值(或其他有用的值),以便我可以用来分辨上述手势之间的差异? 我已经记录了用于文本文件的数据。它是沿加速度计输入y轴的原始数据(g力值)。 http://pastebin.ca/2108123显示了2次奇异振荡的数据(我将设备保持在开始,结束以及两次振荡之间)。 注意:具有20次振荡的新原始数据已上传,但尚未绘制。 http://pastebin.ca/2108387显示了20次连续振荡的数据(我将设备始终保持在起点和终点)。
10 fft 

3
校正窗口增益是否习惯?
考虑如何定义Hanning窗口: 0.5 - 0.5 * cos(n*2*Pi/(N-1)) 根据此定义,它具有0.5的增益,这仅仅是系数的平均值。相比之下,据定义,平顶窗具有单位增益,大概是设计使然。 将Hanning窗口缩放2倍似乎是合适的,但我从未在任何地方讨论过此问题。似乎所有窗口都应缩放以获得单位增益。 在实践中,通常会针对窗口进行增益校正吗?如果没有,为什么不呢? 编辑: 由于没有人给出答案,所以我会详细说明。 很容易找到报告更常见窗口的论文。但是我从未见过有人在将增益用于频谱分析之前提到校正增益。也许我一直都错过了这个表述,或者每个人都认为增益校正是显而易见的要求。 将窗口的增益设置为1以保持信号的能级似乎是常识。此外,如果一个像平板一样具有0 dB的增益,而另一个像高斯一样具有近10 dB的损耗,那么一个如何比较各种窗口的幅度精度。 Windows也被广泛用于FIR滤波器设计。在此应用中,应该清楚的是,要加窗的信号(正弦脉冲)的大部分能量都位于窗的中心。因此,窗口几乎无法减少正弦脉冲的总能量。因此,当用于滤波器设计时,我们不希望单位增益,而是想要像平顶窗以外的大多数窗口一样的单位峰值幅度。除单位峰值幅度外的其他因素都会影响所得FIR滤波器的增益。

3
fft相谱令人困惑!
一个非常简单的MATLAB实验: f = 200; fs = 1000; t = 0: 1/fs : 1; x = cos(2*pi*f*t); plot(angle(fftshift(fft(x)))); 这是输出: 现在,对上面的代码片段进行较小的更改;将持续时间减少1个样本,如下所示: f = 200; fs = 1000; t = 0: 1/fs : 1 - 1/fs; x = cos(2*pi*f*t); plot(angle(fftshift(fft(x)))); 而且相位频谱变得非常疯狂: 问题: 在第一个图中,我希望看到仓700处的零相位,在此示例中,该相位对应于200的正频率。事实并非如此。其次,我不理解图1中图形的线性部分。我确实理解由于所谓的数字噪声而可能存在的相位分量,但是该噪声如何在相位上如此“线性”呢? 在第二个图中,为什么只删除一个样本会对相图产生如此大的影响? 我在这里做错什么吗?
9 fft  matlab  phase 

3
如何检测实时音频输入中的口哨声,爆裂声和其他声音?
我已经阅读了很多关于SO的问题,坦率地说,每个问题都没有描述解决该问题的任何特定方法。有些人说“做FFT”,有些人说“零交叉”等。但是我只了解数字音频输入由一个特定频率的幅度阵列组成。很好。超越它。 现在我知道尼奎斯特定理,频率,振幅,傅立叶级数等,这是从2-3年前的某个学期在我的大学课程中做到的。但是那时候我们真的没有教过傅立叶在现实世界中的使用情况,而且我不花心思去研究更多关于傅立叶的知识,而不仅仅是学习通过该课程。但是现在我将不得不使用所有这些东西。 这是我要检测的声音的快照: 显然,声音具有独特的图表。我只想了解如何为图中的独特尖峰线提取其特定独特特征。像是什么幅度,频率等等,还有多少时间-尽管我猜这很微不足道。 我想要一个简单,循序渐进,不模糊的说明列表-我可以用谷歌搜索我不懂的术语。 像这样吗?- 获取输入音频数据 频谱图 获取您想要在无噪声环境中检测到的声音的频谱图 研究该图-绘制该声音的独特特征 利用(4)中找到的声音特征,做出某种可以检测实时音频馈送中那些特定特征的功能 如果找到匹配项,那么-工作已完成。 完善算法以消除误报。 AAABBBXXXZZZ 我当时想让用户在一个相当好的环境中记录他们想要存储的声音作为手势。并且用户只会在安静的时间间隔之间发出声音; 录制开始和结束时3秒。 可以这么说,在最初的3秒钟内,我的系统将确定当前输入是正常的安静背景声音。然后,图表中的突然变化将开始声音输入。然后,当录制停止时,录制将继续进行3秒钟,随后是安静的时间间隔。这将由用户手动完成。然后,它将仅自动存储图表中突然变化持续的那部分的特征-在填充时间之间的某个地方。 因此,该部分的特性将另存为该声音的手势数据,该数据随后将用于检测实时音频馈送中的特定声音。 问题是,我在用通俗的英语思考所有这些。我需要考虑数学和物理学,以便能够在我的代码中有效地实现它。关于我在代码中写什么和在哪里写,我真是一无所知,即使我有这么多库和关于SO的问题也是如此。 很抱歉,如果这很长。

4
使用三角波代替正弦波的类似DFT的变换
我们知道DFT(离散傅里叶变换)将信号分解为多个正弦波频率。是否存在对三角形波执行相同操作的变换? 就我的目的而言,我只是在谈论一维信号(例如电压等)。我正在研究历史股票市场数据,我只想查看某些股票的反转。换句话说,我想使用此变换对股价执行“低通”操作。 编辑:如果是,我该怎么办?
9 fft  dft  transform 


1
如何使用安装在车辆中的加速度计检测坑洼?
我目前正在研究DSP和FFT,对此我还很陌生,并且在Arduino和业余项目中从事电子行业已有很长时间了。最近,我正在做一个项目,目标是在您的日常通勤路线上绘制坑洼,以测量道路的不平整度。这不是道路轮廓,而是驾驶员在旅途中感觉到的行驶不平顺度。为了简化起见,我安装了一个加速度来测量汽车的Z轴“垂直”加速度,当遇到坑洼时,震动和弹簧会减小四分之一汽车模型的力。 基本上,我希望能够创建一个检测器,该检测器将通过使用FFT查找垂直加速度的主要频率来检测坑洼,然后我可以将其与模式匹配以检测轿厢门或人孔盖的撞击将来可能会从坑洼中爬出来。 我不确定是否可以使用FFT,我对任何输入或建议和想法是否会受到赞赏,我已经制作了一个低通滤波器,以滤除来自传动系统和发动机的高频振动。 车内乘客/驾驶员对承受的“粗糙度”有何想法?我当时想在平坦的道路,碎石路,砖墙,恶劣的道路上进行路测,并提出垂直加速度大小的阈值,并以某种方式对所谓的“粗糙”进行缩放 检测到的坑洼也将通过GPS记录它们的位置,我正在尝试为此使用Rasberry Pi,并将其数据存储和速度作为一个很好的项目。 谢谢任何帮助或想法,书籍,教程,智慧等 更新: 在此携带其他数据: /electronics/56238/accelerometer-data-smoothing-filtering-pothole-detection
9 fft 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.