傅立叶变换的缺点

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

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

什么是恒Q变换(CQT)

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

关于信号处理中的窗口

在实际的信号处理过程中,我们会将时间片段分帧,按照帧为单位,转换成一个基于时间帧的频谱图,然后我们再将这些频谱图放到时间轴上,就可以形成一个类似热力图样的,基于时间变换的频谱变换图。

声音信号处理

现在我们注意一个问题,在我们的单个时间帧内(实际上我们在对信号进行截断),信号很可能不呈现它原周期的整数倍(周期截断),那么截断后的信号会泄漏问题,为了更好地满足傅立叶变换(实际上是FFT)处理的周期性要求,我们需要使用加权函数,也叫窗函数。加窗主要是为了使时域信号似乎更好地满足FFT处理的周期性要求,减少泄漏。

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

恒Q变换

直观的理解是,恒Q变换避免了时频分辨率均匀的缺点,对于低频的波,它的带宽十分小,但有更高的频率分辨率来分解相近的音符;但是对于高频的波,它的带宽比较大,在高频有更高的时间分辨率来跟踪快速变化的泛音。

下面,我们从计算过程来看恒Q变换的本质

首先,假设我们处理的最低的音为fmin,fk表示第k分量的频率,β为一个八度内所包含一个八度的频谱线数,例如β=36,表示每个八度内有36条频谱线,每个半音三条频率分量。

频率

并且有

频率带宽

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

常数Q

从这个式子,我们得知常量Q是只与β相关的常数。

下面我们假设Nk是随频率变换的窗口长度,fs表示采样频率

窗口函数

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

线性频率变为非线性频率

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

CQT频谱

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

matlab实现cqt频谱,基于音乐识别的频谱转换算法——CQT相关推荐

  1. 基于音乐识别的频谱转换算法——常数Q变换CQT(转载修改)

    傅立叶变换的缺点 由于在音乐中,所有的音都是由若干八度的12平均律共同组成的,这十二平均律对应着钢琴中一个八度上的十二个半音.这些半音临近之间频率比为21/12.显然,同一音级的两个八度音,高八度音是 ...

  2. matlab 载波相位估计,基于小波变换的载波相位恢复算法的研究

    刘畅安1,胡芳仁1, 2,刘昕1 (1. 南京邮电大学 光电工程学院,江苏 南京 210023: 2. 南京邮电大学 Peter Grüenberg中心,江苏 南京 210023) 摘要:在相干光通信 ...

  3. matlab彩色图添加水印,基于离散小波变换的彩色图像水印算法及其MATLAB实现

    随着数字多媒体技术的迅速发展,数字(音频.视频)产品的传播日益简单化(利用Internet),其复制后质量几乎不受影响,这就使得版权纠纷问题急剧上升.基于这个原因,人们开始寻找一种能更好地控制非法使用 ...

  4. 基于行为识别和视频分类的算法

    行为识别和视频分类是计算机视觉领域中非常有挑战性的课题,因为其不仅仅要分析目标体的空间信息,还要分析时间维度上的信息,如何更好的提取出空间-时间特征是问题的关键.我们先了解相关技术进展,从传统特征法到 ...

  5. 基于音乐/电影/图书的协同过滤推荐算法代码实现(基于用户推荐、基于项目推荐、基于SlopeOne算法推荐、基于SVD算法推荐、混合加权推荐)

    基于音乐/电影/图书的协同过滤推荐算法代码实现(基于用户推荐.基于项目推荐.基于SlopeOne算法推荐.基于SVD算法推荐.加权混合推荐) 一.开发工具及使用技术 MyEclipse10.jdk1. ...

  6. matlab合成和弦,基于Matlab实现音乐识别与自动配置和声的功能.pdf

    基于Matlab实现音乐识别与自动配置和声的功能 杨若芳,等 基于Matlab实现音乐识别与自动配置和声的功能 1 2 杨若芳 ,项 顶 1 (甘肃兰州城市学院教育学院 甘肃兰州,730070) 2 ...

  7. 浅析Shazam音乐识别算法:基于Matlab的实现与音乐特征提取的探讨

    亲爱的读者们,大家好!我非常荣幸有机会与你们分享我在音乐识别算法领域的一些探索.今天我们将会深入研究Shazam音乐识别算法,并以此为基础在Matlab环境中进行实现.这篇文章的目的是帮助你理解Sha ...

  8. 基于MATLAB人眼开度的疲劳识别

    摘 要 目前,随着人们生活水平的提高,各国人民汽车保有量也越来越多,伴随而来的是交通事故也在不断增多.研究表明,疲劳驾驶是造成交通事故日益严重的重要原因.开展驾驶员疲劳检测和预警的研究工作,有着十分重 ...

  9. Matlab MFCC音乐特征匹配与DTW算法识别(含GUI设计)

    目录 前言 音乐特征库的建立 批量导入音乐文件 mfcc_m.mfcc.v_melcepst分析比较 音乐识别 测试音频剪切* 录音输入音频信号 特征匹配 GUI设计 特征库音乐输入 特征库建立 录音 ...

最新文章

  1. 程序自我销毁(VB源代码)
  2. 【mxnet速成】mxnet图像分类从模型自定义到测试
  3. linux内核驱动开发 培训,嵌入式Linux驱动开发培训 - 华清远见教育集团官网
  4. Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
  5. 《机器学习项目开发实战》送书活动结果公布
  6. C语言 socket 编程学习
  7. [UML]UML系列——用例图Use Case
  8. vux 使用 font-awesome
  9. 夺命雷公狗ThinkPHP项目之----企业网站13之文章列表页的实现(主要是分页的实现)...
  10. linux clang安装,linux 配置 clang++ SDL 开发环境 (新手向)
  11. 群晖室开虚拟机安装于服务器,黑群晖虚拟机安装
  12. 调通sina33下的AP6212A0(WIFI+BT)(V1.1版本)
  13. 云主机跟VPS的4大区别
  14. 画春天的景色计算机教案,最新《画春天》教案
  15. 百篇已过,又是一个新篇章,谈谈感受吧
  16. 迁移erp服务器系统教程,erp迁移上云服务器
  17. TensorFlow 线性代数编译框架 XLA
  18. [oeasy]python0088_字节_Byte_存储单位_KB_MB_GB_TB
  19. 如何选择适合你的兴趣爱好(七十),表演
  20. 技术驱动赋能医美 新氧奋力前行

热门文章

  1. linux proc 自动清理,Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches
  2. matlab 窗口布局设置
  3. 数据仓库框架流程图整理
  4. 浅谈游戏素质灵感素材的积累
  5. Improved Baselines with Momentum Contrastive Learning
  6. J-link工具:J-Flash Lite烧录方法
  7. Android实战-计算器案例
  8. 合宙首款MCU芯片——Air101上市
  9. 用户即将一分钟后关闭计算机,1分钟内系统即将关闭的病毒!
  10. app测试模拟器和真机区别