当前课程知识点:计算机音乐 >  第三章 频域音频处理 >  3.5 线性滤波器 >  线性滤波器

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

线性滤波器在线视频

下一节:京剧锣鼓经分析

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

线性滤波器课程教案、知识点、字幕

同学们大家好

接下来我们要进入到

频域处理的应用环节

其中最直接的应用就是

线性滤波器

在时域当中

我们可以通过对振幅的操作

来改变时域的波形

例如前面我们就通过振幅的包络

可以设计出各种各样的

声音的ADSR结构

在频域当中

我们也可以通过改变频谱的幅值

来获得一些特定的频谱结构

其中线性滤波器就是最简单的一种

让我们从几乎可以当做最简单的

滤波器着手

它就是两点均值滤波器

滤波器在时域上

具有很简单的一种形式

就是yn等于2分之xn加上xn减1

在信号处理当中

我们还可以用系统框图

来更加形象的来理解线性变换

比如说我们可以用一个矩形来表示

n的一个延迟

通过一个三角形来表示xn的一个争议

并且我们还可以用

一个小圆圈来表示加法

这样两点均值滤波器

就可以用这张系统框图来表示了

系统框图更加形象地

展示了滤波器的处理过程一个输入的信号

通过一个延迟之后

跟它自己进行相加

并且除以二再进行输出

接下来我们就可以在python

里面来听一下滤波器的效果

下面这段代码展示了

两点均值滤波器的效果

首先我们定义了

一个叫做twopoints的函数

那么它作用就是对输入的信号

求相邻两点的均值并进行输出

然后在主函数里面

我们生成了一段两秒钟的白噪音

通过nprandom点rand这个函数

它生成的随机数范围是从0到1

那么我们减去0.5之后

就可以让它的范围是从负0.5到0.5

这样就是一个标准的白噪音

然后我们对它进行两点均值滤波

那么接下来我们去展示

滤波前跟滤波后的频谱

那么通过np下面的fft点fft

进行频谱的展示

这是一个傅里叶变换

变换完之后

我们只显示他的幅值

通过调用abs求模

然后把输入信号跟输出信号的

频谱的幅值图显示在一起

那么我们运行一下

好 那么因为傅里叶变换

它是一个对称的一个频谱

其实我们只要看左半边就行了

那么我们看到输入的信号

它因为是一个白噪音

所以频谱应该是随机的遍及整个频段

那么 通过两点均值滤波之后

我们看到它有一个非常独特的一个形状

那么也就是在低频的时候它跟白噪音

原来的输入了白噪音的频谱其实是比较相近的

那么越往高频地方

它的幅值就越来越减少

到1/2采样率的这个地方

它的幅值就减到零

那么为了更直观的来看到

究竟两点均值滤波对幅值

作了什么样修改

究竟对什么样的频段是变大了

那么对什么样频段是变小了

我们可以去求一下这两个频谱图的商

来看一下

好 这样的话我们去增加一个子图

增加一个子图

并且我们用这个子图去

显示两个频谱的幅值的商

我们定义两个频谱的幅值的商

然后显示在第三个子图上面

好 运行一下 看一下结果

那么通过这两个频谱的幅值的商

我们可以明显的看到

那么两点的均值滤波器

实际上做了这样的一个处理

在比较低频的时候

它基本维持

整个幅值不变

那么越高频的地方

它有一个比较强的削弱

所以其实这样的一个滤波器

我们可以把它看作是一个

低通滤波器

我们可以来听一下输入前

跟输入后的一个效果

好 这是输入前的一个白噪音

就是标准白噪音两秒

那么接下来

是通过两点均值滤波之后的一个白噪音

可以听到高频的一些比较尖的

一些白噪音是被滤掉一部分的

但是实际上两点均值滤波

它对于作为一个低通滤波器来说

效果并不是特别的明显

从刚才实验当中我们可以看到

想要知道一个滤波器

对频谱具有什么样的效果

最好的方式

就是计算它的频率响应

假设在时域里面一个滤波器

把xn处理成yn

我们假设xn跟yn所对应的傅里叶频谱

是大XK跟大YK

那么我们就可以把频率响应定义成

大Y[k]/X[k]

在数学上我们可以对两点

均值滤波器的频率响应函数再做一下推导

我们有一个单频的

单位复述正弦波作为输入

计算出输入的信号

再经过线性滤波器之后

它应该变成二分之Z的n次方

加上Z的n减一次方

它可以写成2分之1加Z的负1次方

再乘以Z的n次方

再计算频率响应函数的时候

我们只要对这两个式子进行相除

就可以得到它的一个频率响应

2分之1加Z的负1次方

那么求幅值之后

我们就可以得到cos2分之ω

这是它的频率响应函数

那么这个频率响应应该

正好就是一个勇者函数

在零到派之间的部分

它是递减的

