[傅里叶变换及其应用学习笔记] 十九. 采样定理在音乐上的应用

采样定理在音乐上的应用

人可以听到20~20000Hz的声音,上限为20000Hz,即$\frac{p}{2} = 20000$,$p=40000$。那么采样率至少要为40000。CD的采样率采用44100(44.1kHz),据传,在采集模拟信号时采用44100,是因为这些采集的机器以该采样率设置时最为正常,而并非出于理论上的考虑。

在采样时,若采用低于40000的采样率,就会造成声音的高频部分混叠(alias),也有人把这个说成是“低频混叠了变为高频部分,而高频的部分被混叠为低频部分”,实际上是把频谱上左边部分的高频右移叠加到右边的高频上,而右边部分的高频也左移叠加到了左边的高频上,在上节课我们已经讨论过。这是采用低采样率会导致高频失真的原因。

从模拟到数字,从连续到离散

在前面我们讨论的都是连续的信号,在这节,我们将过渡到离散信号的学习。本节计划分为三个部分

$f(t)$为连续的信号,即$t$是一个连续变量

1) 找到一种合理的离散逼近$f(t)$的形式

2) 找到一种合理的离散的逼近$f(t)$的傅里叶变换$\mathcal{F}f(s)$的形式

3) 找到一种从$f$的离散形式到傅里叶变换$\mathcal{F}f$的离散形式的合理方法

下面的推导将建立在抽样定理的误用上

假设

$f(t)$受限于$0 \leqslant t \leqslant L$

$\mathcal{F}f(s)$受限于$0 \leqslant s \leqslant 2B$

我们知道频域上的带宽是$-B\leqslant s \leqslant B$这种形式,但是这里为了方便后面的推导,采用了上方的这种形式

实际上这两个假设并不能同时成立,因此称之为抽样定理的误用。

1. $f(t)$的离散近似

为了得到一个$f(t)$的离散近似,这里需要以$\frac{1}{2B}$的间隔进行采样

设$f(t)$内共有$N$个采样点,即$N\cdot \frac{1}{2B} = L\ ,\ N = 2BL$

令$t_0 = 0,t_1 = \frac{1}{2B},…,t_{N-1} = \frac{N-1}{2B}$

对$f(t)$进行采样,得

$f_{sample}(t) = \displaystyle{ f(t)\sum_{k=0}^{N-1}\delta(t-t_k)  = \sum_{k=0}^{N-1}f(t_k)\delta(t-t_k)}$

采样得到的项分离出$f(t)$的离散近似为$f(t_0),f(t_1),…,f(t_{n-1})$

2. $\mathcal{F}f(s)$的离散近似

在经过上面的最后一步后,此时$t$仍然是一个连续变量,即$f_{sample}(t)$是连续的,对它进行傅里叶变换

$\mathcal{F}f_{sample}(s) = \displaystyle{\sum_{k=0}^{N-1}f(t_k)e^{-2\pi ist_k} }$

为了离散化$\mathcal{F}f_{sample}(s)$,我们需要在频域进行采样。关于采样,信号的采样频率是依据该信号在另一个域的性质决定的,我们在时域采样时依据它在频域受限于$0~2B$,而在频域采样是依据它在时域受限于$0~L$,即采样间隔为$\frac{1}{L}$。

设共有$M$个采样点,即

$M\cdot \frac{1}{L} = 2B \ , \ M=2BL=N$

即时域与频域的采样点数目是一样多的。

令$s_0=0,s_1=\frac{1}{L},…,s_{N-1} = \frac{N-1}{L}$

对$\mathcal{F}f_{sample}(s)$进行采样

$\begin{align*}
\left(\mathcal{F}f_{sample} \right)_{sample}(s)
&= \left(\mathcal{F}f_{sample}(s) \right )\cdot \sum_{m=0}^{N-1}\delta(s-s_m)\\
&= \left(\sum_{k=0}^{N-1}f(t_k)e^{-2\pi ist_k} \right )\cdot\left( \sum_{m=0}^{N-1}\delta(s-s_m)\right )\\
&= \sum_{k,m=0}^{N-1}f(t_k)e^{-2\pi is_mt_k}\delta(s-s_m)
\end{align*}$

频域上的采样值为

$\begin{align*}
F(s_0) &= \displaystyle{ \sum_{k=0}^{N-1}f(t_k)e^{-2\pi i s_0t_k} }\\
F(s_1) &= \displaystyle{ \sum_{k=0}^{N-1}f(t_k)e^{-2\pi i s_1t_k} }\\
\vdots\\
F(s_{N-1}) &= \displaystyle{ \sum_{k=0}^{N-1}f(t_k)e^{-2\pi i s_{N-1}t_k} }
\end{align*}$

以上就是$f$的离散形式的傅里叶变换的离散近似(That‘s the discrete approximation to the Fourier transform of the discrete version of f)

3. 从$f$的离散近似到$\mathcal{F}f$的离散近似

经过上面两个步骤,得到

$f(t)$被离散化为$f(t_0),f(t_1),…,f(t_{N-1})$

$\mathcal{F}f(s)$被离散化为$F(s_0),F(s_1),…,F(s_{N-1})$,有

$F(s_m) = \displaystyle{ \sum_{k=0}^{N-1}f(t_k)e^{-2\pi is_mt_k} }$

由于$f(t_k),F(s_m),t_k,s_m$都从连续信号延伸而来,现在我们需要把连续信号完全消除,只保留离散部分

