音频进阶学习二——模数和数模转换中的采样、量化和编码


前言

所有软件的运行都得益于硬件上的突破,数字信号是从40年前就开始高速发展的领域。得益于硬件上从一开始的中规模集成电路,到大规模集成电路,再到现如今的超大规模集成电路,促进了功率更小,体积更小,速度更快,价格更便宜的数字计算机。

硬件上的突破使得计算机可以执行复杂的数字信号功能和任务,当然并不是说数字信号就是解决所有信号的解决方案,对于一些需要及时处理的例如:带宽等信号,这种就需要模拟信号或者光信号。

而声音是一种波,恰恰可以将这种波转换成数字信号在软件中进行处理。

本篇文章借鉴了《数字信号处理》、《离散时间信号处理》、《信号与系统》,如果有写错的地方,是笔者个人能力不足,没有理解透彻,恳请告知笔者。

|版本声明:山河君,未经博主允许,禁止转载

一、频率

为了更好的了解数模转换的原理,我们最好先了解一下信号频率的概念。

其实在音频基础学习一——声音的本质、术语与特性这篇文章中,有介绍过:
频率——一秒钟内振动质点完成的全振动的次数叫振动的频率,其单位为赫 ( H z ) 频率——一秒钟内振动质点完成的全振动的次数叫振动的频率,其单位为赫(Hz) 频率——一秒钟内振动质点完成的全振动的次数叫振动的频率,其单位为赫(Hz)

连续时间信号的频率

我们知道所有的信号都是由不同的波组成的,而通过傅里叶原理——所有的波形都可以拆解成不同的正弦波组成。声音当然也如此。

音频基础学习二——声音的波形中,有举过最简单的正弦波数学公式
x a ( t ) = A cos ⁡ ( Ω t + θ ) x_a(t)= A \cos(\Omega t + \theta) xa(t)=Acos(Ωt+θ)

其中 A 是正弦波的幅度,也就是振幅, Ω 是弧度的频率,也就是 2 π f , θ 为相位 A是正弦波的幅度,也就是振幅,\Omega 是弧度的频率,也就是2\pi f, \theta为相位 A是正弦波的幅度,也就是振幅,Ω是弧度的频率,也就是2πf,θ为相位

例如一个正弦波图:
在这里插入图片描述

数字信号的频率

先复习一下:

上一篇文章音频进阶学习一——模拟信号和数字信号中,介绍了连续时间信号、离散时间信号、模拟信号、连续值信号、离散值信号以及数字信号。

而数字信号不仅要在自变量上(往往是时间),还要在一定范围内取值,也就是同时满足连续值信号和离散时间信号的特征。

在此也以一个正弦波举例,一个离散时间的正弦信号数学公式上为

x a ( n ) = A cos ⁡ ( Ω n + θ ) x_a(n)= A \cos(\Omega n + \theta) xa(n)=Acos(Ωn+θ)
此时n是一个整形变量,称为样本数,所以它的图形看起来是这样的:
在这里插入图片描述

二、模数转换过程

上篇文章说过,在实际应用中,我们感兴趣的信号大多是模拟信号,例如:声音、地震、生物、雷达、视频等。要通过数字方法处理模拟信号,需要先把模拟信号转换成数字形式,这一过程称为模数转换(A/D)

A/D转换三步

从概念上,A/D转换分为三步:

  • 采样:这是连续时间信号到离散时间信号的转换过程,通过对连续时间信号在离散时间点处取样本值获得。因此,如果x(t)是采样器的输人,那么输出是x(nT)≡x(n),其中7称为采样间隔。
  • 量化:这是离散时间连续值信号转换到离散时间离散值(数字)信号的转换过程。每个信号样本值是从可能值的有限集中选取的。未量化样本(n)和量化输出x(n)之间的差称为量化误差。
  • 编码:在编码过程中,每一个离散值x(n)由b位的二进制序列表示。

看到这里大家应该也就明白pcm数据中采样率,字节数是从何而来的了。

A/D转换图解如下:
在这里插入图片描述

三、采样

而模拟信号通过A/D转换成数字信号后,再由D/A转换成模拟信号,从而被听到、看到。如何保证它的精度呢?这个就需要对于一对连续的样本进行插值,从而保持零阶保持或者阶梯近似。

例如:
在这里插入图片描述
那么在A/D过程中如何确定采样的次数,在D/A过程中什么时候插入值呢?

确定采样频率

之前我们了解到,任何模拟信号都可以看作不同振幅、频率和相位的正弦信号的和,最终从数学上得到公式为:
在这里插入图片描述
对于语音信号中最重要的频率范围(即语音的主要频带)通常集中在 300 Hz 到 3400 Hz 之间。根据采样定理,要无失真地捕捉频率为 f m a x f_{max} fmax的信号,采样频率 应该至少为 2 × f m a x 2 \times f_{max} 2×fmax。因此,语音信号常用的采样频率有 8 kHz(电话通信)、16 kHz、22.05 kHz、44.1 kHz(CD质量)等。

这就是采样率的由来。

数模转换中的插值

根据采样定理:如果包含在某个模拟信号 x a ( t ) x_a(t) xa(t)中的最高频率是 F   m a x   = B F~max~ = B F max =B,而信号以采样率 F s > 2 F   m a x   = 2 B F_s>2F~max~ = 2B Fs>2F max =2B采样,那么 x(t)可以从样本值准确恢复,插值函数为:
g ( t ) = sin ⁡ 2 π B t 2 π B t g(t)= \frac{\sin 2 \pi Bt}{2\pi Bt} g(t)=2πBtsin2πBt

例如:
在这里插入图片描述

四、量化

量化过程

上文说过,在D/A过程中,数字信号将转换回模拟信号,并且要达到零阶保持或者阶梯近似的状态,那么就需要A/D过程中取值时要达到一定的精度。

通过把每个样本值表示为一个有限(而不是无限)的数字,将一个离散时间连续幅度信号转换成数字信号的过程,称为量化。

值得注意的是:取值量化过程并不是直接通过数学公式直接取模拟信号的值,而是保持阶梯取值,如同下图:
在这里插入图片描述
其中:

  • 黑点是量化取值
  • 白点是实际值
  • 黑点和白点一一对应
  • 两个黑点之间的距离称之为量化步长或者分辨率

量化误差

从这里就可以看出取值量化过程中存在量化误差,也叫做量化噪声,存在误差是因为需要对于量化的值进行四舍五入的保留有效数字。

比如,现在量化的精度是0.1,而下图有量化的点在0.6和0.7之间
在这里插入图片描述
四舍五入的标准:
在这里插入图片描述

五、编码

在一个 A/D转换器中的编码过程为每一个量化级别赋予一个唯一的二进制数。如果有L级那么我们至少需要L个不同的二进制数。如果字长为bit位,那么我们可以生成 2 b 2^b 2b个不同的二进制数。

因此有 2 b ≥ L 2^b≥L 2bL,或者等价有b≥bL。商业上可用的 AD转换器可以是bit=16位或更小的有限精度。一般来说,采样率越高及量化越精细,设备就越昂贵。


总结

由于知识储量和工作原因,很长一段时间没有写过关于音频的博客了,后面希望能够有充分的时间和大家一样多多提升自己,并能够分享自己整理觉得有意义的东西。

如果对您有所帮助,请帮忙点个赞吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值