AVFoundation 之数字媒体(音频)

本文只是进阶的科普篇,不了解也不影响你的开发。

欢迎关注我的博客git

由上一章咱们可清楚的了解到,摄像头捕捉的核心类是 AVCaptureSession
对于摄像头及麦克风对采集到的信息如何被数字化的呢?这就是本章要说的。数组

由于在这里咱们谈论的对象就是 数字媒体ui

咱们可能都知道对媒体进行数字化主要有两种方式。

  • 时间采样
  • 空间采样
再细点说时间采样的对象通常是对声音的处理,空间采样通常用在图片数字化及其余可视化媒体内容数字化的过程。咱们对视频进行采样的时候这两样就不可避免的须要使用,视频信号既有空间属性也有时间属性。

既然进行采样就必须知道 模拟信号数字信号 的转换:
咱们知道 声音,图像确定都是模拟量,而对于处理器而言是没法直接操做模拟量的,这就牵扯到须要将模拟量转换为 数字量 的一个过程。
模拟量 多是标准的正弦波,也多是不规则的任何波形 等等....什么方波,三角波编码

数字量: 就是用一系类0与1组成的二进制代码表示某个信号大小的量。
好比咱们用一个 00000~11111的5位二进制量表示一个正弦波如图:
3d

5位二进制最低只能表示32种组合形式,故要把这个正弦波最大值与最小值之间分为32等份,每一等分用一组5位二进制来表示 。code

读到这里你就会发现一个问题:任意相邻的之间的模拟量咱们是没法表示出了的。
哈哈没错!这里就牵扯到量化偏差。
这里也要说明把 这个转换为二进制的过程称为 编码cdn

麦克风对音频的采集:
麦克风内部含有一个振动,当年对着麦克风讲话的时候,膜片就会根据感觉到的声波进行振动,推进里边的磁铁造成变化的电流,这样变化的电流送到后面的声音处理电路进行放大处理。视频

这里就涉及模数的转换 A/D(Analog to Digital)
在A/D转换中,由于输入的模拟信号在时间上是连续的,而输出的数字信号代码是离散的。故在转换的过程当中必须在一系列选定的瞬间(坐标上一些规定的点上)对输入的模拟信号进行采样,在把这些采样的值转换为数字量。对象

由此:通常的 A/D 转换过程是经过 采样保持量化编码 这三个过程来完成的。blog

首先对输入的模拟电压信号采样,采样结束后进入保持时间,在这段时间将采样的电压量转换为数字量,按照必定的编码形式给出转换结果,继续下一次采样

上面说过数字信号在时间上是离散的,在数值上的变化也不是连续的,这样就说明了: 任何一个数字量的大小,都得以某个最小数量单位的整数倍来表示的。故在用数字表示采样时,必须把它换成这个最小单位的整数倍,该过程即:量化

其最小单位就是 量化单位用 △ 表示,显然数字信号最低有效位中的1表示的数量大小,就是量化单位 △。把量化的数值用二进制代码表示,就是 编码

既然信号是连续的,那么它就不必定能被△整除,这里就不可避免的会引入偏差,即量化偏差。上面的说到 数字量的时候,划分了若干份数,就是划分不一样的量化等级。故不一样的划分能够获得不一样的量化偏差。

音频数字化的过程包含编码过程。该过程也称为:线性脉冲编码调制(linear pulse-code modulation)

采样定理:

咱们定义 采样信号为 $v_s$,模拟信号为$v_I$
为了将模拟信号转为数字信号,音频的 线性脉冲编码调制 过程采样或者测量一个固定的音频信号,过程的周期率称为采样率。
用 $f_s $为采样频率, $f_imax$为输入信号的最高频率份量的频率
在知足采样定理的条件下,用一个低通滤波器将信号$v_s$还原为$v_I$,这个低通滤波器的电压传输系数 |A($f$)| 在低于$f_imax$的范围内应保存不变,而在 $f_s $-$f_imax$之前迅速降低为零,故采样定理规定了A/D转换的频率下限。

采样频率提升之后A/D转换器每次进行转换的时间也相应缩短了,这里就要去转换电路必须具有更快的工做速度。因此不能无限制的提升采样频率,一般取 $f_s$=(3~5)$f_imax$ 就知足了需求。

上面只是给出了一个范围

那么咱们如何知道一个最优的采样频率用于生成足够好的数组呈现效果呢?
话说站在巨人的肩膀上的现代人仍是很是幸运的!

尼奎斯特频率(Nyquist rate)

这位工程师已经帮咱们捕捉到了一个特定的频率,该频率为须要采样的对象的最高频率的2倍。看吧上面说是3~5一般就知足了需求...。这里咱们向 这位 工程师 致敬.

若是你还想了解A/D内部的转换原理,请留言!
我会详细说明 转换器内部的 电压比较器寄存器代码转换器的原理

必然的还有一篇讲(视频)

敬请期待 😁

相关文章
相关标签/搜索