收藏 分享(赏)

基于AC3的虚拟环绕声实现.doc

上传人:buyk185 文档编号:7195025 上传时间:2019-05-09 格式:DOC 页数:62 大小:873KB
下载 相关 举报
基于AC3的虚拟环绕声实现.doc_第1页
第1页 / 共62页
基于AC3的虚拟环绕声实现.doc_第2页
第2页 / 共62页
基于AC3的虚拟环绕声实现.doc_第3页
第3页 / 共62页
基于AC3的虚拟环绕声实现.doc_第4页
第4页 / 共62页
基于AC3的虚拟环绕声实现.doc_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、Q260046902 专业做论文西南科技大学毕业设计(论文)题目名称:基于 AC3 的虚拟环绕声实现年 级:2003 级 本科 专科学生学号:20035303学生姓名:黄小宝 指导教师:詹曦学生单位:信息工程学院 技术职称:助教学生专业:通信工程 教师单位:信息工程学院西 南 科 技 大 学 教 务 处 制西南科技大学本科生毕业论文 I基于 AC3 的虚拟环绕声实现摘要:Dolby AC3 提供的 5.1 声道音频模式是当前应用得最广泛、声音质量较高、编码效率最高的一种音频编码模式。基于 AC3 的虚拟环绕声系统能够满足人们在不允许布置多个扬声器的情况对环绕声音质的要求,而且简化了系统,降低了

2、消费;它特别适用于耳机这类只有两个扬声器的设备。本文论述了用软件实现虚拟环绕声的两种途径,即用 Matlab 和 C 语言编程来仿真 5.1 声道虚拟环绕声重放。用 Matlab进行虚拟环绕声的仿真是通过对 AC3 音频文件解码后得到的六个声道信号进行虚拟环绕声滤波处理。C 程序设计将多通道虚拟环绕声处理技术与 AC3 解码程序相结合,实现基于 AC3 的 5.1 声道虚拟环绕声重放系统。Matlab 和 C 语言的实现结果通过标准布置的左、右两个扬声器播放,在正确的听音位置进行试听,能够感觉到声音有明显的空间感和立体感,实现结果良好。关键词:虚拟环绕声;Dolby AC3;HRTF;AC3

3、解码器西南科技大学本科生毕业论文 IIVirtual Reproduction of Surround Sound Based on AC3Abstract : The model of 5.1 channel audio supplied by Dolby AC3 is widely used. The quality of 5.1 channel audio is good, and the coding efficiency of the coding model is the highest at present. The System of the Virtual Reproduct

4、ion of Surround Sound based on AC3 will be able to meet peoples requirement of the higher quality of surround sound, while it is not allowed to place more speakers due to the limited conditions, and it could simplify the system and reduce the consumption. It is especially fit to the equipments that

5、have only two speakers, such as headphones. This paper discussed the two methods of making virtual surround sound come true, i.e., use Matlab and C language to simulate the virtual reproduction of AC3 5.1 channel surround sound. Because of processing the six channels signal of AC3 by using the virtu

6、al surround sound filtering technology, the simulation of the virtual reproduction of surround sound under Matlab comes true. While programming by C language, The System of the Virtual Reproduction of Surround Sound based on AC3 comes true by combining the virtual surround sound filtering technology

7、 and AC3 decoder. While the results of Matlab program and C language program be played by two speakers that placed at the standard position, you could feel the feeling of spaciousness and third dimension obviously. So, the result of the implementation is well.Keywords: Virtual Surround Sound, Dolby

8、AC3, HRTF, AC3 decoder西南科技大学本科生毕业论文 III目 录第 1 章 绪 论 11.1 课题背景、目的及意义 .11.1.1 课题背景.11.1.2 课题的目的及意义.41.2 论文的主要内容和框架 .4第 2 章 系统总体设计 62.1 系统实现原理 .62.2 MATLAB 仿真实现虚拟环绕声的设计 .92.3 C 语言编程实现基于 AC3 的虚拟环绕声系统 92.4 本章小结 .10第 3 章 主要技术简介 113.1 Dolby AC3.113.1.1 Dolby AC3 的特点、配置和应用 .113.1.2 Dolby AC3 的编码原理 .123.1.3

