当前位置:首页 » 操作系统 » 音频滤波算法

音频滤波算法

发布时间: 2023-12-19 16:11:57

1. 基于音乐识别的频谱转换算法——CQT

由于在音乐中,所有的音都是由若干八度的12平均律共同组成的,这十二平均律对应着钢琴中一个八度上的十二个半音。这些半音临近之间频率比为2 1/12 。显然,同一音级的两个八度音,高八度音是低八度音频率的两倍。

因此在音乐当中,声音都是以指数分布的,但我们的 傅立叶变换得到的音频谱都是线性分布的,两者的频率点是不能一一对应的,这会指使某些音阶频率的估计值产生误差 。所以现代对音乐声音的分析,一般都采用一种具有相同指数分布规律的时频变换算法——CQT。

CQT指中心频率按指数规律分布,滤波带宽不同、但中心频率与带宽比为常量Q的滤波器组 。它与傅立叶变换不同的是,它频谱的横轴频率不是线性的,而是 基于log2为底的 ,并且可以 根据谱线频率的不同该改变滤波窗长度 ,以获得更好的性能。由于CQT与音阶频率的分布相同,所以通过计算音乐信号的CQT谱,可以直接得到音乐信号在各音符频率处的振幅值,对于音乐的信号处理来说简直完美。

我们关注上述“ 中心频率与带宽比为常量Q ”,从公式上看,我们可以表达为下述公式

下面,我们从计算过程来看恒Q变换的本质
首先,假设我们处理的最低的音为f min ,f k 表示第k分量的频率,β为一个八度内所包含一个八度的频谱线数,例如β=36,表示每个八度内有36条频谱线,每个半音三条频率分量。

并且有

设 δ f 表示的是频率 f 处的频率带宽,也可以称为频率分辨率,那么根据我们的定义得知:

从这个式子,我们得知常量Q是只与β相关的常数。
下面我们假设N k 是随频率变换的窗口长度, f s 表示采样频率

同时我们的线性频率应该变为基于log2的非线性频率

我们的CQT,通过采用不同的窗口宽度,获得不同的频率分辨率,从而可以得到各个半音的频率振幅。在CQT中第n帧的第k个半音频率分量可表示为

其中我们的x(m)为时域信号,w N k 为窗函数

热点内容
龙村m脚本 发布:2024-11-29 17:38:10 浏览:781
linuxc配置文件 发布:2024-11-29 17:08:31 浏览:826
wow刷碎片脚本 发布:2024-11-29 15:58:24 浏览:591
明小子源码 发布:2024-11-29 15:15:30 浏览:144
苹果8plus什么配置 发布:2024-11-29 14:16:36 浏览:677
androidmvp结构 发布:2024-11-29 14:16:34 浏览:536
androidsqlite命令 发布:2024-11-29 14:04:38 浏览:156
信用卡分期算法 发布:2024-11-29 13:50:56 浏览:808
安卓手机dll文件为什么打不开 发布:2024-11-29 13:40:49 浏览:1003
百分之五十石碳酸怎么配置 发布:2024-11-29 13:38:56 浏览:974