简介

PDM代表脉冲密度调制。然而,更好的简称是“1比特过采样音频”,因为它只不过是一个高采样率、单比特的数字系统。如果要找一个优点的话,那就是采样率是音频CD的好几倍,且用一个适当的方式将字长从16bit减小到1bit,这将作为一个PDM系统的基础。

大多数现代的数字音频系统使用多比特PCM(脉冲编码调制)以表征信号。PCM有利于简化处理。这使得信号处理的操作可以在音频流上完成,例如混合,滤波和均衡。

PDM只用1bit来传输音频,在概念上和可实行度上比PCM更简单。它正被普遍用在手机内将音频从麦克风传输给信号处理器。PDM在理论上很适合这个任务,因为它带来了数字的好处,例如低噪声和免于干扰信号,且成本较低。

这个文件将覆盖PDM的基本原理:如何生成,传输和处理。

快速词汇表

DAC(数字模拟转换器):一个设备用来将数字化表征的信号转变成模拟量。
LSB(最低有效位):一个数字量的最小改变。一比特是一个二进制数字量。
MSB(最高有效位):一个数字量的有着最高值的比特。实际上在定点有符号数上它代表的是符号位。
PCM(脉冲编码调制):一个系统用一系列多比特的字来表征一个被采样信号。在音频CD中用的是这个技术。
PDM(脉冲密度调制):一个系统用单个比特来表征一个被采样信号。
Sampling rate:信号被采样以产生一个时间不连续的表征的速率。
Wordlength:用来表征一个采样的比特的数量。
Quantization:一个过程,使用一个给定的字长来表征一个随机数据采样。
Dither:是一个像噪声的信号,在量化之前被添加以提升性能。
Linearization:一个过程用来用来减轻数据量化的有害影响,通常是添加抖动。
Noise modulation:系统内由于信号内容引起的本底噪声的不受欢迎的变化。

PCM

在我们讨论PDM之前,先回顾一下PCM,这种传统的多比特数字音频。PCM的音频信号由一系列采样值来代表,每一个采样值的比特长度都是固定数量的。决定系统性能有两个因素:

  • 采样频率。这决定了系统的带宽。
  • 字长。这决定了系统的信噪比。

特别的,带宽是采样频率的一半,信噪比由(6.02N+1.76)dB(6.02N + 1.76)dB给定,N是字长的比特数。

一个未加工的16位系统的理论信噪比是96dB96dB。实践中,抖动用来线性化系统和排除噪声调制;这会使信噪比降低4dB4dB。使用之前的公式,一个未抖动的1比特系统的信噪比是8dB8dB,这对任何现实的音频工作来说都是不能接受的。与此同时,最理想的抖动需要2个最低有效位在工作;由于1bit系统总共只有1个最低有效位,且用在音频上,因此没有给抖动留有空间。

由于系统不能被适当地抖动,1比特的呈现乍一看似乎是行不通的。解决方案在于对噪声整形和过采样的理解。

噪声整形

考虑一个典型的PCM信号,比如一个用24比特表征的正弦波波形。如何在一个系统内用1比特字长来表示这个波形呢,当这样的系统出现严重的噪声和失真问题时该如何表示?

一种方法是扔掉除了最高有效位以外的所有位,有效地阈值化零点周围的信号。这将把正弦波转换成在过零点切换的方波。这引入了极大的失真;事实上超过了40%。失真的原因是系统没有被抖动。量化总会引起错误,但在一个被抖动的系统内,错误形如一个与信号无关的本底白噪声。在一个未被抖动或抖动不足的系统内,很多错误的形式是失真。

因此答案不是保留最高有效位以减小到1比特。然而我们都熟悉一个将字长减小到1比特且工作正常的例子。这就是半色调,且已经成为了自从发明了报纸以来在打印媒体上恢复图像的基本原理。

在半色调内,一个连续的色调图像(例如灰度图)被转换成一系列的黑点和白点。换句话说,字长被缩短为1比特,比特的状态对应黑点或白点。这不是靠简单的阈值化,而是将阈值化产生的错误分配到相邻的未被阈值化的点上。这个过程被称之为误差扩散。(有很多其他方法可用来创造半色调,此处我们不考虑。)误差扩散对图像质量的影响是巨大的,如下:

为什么将阈值化产生的误差扩散后极大提升了图片的视觉质量?答案是误差扩散完成了两个功能。首先,它将简单阈值化引起的失真转换成更接近于本底噪声;其次,它整形了本底噪声,使其减小了低频空间的噪声,代价是增大了高频空间的噪声。此外,高图像频率被人眼的原始分辨率过滤,因此一旦这些点足够小(或图像足够远),大多数的高频噪声几乎是不可见的。

结果是,阈值化产生的严重失真变得良性了,高通本底噪声。这里的良性,意思是影响是可被接收的,虽然它不是真的本底噪声,因为系统没有被抖动。噪声仍然与信号交织在一起,呈现出音调的行为特征和其它视觉假象。然而,视觉结果是好的。

半色调系统是一个噪声整形的例子。降低字长引起的噪声被整形,因此它不会被降调,但高通不是这样。通常,噪声整形系统有着任意长度的字长,且不需要让他们的噪声传递函数通过高通滤波器。然而,对绝大多数这样的系统而言,包括PDM系统,有着1比特输出和高通噪声传递函数。

过采样

由于减小字长而引起的噪声是巨大的(在1比特系统中的噪声大约比在16比特系统内的高90dB90dB)。噪声整形将噪声分布在了一个高带宽,但并没有减小整体的噪声等级。在一个图像应用中,图像的大多数内容是低频的,将噪声推至高频(它可能会掩盖高频)并不算是个问题。然而在音频领域,中频和高频非常重要,且非常容易被听见。如果字长减小到1比特,想要获得可接受的结果简直是不可能的,甚至在有噪声整形的情况下。结果是高频段噪声很容易被听到。

问题的答案是使用更高的采样速率。这提高了系统的带宽,在可闻范围以上创造了新的频谱。噪声整形因此能被用来将噪声推入更高的频谱中。有用的是,更多的空间被创造出来以转储噪声。且由于频谱在可闻范围以上,噪声是听不见的。

更高速的采样频率能通过以下两种方式来实现:

  • 在刚开始就使用更高的采样频率。这个方法被用在PDM麦克风上,典型的采样速率是3MHz。
  • 内插一个已知信号,这个信号在低速率被采样。这个方式被许多DACs使用,典型的输入采样频率是48KHz。这也被用在这样一种音频系统中,其内部用PCM代表音频,但用PDM格式将音频传输给外部设备。

现在我们来看看这两种方式的更多细节。

PDM麦克风

PDM麦克风也被称作数字麦克风,包括如下部分:

  • 一个麦克风要素。典型的是一个驻极体容器。
  • 一个模拟预放大器。
  • 一个PDM调制器。
  • 接口逻辑。

从麦克风要素来的模拟信号首先被放大,然后在PDM调制器内被高速率采样和量化。调制器包含量化操作和噪声整形;输出是高速率的单比特。噪声整形确保音频频段内的相关噪声是相对低的,虽然噪声在音频频段以上的噪声是相对高的。接口逻辑能够接收一个主时钟且传输已被采样的比特流。

麦克风连接的设备提供主时钟给PDM麦克风。时钟频率定义了系统的采样频率,同时定义了在数据线上传输的比特率。虽然没有定义标准,典型的过采样率是64。所以为了获取24KHz的带宽(与一个采样频率是48KHz的PCM系统相比较),主时钟的频率需要3.072MHz。

数据线上的1比特数据在主时钟的上升沿或下降沿时被认为有效。大多数PDM麦克风支持双声道操作,一个麦克风在主时钟的上升沿时数据线上的数据有效,第二个麦克风在在下降沿时有效。在非有效边沿,数据输出是高阻抗。两个麦克风的数据线能被简单地连接在一起。PDM接收器有能力分离两个比特流。

DACs和PCM-PDM转换器

在很多商用DACs里和可以将PCM转换成PDM的系统内,处理过程与PDM麦克风有轻微的不同。信号已经在低频被采样,且是PCM格式的。为了获取能够使噪声整形有效的高采样频率,信号必须首先被内插。然后它的字长在噪声整形器内被减小到1比特。

内插是一个数字滤波操作,指的是在有效的采样值之间生成额外的采样值,以增加有效的采样频率。对PDM应用来说,过采样速率典型值是64;意味着每个输入采样之间有63个新的采样值。

PDM调制器

