传统的离散傅立叶变换(DFT)及其表亲FFT产生的条带间隔相等。换句话说,您会在第一个仓位中获得前10赫兹,在第二个仓位中获得10.1至20,依此类推。但是,我需要一些不同的东西。我希望每个垃圾箱所覆盖的频率范围在几何上增加。假设我选择1.5的倍数。然后,我们在第一个容器中有0到10,我想在第二个容器中有11到25,在第三个容器中有26到48,依此类推。是否可以修改DFT算法以这种方式运行?
传统的离散傅立叶变换(DFT)及其表亲FFT产生的条带间隔相等。换句话说,您会在第一个仓位中获得前10赫兹,在第二个仓位中获得10.1至20,依此类推。但是,我需要一些不同的东西。我希望每个垃圾箱所覆盖的频率范围在几何上增加。假设我选择1.5的倍数。然后,我们在第一个容器中有0到10,我想在第二个容器中有11到25,在第三个容器中有26到48,依此类推。是否可以修改DFT算法以这种方式运行?
Answers:
引用我的论文:
一组变换的名称为常数Q,与傅立叶变换相似。
当使用快速傅里叶变换时,离散傅里叶变换的计算可能非常有效。但是,我们注意到信号的能量在整个频谱中被分为大小统一的频率段。尽管这在许多情况下很有用,但我们注意到这种均匀分布不理想的情况。通过分析音乐频率可以观察到这种情况的一个重要例子。在西方音乐中,构成音阶的频率是几何间隔的。因此,我们看到离散傅里叶变换的频点与音阶频率之间的映射不足,因为频点的匹配性很差。恒定的Q变换解决了这个问题。
常数Q的目的是产生一组对数间隔的频率仓,其中频率仓的宽度是前一个的乘积。结果,我们可以在可听频谱中为每个音符产生相同数量的bin,从而使每个音符的精度保持恒定。频率仓朝向较高频率变宽,而朝向较低频率变窄。频率检测准确性的这种扩展紧密地模仿了人类听觉系统响应频率的方式。
另外,西方音阶中音符的紧密匹配使得常数Q在音符检测中特别有用。识别音符值而不是明确的频率值。此外,常数Q简化了音色分析的过程。乐器演奏的音符的频率通常由谐波相关的部分组成。乐器的音色可以通过谐波比率来表征。借助恒定的Q变换,无论基频如何,谐波都将在两个仓之间均匀分布。仅通过在仓位上移动特征即可大大简化识别在音阶中任何位置弹奏音符的乐器的过程。
Brown and Puckette(1992)详细介绍了一种有效的算法,可将离散傅立叶变换(可以用FFT计算)转换为常数Q变换。
DFT(FFT)中存在重要的数学假设。在这种情况下,最重要的是您正在执行截断的无限时正弦变换。第二个原因是假定截断的时间和截断的频率信号是模包裹的(圆形)。仅由于这些假设(以及均匀的算术间距),在常规FFT中间隔开的bin形成了正交集合。因此,时间频率对是完全可逆的。
常量Q转换无法很好地截断,因此任何实际实现都无法产生完美的正交正交配对。核是无限长的指数衰减正弦曲线,因此不能具有上述圆形优势。如果您不截断,它们确实会形成正交集。
小波变换通常间隔为2的幂,这对于细粒度的频率估计不是很有用。
建议将标准正弦DFT不均匀间隔会丢失宽间隔区域中的信息,而会在密集间隔区域中复制信息。除非为每个频率使用不同的切趾函数,否则成本很高。
一种可行的解决方案是执行半频谱-> 2抽取抽取的重复过程,以获取基于倍频程的子部分,以满足每个倍频程的一些minimax估计误差。可以将“部分频谱”->“按比例抽取”设置为任何比率,以实现任何粒度需求。不过,它仍然需要大量计算。