9、Dolby AC3 的解码原理 .133.2 头相关传输函数 .133.2.1 HRTF 的定义 .143.2.2 HRTF 数据的获取 .153.3 本章小结 .17第 4 章 Matlab 编程实现虚拟环绕声的设计 184.1 Matlab 的特点 .184.2 系统设计 .184.2.1 从 AC3 文件中分离出 5.1 独立声道数据 194.2.2 程序设计.224.3 结论分析 .234.4 本章小结 .24第 5 章 C 语言编程实现基于 AC3 的虚拟环绕声系统 .255.1 VC+6.0 软件介绍 .25西南科技大学本科生毕业论文 IV5.2 程序设计背景 .255.2.1 解

10、码原理.255.2.2 MDCT 和 IMDCT 285.3 程序设计 .305.3.1 子函数 IMDCT.305.3.2 子函数 Downmix355.4 结论分析 .365.5 本章小结 .37结 论 38致 谢 40参考文献 41附录 1 Matlab 实现虚拟环绕声重放的程序 .42附录 2 基于 AC3 的虚拟环绕声实现的 C 程序 .46 子函数程序 IMDCT.46 子函数程序 Downmix53 主程序 decode 55西南科技大学本科生毕业论文1第 1 章 绪 论1.1 课题背景、目的及意义1.1.1 课题背景1. AC3 的发展背景自 1976 年杜比环绕声(Dolby

11、 stereo optical,4ch)首次应用于电影后,已成为最受欢迎的多声道立体声系统之一,用于家庭的杜比环绕声(Dolby Surround,3ch,1982 )和杜比定向逻辑环绕声(Dolby Surround Pro Logic,4ch,1987),更能让你在家中享受电影院的环绕声效果。1992 年杜比公司又开发了最新一代的杜比数码环绕声系统(Dolby Digital)并应用于电影,该系统基于先进的感觉编码(perceptual coding)和数字压缩编码技术,即杜比AC3。其优良的特点使之在 1995 年被选作 DVD 播放机的标准多声道音频格式(在 NTSC 制电视的国家)及

12、多项其它系统的标准音频格式。杜比数码环绕声系统有六个完全独立的声道,全频带的左 L、右 R、中置 C、左环绕 LR、右环绕 RS,再加上一个 20120Hz 的超重低音的声道 LFE(以 0.1 声道计),故又称作 5.1 声道。在杜比 AC3 规格中超重低音的音量比其它全频带声道大 10dB,可得到震撼力非凡的低频效果。杜比 AC3 原理上是它将每一声道的音频根据人耳听觉特性划分为许多最优的狭窄频段,利用音响心理学“听觉掩蔽效应” ,删除人耳所听不到或可忽略的部分,并采用数字信号压缩编码。同时,利用狭窄频段的划分使部分频段噪声在编码时可被几乎全部滤除,使其余噪声的频谱靠近在信号频谱附近,而这

13、些噪声可被信号所抑制。因此杜比 AC3 系统实际上是一种具选择性及强抑噪的系统。它可以将 5.1 通路的环绕声信息压缩到 384kb/s(或 320kb/s)。不难理解杜比 AC3 的特点:以较低的码率支持全音频多声道,并具优良的回放音质和效果12。2. 虚拟环绕声的发展 34环绕声是近年出现的一大类新的系统。它们的基础是听觉传输技术,通过头相关传输函数(HRTF ,也就是声源到双耳的传输函数)来实现声场空间信息的传输、重发或模拟。而称为虚拟环绕声的系统有以下的三类。(1) 听觉传输立体声系统西南科技大学本科生毕业论文2这是真正的虚拟环绕声系统。它根据听觉传输技术的原理,利用假头进行检拾,或利

14、用信号处理的方法模拟出声源到双耳的传输。所得到的两路信号经放大、记录和传输等过程后,再经耳机进行重发,也可以经过串声抵消网络后由扬声器进行重发。这种方法相当于用电声学的方法把倾听者的听觉器官转移到原声场中去,从而得到原声场的空间信息。它的突出优点是声像逼真、自然,且只需要两个独立的传输信号就有可能重发三维空间的声像,这些优点是多通路系统所没有的。但是,与多通路系统不同,这种系统实现的并不是空间一定的区域的声场的传输与重发,而是通过传输和重发双耳(空间上两点)声信号来实现声场空间信息的传输与重发的。系统的这种特点使它存在着内在的缺陷: 由于真实听觉中,倾听者头部不自觉的微小转动以及耳壳对声波的散

