音频的构架以及原理.docx
- 文档编号:3007553
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:19
- 大小:36.54KB
音频的构架以及原理.docx
《音频的构架以及原理.docx》由会员分享,可在线阅读,更多相关《音频的构架以及原理.docx(19页珍藏版)》请在冰豆网上搜索。
音频的构架以及原理
音频的构架以及原理
Audio系统构架
摘要:
本课题主要研究音频的构架以及原理。
这里的音频构架主要针对
笔记本codec以及HADLINK。
通过对CODEC初始化,工作原理以及Azalia协议的描述来说明笔记本音频系统的构架。
另外通过采样,D/A转换,编码,DSP处理,硬声卡等一系列的描述来体现整个音频系统的原理。
第一章codec的介绍................................................................................2
1.1audiocodec
1.2ALC662
1.3ALC662外围电路设计
223
第二章controllerandLINKProtocol........................................................7
2.1controller及其构架
2.2LINK上的流和频道
2.3codec地址分配和握手方式
7811
第三章HDAcontroller和codec的初始化...........................................12
3.1controller初始化
3.2codec的配置3.3CORB与RIRB
121313
第四章采样和AD转换...........................................................................16
4.1采样定理
4.2采样电路4.3AD转换
161821
第五章音频信号的编码..........................................................................22
5.1音频编码的由来
5.2心里声学模型5.3PE值的计算
5.3位元的分配以及帧格式5.5MP3的编码过程5.6子带滤波器5.7MDCT5.8量化编码
2323272830313233
5.9总结36
第六章DSP,硬声卡的简单介绍..........................................................36
6.1DSP
6.2硬声卡
3637
第一章codec的介绍
1.1audiocodec
Codec意思是数字信号编码器,其使用范围很广泛,在这里我们只讨论audiocodec。
audiocodec在笔记本中其根本的作用主要是D/A,A/D转换。
audiocodec从HADLINK上接受到的是纯正的一帧一帧的音频采样信号(后续会对此详细描述),他就是通过对这些采样信号D/A转化得到最后的模拟声音信号的输出。
当然audiocodec也可以通过MIC,LINEIN等端口接受到模拟的音频信号,然后对这些信号进行A/D转换,再传输到上层编码,最后储存或者传输。
下面我们以ALC662为列对CODEC做详细的描述。
1.2ALC662
ALC662是一款5.1声道的codec,包括:
前声道左右,后声道左右,中间声
道,再加一个低音炮一共为5.1声道。
ALC662LQFP48pin封装,可以划分为数字部分和模拟部分两块。
数字部分是与HDALINK连接的部分,有REST#,BITCLK,SYNC,SDOUT,SDIN,当然还有两个数字电以及数字地。
REST#信号使CODEC进入一个上电完成状态,其内部寄存器恢复默认或保留值,另外REST#至少持续100u来使得BCLK跑到一个正确的值(内部PLL锁频需要的时间)。
REST#是由HDAcontroller发出的,连接到HADLINK上所有的device。
当powerupPCIreet或者软件通过CRST寄存器初始化link的时候都会产生REST#。
BITCLK是有HADcontroller发出的连接到link上所有设备的工作24M参考时钟。
SYNC是48KHZ流同步信号,每一帧中会包含一个到几个的流,给不同的设备,每个流的treamtag就是包含在SYNC信号中。
SDOUT是有HDAcontroller发送到codec的数字信号,支持一对多连接,即LINK几个设备可以公用一个SDOUT。
SDOUT是在clock上升和下降沿都采样的信号,一次其速率为
48M。
SDIN是由device向controller传输数据的。
只支持一对一传输,即不可由多个device公用一根SDIN线。
两个数字电分别用于内部core逻辑和link的用电。
其内部core逻辑为3.3V供电,link用电可以是3.3v也可以是1.5V这就需要由南桥的HADcontroller输出决定了。
模拟部分也就是最终声音信号输出或输入。
其中输入包括LINEIN,MICIN,CDIN。
LINEIN可以作为录音功能使用,CDIN是接到IDE光驱上的用来接受模拟的CD音乐输入,其作用就是一方面后台播放音乐,另外也是使CD音乐直接由CD-IN到codec输出而不必经过一系列的传输以及解码而占用系统资源。
MICIN用于麦克风的输入引脚。
输出就是包括5.1声道的模拟输出外加一个SPDIF数字音频输出。
1.3ALC662外围电路设计
本节主要讨论codec外围设计时的一些注意点以及原理。
数字部分主要要小心的是电的选择,数字电有一个是3.3/1.5可选的,要注意什么时候选择3.3什么时候选择1.5。
一般情况我们都是选择3.3只是在HDALINK传输的信号必须为1.5V时(比如GM使用HDMI时由于的HADLINK只支持1.5V电平)才选择后者。
另外由于选择1.5V电平后codec的模拟输出也会有一定的减小,因此最大音量输出会相应的减小我们要对此注意调节。
(下面会具体讲到调节方法)
模拟部分我们主要考虑的是,去耦电容的选择,运放的运用,bobo音的改善方法,以及MIC啸叫之类问题的处理。
我们加去耦电容主要是防止音频信号输出上的共模含量影响声音质量或对输出产生干扰。
理论上讲我们应高选择比较大的去耦电容(比如100uF),这样可以减小去耦电容对低频部分声音信号的抑制,提高声音输出的质量,但不管是根据成本考虑还是实际效果的考虑我们都不会选择大去耦电容,除非在需要过杜比时在LINEOUT口上加100uF电容。
而对于喇叭口我们一般是上0.1-0.47uF的电容,因为对于喇叭而言其本身声音输出的质量就不高因此没必要给一个高质量的输入。
由于codec驱动能力有限其输出音频引号的峰峰值也并不是很大为了保证喇叭输出的音量我们需要外加运放。
集成运放我们设计成单端输入差分输出的方
式。
对于集成运放其原理相信学过模电或者集成电路的应该都知道这里就不再介绍了。
由于我们用于音频20-20KHZ的信号放大(放大比例也不大就6-10db)因此对于运放的带宽增益积也没什么特别的要求。
主要是在经过运放后对我们的信号不应该有明显的干扰,因此信噪比有一定要求。
加入运放后主要带来的一个问题就是bobo音。
其实bobo音产生的根源并非codec,也非运放本身。
而是我们使用的这种单端输入差分输出的方式产生的。
单端输入造成运放两输入端的不匹配,而这中不匹配就导致在上电时在运放两输入pin达到偏置电平这段时间有个ΔV或者ΔI,而这个ΔV或者ΔI在经过运放放大到输出端后就产生bobo音。
为了减小bobo音我们就需要调节运放输入端口使其匹配(也就是调节两端的电容电阻)。
图1-1
对于MIC的啸叫音这也是我们经常遇到的情况。
现实生活中也长有:
比如拿着麦克风讲话时,嘴巴靠经麦克风我们还没开始说话喇叭那端会产生一个持续的啸叫音很是刺耳。
我们笔记本电脑也常有这个问题,比较让人受不了的是当机盖合到一定位置就会产生啸叫(因为这种情况比较容易出现有很大影响)。
为了了解解决这一问题的方法我们就得现弄清楚啸叫产生的原因了。
啸叫简单的说就是由于闭环系统震荡形成的。
喇叭输出的声音经过空气,机构反射再到MIC,然后MIC又经过功放再从喇叭输出。
这形成了一个闭环回路,当这个回路的增益A>1时就形成震荡,震荡达到功放输出的极限就成了啸叫了。
我们知道声音信号经过喇叭输出后经过反射,吸收以及空气传输过程中的损耗,到达MIC端其衰减是很大的。
所以一般闭环增益A一般不会大于1。
但是有两种情况导致啸叫产生成为可能。
第一由于反射的存在使得在MIC端声音信号会存在一个峰点:
即某一频率的信号在MIC这一点前一次,前两次
的信号与这一次的信号叠加使得信号增强(一般而言由于相位不同这种叠加的增强比较少)而这种峰点就导致最后闭环增益A>1。
第二点由于Q值的影响,由MIC到功放这段的增益频率曲线会有尖峰存在,而这种尖峰点也是啸叫产生的原因。
当然目前对于第二点的抑制已经做的很好了,基本不会存在问题。
但是对于第一点一般情况下很难避免。
对于啸叫音的抑制一般有三种方法:
均衡方式,移频方式,移相方式。
均衡方式就是通过手动调节找到啸叫的第一峰点在通过调节运放使得在该频率点的放大倍数减小,从而保证A<1。
以此类推我们可以找到第二,第三等等峰点再做调整。
这种方式弊端在与1.我们在调节峰点频率的放大倍数时也会影响峰点频率附近频率点的放大倍数。
2.这种说动调节本身要求就比较高非专业人士难以操作。
移频方式就是输出信号对输入信号又一个频率的搬移,即1000HZ的输入信号移频后输出为1005HZ或者995HZ。
这中频率搬移使得对于峰值信号的输入经过几次搬移后其输出信号已经远离峰值频率而避免产生啸叫。
这种方式的弊端在与他对所有的输入信号都有移相的作用使得输出信号普遍的失真。
另外这中方式还容易产生“喔”“喔”的声音,由于输入信号存在峰值频率前后的一系列信号使得在频率搬移的时候不断的会有信号移入和移出峰值频率所以产生不停的“喔”“喔”震荡音。
移频技术在七八十年代是我国主要使用的技术,因此我们很多人应该还记得小时候学校广播经常会有不停的“喔”“喔”音。
移相技术是随着DSP微处理器的发展而产生的新技术。
其原理和移频技术类似,输出信号对于输入信号会有一个相位的偏移,而这个相位的偏移保证在峰点频率信号叠加的相位每次都不同就避免出现因为叠加而信号增强震荡的情况。
移相技术不会像均衡方式那样难以调节,也不会像移频技术那样存在失真是当前主流技术。
上面讨论了三种常见的去啸叫声的技术。
但我们发现这三种技术似乎都无法在我们笔记本设计上有所应用。
对于第一种我们喇叭的功放放大倍数已经定了没法调节,另外像只是调节一个频率点的增益也不是目前我们所使用的运放可以调节的。
对于第二种和地三种由于信号是通过MIC输入到codec再由codec直接输出至运放所以不存在调频与调相。
那么我们对于啸叫音是否就是无能为力了呢。
其实去除啸叫音的本质是减小闭环增益。
我们知道信号在空气中传输会有损耗,所以如果你的MIC距离喇叭足够远无论如何都不会产生啸叫的,所以首先
在设计时要保证MIC距离喇叭越远越好(如果你MIC离喇叭很近那么很容易就会产生啸叫)。
假设在MIC已经尽量远离喇叭后还是存在啸叫,我们可以试着一同MIC的位置看看移到哪些地方以后就不会有啸叫了。
应为我们知道峰频的产生是前几次反射信号和这次输出信号叠加由于其相位一致性导致信号增强,所以我们移动MIC的位置可以打破之中前面信号和本次输出的相位一致性从而避免峰频的出现。
当然换了位置消除了这一点的峰频有可能产生新的峰频。
所以需要反复尝试验证。
如果以上两种办法都不行我们可以考虑在喇叭或者MIC边上加点泡棉之类的材料来抑制峰频从而消除啸叫。
第二章controllerandLINKProtocol
2.1controller及其构架
图2-1
图2-1表示的就是PC内部HDAudio的构架。
CPU从内存中读取音频文件信息以及解码的函数指令。
然后CPU完成音频文件的解码工作。
然后CPU再把解码后的音频数据放入内存指定位置。
然后通过controller中的DMA控制器实现DMA传输把音频
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音频 构架 以及 原理