1) 令$\underline{f}[k] = f(t_k)$

即,有离散信号$\underline{f} = \left( \underline{f}[0],\underline{f}[1],…,\underline{f}[N-1] \right)$

2) 令$\underline{F}[m] = F(s_m)$

即,有离散信号的离散傅里叶变换$\underline{F} = \left( \underline{F}[0],\underline{F}[1],…,\underline{F}[N-1] \right)$

3) $s_mt_k = \frac{m}{L}\cdot\frac{k}{2B} = \frac{mk}{2BL} = \frac{mk}{N}$

即,$\underline{F}[m] = \displaystyle{ \sum_{k=0}^{N-1}\underline{f}[k]e^{-2\pi i\frac{mk}{N}} }$

离散傅里叶变换

根据上述推导得出结论

  • 设有离散信号$\underline{f} = \left( \underline{f}[0],\underline{f}[1],…,\underline{f}[N-1] \right)$,它的DFT(离散傅里叶变换)为$\underline{F}=\left( \underline{F}[0],\underline{F}[1],…,\underline{F}[N-1] \right)$,有

$\underline{F}[m] = \displaystyle{ \sum_{k=0}^{N-1}\underline{f}[k]e^{-2\pi i\frac{mk}{N}} }$

时间: 2024-10-12 22:09:13

[傅里叶变换及其应用学习笔记] 十九. 采样定理在音乐上的应用的相关文章

angular学习笔记(十九)

本篇主要介绍angular使用指令修改DOM: 使用angular指令可以自己扩展html语法,还可以做很多自定义的事情.在后面会专门讲解这一块的知识,这一篇只是起到了解入门的作用. 与控制器,过滤器,服务,一样,可以通过模块实例的directive的方法来创建指令: var someModule = angular.module('SomeModule',[]); someModule.directive('directiveName',function(){ return { link: f

[傅里叶变换及其应用学习笔记] 十. 卷积与中心极限定理

这份是本人的学习笔记,课程为网易公开课上的斯坦福大学公开课:傅里叶变换及其应用. 中心极限定理(Central Limit Theorem) 中心极限定理,简称CLT.大多数概率事件,当有足够多的取样时,都服从高斯分布.(Most probabilities – some kind of average – are calculated or approximated as if they are determined by a Gaussian.) 标准正态(高斯)分布 在傅里叶变换中,我们用

[傅里叶变换及其应用学习笔记] 十六. 继续上次内容,晶体成像

x射线晶体照像术 1) x射线是1895年由伦琴(Roentgen)发现的,其波长为$10^{-8}$厘米左右,常用的测量可见光波长的方法会由于其波长太小而无法测量. 2) 晶体(Crystals),晶体的原子结构符合一定规律——原子有序地排列成晶格.劳厄(Laue)在1912年做了一系列著名实验,其目的是利用x射线进行衍射实验来研究晶体的本质. 劳尔假设: 1) x射线是波,因此可以进行衍射 2) 晶体可以充当合适的衍射光栅,即晶体具有晶格原子(lattice atomic)——周期性的原子结

Android学习笔记十九.使用ContentProvider实现数据共享(一)

一.Android如何实现数据共享?  为了在应用程序之间交换数据,Android提供了ContentProvider,ContentProvider是不同应用程序之间进行数据交换的标准API,当一个应用程序需要把自己的数据暴露给其他程序使用时,该应用程序就可通过提供ContentProvider来实现,其他的应用程序就可以通过ContentResolver来操作ContentProvider暴露的数据.一旦某个应用程序通过ContentProvider暴露了自己的数据操作接口,那么不管该应用程

Java基础学习笔记十九 IO

File IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据读出来继续使用呢?其实要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘.光盘.U盘等)上. 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作.当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作.因此我们把这种输入和

JSTL 标签库 使用(web基础学习笔记十九)

标签库概要: 一.C标签库介绍 1.1.<c:> 核心标签库  JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:1.表达式控制标签:out.set.remove.catch2.流程控制标签:if.choose.when.otherwise3.循环标签:forEach.forTokens4.URL操作标签:import.url.redirect 二.表达式控制标签 2.1.out标签 <c:out value="" escapeXml="&quo

yii2源码学习笔记(十九)

view剩余代码 1 /** 2 * @return string|boolean the view file currently being rendered. False if no view file is being rendered. 3 * 当前正在渲染的视图文件 4 */ 5 public function getViewFile() 6 { 7 return end($this->_viewFiles); 8 } 9 10 /** 11 * This method is invo

PHP学习笔记十九【析构函数】

<?php class Person{ public $name; public $age; public function __construct($iname,$iage) { $this->name=$iname; $this->age=$iage; } //定义一个析构函数 两个下划线 ,析构函数在对象被释放的时候会自动调用 //最先被创建最后被销毁,因为是放入栈中,栈是先进后出 //析构函数调用的时机 //1.当程序(进程结束)退出时 //2.当一个对象成为垃圾对象(没有任何变

SharpGL学习笔记(十九) 摄像机漫游

所谓的摄像机漫游,就是可以在场景中来回走动. 现实中,我们通过眼睛观察东西,身体移动带动眼睛移动观察身边的事物,这也是在漫游. 在OpenGL中我们使用函数LookAt()来操作摄像机在三维场景中进行漫游. LookAt(double eyex, double eyey, double eyez, double centerx, double centery, double centerz, double upx, double upy, double upz); 我们通过改变LookAt的参数