15、射作用所引起的梳状滤波效应对区分前后镜像位置和中垂面的声源有重大的作用,但是耳壳效应仅在高频(f56kHz)才起作用。而在听觉传输系统中,通常也只考虑了耳壳的作用,并没有考虑原声场中倾听者头部的转动。因而在重发时,特别是中低频的情况,经常会出现前后镜像位置的声像倒置的情况。因此系统所传输的双耳信号并没有完全地包含原声场的空间信息。为了克服这缺陷,国外也提出了一种采用四耳的假头作为检拾体系,或采用传感器对重发时倾听者头部的位置进行跟踪的方法,但这相当于增加了系统的独立传输信号,且并不是所有场合都适用。 由于 HRTF 是与声源到双耳的相对位置有关(特别是高频),而在扬声器重发中,交叉串声抵消网络

16、的传输特性是取决于扬声器到双耳的 HRTF。因而严格来说对一定的抵消网络,只能在一个特定的听音位置上有效。倾听者偏离理想的听音位置将会导致严重的声像失真(这在高频的情况尤为严重)。所以系统的听音区域较窄。针对这缺点,国外也提出了用多个扬声器或前方两个相距很近的扬声器(称为立体声偶极子)重发听觉传输信号的方法,但这只能起到部分改善的作用。值得指出的是,上述的缺陷有一定的共通性,在所有涉及到听觉传输原理(HRTF)的系统中都存在。而由于存在上述缺陷,目前听觉传输系统较少独立地用在要求有较大的听音区域的声重发,如家庭影院等。它主要用在计算机虚拟现实,厅堂音质听觉化等科学研究中。(2) 3D “准”虚

17、拟环绕声系统西南科技大学本科生毕业论文3这类系统的代表是 SRS, Spatialize,Qxpander 等。它们利用听觉传输技术的原理,在普通的双通路立体声重发中,通过模拟空间不同方向到双耳的HRTF,从而模拟反射声,增加主观听觉上的空间感与包围感,达到模拟 3D 环绕声的目的。这类系统是后处理系统,也就是“准 ”虚拟环绕声系统,所起到的仅是模拟环绕声信息的作用。双通路立体声信号本身并没有很好地包含三维空间的声音方向信息,因而用任何现有的办法都不可能将方向信息“提取” 出来,否则的话也无需要发展多通路环绕声系统了。并且如前所述,HRTF 是与声源与双耳的相对位置有关(特别是高频),所以严格

18、来说,利用 HRTF 进行处理的方法仅对特定的听音位置(空间一点)有效。在实际的重发中,由于对双通路的立体声信号的处理改变了信号的频谱与相位,使得双通路信号的相关性下降。对于各个位置的倾听者来说,低相关性的立体声信号难以在听觉中产生有确定位置的空间声像,从而产生一种类似于声音来自四面八方的包围感,所以系统起到的是“ 歪打正着” 的效果。实际的倾听也表明,经过 3D 处理的立体声信号对单独的声像定位较差,但主观的包围感增强。虽然存在上述问题,但这类系统结构简单,并且也能达到一定听觉的效果,因而在要求不高的非专业场合,和不宜采用多通路系统时(如多媒体计算机)还是有较大的应用前景。(3) 多通路环绕

19、声的虚拟重放由于多通路环绕声系统需要较多的重发通路(扬声器),有时会给应用上带来困难,例如,由于房间条件不够的限制,并不一定适合布置多个扬声器的情况。因而国外也提出了采用听觉传输技术中的虚拟声源的方法,通过对HRTF 的模拟,利用一对(一般是前方)扬声器虚拟出多通路声系统的多个扬声器,从而实现多通路声的两扬声器虚拟重发。类似的原理也可用于多通路声的耳机重发中。从本质上来说,这类系统混合采用了声级差与听觉传输的原理。这方法已应用到 Dolby ProLogic 和 5.1 通路系统的重发中(SRS 实验室的TruSurround 和 Spatialize 的 NN2 是这类系统的代表,并已通过

20、Dolby 实验室的验证)。但是在这种方法中,上面所说的听觉传输技术所带来的缺陷仍然存在,即听音区域窄和容易产生前后镜像位置的声像倒置(特别是通过 HRTF 中的耳壳效应,用前方扬声器模拟重发后方声像时)。西南科技大学本科生毕业论文43. 多通路环绕声虚拟重放技术的发展现状与传统的多通路重发系统相比较,虽然虚拟声技术具有一定的使用局限性,但它具有结构较为简单、重发的空间听觉真实自然等优点,使得它在多媒体技术与虚拟实现、心理声学研究、家用声重发等领域有广泛的应用前景。国外有许多公司分别提出了 5.1 通路环绕声的两个扬声器虚拟重发方法,它们的结构大同小异,基本原理相同。它可以用于多通路环绕声的耳

