当前课程知识点:计算机音乐 >  第二章 时域音频处理 >  2.3 分窗处理2:音量计算 >  分窗处理2 音量计算

返回《计算机音乐》慕课在线视频课程列表

分窗处理2 音量计算在线视频

下一节:端点检测

返回《计算机音乐》慕课在线视频列表

分窗处理2 音量计算课程教案、知识点、字幕

让我们来继续看一下

分窗处理在音量计算上的应用

尽管时域的音频信号中的振幅本身

就是具有一定的音量的信息的

但是像我们前面讨论的一样

只有这些点在逐点振动的时间上面

进行累积

才能够体现出能量的信息

因而才能够感受到音频信号的音量

因此实际上音量也是一种局部的概念

我们也可以通过时窗分析的方法

来逐个窗口的进行音量的计算

也就是说窗口是音量计算的一个前提

我们只有在决定好窗口的范围

例如从序号M开始

走过一个宽度为N的窗口

也就是说我们要去计算

从XM到XM加N减1这么多的数据

才能够去计算出窗口的音量

音量有很多种度量的方法

比如最简单的就是去

获取窗口中振幅最大的点

比如说它的峰值来作为度量

但这种方法通常会受到

个别的异常的采样点的影响

从而过大的估计音量

更为常用的一种方法是统计窗口的平均能量

平均能量可以用窗口内的数据的

平方平均来定义

当然了

因为能量跟振幅的量纲上是不一致的

所以为了能够更方便地做数值上的比较

我们更常用的一种方法是

使用平均能量的开方

也就是被我们称之为均方根

Root Mean Square RMS

来衡量一个窗口内的音量

在这个图中我们可以很好的来看到

在一个窗口之内

峰值以及RMS的一个关系

那么一般来说

RMS是一定会比峰值要小的

因为它是窗口内的数据的某种平均值

具体来说对一个正弦波来说

RMS大约是峰值的根号2分之1

接下来我们可以做一个具体的计算

那么根据RMS的定义

假设我们输入的信号是正弦波

XN等于一个这样的一个正弦波的形式

RMS根据定义

它是平方和的开方

也就是平方和

那么平方和我们刚才说

是对一个窗口之内去计算平方和

之后再开方

那么当然如果我们的窗口里面的数据

足够密集

我们也可以把它当做一个连续的信号来看

因此求和其实是可以用积分来代替

比如说我们把求和就写成积分的形式

积分的范围也是在一个窗口的范围

那么如果这数据足够密集

并且这个窗口选择比较合适的话

我们也可以把这个范围就

规定在一个周期之内

去计算XN的平方

这应该是TDT然后最后再开方

这时候我们把三角函数给进行一个代入

那么它将会得到

cos平方ωTDT

前面还有一个系数是A平方

那么是从零到T进行积分

那么接下来我们就可以使用

我们在高中时候学过的一个

叫做倍角公式对平方向进行展开

那么我们可以把这一段

写成2分之1 1加cos 2ωT的形式

那么显然cosωT

在一个周期之内的积分

它一定是会变成零

那么也就是说

这个积分只保留2分之1这样的一个常数项

因此它最终的计算结果

就是根号2分之a

在上一章中我们使用了

分贝作为振幅的度量

设定参考声强是a0

我们可以用20倍的log a除a0

作为振幅a的度量

那么单位是分贝

因此RMS与振幅其实是同一个量纲

所以我们可以用分贝作为单位来衡量音量

接下来我们就来演示一下

如何在计算机程序中

使用分窗处理的方法来计算音量RMS

并且将不同时刻的RMS显示在时间轴上

从而绘制RMS的曲线

接下来我们就使用python来完成

RMS的计算的过程

那么在刚才的分窗函数的基础之上

我们同样是需要设定一下窗口的大小

比如说我们用512个采样点

那么这次的窗口间隔

我们设置成一个采样点

也就是说每个采样点

我们都要去计算一下

它的窗口大小是512的RMS的值

那么在读完这个信号之后

这次我们需要做一件事情

就是它的一个初始化

那么我们对着X除以max X

或者我们再加上ABS这个绝对值X

做这样一个处理之后

我们就一定能够保证X是在-1到1之间

这样话我们就可以做接下来的处理了

比如说我们令RMS

是一个是对它进行初始化

用frame我们进行一个初始化

当然这个事情是需要做完分窗之后的

我们要做完france

frameNUM

用这个写好的分窗函数进行分窗

好 做完分窗之后初始化一下RMS

然后我们就可以去每个窗口的计算RMS的

那么for I in range

farmer NUM

去计算一下每个窗口的RMS的值

那么RMS每个窗口的值

就是这个窗口里面的平方平均在开方

所以我们首先要做一个平方

自己乘自己就是平方了

做完平方之后

我们需要做一个平均值

然后最后再做一个开方

所以我们注意一定要使用

numpy下面的这些数学运算

比如说取平均或者去开方

因为numpy下面的这些函数

是可以处理列表类型的

好 这样做完之后

我们就可以对RMS进行一个输出了

进行一个显示了

我们通过 下面的plt点plot

先把X给显示出来

再把RMS给显示出来

然后去进行show

最后我们运行一下

可以看到RMS的整个曲线

大致地描述了一段

音频信号它的强度的大小

那么现在我们如果放大一下

会看到这段RMS曲线还是比较曲折的

因为我们取得窗口的长度并不是很大

所以它会有一个

沿着音频信号的曲线变化进行

一个细节的变化的一个特点

如果我们在取参数的时候

选择窗口大小

如果选大一点

比如1024个采样点的这样一个窗口

我们再去运行一下

你会看到现在的RMS包曲线

比刚才就要更加的平滑一点

如果进一步加大到加大到2048

这么多个采样点

那么你就会看到RMS曲线

就会变得非常的光滑

当然在变得非常光滑同时

会看到它的起伏会比原来更加的提早

那么原因是因为我们在这个点的时候

我们就要计算这个点后面的2048个点的

这些点所形成的RMS的取值

那么这样是会有一些提早的

那么如果想去掉这个事情

我们就需要在选择窗口的时候

以每个点作为中心点去选择这个窗口

而不是以它为起始点去选择这个窗口

那么这件事情就交给同学们课下进行练习

那么这就是有关用分窗的处理

进行音量计算的方法

计算机音乐课程列表:

欢迎辞

-欢迎辞

第一章 基本概念

-1.1 计算机音乐导言

--计算机音乐导言

-1.2 计算机音乐课程主要内容

--计算机课程主要内容

-1.3计算机音乐课程资源

--计算机音乐课程资源

-1.4 音乐的基本表达

--音乐的基本表达

-第一章作业

第二章 时域音频处理

-2.1时域音频处理概述

--时域音频处理概述

-2.2 分窗处理1:OLA叠放

--分窗处理1: OLA叠放

-2.3 分窗处理2:音量计算

--分窗处理2 音量计算

-2.4 端点检测

--端点检测

-2.5 振幅包络

--振幅包络

-2.6 音频信号相乘

--音频信号相乘

-2.7 环形调制

--环形调制

-2.8 频率调制

--频率调制

-2.9 频率调制在音乐上的应用

--频率调制在音乐上的应用

-第二章作业

第三章 频域音频处理

-3.1 频谱概述

--频谱概述

-3.2 傅里叶变换

--傅里叶变换

-3.3 短时傅里叶变换

--短时傅里叶变换

-3.4 加法合成

--加法合成

-3.5 线性滤波器

--线性滤波器

-3.6 京剧锣鼓经分析

--京剧锣鼓经分析

-第三章作业

第四章 音色合成

-4.1 音色合成概述

--音色合成概述

-4.2 质点弹簧阻尼模型

--质点弹簧阻尼模型

-4.3 双线性滤波器

--双线性滤波器

-4.4 Modal合成

--Modal合成

-第四章测试

第五章 一维振动模型

-5.1 一维振动模型概述

--一维振动模型概述

-5.2 弦振动模型

--弦振动模型

-5.3 达朗贝尔的行波解

--达朗贝尔的行波解

-5.4 梳状滤波器

--梳状滤波器

-5.5 Karplus Strong算法

--Karplus Strong算法

-5.6 管状气鸣乐器模型

--管状气鸣乐器模型

-第五章作业

第六章 高音跟踪

-6.1 音高跟踪概述

--音高跟踪

-6.2 时域音高跟踪

--时域音高跟踪

-6.3 频域音高跟踪

--频域音高跟踪

-6.4 K歌评分

--K歌评分

-第六章作业

第七章 音频同步

-7.1 音频同步概述

--音频同步概述

-7.2 音乐特征提取 CQT

--音乐特征提取CQT

-7.3 音乐特征提取 Chroma

--音乐特征提取Chroma

-7.4 动态时间规划概述

--动态时间规划概述

-7.5 动态时间规划实现

--动态时间规划实现

-第七章作业

分窗处理2 音量计算笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。