PDM调制器(在PDM麦克风内)或噪声整形器(在PCM到PCM转换器内)有能力产生在通带内有着非常低噪声的1比特信号。调制器的复杂度由它的阶数来表示。调制器的阶数等于它包含的内插的数量(聚合节点);通常,阶数越高,从通带到阻带的被整形的噪声就越激烈,噪声性能就越好。然而,更高阶数的调制器的生产和设计就越复杂;他们在确定的操作条件下变得更加不稳定;且他们在过载前的最大输入电平较低。由于没有工业标准,典型的PDM麦克风的调制器是4阶的。这在噪声性能和复杂度之间提供了很好的折衷。

下面是给定一个正弦波输入信号时,PDM调制器输出的时域和频域的视图。时域输出在两个电平之间以高速率切换。频域内,在xx轴上通带从00扩展到0.5fs0.5fs。在此之上是由过采样创建的频谱空间。在通带之上很容易见到猛烈的噪声上升。同样可见的是一个很小数量的三次谐波失真(峰值接近0.06fs0.06fs)。

传输和处理PDM信号

一个PDM比特流是一个逻辑电平信号,典型切换频率在3MHz附近,快速边沿跳边。因此需要与任何其他快速信号一样去对待(例如SPDIF,或模拟视频)。重要的是使用高质量的同轴线缆和正确地终止信号。

如果一个信号想要被听到,就必须被转换成一种模拟格式。如果需要被处理或被测试设备分析,它需要被转换成PCM。在做这些事时也可以用PDM信号。

将PDM信号转换成模拟信号从原理上非常简单。1比特信号在频谱的低频部分已经包含了音频信号。所有要做的恢复工作就是一个低通滤波器。实践中,信号的快速切换的边沿需要认真设计模拟滤波器级数,但确实可以用这个方式来恢复非常高质量的模拟信号。

将PDM转换成PCM是更复杂的。采样频率需要用过采样因子来减少。这由一个叫做抽取的数字滤波过程来完成。抽取是内插的对应物:采样从信号内被移除以减小采样频率。重要的是1比特形式的在音频带宽以上的噪声不能被带入音频频段。抽取滤波器被设计成过滤掉这个噪声,使得基带音频信号完整无缺。抽取器的输出是一个在基带速率上的PCM音频流(无过采样)。典型地字长从1比特提升到了过滤期间有大约20个有效位。

性能

1比特系统非常成熟。虽然1比特系统有其固有的问题,特别是不能增加足够的抖动以完全线性化系统和消除噪声调制,尽管如此,它可以设计成一个有着卓越音频性能的系统。

PDM调制器通常是有专利的;因此其性能取决于设计。APx的PDM接口选项使用的调制器是4阶调制器再加上一个有着超过120dB120dB图像/别名拒绝的6级插值/抽取滤波器。由此产生的系统的规格如下:

  • 过载前的最大输入电平:-6dBFS
  • SNR @ 1KHz, -6dBFS, 20Hz-20KHz, unweighted: 109dB
  • THD+N @ 1KHz, -6dBFS, 20Hz-20KHz, unweighted: -107dB
  • 三次谐波衰减@ 1KHz, -6dBFS: -116dB
  • 平坦度:20Hz-20KHz:优于±0.001dB

所有高阶PDM调制器在满标以下有一个最大输入电平。超过这个电平会导致调制器过载,导致噪声性能劣化。APx用户接口会指出调制器已经过载。

系统的THD+N性能有调制器的本地噪声决定。这里有一个很小的三次谐波失真。这是因为系统是未抖动的。

结论

PDM是一个高性价比的方式用来数字化运输音频,在单声道和或双声道内,通过一个时钟/数据对。尽管1比特形式有其固有限制,在认真设计的前提下,它也可获取极高的音频性能。APx PDM接口选项可以生成和分析PDM信号,极大地简化了PDM信号链的设计和所有方面的故障排除。