21、机重发中。当多通路环绕声的信号直接用耳机重发时,存在着“头中定位 ”效应,不但造成不自然的听觉效果,还有可能对听觉系统造成慢性损害。采用 HRTF 信号处理的方法,利用一对耳机虚拟出多个扬声器,使多通路声从这些虚拟的扬声器重发,从而改善主观听觉效果。Dolby 实验室已提出了一种称为 Dolby 耳机的多通路环绕声耳机重发技术。在多通路环绕声的虚拟重发中,虚拟声存在有内在缺陷,包括重发音色改变,扬声器重发时听音区域变窄,耳机重发的声像位置畸变及其它不自然的主观听觉效果等。2001 年起华南理工大学、北京邮电大学与 TCL 王牌电子有限公司合作,对扬声器和耳机的虚拟重发系统进行了改进,已提出了多

22、项国家发明专利申请。1.1.2 课题的目的及意义AC3 的 5.1 通路系统已被推荐为环绕声的国际标准,并被广泛用在DVD、 HDTV、家庭影院等方面。系统采用前方左 L、中 C、右 R,以及左环绕LS、右环绕 RS,再加上一路可选择的低频效果通路 LFE,从而播放出环绕倾听者的听觉效果。但是系统需要至少六个的单独的全频带扬声器,较为复杂,并且在一些实际的应用中,如电视、多媒体计算机、移动数码音乐设备,以及由于房间条件不够的限制等,并不一定适合布置六个全频带扬声器。因而提出了5.1 通路的环绕声的虚拟重放系统,它通过信号处理的方法,利用前方 L 和 R扬声器将系统的其他扬声器虚拟出来,从而达到

23、节约扬声器,简化系统的目的,极具研究价值。而且环绕声的虚拟重放技术首先是由国外提出来的,发展也较我们先进。我国的这些技术都是从国外引进,或者说引进的不是技术,而是别人的产品。我国这门技术的发展是在研究别人产品的基础上发展起来的,相对落后于国外,产品的开发较为困难。然而数字音响市场是一个极为广阔的市场,如果我们能够拥有自己的知识产权,就能够在这个市场上占有一席之地。所以,通过这次西南科技大学本科生毕业论文5设计,让自己对环绕声的虚拟重放有更多的认识,为以后能够从事这方面的工作打下基础,就达到了我预想的目的。1.2 论文的主要内容和框架 在基于 AC3 的虚拟环绕声实现中,我的工作是通过收集和阅读

24、资料,对系统实现的原理进行深入的了解,预计其实现方法。先分析系统功能,对公式进行推导,确定相关参数的计算方法和系统实现的数学公式。然后分别在 Matlab和 VC 环境下进行编程设计。首先分析程序设计步骤,画出大致原理框图,然后对框图中的模块确定子程序流程图,设计子程序。VC 下的编程是利用已有的 AC3 的 C 语言解码程序,对经过子程序 IMDCT 解码后的独立声道数据进行虚拟环绕声处理,然后混合输出,以实现虚拟环绕声。本文的大致框架如下:第一章,在了解课题设计背景的情况下,认识到进行该课题设计的目的与意义;并且对整篇论文的大致内容做简要介绍。第二章,在明确了课题目的和意义的前提下,确定大

