问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/qq_42956179/article/details/141131060

所有软件的运行都得益于硬件上的突破,数字信号是从40年前就开始高速发展的领域。得益于硬件上从一开始的中规模集成电路,到大规模集成电路,再到现如今的超大规模集成电路,促进了功率更小,体积更小,速度更快,价格更便宜的数字计算机。硬件上的突破使得计算机可以执行复杂的数字信号功能和任务,当然并不是说数字信号就是解决所有信号的解决方案,对于一些需要及时处理的例如:带宽等信号,这种就需要模拟信号或者光信号。而声音是一种波,恰恰可以将这种波转换成数字信号在软件中进行处理。

一、频率

为了更好的了解数模转换的原理,我们最好先了解一下信号频率的概念。其实在音频基础学习一——声音的本质、术语与特性这篇文章中,有介绍过:

频率——一秒钟内振动质点完成的全振动的次数叫振动的频率,其单位为赫 ( H z ) 频率——一秒钟内振动质点完成的全振动的次数叫振动的频率,其单位为赫(Hz)频率——一秒钟内振动质点完成的全振动的次数叫振动的频率,其单位为赫(Hz)

连续时间信号的频率

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

在音频基础学习二——声音的波形中,有举过最简单的正弦波数学公式

x_a(t)= A \cos(\Omega t + \theta)

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

例如一个正弦波图:

数字信号的频率

先复习一下:

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

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

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

x_a(n)= A \cos(\Omega n + \theta)

此时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、24 kHz(CD质量)等。

那么我们有对应:

  • 16k采样率:0~8kHz语音
  • 32k采样率:0~16kHz语音
  • 44.1k采样率:0~22.05kHz语音
  • 48k采样率:0~24kHz语音

这就是采样率的由来。

关于采样定理,是通过傅里叶变换分析频域得到的,如下图(来源西安电子科技大学田春娜老师的课堂):

当一个时域信号通过傅里叶变化到右边频域图像时,我们可以看到Ω z \Omega_zΩz (采样频率) 大于2 Ω c 2\Omega_c2Ωc (通过傅里叶变化得到的频域视图),不会发生混叠,而当Ω z < 2 Ω c \Omega_z < 2\Omega_cΩz <2Ωc 时,发生了混叠(最下面一行),这样再通过逆傅里叶变化则得不到接近最初的时域图像。

数模转换中的插值

根据采样定理:如果包含在某个模拟信号x a ( t ) x_a(t)xa (t)中的最高频率是F m a x = B Fmax = BF max =B,而信号以采样率F s > 2 F m a x = 2 B F_s>2Fmax = 2BFs >2F max =2B采样,那么 x(t)可以从样本值准确恢复,插值函数为:

g(t)= \frac{\sin 2 \pi Bt}{2\pi Bt}

例如:

四、量化

量化过程

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

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

值得注意的是:取值量化过程并不是直接通过数学公式直接取模拟信号的值,而是保持阶梯取值,如同下图:

其中:

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

量化误差

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

比如,现在量化的精度是0.1,而下图有量化的点在0.6和0.7之间

四舍五入的标准:

五、编码

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

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

总结

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

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号