AP系列文章——PDM麦克风相关推荐

  1. 使用STM32的DFSDM外设来驱动PDM麦克风进行音频采集

    0.前言 最近需要使用STM32L4系列来完成音频采集的工作,前前后后一共尝试了三种方案,最终在各种测试条件以及功耗等原因下,选择了目前这个方案. 主控使用的是STM32L475RCT6(无需一致,只 ...

  2. PE文件格式分析系列(文章3)----一个PE文件rdata段的分析(Win32工程Release版)(二)

    PE文件格式分析系列(文章3) 一个PE文件rdata段的分析(Win32工程Release版)(二) 下面分析这个PE文件rdata段的常量数据(000050A4---0000543D) 00005 ...

  3. FPGA信号处理系列文章——FIR半带插值滤波器-1个时钟2个采样点的优化处理

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA信号处理系列文章--FIR半带插值滤波器-1个时钟2个采样点的优化处理 前言 设计参数 常规IP设置 优化处理 总结 前言 假 ...

  4. TiDB 源码阅读系列文章(五)TiDB SQL Parser 的实现

    本文为 TiDB 源码阅读系列文章的第五篇,主要对 SQL Parser 功能的实现进行了讲解,内容来自社区小伙伴--马震(GitHub ID:mz1999 )的投稿. TiDB 源码阅读系列文章的撰 ...

  5. 数据结构学习系列文章合集

    数据结构学习系列文章目录 前言 1.稀疏数组和队列 稀疏数组和二位数组的转换 数组队列的实现 环形队列的介绍与实现 2.链表 单链表的增.删.改.查 总结 前言 学习数据结构记录,作为自己的笔记,同时 ...

  6. 积少成多 Flash(ActionScript 3.0 Flex 3.0) 系列文章索引

    [源码下载] 积少成多 Flash(ActionScript 3.0 & Flex 3.0) 系列文章索引 作者:webabcd Flash 之 ActionScript 3.0  1.积少成 ...

  7. Scott的ASP.net MVC框架系列文章之四:处理表单数据(2)

    前几周我发表了一系列文章介绍我们正在研究的ASP.NET MVC框架.ASP.NET MVC框架为你提供了一种新的开发Web应用程序的途径,这种途径可以让应用程序变得更加层次清晰,而且更加有利于对代码 ...

  8. Enterprise Library系列文章回顾与总结

    Enterprise Library系列文章回顾与总结 自Enterprise Library 1.1 推出以来,Terry写了一系列的关于Enterprise Library的文章,其中得到了很多朋 ...

  9. 系列文章|OKR与敏捷(三):赋予团队自主权

    OKR与敏捷开发的原理有着相似之处,但已经使用敏捷的团队再用OKR感觉会显得多余.这种误解的根源就在于对这两种模式不够了解,运用得当的情况下,OKR和敏捷可以形成强强联合的效果,他们可以创造出以价值为 ...

最新文章

  1. 智能家庭本周锋闻:进击的情趣
  2. 操作系统:生产者与消费者问题
  3. 安装memory analyzer
  4. miniui列表下拉允许编辑且保存_在职必备,下拉列表|Excel
  5. spring java配置_Spring基于java的配置
  6. Nand Flash Yaffs系统大量写入数据失败问题的解决方法。
  7. 股票开盘的最大成交额-----一道不错的贪心算法题目
  8. Quartz.Net 2.0 bate1 使用
  9. SVC较好的介绍资料
  10. 虚拟机克隆后修改网络部分
  11. 农业大数据上线 农民耕田种地施肥都用“高科技”
  12. ASP.NET生成Excel并下载
  13. js 杂项(一)函数篇
  14. 【沐风老师】3DMAX随机挤出插件2DExtruder使用教程
  15. 记录一次Win10莫名其妙被植入一个恶意软件
  16. stricmp linux 头文件,头文件stdio.hstdlib.hstring.h
  17. matlab accumulation,Matlab学习笔记(三)
  18. 【热血传奇】 认识客户端
  19. 2021-2027全球与中国自然对流烤炉市场现状及未来发展趋势
  20. free ebooks: http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books

热门文章

  1. 设计师的可访问性调研指南
  2. fish shell一个专为90后设计的命令行shell
  3. 以太网扫盲(一)各种网络总线 mii总线,mdio总线介绍
  4. WordPress免费正版图片插件——Pixabay Free Images
  5. 智慧灯杆行业:千亿级大市场!这种“杆”打开新风口
  6. socket技术详解(看清socket编程)
  7. 嫁我是你一生的赌注,我怎么忍心让你输
  8. Ethereum开发
  9. 谷歌浏览器设置背景图片背景图
  10. 作为打工人,普通人努力的意义何在?