25、致的设计方案,明确设计思路,对 Matlab 和 C 语言实现虚拟环绕声系统的基本原理简要介绍。第三章,介绍 Dolby AC3 的特点、应用和编码、解码的基本原理,还对虚拟环绕声的关键技术 HRTF 做了详细介绍,为后面进行系统设计打好基础。第四章,在 Matlab 环境下对虚拟环绕声系统进行设计,把单声道信号重AC3 音频中提取出来,作为系统的输入;推导出系统实现的具体步骤原理。第五章,进行基于 AC3 的虚拟环绕声系统。本系统的设计是把 AC3 解码程序和虚拟环绕声技术相结合,实现环绕声的虚拟重放。第六章,对整个设计是否成功得出结论,对设计过程中遇到的问题进行分析,并分析系统存在的不足和

26、提出改进方法。西南科技大学本科生毕业论文6第 2 章 系统总体设计2.1 系统实现原理虚拟环绕立体声是一种新的双声道环绕立体声,这就说明它既具有双声道输出又具有真正环绕播放音效的双重特性。图 2-1 常规重放系统和虚拟重放系统对比虚拟重放实现的实质是充分利用人类听觉系统的生理与心理因素,用虚拟现实的方法,借助于两个实际存在的左、右声道扬声器,分别虚拟出原多声道播放系统中的中央扬声器,左、右环绕扬声器,低频声道扬声器,来实现环绕声重放效果和输出通道压缩。具体可见图 2-1,其中 L:左声道,C:中央声道,R:右声道,LS:左环绕声道, RS:右环绕声道,LEF:低频增强声道,阴影:可听音区域。对

27、比可以发现:在新的播放系统中,中央声道扬声器,左右环绕声道扬声器已经消失,代替的是虚拟扬声器,就正是“虚拟环绕声” 的由来 56。在常规的 5.1 通道环绕声重放中,前方左 L、右 R、中 C、低音 LFE,以及左环绕 LS、右环绕 RS 六路独立信号是分别馈给相应的六个扬声器进行重放的,各扬声器的方位角为(坐标选取为: , 为正前方,1801.2m 的情况, HL,H R 基本上与 r 无关) 。另外,由于不同人的头部、耳廓、躯干等的尺寸和形状不同,因而严格来说每个人的 HRTF 是不同的,也就是说 HRTF 是一个具有个性化特征的物理量。公式中 表示具有个性化特征a的参量,如头部的尺寸。由

28、于 HRTF 描述了声波从声源到双耳的传输过程及其与头部、耳廓、躯干等的相互作用,因而它包含了有关声源定位的大部分信息。其中头部对声波的散射作用产生传统的声源定位因素,即双耳时间差(ITD)和双耳声级差(ILD) ,在不同的频段中两者的重要性不同。在中、低频(f 4kHz ) ,ILD 起主要作用。当声源位于中垂面上,相应的ITD 和 ILD 近似为零,这时传统的双耳定位机理解释不了中垂面的声源定位。进一步的研究发现,在高频(f5kHz) ,当耳廓的尺度与波长可比时,它对声波的散射主要表现为 HRTF 函数在高频的前后不对称和频谱上的峰谷,这对区分前后镜像位置的声源和中垂面的定位有着重要的作用

29、。HRTF 在时域的表述称为头相关脉冲响应(Head-Related Impulse Response,HRIR,也称为双耳脉冲响应) ,它与头相关传输函数 HL,H R 互为傅立叶变换对:(3-1, ,2, ,jtl Ljtr RhrtaHrtaedt rt 2)hl,h r 可推广为双耳(或头相关)房间脉冲响应( Binaural Room Impulse Response,BRIR) 。BRIR 包含了直达声和特定的房间反射声的空间信息 9。3.2.2 HRTF 数据的获取HRTF 对双耳听觉和虚拟声的研究具有重要的意义。它与声源的方向、距离、频率以及倾听者的生理结构有关,是一个具有个性

30、化特征的物理量,可以通过对真人或人工头进行实验测量得到,也可通过理论计算得到。本次设计采用的是 MIT 实验室用 KEMAR 人工头模型测量得到的 HRTF 参数,见图 3-3。图 3-3 KEMAR 人工头模型西南科技大学本科生毕业论文16MIT 实验室用 KEMAR 人工头模型进行 HRTF 的测量,整个测量在专业的回声消除室中进行。测量对象两耳的对称中心位于球面坐标系的球心处,声源在以半径为 1.4m 的球面上移动。测量的仰角从 (水平面下 )到40o-40o(头部正上方) 。对于每一个仰角,测量该平面上 到 内以一定步进值90o 36递增的方位角上的 HRTF 参数,如表 3-1 所示

