嵌入式音频处理入门教学提纲.doc
《嵌入式音频处理入门教学提纲.doc》由会员分享,可在线阅读,更多相关《嵌入式音频处理入门教学提纲.doc(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。嵌入式音频处理入门-为了使PWM音频达到相当好的质量,PWM的载波频率应该至少12倍于信号的带宽,而且定时器的分辨率(即占空比的间隔时间)应该有16位。由于载波频率的需求,传统PWM音频电路曾经被用于窄带音频,比如超重低音。但是,利用目前的高速处理器,就可以扩展到更宽的音频谱。PWM流必须经过低通滤波,以去除高频载波。这通常是用驱动扬声器的放大器电路来完成。D类放大器已经被成功地用于这种结构。当不需要放大时,一个低通滤波器就足以用作输出级。在一些低成本应用中,声音的品质不是那么重要,就可以把PWM流与扬
2、声器直接相连。在这样的系统中,扬声器纸盆的机械惯性充当了滤除载波频率的低通滤波器。音频转换器的简要背景音频ADC完成A/D转换可以有许多种方法。一个传统的方法是逐次逼近的方案,该方案使用一个比较器对模拟输入信号与一连串中间D/A转换输出之间的比较结果进行检测,然后得到最后的结果。但目前的大多数ADC都是-转换器。这种转换器不是使用逐次逼近的方法来产生很高的分辨率,而是使用了1位的ADC。为了对这个减少了的量化等级数进行补偿,这些转换器在比Nyquist频率高得多的频率下进行过采样操作。把这些过采样的1位样点流转换成一个较低速率、较高分辨率的样点流是使用这些转换器内部的数字滤波模块完成的,目的是
3、为了适应传统PCM流的处理。例如,一个16位44.1kHz的-ADC可以用64倍的过采样率,产生一个速率为2.8224MHz的1位样点流。然后用一个数字抽取滤波器把这个超级采样的样点流转换成一个速率等于44.1kHz的16位样点流。由于对模拟信号的过采样操作,-ADC放宽了对用来限制输入信号带宽的模拟低通滤波器的性能要求。这些转换器还具有将输出噪声分布在比传统转换器更宽的频谱内的优点。正如图3b中的框图所指出的,AD1871ADC与Blackfin处理器可无缝连接。电路的模拟部分被简化了,因为在这个讨论中只有数字信号才是重要的。AD1871的过采样率由外部晶振提供。图中的处理器有2个串行端口(
4、SPORT)和一个SPI端口,用于连接AD1871。被配置成I2S模式的SPORT是与AD1871进行数据连接的端口,而SPI端口用作控制连接。I2S协议是由Philips(NXP半导体)为音频信号的数字传输而开发的一个标准。该标准使音频设备制造商所生产的器件可以相互兼容。确切地说,I2S是一种用于传输立体声数据的3线串行接口。正如图4a中所示,它规定了位时钟(中)、数据线(下)和左右同步线(上),而左右同步线用来选择当前正在传送的数据帧是左声道的还是右声道的。从本质上讲,I2S是一个带有两个活动声道的时分复用(TDM)串行流。TDM是一种通过一条物理链路传输超过一个声道(比如左声道与右声道)
5、的方法。在AD1871电路结构中,当对SPORT时钟(RSCLK)和帧同步(RFS)线进行驱动时,ADC可以降低它从外部晶振接收到的12.288MHz采样率。该配置保证了采样和数据传输是同步的。SPI接口,如图4b所示,是Motorola为了使主处理器可以与各种数字器件相连而设计的。这个在SPI主设备与SPI从设备之间的接口由一条时钟线(SCK)、两条数据线(MOSI和MISO)和一条从设备选择(SPISEL)线组成。其中一条数据线由主设备(MOSI)驱动,而另一条由从设备(MISO)驱动。在图3b的例子中,处理器的SPI端口是无缝地与AD1871的SPI模块相连接的。图4(a)数据信号由AD
6、1871使用I2S协议进行传送(b)SPI3线接口用于控制AD1871带有独立SPI控制端口的音频编解码器允许主处理器在运行中修改ADC的设置。除了静音和增益控制外,其中一个确实很有用的ADC(如AD1871)设置是对节电模式的设置能力。对于电池供电的应用来说,这通常是一个本质功能。DAC与编解码器将音频DAC与主处理器相连接与我们才讨论过的与ADC连接的过程完全一样。在一个同时使用ADC和DAC的系统中,同一个支持双向传输的串行端口可以同时连接这两者。但是,如果您正在考虑全双工音频,那么您最好采用一个可以同时完成模拟数字转换和数字模拟转换的单芯片音频编解码器。这样的编解码器的一个很好的选择是
7、ADI公司的AD1836,它有三个立体声DAC和两个立体声ADC,而且可以通过多种串行协议进行通讯,包括I2S。在本文中,我们讲到了将音频转换器与嵌入式处理器进行连接的一些基本内容。在本文的第二部分,我们将叙述音频数据在存储和处理时的格式。我们将特别回顾在选择数据字长时的折衷方法。这是很重要的,因为这决定了所用的数据类型,而且,如果希望获得的质量等级太高而某个特定器件达不到的时候,也可以避免选择某些处理器。此外,数据字长的选择有助于在增加动态范围和增加处理能力之间的折衷选择。音频功能在嵌入式媒体处理中起到关键性的作用。虽然一般来说,音频处理比视频处理占用较少的处理能力,但它们具有相同的重要性。
8、本文共包括三个部分,在第一部分中,我们将探讨数据是如何从各种音频转换器(DAC和ADC)传送给嵌入式处理器的。在这之后,我们将探讨一些经常用于连接音频转换器的外围接口标准。模拟与数字音频信号之间的转换采样所有的A/D与D/A转换都应该遵循Shannon-Nyquist采样定理。简言之,该定理规定了模拟信号在被采样时的速率(Nyquist采样率)必需等于或超过它的带宽(Nyquist频率)的两倍,以便可以在最后的D/A转换中进行信号重构。低于Nyquist采样率的采样将产生混叠,而这种混叠是那些超过Nyquist频率的频率分量在低频区的镜像叠影。如果我们取一个带宽限制在0-20kHz范围内的音频
9、信号,并在220kHz=40kHz频率下进行采样,那么Nyquist定理就能确保我们可以对原来的信号进行完美重构而不会有任何信号损失。但是,对这个0-20kHz带限信号用任何低于40kHz的采样率进行采样时,将会由于混叠而产生失真。图1示出低于Nyquist采样率的采样如何使信号表示得不正确。在40kHz频率下采样时,20kHz的信号被正确地表示(图1a)。但是,同样的20kHz正弦波,当在30kHz频率下采样时,实际上看起来像是原始正弦波在一个较低频率上的混叠(图1b)。图1(a)用40kHz对20kHz信号进行采样可以正确地捕捉到原始信号。(b)用30kHz对同一个20kHz信号进行采样所
10、捕捉到的是一个被混叠了的信号(低频重影)然而,没有一个实际系统是正好用两倍的Nyquist频率进行采样的。例如,把一个信号限制于一个指定的频带内要使用模拟低通滤波器,但这些滤波器从来就不是理想滤波器。因此,通常用来还原音乐的最低采样率是44.1kHz而不是40kHz,而且许多高质量系统是用48kHz进行采样的,以捕捉到0-20kHz范围内更加逼真的听觉感受。由于语音信号只是我们可以听到的频率范围的一小部分,所以4kHz以下的能量就足以使还原的语音信号能够听得懂。基于这个原因,电话应用中通常只使用8kHz的采样率(=24kHz)。表1归纳了我们所熟悉的一些系统的采样率。表1常用的采样率PCM输出
11、音频信号最常用的数字表示是PCM(脉冲编码调制)信号。在这种表示中,对每个采样周期内的一个模拟幅度用一个数字量进行编码。这样得到的数字波形是一个用来近似地表示输入模拟波形的由抽取点组成的矢量。所有A/D转换器的分辨率都是有限的,所以转换器引入了数字音频系统所固有的量化噪声。图2示出模拟正弦波的PCM表示(图2a),它是用一个理想的A/D转换器进行转换的,图中的量化操作显现为一种“阶梯效应”(图2b)。您可以看到,较低的分辨率导致了对原始波形的较差的表示(图3c)。图2(a)一个模拟信号(b)数字化之后的PCM信号(c)使用较少位数精度进行数字化之后的PCM信号作为一个数值例子,让我们假设用一个
12、24位A/D转换器对一个模拟信号进行采样,而这个模拟信号的范围从-2.828V到2.828V(5.656的峰峰值)。24位有224(16777216)个量化等级。因此,有效的电压分辨率为5.656V/16777216=337.1nV。在本文的第二部分,我们将看到编解码器的分辨率如何影响音频系统的动态范围。PWM输出脉宽调制(PWM)是不同于PCM的另一种调制方法,它可以直接驱动输出电路而无需任何DAC的帮助。这在需要低成本的解决方案时特别有用。在PCM中,对每个采样周期内的幅度进行一次编码,而在PWM信号中描述幅度的是占空比。PWM信号可以通过通用I/O引脚产生,或者可以用许多处理器中都有的专
13、用PWM定时器来直接驱动。为了使PWM音频达到相当好的质量,PWM的载波频率应该至少12倍于信号的带宽,而且定时器的分辨率(即占空比的间隔时间)应该有16位。由于载波频率的需求,传统PWM音频电路曾经被用于窄带音频,比如超重低音。但是,利用目前的高速处理器,就可以扩展到更宽的音频谱。PWM流必须经过低通滤波,以去除高频载波。这通常是用驱动扬声器的放大器电路来完成。D类放大器已经被成功地用于这种结构。当不需要放大时,一个低通滤波器就足以用作输出级。在一些低成本应用中,声音的品质不是那么重要,就可以把PWM流与扬声器直接相连。在这样的系统中,扬声器纸盆的机械惯性充当了滤除载波频率的低通滤波器。音频
14、转换器的简要背景音频ADC完成A/D转换可以有许多种方法。一个传统的方法是逐次逼近的方案,该方案使用一个比较器对模拟输入信号与一连串中间D/A转换输出之间的比较结果进行检测,然后得到最后的结果。但目前的大多数ADC都是-转换器。这种转换器不是使用逐次逼近的方法来产生很高的分辨率,而是使用了1位的ADC。为了对这个减少了的量化等级数进行补偿,这些转换器在比Nyquist频率高得多的频率下进行过采样操作。把这些过采样的1位样点流转换成一个较低速率、较高分辨率的样点流是使用这些转换器内部的数字滤波模块完成的,目的是为了适应传统PCM流的处理。例如,一个16位44.1kHz的-ADC可以用64倍的过采
15、样率,产生一个速率为2.8224MHz的1位样点流。然后用一个数字抽取滤波器把这个超级采样的样点流转换成一个速率等于44.1kHz的16位样点流。由于对模拟信号的过采样操作,-ADC放宽了对用来限制输入信号带宽的模拟低通滤波器的性能要求。这些转换器还具有将输出噪声分布在比传统转换器更宽的频谱内的优点。在本文的第2部分中,我们首先对动态范围与精度的论题进行探讨,然后再对数据格式进行深入的讨论,因为数据格式是与音频处理相关的。动态范围与精度您也许已经见到过dB的规范,这是在目前市场上用于描述各种产品而随处可见的。表1列出了几种产品以及它们的信号质量,以dB为单位。表1各种音频系统的动态范围比较那么
16、,这些数值究竟代表什么意思呢?让我们从确定一些定义来开始。把图1作为对下列基本规范的“仿制数据手册(cheatsheet)”的一个参考信号。图1音频系统中一些重要术语之间的关系人耳的动态范围(最响的信号电平与最安静的信号电平之比值)约为120dB。在存在噪声的系统中,动态范围被描述为最大信号电平与本底噪声之间的比值。这就是说,动态范围(dB)=峰值电平(dB)本底噪声(dB)纯模拟系统中的本底噪声来自系统本身的电特性。建立在模拟系统之上的数字音频信号也会从ADC和DAC中获得噪声,而且还可以从模拟数据采样过程所产生的量化误差中获得噪声。另一个重要的术语是信噪比(SNR)。在模拟系统中,信噪比的
17、意思是标称信号对于本底噪声的比值,其中的“线电平”是标称工作电平。对于专业设备,标称电平通常为1.228Vrms,这可以转换为+4dBu。余量是标称电平与峰值电平之间的差值,峰值电平指开始出现信号失真的电平。数字系统中的SNR定义有些不同,即SNR被定义为动态范围。现在,有了对动态范围的理解,我们就可以开始讨论动态范围在实际中有怎样的用途。不做冗长的推导,让我们简单介绍一下什么是6dB规则。这个规则是动态范围与计算字长之间关系的关键所在。完整的公式推导在式1中说明,但这里使用了简便的表示法,意思是每增加1位的精度,将使动态范围增加6dB。应该注意,这个6dB的规则并没有考虑到音频设计中的模拟子
18、系统,所以,输入端和输出端的传感器的非理想性必须另作考虑。动态范围(dB)=6.02n+1.766ndB其中n=精度位的数目式1:6dB规则“6dB规则”指出,使用的位数越多,我们能获得的系统质量就越高。但实际上,只有少数几个真正可用的选择。大多数适用于嵌入式媒体处理的器件有三种字长形式:16位、24位和32位。表2总结了这三类处理器的动态范围。由于我们在讨论6dB规则,所以有必要对语音信号中常被使用的非线性量化方法进行一些讨论。电话质量的线性PCM编码需要12位的精度。但是,我们的耳朵对小幅度时音频信号变化的敏感度要超过大幅度时。因此,电话通讯中使用的线性PCM采样方法的位数用得过多。A律和
19、律压扩标准中使用的对数量化只用8位精度就达到了12位PCM的质量等级。为了使我们的生活更加方便,有些处理器厂商已经把A律和律压扩标准做到了器件的串行端口中。这使处理器内核无需进行对数计算。在查看了表2之后,我们又一次回想起人耳的动态范围约为120dB。基于这个原因,16位数据的表示法对于高质量音频并不是太合适。因此,供应商引入了对16位系统的动态范围进行扩展的24位处理器。这些24位的系统从C编译器的观点来看有点不标准,所以近年来的许多音频设计使用了32位的处理方式。表2各种定点架构的动态范围选择了正确的处理器并不是万事大吉了,因为一个音频系统的总体质量是由“达到最低质量”元件的等级所决定的。
20、除了处理器外,整个系统还包括像话筒和扬声器这样的一些模拟元件,以及使信号在模拟域与数字域之间变换的转换器。模拟域超出了这次讨论的范围,而音频转换器则涉及到了数字域。假设您想使用AD1871进行音频采样。转换器的数据手册中把它解释为一个24位的转换器,但它的动态范围不是144dB,而是105dB。其原因是转换器不是一个完美无缺的系统,而供应商只给出了有用的动态范围。如果您真的想把AD1871与24位处理器相连,那么,您整个系统的SNR将为105dB。本底噪声将达到144dB-105dB=39dB。图2是这一情况的图形表示。但是,在数字音频系统中还有另一个组件我们还没有讨论:处理器内核内的计算。图
21、2一个音频系统的SNR由最弱元件的SNR构成使数据经过处理器的计算单元会潜在地引入各种误差。其中之一就是量化误差。这种误差可以在一连串导致数据值被截取或舍入(向上或向下)的计算中产生。例如,一个16位处理器可以对一个16位数据组成的向量作加法,然后把结果存入一个扩展字长的累加器中。但是,当累加器中的数值最终被写入到一个16位数据寄存器中时,其中的有些位会被截去。可以看一下图3,看看计算误差是如何影响到实际系统的。对于一个理想的16位A/D转换器(图3a),信噪比应该是16x6=96dB。如果不存在量化误差,那么,16位计算足以把SNR保持在96dB。而24位和32位系统将分别把8位和16位置于
22、本底噪声以下的动态范围中。从本质上看,这些额外的数位是被浪费掉了。图3(a)在一个理想的16位96dBSNR系统中,不同字长计算时的额外数位的分配,其中忽略了量化误差(b)在一个理想的16位96dBSNR系统中,不同字长计算时的额外数位的分配,其中存在量化误差但是,所有的数字音频系统都确实要引入舍入和截取误差。如果我们可以量化这个误差,如确定为18dB(或3位),那么很清楚,16位计算对于维持96dB的系统SNR是不够的(图3b)。解释这一点的另一个方法是,有效的本底噪声被提高了18dB,因而总的SNR就降低到了96dB-18dB=78dB。这导致的结论是,在本底噪声以下的额外数位有助于解决量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 音频 处理 入门 教学 提纲
限制150内