而且它只有一个零点

所以我们也把这个滤波器

叫做一零滤波器

One zero滤波器

两两均值滤波器是最简单的一种

如果我们考虑使用更多的延迟项

以及给每一项延迟

增加不同的一些系数

就可以设计出更复杂的滤波器了

甚至我们还可以用一个递归方程

来用有限项去描述无限多项

因此线性滤波器

可以看成是把个接的延迟量

再加上一个系数组合起来的

这样它的系数本身

就构成一个信号

因此我们也称线性滤波器

是两个信号做卷积的结果

其实傅里叶变换本身

也可以看作是一个卷积

它是由输入信号xn跟不同

频率的正弦波做卷积的一个结果

其实可以证明在时域里做卷积等价于

把信号转换到频域之后再直接相乘

我们这样就可以更加直观的

看到滤波器的实际作用了

一般来说如果我们希望

实现某种频率的效果

那么用滤波器去反推时域的方程

是一件非常困难的事情

甚至根本我们就得不到真正的线性解

好 在前人给我们总结了

一些非常有用的滤波器模板

比如说巴特沃斯滤波器

比如说切比雪夫滤波器的两种形式

比如说椭圆滤波器

我们现在看到的

这几个滤波器的频率响应的形状

都是保留低频的频段

然后去截取高频的频段

所以这样的滤波器我们也称之为

低通滤波器

当然我们也可以去修改

这些滤波器的参数

让它变成一个高通滤波器

带通滤波器

或者说带阻滤波器

接下来我们就来使用python的程序

来实践一下低通滤波器的效果

在scipy下面有很多现成的

滤波器的模板

那么为了获得比较好的截止效果

我们选择了椭圆滤波器

Elliptic filter

在S1iPad官方文档下面

有关于椭圆滤波器的说明

我们点击去看一下

那么我们略过一些复杂的参数设置

那么我们直接复制

官方提供的示例代码

我们把这一段都复制下来

然后我们运行一下这段代码

就可以看到滤波器的频率响应函数

我们看到在低频部分它虽然有点波动

但基本上是保持了原来的振幅

高频的部分它会做一个比较大的截止

那么我们可以通过调整参数

来调整它的截止的强度

而且可以调整它的波动

那么用阶数越高的滤波器

它的效果应该会更加好一点

比如说我们把阶数改成10

并且把截止的频率改成负100分贝

那么这样话我们可以看到

这样的截止效果就更加好一点

那么随着阶数的增加

它的形状会更加趋近于

一个理想的低通滤波器

那么你也可以去调整

它的节制的振幅

让它被截止的

片段振幅不会超过负100分贝

为了测试低通滤波器的效果

我们想先来听一下龚琳娜老师的作品

你在哪里的前面的一个小的段落

我们先来一起听一下

哎哎 你在哪里

哎哎 你在哪里

哎哎 我看不到你

哎哎

在这个段落里面我们会听到

有一个非常明显的电贝司在进行伴奏

那么它的频段主要集中在下方

那上方是人声以及其他的乐器

我们看到这下方的频段

大致是在200赫兹以下

所以我们的目的就是保留着200赫兹

然后把上面的高频的部分全部都去掉

这样话我们期待能够把伴奏的

低音部分给过滤出来

接下来就让我们来验证一下

椭圆低通滤波器的一个效果

那么我们的参数设置

是完全按照官网的推荐

因为它是一个数字滤波器所以

在后面需要做相应的一些修改

这些在官网上都有相应的说明

最后通过调用线性滤波器的

模板来进行滤波

并且进行输出

然后我们的输入信号

是刚才我们听到的

你在哪里的一个小的片段

然后我们的截止频率是200赫兹

也就是我们希望

能够保留200赫兹以下的频段

200赫兹以上的

我们希望通过低通滤波器截取

最后输出到一个test low点

为副文件里面

那么运行一下

好 运行结束之后

我们来听一下最后的结果

可以听到我们低通滤波器

还是比较好的完成了任务

基本上只滤剩下低音的部分

人声和其他乐器都被过滤掉了

那么在实际应用当中

往往情况要比刚才

我们看到的例子要复杂

为了获得更好效果

你需要去不断的调整各个参数

到这里我们已经掌握了

使用线性滤波器进行简单的频段截取

来截掉一些高频的频段

或者说低频的频段来保留剩下的一些频段

那么后面章节当中

我们可以看到滤波器的能力绝不仅于此

但是即便只是做一些简单的频率截取

也依然可以完成很多有趣的应用

那么下一章节我们将会来演示怎么

使用简单的频率截取

就可以分析京剧当中的锣鼓经片断

计算机音乐课程列表:

欢迎辞

-欢迎辞

第一章 基本概念

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

--动态时间规划实现

-第七章作业

线性滤波器笔记与讨论

也许你还感兴趣的课程:

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