31、。总共测得 710 个不同空间方向上的采样率为 44.1kHz 的 HRTF 单位取样响应。表 3-1 HRTF 的测量位置测量的每组 HRTF 数据,经过分析剔除不必要的采样点数据以后,保留512 个采样点数据,以 16bit 的有符号整数存放在 DAT 格式文件中。部分HRTF 数据库已经在互联网上公布,本次设计所用 HRTF 数据是从互联网上下载。HRTF 数据的 DAT 文件是按仰角角度存放在目录中。每个目录名称有格式“elevEE”, EE 代表仰角的度数。在每个目录之内每个文件名有格式“XEEeAAAa.dat” X 是“ L”或“ R”,分别代表左、右耳朵的响应,EE 是以度数表

32、示的声源的仰角,从 到 , AAA 是以度数表示的方位角,从 到 。40o-9 0o35o仰角和方位角表明了声源与模拟人头的方位关系, 仰角表示直接在模拟人头90o的正上方,仰角 ,方位角 表示模拟人头的正右方,等等。例如,文件“R-oo20e270a.dat”是右耳的响应,声源仰角在水平面下 ,到左边的方位角是 。2o 90o仰角度数 测量次数 方位角每次增加的度数-40-30-20-1001020304050607080905660727272727260564536241216.436.005.005.005.005.005.006.006.438.0010.0015.0030.00x西

33、南科技大学本科生毕业论文17对 HRTF 数据进行分析,可以得到其中包含的空间方位信息,这些信息是实现环绕声的关键。在搭建虚拟环绕声重放系统模型中,对 HRTF 的选用是很重要的,如果选用了准确的 HRTF,那么根据 HRTF 对声源的定位作用,聆听者就可以成功的获得对虚拟扬声器的听觉感应 10。3.3 本章小结本章对 AC3 的特色、应用领域、编解码基本原理作了简要介绍,而 HRTF作为设计中的关键,因此对它的定义、特点和存储方式等作了较为详细的介绍,因为这是设计中调用 HRTF 数据的依据。西南科技大学本科生毕业论文18第 4 章 Matlab 编程实现虚拟环绕声的设计4.1 Matlab

34、 的特点Matlab 具有以下几个特点: Matlab 编程的过程就是在编辑、编译、连接以及执行和调试之间作瀑布型的循环。Matlab 语言与其它语言相比,较好地解决了上述问题,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比 VB 还要简单的语言。 运算符丰富。由于 Matlab 是用 C 语言编写的, Matlab 提供了和 C 语言几乎一样多的运算符,灵活使用 Matlab 的运算符将使程序变得极为简短。 高级但简单的程序环境,与其它语言编写的程序

35、结合和输入输出格式化数据的能力;Matlab 既具有结构化的控制语句(如 for 循环,while 循环,break语句和 if 语句) ,又有面向对象编程的特性。 程序限制不严格,程序设计自由度大。例如,在 Matlab 里,用户无需对矩阵预定义就可使用。有大量事先定义的数学函数,并且有很强的用户自定义函数的能力; 程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。 语言简洁紧凑,使用方便灵活,库函数极其丰富。有高性能数值计算的高级算法,特别适合矩阵代数领域;Matlab 程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于

36、库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用 Matlab 进行科技开发是站在专家的肩膀上。 高版本的 Matlab 语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且 Matlab 的库函数同用户文件在形成上一样,所以用户文件也可作为 Matlab 的库函数来调用 11。因此,利用 Matlab 可以迅速,快捷的进行数学运算,实现模型的仿真。4.2 系统设计本系统是基于 AC3 的虚拟重放系统,AC3 提供 5.1 声道的数据输入,本系西南科技大学本科生毕业论文19统的 AC3 音频文件是利用软件从 DVD 的 VOB 文件中提取。由于 AC3 比特流是一系列的

37、 AC3 帧,系统无法对 AC3 帧直接进行操作,因此需要转换器把AC3 文件解码,然后进行声道分离,得到 5.1 独立声道 PCM 文件。系统首先对5.1 声道中的左环绕 LS 和右环绕 RS 声道数据进行虚拟处理,然后把得到的数据与其余三个声道数据混合相加,最后得到两个声道输出(即 5.1 声道虚拟环绕声) 。4.2.1 从 AC3 文件中分离出 5.1 独立声道数据本系统要用到的 5.1 声道环绕声是 AC3 文件提供的,但是在 INTERNET 和多媒体光碟如 DVD、VCD、CD 等都无法直接得到以 AC3 为后缀的音频编码文件。通过一个名为 GRAPHEDIT 的转换软件,可以从

38、DVD 的 VOB 文件中提取到以 AC3 为后缀的音频 AC3 编码文件“Title04_interpreter_0_60.ac3”。但是从VOB 文件中提取的 AC3 文件数据量很大,于是利用 AC3 Splitter 的软件对进行切割,按 17 秒每块进行切割,得到一个长度适合的 AC3 文件“Title04_interpreter_18_34.ac3”。AC3 Splitter 软件的界面如图 4-1。图 4-1 AC3 Splitter 的界面利用软件 Soft Encode 可以把 AC3 文件解码,并分离出各个声道音频,得到六个声道的 PCM 文件。其界面如图 4-2。西南科技大

39、学本科生毕业论文20图 4-2 Soft Encode 的界面六个声道的音频文件,分别命名为:L 左声道 Title04_interpreter_18_34_L.pcm 1.46MBC 中央声道 Title04_interpreter_18_34_C.pcm 1.46MBR 右声道 Title04_interpreter_18_34_R.pcm 1.46MBLS 左环绕声道 Title04_interpreter_18_34_LS.pcm 1.46MBRS 右环绕声道 Title04_interpreter_18_34_RS.pcm 1.46MBLFE 低音声道 Title04_interpr

40、eter_18_34_LFE.pcm 1.46MBCool Edit Pro 是一个非常出色的数字音乐编辑器和 MP3 制作软件。可以对音频文件的波形进行编辑,可以同时处理多个文件,轻松地在几个文件中进行剪切、粘贴、合并、重叠声音操作。其界面如图 4-3,分离出的声道波形如图4-4。图 4-3 Cool Edit Pro 的界面西南科技大学本科生毕业论文21(a) L 左声道(b) C 中央声道(c) R 右声道(d) LS 左环绕声道(e) RS 右环绕声道(f) LFE 低频声道图 4-4 六个单声道信号的波形图西南科技大学本科生毕业论文224.2.2 程序设计系统扬声器为标准布置(即系统

41、水平仰角为 0,方位角 ,30oRLq=-)的虚拟环绕声重放系统。根据上述原理,系统实现程序流10oRSLSq=-程如图 4-5。系统初始化后,读取 HRTF 和六个声道的音频数据。系统中的八个 HRTF,由 HRTF 对称性得 , ,()lrLHAq=()lrlLHB, 。根据 HRTF 数据文件的存储规则,()lLSrRLSHAqrLSlRSB对应“L0e330a.dat” , 对应“L0e030a.dat” , 对应“L0e250a.dat” ,()()LS对应“L0e110a.dat”,数据长度都是 512。六个声道的音频文件为LSB“Title04_interpreter_18_34

42、_L.out”,“Title04_interpreter_18_34_C.out”,“Title04_interpreter_18_34_R.out”,“Title04_interpreter_18_34_LS.out”,“Title04_interpreter_18_34_RS.out”,“Title04_interpreter_18_34_LFE.out”,其数据长度设为 N。文件数据均由 load( )函数录入。开 始初 始 化读 HRTF 和独立声道音频数据计 算 、 的 频 域 值aIFFT,得到 、 时域值对 、 与 LR、RS 进行卷积a计 算 L 和 R将 L和 R数据交替存入

43、数组把 数 据 写 入 WAV 文 件结 束图 4-5 Matlab 实现虚拟环绕声的程序流程西南科技大学本科生毕业论文23在利用式(2-8)计算 和 的值时,由于表达式是频域的,而 HRTF 数据ab是时域的,所以先对 HRTF 数据进行 FFT 变换,转换到频域,调用函数 fft( )。再利用式(2-8)就计算得到频域的 和 。六个声道数据为时域数据,运算时,数据必须是同一域的,则需要把 和 再转换到时域,利用 Matlab 的库函数ifft( )对 和 进行傅立叶逆变换。系统功能的最后实现是利用式(2-2),因为ab是频域的公式,所以需对其进行傅立叶逆变换,由时域卷积定理把式(2-2)转

44、换成时域的表达式为0.7()LCLFELSRR S(4-1)“*”为卷积运算符。式中 *LS+ *RS 和 *LS+ *RS 即使利用 HRTF 对环aba绕声进行虚拟处理,设数据长度为 M,由卷积定理可知, 。由512MN=+-于 L、 R、 C、 LFE 的长度为 N,不能和长度为 M 的 *LS+ *RS、 *LS+ *RSba进行相加运算,由于 M512,所以只取 M 的前 N 个数据和 L、 R、 C、 LFE 进行相加运算,计算出 和 两个虚拟环绕声道数据。接着把 和 交替的存入LR一个长度为 2N 的数组。最后利用函数 fopen( )和 fwrite( )把数据写入一个 WAV

45、格式的文件,以便通用播放器播放。4.3 结论分析程序运行结果,成功的生成了一个名为“virtual_L_and_R_test_6.wav”的文件波形见图 4-6,文件大小为 2.93MB,与“Title04_interpreter_18_34_test.wav” 的大小相同。在水平位置,如图 2-3 所示,以人圆心,r=1.4m 为半径的圆周上,在前方 的位置布置两个左、右扬声器,重放时,人在圆心处试听,30oRLq=-明显的感觉到三维环绕声效果和拓展的空间感;这是没有进行虚拟处理的“Title04_interpreter_18_34_test.wav”文件所没有的听觉效果。西南科技大学本科生

46、毕业论文24图 4-6 “Title04_interpreter_18_34_test.wav”文件波形4.4 本章小结本章介绍了 Matlab 的特点,并且对系统原理公式进行了推导,提出了Matlab 编程实现基于 AC3 的虚拟环绕声的程序设计流程,对 AC3 音频文件的解码及声道分离过程做了较详细的说明。最后程序设计完成,并对其做了结论分析,实现了基于 AC3 的虚拟环绕声。西南科技大学本科生毕业论文25第 5 章 C 语言编程实现基于 AC3 的虚拟环绕声系统5.1 VC+6.0 软件介绍VC+6.0 是开发 Windows 应用程序的主流开发工具,可以利用的资源多。VC+6.0 不仅

47、仅是一个编译器。它是一个全面的应用程序开发环境,使用它你充分利用具有面向对象特性的 C+ 来开发出专业级的 Windows 应用程序。VC+6.0 作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。在使用 VC+6.0 开发应用程序的过程中,系统为我们生成了大量的各种类型的文件。VC+6.0 的 C 语言灵活性好,效率高,可以接触到软件开发比较底层的东西。微软的 MFC 库博大精深,学会它可以让随心所欲地进行编程。VC 是微软制作的产品,与操作系统的结合更加紧密 1213。5.2 程序设计背景用 C 语言在 VC 环境下实现虚拟环绕声的设计方法是,

48、对 AC3 解码程序中的 IMDCT 子函数的输出(即 AC3 解码后的数据),用 和 进行 FIR 滤波ab处理,即虚拟环绕声处理。把处理以后的八个声道数据在 Downmix 子函数这里按式(4-1 )将其混合成左、右两声道,再将两个声道的数据写入 WAV 格式文件。现在就本设计中涉及的关键步骤及技术做简要介绍。5.2.1 解码原理解码器进行解码首先必须与编码数据流同步,经过误码纠正后从数码流中分离出控制数据、系统配置参数、编码后的频谱包络及量化后的尾数等数据。然后根据声音的频谱包络产生比特分配信息,对尾数部分进行反量化,恢复变换系数的指数和尾数。再经过合成滤波器组,把数据由频域变换到时域,最后输出重建的 PCM 样值信号 1315。AC3 解码 C 程序流程如图 5-1 所示,其解码的主要步骤为:1. 输入比特流输入到解码器的编码的 AC3 数据,可以是按额定比特率的连续数据流,或者大量的数据以高速率和低工作周期(duty cycle)突发的进入编码器。本标准大多数的应用将是运送字节或字(16bits 的)对齐的基本 AC3 比特流。解码器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报