基于音乐识别的频谱转换算法 | 您所在的位置:网站首页 › 钢琴音阶图谱怎么画 › 基于音乐识别的频谱转换算法 |
傅立叶变换的缺点
由于在音乐中,所有的音都是由若干八度的12平均律共同组成的,这十二平均律对应着钢琴中一个八度上的十二个半音。这些半音临近之间频率比为21/12。显然,同一音级的两个八度音,高八度音是低八度音频率的两倍。 因此在音乐当中,声音都是以指数分布的,但我们的傅立叶变换得到的音频谱都是线性分布的,两者的频率点是不能一一对应的,这会指使某些音阶频率的估计值产生误差。所以现代对音乐声音的分析,一般都采用一种具有相同指数分布规律的时频变换算法——CQT。 什么是恒Q变换(CQT)CQT指中心频率按指数规律分布,滤波带宽不同、但中心频率与带宽比为常量Q的滤波器组。它与傅立叶变换不同的是,它频谱的横轴频率不是线性的,而是基于log2为底的,并且可以根据谱线频率的不同该改变滤波窗长度,以获得更好的性能。由于CQT与音阶频率的分布相同,所以通过计算音乐信号的CQT谱,可以直接得到音乐信号在各音符频率处的振幅值,对于音乐的信号处理来说简直完美。 关于信号处理中的窗口在实际的信号处理过程中,我们会将时间片段分帧,按照帧为单位,转换成一个基于时间帧的频谱图,然后我们再将这些频谱图放到时间轴上,就可以形成一个类似热力图样的,基于时间变换的频谱变换图。 我们关注上述“中心频率与带宽比为常量Q”,从公式上看,我们可以表达为下述公式 假设处理的最低音为fmin,fk表示第k分量的频率,b为一个八度内所包含的频谱线数,例如b=36,表示每个八度内有36条频谱线,每个半音三条频率分量。 K = ⌈ b ⋅ l o g 2 ( f m a x f m i n ) ⌉ K=\lceil b\cdot log_2(\frac{f_{max}}{f_{min}})\rceil K=⌈b⋅log2(fminfmax)⌉ (向上取整) f k = 2 k / b f m i n , k = 0 , 1... , K − 1 f_k=2^{k/b}f_{min} ,k=0,1...,K-1 fk=2k/bfmin,k=0,1...,K−1 并且有 f k + 1 − f k = f k ( 2 1 / b − 1 ) f_{k+1}-f_k=f_k(2^{1/b}-1) fk+1−fk=fk(21/b−1) 即 f k = f m i n ⋅ 2 k / b , k = 0 , 1 , . . . , K − 1 f_k=f_{min}\cdot 2^{k/b},k=0,1,...,K-1 fk=fmin⋅2k/b,k=0,1,...,K−1 设 δf 表示的是频率 f 处的频率带宽,也可以称为频率解析度,那么根据定义得知: Q = f δ f = 1 2 1 / b − 1 Q=\frac{f}{\delta_f}=\frac{1}{2^{1/b}-1} Q=δff=21/b−11 得知常量Q是只与b相关的常数。 假设Nk是随频率变换的窗口长度,fs表示采样频率: N k = ⌈ Q f s f k ⌉ , k = 0 , 1... , K − 1 N_k=\lceil Q\frac{f_s}{f_k}\rceil,k=0,1...,K-1 Nk=⌈Qfkfs⌉,k=0,1...,K−1 同时我们的线性频率应该变为基于log2的非线性频率 其中, w(n)是长度为Nk的窗函数;Q是CQT变换中的常数因子;k是CQT谱的频率序号;Nk值与k值有关。 Reference [1]陈燕文, 李坤, 韩焱, et al. 基于多特征融合的乐器声品质评价方法研究[J]. 测试技术学报, 2019(5). [2]https://www.jianshu.com/p/53c93947c417 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |