当前课程知识点:计算机音乐 >  第五章 一维振动模型 >  5.4 梳状滤波器 >  梳状滤波器

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

梳状滤波器在线视频

下一节:Karplus Strong算法

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

梳状滤波器课程教案、知识点、字幕

同学们大家好

这节课我们将会使用梳状滤波器

来模拟上一节课的循环网络

在上一节课中

我们使用一个循环网络来表示

达朗贝尔的行波解

那么在网络当中的一个信号

通过右向的传播之后到达

右边的端点

那么它会成一个衰减的系数

并且进行反向

变成一个向左传播的信号

并且到达左端点之后

又会乘上一个

系数

那么进行反向

如此循环形成一个循环网络

那么如果观察它的行波公式

那么我们可以发现

左右传播的信号

相当于是一个信号经过延迟得到的信号

因此我们可以

直接用两相延迟来模拟

信号在进行左右传播中的过程

从而得到一个循环的网络

那么在信号系统里这个循环延迟网络

可以用一个带反馈项的

P阶差分方程来表示

那么根据前面我们学过的

频域信号处理的知识

一个时域的差分方程

相当于频率的滤波器

那么对于滤波器来说

最重要的就是它的

频率响应函数了

那么频率响应函数将决定滤波器

在频谱上会对声音做什么样的修改

那么通过简单绘图我们会发现

刚才我们的y(n)=x(n)+gy(n-p)这个

带一项P阶的差分方程

它的频率响应函数是这样的一个形状

那么看起来像一个倒转过来的正弦波

而且它会周期性地加强某些频段

除了零点之外的第一个峰值

它所在的位置

也就他所在的频率的位置

也都是P分之R

R是采样率

那么P是这个延迟的采样点的个数

那么这说明它可以把任意的声音的频谱

修剪成跟乐音一样的具有

整数倍频谱的一个结构

那么接下来

我们可以再puredata里面

演示一下它的效果

我们在puredata里面使用了一个

延迟器

Delay

那么这Delay我们可以打开来看一眼他的

这个程序是什么样的

这个Delay主要是由

两个部分组成

一个是delwrite

它是一个延迟的写入

还有这个vd

那么这vd是一个延迟的读取

那么通过这两个组合

我们就可以实现一个延迟器

当然它的这个单位是时间

等于说它的

这个延迟的这个单位

delay的延迟这单位是时间

那么是以毫秒来记的

除此之外

我们对延迟项再乘上了一个系数

那么完成这延迟期之后

我们就可以通过调整他的两个输入来得到

不同参数的延迟滤波器

那么而且它是循环的延迟滤波器

然后我们可以来测试一下它的结果

那么打开这个Audio on之后

我们可以看到

这个延迟器可以把一个标准的白噪声

变成这样的一个形状

那么

在下面我们可以看到它的频率响应函数

可以加强延迟项的系数

比如说加强90吧

那它的峰值就会变得更加的明显

那么

我们可以听一下这个结果

那么我们可以通过调整这个延迟量的

技术

比如说

在零的时候它是一个标准的白噪声

那么在慢慢加强延迟量的时候

我们会听到

它慢慢地具有了这种

音高才有的这种特征

那么

听起来它

从一个白噪声

一个完全的这种噪声的形式

变得慢慢的有音高

加99%之后呢

就能听到大概是一个类似方波一样的

电子声音

在python里面我们可以更容易地实现

这个梳状滤波器

因为scipy.signal里面有一个叫做

lfilter线性滤波器的这样的

模块

那么我们看一下线性滤波器

它的操作非常简单

你只要输入

A跟B作为两个列表进行输入

也就把线性滤波器的系数进行输入之后

它就可以返回

以A跟B作为系数的

这样的一个线性滤波器

其中B的系数控制X的项

A的系数控制Y的项

那么在我们的

梳状滤波器里面

X的项我们只需要B0这一项

所以B我们只需要保留一项

而A的系数除了前面的

A0就是1之外

前面的N减1N减二一直到N减L减一

我们都是不需要的

所以需要有L减一个零

之后

DL项我们是要的

所以我们的程序

可以写成一个线性滤波器的形式

其中B的系数是1

A的系数

有一项1

然后L减一个零

然后最后再加一个0.99

也就是

需要进行反馈的那一项

之后我们

使用一个白噪音作为素材

使用X作为一个输入

它是一个

随机函数

也就是一个白噪音

它是一个两秒的一个

白噪音

因为这个random会生成

0到1之间的随机数

我们需要减0.5变成一个

-0.5到0.5之间的随机数

之后通过这个comb

就是梳状滤波器

最后再进行输出

写入到noise_comb.wav下面

运行一下看看

好运行完之后

我们听一下这个结果

这结果跟我们刚才在

puredata里面听到的是一样的

那在这个基础之上

如果我们

再加入一个adsr的结构

比如说我们加入这样一段adsr的结构

对这个白噪音进行一个包络

比如说我们让这x乘以adsr

他用零秒时间可以达到一个最大值

它总的时间长度是T

那么他用零秒时间达到一个最大值

然后

用零点零一秒时间下降到零

其他我们都可以

设成相应的数值

那么这level因为最大值它是1

你必须设置成1

然后下降下来的IOS是变成零

那么采用率是R

然后我们再去对它进行comb

也就是我们用一个非常短的白噪音

类似一个脉冲信号

这样的一个输入

然后通过一个comb

然后我们听一下他的结果

这个我们设置改成imp_comb.wav

然后运行一下看看

运行完之后

我们听一下这个结果

这个结果非常像一个

弹拨乐的声音

但是它又比较有电子的味道

因为它的输入是一个非常小的扰动

跟我们在弹拨一个乐器的时候非常的像

那么最后我们会得到一个

类似电子的弹拨乐的声音

在刚才实验当中

我们看到只要使用一个类似脉冲信号

的一个极短的白噪声作为输入

我们就能得到这样的声音

这样类似弹拨乐的声音

那么尽管它的音色听起来有点

电子的味道

但是从整体的角度上

它已经具有弦乐的音色轮廓了

那么尽管并不是特别的真实

那么下小节我们将会来分析一下

这种不真实的原因在哪里

并且把这个梳状滤波器

修改成一个更有效的版本

也就是Karplus Strong算法

计算机音乐课程列表:

欢迎辞

-欢迎辞

第一章 基本概念

-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 动态时间规划实现

--动态时间规划实现

-第七章作业

梳状滤波器笔记与讨论

也许你还感兴趣的课程:

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