AudioCodec的必要性
在理想状况下,对于录音过程,只需要将麦克风获取到的analog信号通过
ADC转换为digital信号并存储即可,对于播放音过程,只需要将digital信号
通过DAC转换为analog并输出到speaker播放即可。
但在实际的过程中,对于录音过程而言,会受到外界声源的干扰,麦克风自
身对信号的衰减以及物理链路接口上引入的杂音等因素的影响,对于放音,可能
会受digital数据本身的问题等因素的影响。
举个简单的例子,拿着手机或者固定电话和别人讲话的时候,虽然一边自己
说话,一边听电话另外一端的人讲话,但是从听筒中并没有非常明显的听到自己
的讲话声音。这中间就是一些AudioCodec在起作用,它们可以实现回音消除,
噪音抵消,以及ALC/Limiter等,当然它也实现了最重要的AD和DA功能。
ALC(automaticlevelcontrol)
不知道怎么来翻译这个词语,姑且称之为动态电压控制。
通过检测系统中的analog信号来判断是否超过Codec中设定的Max/Min值,
如果超过的话,则去根据设定的attackrate和relearate来调整analog
的电压,以达到使其介于一个合理范围内的目的。
所谓的attachrate其作用的过程就是增益增大(电压降低)的过程,而
relearate则是增益减小(电压增高)的过程,如下图所示:
实际使用过程中,ALC功能所能够达到的效果如下图:
从图中可以看到,对于超过Max强度的电压,通过调整attach过程将其降
低,反之则通过relea将其增大。
对于一般的Codec芯片而言,使用ALC功能的时候都要去配置Max/Min的
threshold(db)值,以及Attachrate和ReleaRate(快or慢)。
Limiter
不知道应该怎么翻译这个词。
与ALC类似,Limiter也是去检测analog信号的强度,当大于用于设置的
threshold的时候通过直接对信号进行截断处理,也有的Codec不是野蛮的进行
截断处理,而是采用类似ALC调整Gain的方法来调整analog信号的强度。
例如max9756中OutputLimiter的效果图如下:
注:
个人理解,Limiter的效果比起ALC来说相对差一些,可能是内部硬件实现
的决定了这点吧,前者可能是一种相对Cost-down的方案。
HPF(DigitalHighPassFilter)
即为数字高通滤波的意思,实现的功能就是使高频率信号通过,而低频率
信号被衰减。引文描述为:
Ahigh-passfilter,orHPF,isanLTIfilterthatpasshighfrequencies
wellbutattenuates(i.e.,reducestheamplitudeof)frequencieslower
thanthefilter'ualamountofattenuationfor
metimescalled
alow-cutfilterorbass-cutfilter.[1]
那么有什么好处呢,用英文来进行描述就是High-passfiltershavemany
eudaspartofanaudiocrossovertodirecthigh
frequenciestoatweeterwhileattenuatingbasssignalswhichcould
interferewith,ordamage,thespeaker.
更加全面的解释请参照:
/wiki/High-pass_filter
AIN+与AIN-
这就是所谓的差分输入形式,下面来简单的介绍一下单端输入与差分输入。
在单端方式工作时,ADC转换的是单输入引脚对地的电压值。当增益为1
时,测量的值就是输入的电压值;范围是0V到VREF;当增益增加时,输入的范
围要相应的减小;
在差分方式工作时;ADC转换的是AIN+与AIN-两个引脚的差值;在增益为
1时,测量的值等于(AIN+)-(AIN-),范围是-VREF到+VREF;当增益增加时,输
入的范围要相应的减小。
注意:在差分方式时所提的负压是指AIN-引脚的电压大于AIN+引脚的电压,实
际输入到两个引脚的电压对地都必需是正的;例如:如果AIN+引脚输入的电压为
0V,AIN-引脚的输入电压为1/2VREF时,差分的输入电压为(0V-1/2VREF)=
-1/2VREF
下面列举了一个两路单端analog输入的例子:
zero-crossingdetection
即过零检测。指的是当交流系统中,当波形从正半周向负半周转换时,经
过零位时,系统作出的检测,可作开关电路或者频率检测。
AGC(AutomaticGainControl)
即自动增益控制;对一个输入信号进行放大,为了方便处理,应该保证输出
有一定的幅度同时又不会饱和,但是由于输入信号的幅度通常变化很大,所以不
能采用一个简单的单一放大倍数,AGC就是根据输入信号调整放大倍数,是输出
信号幅度一致。
音频设备的3种硬件接口--PCM,IIS和AC97
一些AudioCodec中总是出现PCM字样,一直以为它是一种音频数据编码格式,
但是越看Spec觉得越不像,赶紧到网上查了下,发现它是一种类似与IIS的数
据传输格式。
1.PCM接口
针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于
数字转换的接口。最简单的音频接口是PCM(脉冲编码调制)接口,该接口由时
钟脉冲(BCLK)、帧同步信号(FS)及接收数据(DR)和发送数据(DX)组成。
在FS信号的上升沿,数据传输从MSB(MostSignificantBit)字开始,FS频
率等于采样率。FS信号之后开始数据字的传输,单个的数据位按顺序进行传输,
1个时钟周期传输1个数据字。发送MSB时,信号的等级首先降到最低,以避免
在不同终端的接口使用不同的数据方案时造成MSB的丢失。
PCM接口很容易实现,原则上能够支持任何数据方案和任何采样率,但需要
每个音频通道获得一个独立的数据队列(为什么?)。这是因为PCM信号,一个声道
采集是一个数据队列,多个数据队列在PCM格式中没法融合到一个数据队列上。不像AC97有控制tag
可以区分,IIS有LRCLK来区分左右声道数据,这是有差别的。
2.IIS接口
IIS接口(Inter-ICSound)在20世纪80年代首先被飞利浦用于消费音
频,并在一个称为LRCLK(Left/RightCLOCK)的信号机制中经过多路转换,将
两路音频信号变成单一的数据队列。当LRCLK为高时,左声道数据被传输;LRCLK
为低时,右声道数据被传输。与PCM相比,IIS更适合于立体声系统(因为可以
传送多个声道的数据,所以显然更加适合StereoSingle,其实所谓的立体声,
也就是多个声道可以发出不一样的声音)。对于多通道系统,在同样的BCLK和
LRCLK条件下,并行执行几个数据队列也是可能的。
3.AC97接口
AC'97(AudioCodec1997)是以Intel为首的五个PC厂商Intel、Creative
Labs、NS、AnalogDevice与Yamaha共同提出的规格标准。与PCM和IIS不同,
AC'97不只是一种数据格式,用于音频编码的内部架构规格,它还具有控制功能。
AC'97采用AC-Link与外部的编解码器相连,AC-Link接口包括位时钟(BITCLK)、
同步信号校正(SYNC)和从编码到处理器及从处理器中解码(SDATDIN与
SDATAOUT)的数据队列。AC'97数据帧以SYNC脉冲开始,包括12个20位时间
段(时间段为标准中定义的不同的目的服务)及16位“tag”段,共计256个数
据序列。例如,时间段“1”和“2”用于访问编码的控制寄存器,而时间段“3”
和“4”分别负载左、右两个音频通道。“tag”段表示其他段中哪一个包含有效
数据。把帧分成时间段使传输控制信号和音频数据仅通过4根线到达9个音频通
道或转换成其他数据流成为可能。与具有分离控制接口的IIS方案相比,AC'97
明显减少了整体管脚数。一般来说,AC'97编解码器采用TQFP48封装。
本文发布于:2022-12-29 02:30:14,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/50552.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |