传统的离散傅立叶变换(DFT)及其表亲FFT产生的条带间隔相等。换句话说,您会在第一个仓中得到前10赫兹,在第二个仓中得到10.1至20,依此类推。但是,我需要一些不同的东西。我希望每个垃圾箱所覆盖的频率范围在几何上增加。假设我选择1.5的倍数。那么我们在第一个容器中有0到10,我想在第二个容器中有11到25,在第三个容器中有26到48,依此类推。是否可以修改DFT算法使其表现为这种方式?

评论

您始终可以在兴趣点处计算DFT。另外,我想到离散小波变换和滤波器组。可能值得一看。

您正在寻找常量Q变换(CQT)。

措辞不佳。您想要的既不是新内容,也不是许多情况下的改进。

相关:stackoverflow.com/q/1120422/125507 dsp.stackexchange.com/q/651/29

DFT和FFT不是表亲。他们给出相同的结果。

#1 楼

引用我的论文:


一组变换的名称为常量Q,与傅立叶变换类似。

计算使用快速傅立叶变换时,离散傅立叶变换可能非常有效。但是,我们
注意到信号的能量在整个频谱上被划分为大小统一的频率桶。尽管在许多情况下这是有用的,但我们注意到这种均匀分布不理想的情况。通过对音乐频率的分析可以观察到这种情况的一个重要例子。在西方音乐中,构成音阶的频率在几何上是隔开的。因此,我们
观察到离散傅里叶变换的频率仓与音阶频率之间的映射不足,因为它们之间的匹配差。常量Q转换解决了此问题。

常数Q的目的是产生一组对数间隔的频率仓,其中频率仓的宽度是前一个的乘积。结果,我们可以在可听谱范围内为每个音符产生相同数量的
分箱,从而
为每个音符保持恒定的准确度。
频率范围朝着较高的频率变得更宽,而
向着较低的频率变得更窄。
频率检测精度的这种扩展紧密地模仿了人类听觉系统对频率的响应方式。

另外,西方音阶中音符的紧密匹配使得常数Q在音符检测中特别有用。识别一个
音符值而不是一个明确的频率值。
此外,常数Q简化了音色分析的过程。
乐器演奏的音符的频率通常由和声相关的部分组成。
乐器的音色可以通过谐波比率来表征。使用恒定Q变换,无论基本频率如何,谐波在
仓之间均等分布。只需在横档上移动特征即可大大简化
识别在音阶中任何位置弹奏音符的乐器的过程。
使用常量Q变换的潜在缺点是,与傅立叶变换相比,它需要更多的计算。

一种有效的离散傅立叶变换算法
( Brown和Puckette(1992)详细介绍了可以通过FFT计算得出的常数Q变换。


#2 楼

DFT(FFT)中存在重要的数学假设。在这种情况下,最重要的是您正在执行截断的无限时正弦变换。第二个原因是假定截断的时间和截断的频率信号是模包裹的(圆形)。仅由于这些假设(以及均匀的算术间距),在正常FFT中间隔开的bin形成了正交集合。因此,时间<->频率对是完全可逆的。

常数Q变换不能很好地截断,因此任何实际实现都不能产生完美的正交正交对。核是无限长的指数衰减正弦曲线,因此不能具有上述圆形优势。如果不截断,它们确实会形成一个正交集。

小波变换通常是2的幂次间隔,这对于细粒度的频率估计不是很有用。 >
建议将标准正弦DFT分布不均匀会丢失宽间隔区域中的信息,而会在密集间隔区域中复制信息。除非为每个频率使用不同的切趾函数,否则成本很高。

一种可行的解决方案是进行半频谱-> 2抽取抽取程序,以获得基于八度的子以满足每个倍频程的一些minimax估计误差。可以将“部分频谱”->“按比例抽取”设置为任何比率,以实现任何粒度需求。不过,它仍然需要大量计算。