的信号与这一次的信号叠加使得信号增强(一般而言由于相位不同这种叠加的增强比较少)而这种峰点就导致最后闭环增益A>1。第二点由于Q值的影响,由MIC到功放这段的增益频率曲线会有尖峰存在,而这种尖峰点也是啸叫产生的原因。当然目前对于第二点的抑制已经做的很好了,基本不会存在问题。但是对于第一点一般情况下很难避免。
对于啸叫音的抑制一般有三种方法:均衡方式,移频方式,移相方式。均衡方式就是通过手动调节找到啸叫的第一峰点在通过调节运放使得在该频率点的放大倍数减小,从而保证A<1。以此类推我们可以找到第二,第三等等峰点再做调整。这种方式弊端在与1.我们在调节峰点频率的放大倍数时也会影响峰点频率附近频率点的放大倍数。2.这种说动调节本身要求就比较高非专业人士难以操作。移频方式就是输出信号对输入信号又一个频率的搬移,即1000HZ的输入信号移频后输出为1005HZ或者995HZ。这中频率搬移使得对于峰值信号的输入经过几次搬移后其输出信号已经远离峰值频率而避免产生啸叫。这种方式的弊端在与他对所有的输入信号都有移相的作用使得输出信号普遍的失真。另外这中方式还容易产生“喔”“喔”的声音,由于输入信号存在峰值频率前后的一系列信号使得在频率搬移的时候不断的会有信号移入和移出峰值频率所以产生不停的“喔”“喔”震荡音。移频技术在七八十年代是我国主要使用的技术,因此我们很多人应该还记得小时候学校广播经常会有不停的“喔”“喔”音。移相技术是随着DSP微处理器的发展而产生的新技术。其原理和移频技术类似,输出信号对于输入信号会有一个相位的偏移,而这个相位的偏移保证在峰点频率信号叠加的相位每次都不同就避免出现因为叠加而信号增强震荡的情况。移相技术不会像均衡方式那样难以调节,也不会像移频技术那样存在失真是当前主流技术。
上面讨论了三种常见的去啸叫声的技术。但我们发现这三种技术似乎都无法在我们笔记本设计上有所应用。对于第一种我们喇叭的功放放大倍数已经定了没法调节,另外像只是调节一个频率点的增益也不是目前我们所使用的运放可以调节的。对于第二种和地三种由于信号是通过MIC输入到codec再由codec直接输出至运放所以不存在调频与调相。那么我们对于啸叫音是否就是无能为力了呢。其实去除啸叫音的本质是减小闭环增益。我们知道信号在空气中传输会有损耗,所以如果你的MIC距离喇叭足够远无论如何都不会产生啸叫的,所以首先
在设计时要保证MIC距离喇叭越远越好(如果你MIC离喇叭很近那么很容易就会产生啸叫)。假设在MIC已经尽量远离喇叭后还是存在啸叫,我们可以试着一同MIC的位置看看移到哪些地方以后就不会有啸叫了。应为我们知道峰频的产生是前几次反射信号和这次输出信号叠加由于其相位一致性导致信号增强,所以我们移动MIC的位置可以打破之中前面信号和本次输出的相位一致性从而避免峰频的出现。当然换了位置消除了这一点的峰频有可能产生新的峰频。所以需要反复尝试验证。如果以上两种办法都不行我们可以考虑在喇叭或者MIC边上加点泡棉之类的材料来抑制峰频从而消除啸叫。
第二章controller and LINK Protocol
2.1 controller及其构架
图2-1
图2-1表示的就是PC内部HD Audio的构架。CPU从内存中读取音频文件信息以及解码的函数指令。然后CPU完成音频文件的解码工作。然后CPU再把解码后的音频数据放入内存指定位置。然后通过controller中的DMA控制器实现DMA传输把音频数据传输到Codec。这就完成了整个音乐播放的过程。
控制器(Controller):HDA控制器是总线控制I/O外围设备。它个或多个
DMA引擎,其中每一个都可以在存储器和codec之间传输单个的音频流。是从存储器到codec还是从codec到存储器,这要取决于DMA的类型。控制器实现所有的寄存器,这些寄存器就是编程的接口通过PCI或其他典型PC外围设备接口和系统存储器相连。它包括一
链路(Link):控制器物理上通过HDA链路连接一个或多个codec。链路在控制器和codec之间传输连续的数据。在带宽和协议上链路做到了优化。链路也要分配采样率时间基数,以BCLK(bit clock)信号出现。这个位时钟信号由控制器产生并应用在所有的codec上。在确定的数据传输率上链路协议支持多种采样率和大小。
Codec(音频解码器):链路上连接了一个或多个codec。Codec从时间多元链路协议中析取一个或多个音频流,并将它们通过一个或多个转换器(用“C”来表示)转换成一个输出流。一个转换器通常将一路数字信号转换成一个模拟信号,但也提供附加功能,比如说作为调制解调器或连接电话线。它可以将多元流分解,并将它以单个数字流传输,比如S/PDIF。Codec中转换器的数目和类型,以及插孔和连接器的种类,取决于codec的功能。Codec从链路的BCLK信号中获得采样率时钟。
有关音频设备:这些设备包括扬声器,耳机和麦克风。
2.2 LINK上的流和频道
这一节主要介绍在HAD LINK上数据是怎样传输的。为了组织数据来让这些数据在HDA链路上传输我们提出了流和频道的概念。流是创建于系统存储器缓冲区和codec之间的一个逻辑的或虚拟的连接,并由DMA引擎通过链路驱动,完成从存储器缓冲区到Codec的传输。流包括一个或多个有关组件和数据频道。每一个频道都连接一个在codec中的转换器。例如,一个立体声流包括两个频道:左和右。在这个流中的每一个采样点应该包括两个采样:左和右。这些采样在缓冲区中和在链路上传输的时候是组合在一起的,但是却在codec中连接不同的DA转换器。
流包括输入流与输出流,输出流可以连接到一个或多个codec上(反应到硬件连接上即是一根SDOUT线可以连接到一个或者几个codec上),流中可以包括流1,流2,流3等其中流1可能是 codec1的(modem),流2,流3可能是codec2的
(ALC662)。输入流与输出流不同的是一根线上只能传输一个流(即SDIN只能连接到一个codec上)。图2-2为流的传输结构图。
图2-2
输入流与输出都已帧的形式传输,图2-3表示流的帧机构图
图2-3
图2-3中stream即表示流,对于输入输出帧每一帧都可以有多个流。对于输出流可以多个流在一根SDOUT上传输,我们又是通过stream Tag流标头来区分各个不同的流。由于我们SDOUT可能连接到几个codec上不同的流可能传输到不同的codec上因此在SYNC帧同步信号上都有一个stream Tap,stream Tap是在对应的sterm传输前出现。不同的stream Tap对应接下来在SDOUT上传输的stream传输到不同的codec上。对于输入流我们知道一根SDIN上只能
传输一个流所以不需要有SYNC来传输其不同的stream tap。不过其SDIN信号线上会传输自己流的stream tap。如下图2-4和2-5所示。
图2-4
图2-5
图2-3中S_1,S_2,S-3就是我们的采样块。为什么会有S_1,S_2,S_3之分呢。因为我们知道HAD Link上传输每一帧的频率为48KHZ但我们音频信号的采样率可以是44.1/48/96/192KHZ。如果是96或者192KHZ的话我们一帧数据流中就需要传输2或3个采样块了。因此S_2,S_3就是在采样信号频率较帧频率高的时候才有的。当然我们采样率也有44.1KHZ甚至更低的22KHZ这种时候传输的时候可能就会出现空帧。对于44.1KHZ的采样信号我们以12:11即12帧当中有1个空帧的形式传输。每个采样块中又可以包括几个部分比如音频的左右声道等,而接下来的每个部分就是真正的一个音频信号的采样数据了可以是8位/16位或者是32位的。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库音频的构架以及原理(2)在线全文阅读。
相关推荐: