基于AC3的虚拟环绕声实现.doc_第1页
基于AC3的虚拟环绕声实现.doc_第2页
基于AC3的虚拟环绕声实现.doc_第3页
基于AC3的虚拟环绕声实现.doc_第4页
基于AC3的虚拟环绕声实现.doc_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Q260046902 专业做论文专业做论文 西南科技大学 毕业设计 论文 毕业设计 论文 题目名称 基于题目名称 基于 AC3 的虚拟环绕声实现的虚拟环绕声实现 年年 级 级 2003 级级 本科本科 专科专科 学生学号 学生学号 20035303 学生姓名 黄小宝学生姓名 黄小宝 指导教师 詹曦指导教师 詹曦 学生单位 信息工程学院学生单位 信息工程学院 技术职称 助教技术职称 助教 学生专业 通信工程学生专业 通信工程 教师单位 信息工程学院教师单位 信息工程学院 西西 南南 科科 技技 大大 学学 教教 务务 处处 制制 西南科技大学本科生毕业论文 I 基于 AC3 的虚拟环绕声实现 摘要 Dolby AC3 提供的 5 1 声道音频模式是当前应用得最广泛 声音质量较高 编码效率最高的一种音频编码模式 基于 AC3 的虚拟环绕声系统能够满足人们在不 允许布置多个扬声器的情况对环绕声音质的要求 而且简化了系统 降低了消费 它特别适用于耳机这类只有两个扬声器的设备 本文论述了用软件实现虚拟环绕声 的两种途径 即用 Matlab 和 C 语言编程来仿真 5 1 声道虚拟环绕声重放 用 Matlab 进行虚拟环绕声的仿真是通过对 AC3 音频文件解码后得到的六个声道信号进行虚拟 环绕声滤波处理 C 程序设计将多通道虚拟环绕声处理技术与 AC3 解码程序相结合 实现基于 AC3 的 5 1 声道虚拟环绕声重放系统 Matlab 和 C 语言的实现结果通过标 准布置的左 右两个扬声器播放 在正确的听音位置进行试听 能够感觉到声音有 明显的空间感和立体感 实现结果良好 关键词 虚拟环绕声 Dolby AC3 HRTF AC3 解码器 西南科技大学本科生毕业论文 II Virtual Reproduction of Surround Sound Based on AC3 Abstract 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 Reproduction of Surround Sound based on AC3 will be able to meet people s 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 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 virtual 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 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 AC3 HRTF AC3 decoder 西南科技大学本科生毕业论文 III 目 录 第 1 章 绪 论 1 1 1 课题背景 目的及意义 1 1 1 1 课题背景 1 1 1 2 课题的目的及意义 4 1 2 论文的主要内容和框架 4 第 2 章 系统总体设计 6 2 1 系统实现原理 6 2 2 MATLAB 仿真实现虚拟环绕声的设计 9 2 3 C 语言编程实现基于 AC3 的虚拟环绕声系统 9 2 4 本章小结 10 第 3 章 主要技术简介 11 3 1 Dolby AC3 11 3 1 1 Dolby AC3 的特点 配置和应用 11 3 1 2 Dolby AC3 的编码原理 12 3 1 3 Dolby AC3 的解码原理 13 3 2 头相关传输函数 13 3 2 1 HRTF 的定义 14 3 2 2 HRTF 数据的获取 15 3 3 本章小结 17 第 4 章 Matlab 编程实现虚拟环绕声的设计 18 4 1 Matlab 的特点 18 4 2 系统设计 18 4 2 1 从 AC3 文件中分离出 5 1 独立声道数据 19 4 2 2 程序设计 22 4 3 结论分析 23 4 4 本章小结 24 第 5 章 C 语言编程实现基于 AC3 的虚拟环绕声系统 25 5 1 VC 6 0 软件介绍 25 西南科技大学本科生毕业论文 IV 5 2 程序设计背景 25 5 2 1 解码原理 25 5 2 2 MDCT 和 IMDCT 28 5 3 程序设计 30 5 3 1 子函数 IMDCT 30 5 3 2 子函数 Downmix 35 5 4 结论分析 36 5 5 本章小结 37 结 论 38 致 谢 40 参考文献 41 附录 1 Matlab 实现虚拟环绕声重放的程序 42 附录 2 基于 AC3 的虚拟环绕声实现的 C 程序 46 子函数程序 IMDCT 46 子函数程序 Downmix 53 主程序 decode 55 西南科技大学本科生毕业论文 1 第 1 章 绪 论 1 1 课题背景 目的及意义 1 1 1 课题背景 1 AC3 的发展背景 自 1976 年杜比环绕声 Dolby stereo optical 4 ch 首次应用于电影后 已 成为最受欢迎的多声道立体声系统之一 用于家庭的杜比环绕声 Dolby Surround 3 ch 1982 和杜比定向逻辑环绕声 Dolby Surround Pro Logic 4 ch 1987 更能让你在家中享受电影院的环绕声效果 1992 年杜比公 司又开发了最新一代的杜比数码环绕声系统 Dolby Digital 并应用于电影 该 系统基于先进的感觉编码 perceptual coding 和数字压缩编码技术 即杜比 AC3 其优良的特点使之在 1995 年被选作 DVD 播放机的标准多声道音频格式 在 NTSC 制电视的国家 及多项其它系统的标准音频格式 杜比数码环绕声 系统有六个完全独立的声道 全频带的左 L 右 R 中置 C 左环绕 LR 右环 绕 RS 再加上一个 20 120Hz 的超重低音的声道 LFE 以 0 1 声道计 故又 称作 5 1 声道 在杜比 AC3 规格中超重低音的音量比其它全频带声道大 10dB 可得到震撼力非凡的低频效果 杜比 AC3 原理上是它将每一声道的音频根据人耳听觉特性划分为许多最优 的狭窄频段 利用音响心理学 听觉掩蔽效应 删除人耳所听不到或可忽略的 部分 并采用数字信号压缩编码 同时 利用狭窄频段的划分使部分频段噪声 在编码时可被几乎全部滤除 使其余噪声的频谱靠近在信号频谱附近 而这些 噪声可被信号所抑制 因此杜比 AC3 系统实际上是一种具选择性及强抑噪的系 统 它可以将 5 1 通路的环绕声信息压缩到 384kb s 或 320kb s 不难理解杜 比 AC3 的特点 以较低的码率支持全音频多声道 并具优良的回放音质和效果 1 2 2 虚拟环绕声的发展 3 4 环绕声是近年出现的一大类新的系统 它们的基础是听觉传输技术 通过 头相关传输函数 HRTF 也就是声源到双耳的传输函数 来实现声场空间信息 的传输 重发或模拟 而称为虚拟环绕声的系统有以下的三类 1 听觉传输立体声系统 西南科技大学本科生毕业论文 2 这是真正的虚拟环绕声系统 它根据听觉传输技术的原理 利用假头进行 检拾 或利用信号处理的方法模拟出声源到双耳的传输 所得到的两路信号经 放大 记录和传输等过程后 再经耳机进行重发 也可以经过串声抵消网络后 由扬声器进行重发 这种方法相当于用电声学的方法把倾听者的听觉器官转移 到原声场中去 从而得到原声场的空间信息 它的突出优点是声像逼真 自然 且只需要两个独立的传输信号就有可能重发三维空间的声像 这些优点是多通 路系统所没有的 但是 与多通路系统不同 这种系统实现的并不是空间一定 的区域的声场的传输与重发 而是通过传输和重发双耳 空间上两点 声信号 来实现声场空间信息的传输与重发的 系统的这种特点使它存在着内在的缺陷 由于真实听觉中 倾听者头部不自觉的微小转动以及耳壳对声波的散 射作用所引起的梳状滤波效应对区分前后镜像位置和中垂面的声源有重大的作 用 但是耳壳效应仅在高频 f 5 6kHz 才起作用 而在听觉传输系统中 通常也只考虑了耳壳的作用 并没有考虑原声场中倾听者头部的转动 因而在 重发时 特别是中低频的情况 经常会出现前后镜像位置的声像倒置的情况 因此系统所传输的双耳信号并没有完全地包含原声场的空间信息 为了克服这 缺陷 国外也提出了一种采用四耳的假头作为检拾体系 或采用传感器对重发 时倾听者头部的位置进行跟踪的方法 但这相当于增加了系统的独立传输信号 且并不是所有场合都适用 由于 HRTF 是与声源到双耳的相对位置有关 特别是高频 而在扬 声器重发中 交叉串声抵消网络的传输特性是取决于扬声器到双耳的 HRTF 因而严格来说对一定的抵消网络 只能在一个特定的听音位置上有效 倾听者 偏离理想的听音位置将会导致严重的声像失真 这在高频的情况尤为严重 所以系统的听音区域较窄 针对这缺点 国外也提出了用多个扬声器或前方两 个相距很近的扬声器 称为立体声偶极子 重发听觉传输信号的方法 但这只 能起到部分改善的作用 值得指出的是 上述的缺陷有一定的共通性 在所有 涉及到听觉传输原理 HRTF 的系统中都存在 而由于存在上述缺陷 目前听 觉传输系统较少独立地用在要求有较大的听音区域的声重发 如家庭影院等 它主要用在计算机虚拟现实 厅堂音质听觉化等科学研究中 2 3D 准 虚拟环绕声系统 西南科技大学本科生毕业论文 3 这类系统的代表是 SRS Spatialize Qxpander 等 它们利用听觉传输技术 的原理 在普通的双通路立体声重发中 通过模拟空间不同方向到双耳的 HRTF 从而模拟反射声 增加主观听觉上的空间感与包围感 达到模拟 3D 环 绕声的目的 这类系统是后处理系统 也就是 准 虚拟环绕声系统 所起到的 仅是模拟环绕声信息的作用 双通路立体声信号本身并没有很好地包含三维空 间的声音方向信息 因而用任何现有的办法都不可能将方向信息 提取 出来 否则的话也无需要发展多通路环绕声系统了 并且如前所述 HRTF 是与声源 与双耳的相对位置有关 特别是高频 所以严格来说 利用 HRTF 进行处理 的方法仅对特定的听音位置 空间一点 有效 在实际的重发中 由于对双通路的立体声信号的处理改变了信号的频谱与 相位 使得双通路信号的相关性下降 对于各个位置的倾听者来说 低相关性 的立体声信号难以在听觉中产生有确定位置的空间声像 从而产生一种类似于 声音来自四面八方的包围感 所以系统起到的是 歪打正着 的效果 实际的倾 听也表明 经过 3D 处理的立体声信号对单独的声像定位较差 但主观的包围 感增强 虽然存在上述问题 但这类系统结构简单 并且也能达到一定听觉的效果 因而在要求不高的非专业场合 和不宜采用多通路系统时 如多媒体计算机 还是有较大的应用前景 3 多通路环绕声的虚拟重放 由于多通路环绕声系统需要较多的重发通路 扬声器 有时会给应用上 带来困难 例如 由于房间条件不够的限制 并不一定适合布置多个扬声器的 情况 因而国外也提出了采用听觉传输技术中的虚拟声源的方法 通过对 HRTF 的模拟 利用一对 一般是前方 扬声器虚拟出多通路声系统的多个扬 声器 从而实现多通路声的两扬声器虚拟重发 类似的原理也可用于多通路声 的耳机重发中 从本质上来说 这类系统混合采用了声级差与听觉传输的原理 这方法已应用到 Dolby Pro Logic 和 5 1 通路系统的重发中 SRS 实验室的 Tru Surround 和 Spatialize 的 N N 2 是这类系统的代表 并已通过 Dolby 实 验室的验证 但是在这种方法中 上面所说的听觉传输技术所带来的缺陷仍然存在 即 听音区域窄和容易产生前后镜像位置的声像倒置 特别是通过 HRTF 中的耳壳 效应 用前方扬声器模拟重发后方声像时 西南科技大学本科生毕业论文 4 3 多通路环绕声虚拟重放技术的发展现状 与传统的多通路重发系统相比较 虽然虚拟声技术具有一定的使用局限性 但它具有结构较为简单 重发的空间听觉真实自然等优点 使得它在多媒体技 术与虚拟实现 心理声学研究 家用声重发等领域有广泛的应用前景 国外有 许多公司分别提出了 5 1 通路环绕声的两个扬声器虚拟重发方法 它们的结构 大同小异 基本原理相同 它可以用于多通路环绕声的耳机重发中 当多通路 环绕声的信号直接用耳机重发时 存在着 头中定位 效应 不但造成不自然的 听觉效果 还有可能对听觉系统造成慢性损害 采用 HRTF 信号处理的方法 利用一对耳机虚拟出多个扬声器 使多通路声从这些虚拟的扬声器重发 从而 改善主观听觉效果 Dolby 实验室已提出了一种称为 Dolby 耳机的多通路环绕 声耳机重发技术 在多通路环绕声的虚拟重发中 虚拟声存在有内在缺陷 包括重发音色改 变 扬声器重发时听音区域变窄 耳机重发的声像位置畸变及其它不自然的主 观听觉效果等 2001 年起华南理工大学 北京邮电大学与 TCL 王牌电子有限 公司合作 对扬声器和耳机的虚拟重发系统进行了改进 已提出了多项国家发 明专利申请 1 1 2 课题的目的及意义 AC3 的 5 1 通路系统已被推荐为环绕声的国际标准 并被广泛用在 DVD HDTV 家庭影院等方面 系统采用前方左 L 中 C 右 R 以及左环绕 LS 右环绕 RS 再加上一路可选择的低频效果通路 LFE 从而播放出环绕倾听 者的听觉效果 但是系统需要至少六个的单独的全频带扬声器 较为复杂 并 且在一些实际的应用中 如电视 多媒体计算机 移动数码音乐设备 以及由 于房间条件不够的限制等 并不一定适合布置六个全频带扬声器 因而提出了 5 1 通路的环绕声的虚拟重放系统 它通过信号处理的方法 利用前方 L 和 R 扬声器将系统的其他扬声器虚拟出来 从而达到节约扬声器 简化系统的目的 极具研究价值 而且环绕声的虚拟重放技术首先是由国外提出来的 发展也较我们先进 我国的这些技术都是从国外引进 或者说引进的不是技术 而是别人的产品 我国这门技术的发展是在研究别人产品的基础上发展起来的 相对落后于国外 产品的开发较为困难 然而数字音响市场是一个极为广阔的市场 如果我们能 够拥有自己的知识产权 就能够在这个市场上占有一席之地 所以 通过这次 西南科技大学本科生毕业论文 5 设计 让自己对环绕声的虚拟重放有更多的认识 为以后能够从事这方面的工 作打下基础 就达到了我预想的目的 1 2 论文的主要内容和框架 在基于 AC3 的虚拟环绕声实现中 我的工作是通过收集和阅读资料 对系 统实现的原理进行深入的了解 预计其实现方法 先分析系统功能 对公式进 行推导 确定相关参数的计算方法和系统实现的数学公式 然后分别在 Matlab 和 VC 环境下进行编程设计 首先分析程序设计步骤 画出大致原理框图 然 后对框图中的模块确定子程序流程图 设计子程序 VC 下的编程是利用已有 的 AC3 的 C 语言解码程序 对经过子程序 IMDCT 解码后的独立声道数据进行 虚拟环绕声处理 然后混合输出 以实现虚拟环绕声 本文的大致框架如下 第一章 在了解课题设计背景的情况下 认识到进行该课题设计的目的与 意义 并且对整篇论文的大致内容做简要介绍 第二章 在明确了课题目的和意义的前提下 确定大致的设计方案 明确 设计思路 对 Matlab 和 C 语言实现虚拟环绕声系统的基本原理简要介绍 第三章 介绍 Dolby AC3 的特点 应用和编码 解码的基本原理 还对虚 拟环绕声的关键技术 HRTF 做了详细介绍 为后面进行系统设计打好基础 第四章 在 Matlab 环境下对虚拟环绕声系统进行设计 把单声道信号重 AC3 音频中提取出来 作为系统的输入 推导出系统实现的具体步骤原理 第五章 进行基于 AC3 的虚拟环绕声系统 本系统的设计是把 AC3 解码 程序和虚拟环绕声技术相结合 实现环绕声的虚拟重放 第六章 对整个设计是否成功得出结论 对设计过程中遇到的问题进行分 析 并分析系统存在的不足和提出改进方法 西南科技大学本科生毕业论文 6 第 2 章 系统总体设计 2 1 系统实现原理 虚拟环绕立体声是一种新的双声道环绕立体声 这就说明它既具有双声道 输出又具有真正环绕播放音效的双重特性 图图 2 1常规重放系统和虚拟重放系统对比常规重放系统和虚拟重放系统对比 虚拟重放实现的实质是充分利用人类听觉系统的生理与心理因素 用虚拟现 实的方法 借助于两个实际存在的左 右声道扬声器 分别虚拟出原多声道播放系 统中的中央扬声器 左 右环绕扬声器 低频声道扬声器 来实现环绕声重放 效果和输出通道压缩 具体可见图 2 1 其中 L 左声道 C 中央声道 R 右声道 LS 左环绕声道 RS 右环绕声道 LEF 低频增强声道 阴影 可听音区域 对比 可以发现 在新的播放系统中 中央声道扬声器 左右环绕声道扬声器已经消 失 代替的是虚拟扬声器 就正是 虚拟环绕声 的由来 5 6 在常规的 5 1 通道环绕声重放中 前方左 L 右 R 中 C 低音 LFE 以及 左环绕 LS 右环绕 RS 六路独立信号是分别馈给相应的六个扬声器进行重放的 各扬声器的方位角为 坐标选取为 为正前方 180 1 2m 的情况 HL HR基本上与 r 无关 另外 由于不同人的头部 耳廓 躯干等的尺寸和形状不同 因而严格来说每个人的 HRTF 是不同的 也 就是说 HRTF 是一个具有个性化特征的物理量 公式中表示具有个性化特征a 的参量 如头部的尺寸 由于 HRTF 描述了声波从声源到双耳的传输过程及其与头部 耳廓 躯干 等的相互作用 因而它包含了有关声源定位的大部分信息 其中头部对声波的 散射作用产生传统的声源定位因素 即双耳时间差 ITD 和双耳声级差 ILD 在不同的频段中两者的重要性不同 在中 低频 f4kHz ILD 起主要作用 当声源位于中垂面上 相应的 ITD 和 ILD 近似为零 这时传统的双耳定位机理解释不了中垂面的声源定位 进一步的研究发现 在高频 f 5kHz 当耳廓的尺度与波长可比时 它对声波 的散射主要表现为 HRTF 函数在高频的前后不对称和频谱上的峰谷 这对区分 前后镜像位置的声源和中垂面的定位有着重要的作用 HRTF 在时域的表述称为头相关脉冲响应 Head Related Impulse Response HRIR 也称为双耳脉冲响应 它与头相关传输函数 HL HR互为傅 立叶变换对 3 1 2 1 2 j t lL j t rR h rt aHrt a edt hrt aHrt a edt 2 hl hr可推广为双耳 或头相关 房间脉冲响应 Binaural Room Impulse Response BRIR BRIR 包含了直达声和特定的房间反射声的空间信息 9 3 2 2 HRTF 数据的获取 HRTF 对双耳听觉和虚拟声的研究具有重要的意义 它与声源的方向 距 离 频率以及倾听者的生理结构有关 是一个具有个性化特征的物理量 可以通过 对真人或人工头进行实验测量得到 也可通过理论计算得到 本次设计采用的 是 MIT 实验室用 KEMAR 人工头模型测量得到的 HRTF 参数 见图 3 3 图图 3 3KEMAR 人工头模型人工头模型 西南科技大学本科生毕业论文 16 MIT 实验室用 KEMAR 人工头模型进行 HRTF 的测量 整个测量在专业的 回声消除室中进行 测量对象两耳的对称中心位于球面坐标系的球心处 声源 在以半径为 1 4m 的球面上移动 测量的仰角从 水平面下 到40o 40o 头部正上方 对于每一个仰角 测量该平面上到内以一定步进值90o0o360o 递增的方位角上的 HRTF 参数 如表 3 1 所示 总共测得 710 个不同空间方向 上的采样率为 44 1kHz 的 HRTF 单位取样响应 表表 3 1HRTF 的测量位置的测量位置 测量的每组 HRTF 数据 经过分析剔除不必要的采样点数据以后 保留 512 个采样点数据 以 16bit 的有符号整数存放在 DAT 格式文件中 部分 HRTF 数据库已经在互联网上公布 本次设计所用 HRTF 数据是从互联网上下 载 HRTF 数据的 DAT 文件是按仰角角度存放在目录中 每个目录名称有格式 elevEE EE 代表仰角的度数 在每个目录之内每个文件名有格式 XEEeAAAa dat X 是 L 或 R 分别代表左 右耳朵的响应 EE 是以度数表 示的声源的仰角 从到 AAA 是以度数表示的方位角 从到 40o 90o0o355o 仰角和方位角表明了声源与模拟人头的方位关系 仰角表示直接在模拟人头90o 的正上方 仰角 方位角表示模拟人头的正右方 等等 例如 文件 R 0o90o 20e270a dat 是右耳的响应 声源仰角在水平面下 到左边的方位角是 20o90o 仰角度数测量次数方位角每次增加的度数 40 30 20 10 0 10 20 30 40 50 60 70 80 90 56 60 72 72 72 72 72 60 56 45 36 24 12 1 6 43 6 00 5 00 5 00 5 00 5 00 5 00 6 00 6 43 8 00 10 00 15 00 30 00 x 西南科技大学本科生毕业论文 17 对 HRTF 数据进行分析 可以得到其中包含的空间方位信息 这些信息是实现 环绕声的关键 在搭建虚拟环绕声重放系统模型中 对 HRTF 的选用是很重要 的 如果选用了准确的 HRTF 那么根据 HRTF 对声源的定位作用 聆听者就 可以成功的获得对虚拟扬声器的听觉感应 10 3 3 本章小结 本章对 AC3 的特色 应用领域 编解码基本原理作了简要介绍 而 HRTF 作为设计中的关键 因此对它的定义 特点和存储方式等作了较为详细的介绍 因为这是设计中调用 HRTF 数据的依据 西南科技大学本科生毕业论文 18 第 4 章 Matlab 编程实现虚拟环绕声的设计 4 1 Matlab 的特点 Matlab 具有以下几个特点 Matlab 编程的过程就是在编辑 编译 连接以及执行和调试之间作瀑布 型的循环 Matlab 语言与其它语言相比 较好地解决了上述问题 把编辑 编 译 连接和执行融为一体 它能在同一画面上进行灵活操作快速排除输入程序 中的书写错误 语法错误以至语意错误 从而加快了用户编写 修改和调试程 序的速度 可以说在编程和调试过程中它是一种比 VB 还要简单的语言 运算符丰富 由于 Matlab 是用 C 语言编写的 Matlab 提供了和 C 语言 几乎一样多的运算符 灵活使用 Matlab 的运算符将使程序变得极为简短 高级但简单的程序环境 与其它语言编写的程序结合和输入输出格式化 数据的能力 Matlab 既具有结构化的控制语句 如 for 循环 while 循环 break 语句和 if 语句 又有面向对象编程的特性 程序限制不严格 程序设计自由度大 例如 在 Matlab 里 用户无需 对矩阵预定义就可使用 有大量事先定义的数学函数 并且有很强的用户自定 义函数的能力 程序的可移植性很好 基本上不做修改就可以在各种型号的计算机和操 作系统上运行 语言简洁紧凑 使用方便灵活 库函数极其丰富 有高性能数值计算的 高级算法 特别适合矩阵代数领域 Matlab 程序书写形式自由 利用起丰富的 库函数避开繁杂的子程序编程任务 压缩了一切不必要的编程工作 由于库函 数都由本领域的专家编写 用户不必担心函数的可靠性 可以说 用 Matlab 进 行科技开发是站在专家的肩膀上 高版本的 Matlab 语言有丰富的库函数 在进行复杂的数学运算时可以 直接调用 而且 Matlab 的库函数同用户文件在形成上一样 所以用户文件也可 作为 Matlab 的库函数来调用 11 因此 利用 Matlab 可以迅速 快捷的进行数学运算 实现模型的仿真 4 2 系统设计 本系统是基于 AC3 的虚拟重放系统 AC3 提供 5 1 声道的数据输入 本系 西南科技大学本科生毕业论文 19 统的 AC3 音频文件是利用软件从 DVD 的 VOB 文件中提取 由于 AC3 比特流 是一系列的 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 的转换软件 可以从 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 1AC3 Splitter 的界面的界面 利用软件 Soft Encode 可以把 AC3 文件解码 并分离出各个声道音频 得 到六个声道的 PCM 文件 其界面如图 4 2 西南科技大学本科生毕业论文 20 图图 4 2Soft Encode 的界面的界面 六个声道的音频文件 分别命名为 L 左声道Title04 interpreter 18 34 L pcm1 46MB C 中央声道Title04 interpreter 18 34 C pcm1 46MB R 右声道Title04 interpreter 18 34 R pcm1 46MB LS 左环绕声道Title04 interpreter 18 34 LS pcm1 46MB RS 右环绕声道Title04 interpreter 18 34 RS pcm1 46MB LFE 低音声道Title04 interpreter 18 34 LFE pcm1 46MB Cool Edit Pro 是一个非常出色的数字音乐编辑器和 MP3 制作软件 可以对 音频文件的波形进行编辑 可以同时处理多个文件 轻松地在几个文件中进行 剪切 粘贴 合并 重叠声音操作 其界面如图 4 3 分离出的声道波形如图 4 4 图图 4 3Cool Edit Pro 的界面的界面 西南科技大学本科生毕业论文 21 a L 左声道 b C 中央声道 c R 右声道 d LS 左环绕声道 e RS 右环绕声道 f LFE 低频声道 图图 4 4六个单声道信号的波形图六个单声道信号的波形图 西南科技大学本科生毕业论文 22 4 2 2 程序设计 系统扬声器为标准布置 即系统水平仰角为 0 方位角 30o RL qq 的虚拟环绕声重放系统 根据上述原理 系统实现程序流110o RSLS qq 程如图 4 5 系统初始化后 读取 HRTF 和六个声道的音频数据 系统中的八 个 HRTF 由 HRTF 对称性得 llrrL HHAq lrrlL HHBq 根据 HRTF 数据文件的存储规则 lLSrRSLS HHAq rLSlRSLS HHBq 对应 L0e330a dat 对应 L0e030a dat 对应 L0e250a dat L Aq L Bq LS Aq 对应 L0e110a dat 数据长度都是 512 六个声道的音频文件为 LS Bq Title04 interpreter 18 34 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 和独立声道音频数据 计 算 的 频 域 值a IFFT 得到 时域值a 对 与 LR RS 进行卷积a 计 算 L 和 R 将 L 和 R 数据交替存入数组 把 数 据 写 入 WAV 文 件 结 束 图图 4 5Matlab 实现虚拟环绕声的程序流程实现虚拟环绕声的程序流程 西南科技大学本科生毕业论文 23 在利用式 2 8 计算和的值时 由于表达式是频域的 而 HRTF 数据ab 是时域的 所以先对 HRTF 数据进行 FFT 变换 转换到频域 调用函数 fft 再利用式 2 8 就计算得到频域的和 六个声道数据为时域数据 运算时 ab 数据必须是同一域的 则需要把和再转换到时域 利用 Matlab 的库函数ab ifft 对和进行傅立叶逆变换 系统功能的最后实现是利用式 2 2 因为ab 是频域的公式 所以需对其进行傅立叶逆变换 由时域卷积定理把式 2 2 转 换成时域的表达式为 0 707 0 707 LLC LFELSRS RRC LFELSRS 4 1 为卷积运算符 式中 LS RS 和 LS RS 即使利用 HRTF 对环abba 绕声进行虚拟处理 设数据长度为 M 由卷积定理可知 由5121MN 于 L R C LFE 的长度为 N 不能和长度为 M 的 LS RS LS RSabba 进行相加运算 由于 M 512 所以只取 M 的前 N 个数据和 L R C LFE 进 行相加运算 计算出和两个虚拟环绕声道数据 接着把和交替的存入 L R L R 一个长度为 2N 的数组 最后利用函数 fopen 和 fwrite 把数据写入一个 WAV 格式的文件 以便通用播放器播放 4 3 结论分析 程序运行结果 成功的生成了一个名为 virtual L and R test 6 wav 的文件 波形见图 4 6 文件大小为 2 93MB 与 Title04 interpreter 18 34 test wav 的大 小相同 在水平位置 如图 2 3 所示 以人圆心 r 1 4m 为半径的圆周上 在 前方的位置布置两个左 右扬声器 重放时 人在圆心处试听 30o RL qq 明显的感觉到三维环绕声效果和拓展的空间感 这是没有进行虚拟处理的 Title04 interpreter 18 34 test wav 文件所没有的听觉效果 西南科技大学本科生毕业论文 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 不仅仅是一个编译器 它是一个全面的应用程序开发环境 使用它你 充分利用具有面向对象特性的 C 来开发出专业级的 Windows 应用程序 VC 6 0 作为一种程序设计语言 它同时也是一个集成开发工具 提供了软件 代码自动生成和可视化的资源编辑功能 在使用 VC 6 0 开发应用程序的过程 中 系统为我们生成了大量的各种类型的文件 VC 6 0 的 C 语言灵活性好 效率高 可以接触到软件开发比较底层的东西 微软的 MFC 库博大精深 学 会它可以让随心所欲地进行编程 VC 是微软制作的产品 与操作系统的结合 更加紧密 12 13 5 2 程序设计背景 用 C 语言在 VC 环境下实现虚拟环绕声的设计方法是 对 AC3 解码程序 中的 IMDCT 子函数的输出 即 AC3 解码后的数据 用和进行 FIR 滤波ab 处理 即虚拟环绕声处理 把处理以后的八个声道数据在 Downmix 子函数这里 按式 4 1 将其混合成左 右两声道 再将两个声道的数据写入 WAV 格式文 件 现在就本设计中涉及的关键步骤及技术做简要介绍 5 2 1 解码原理 解码器进行解码首先必须与编码数据流同步 经过误码纠正后从数码流中 分离出控制数据 系统配置参数 编码后的频谱包络及量化后的尾数等数据 然后根据声音的频谱包络产生比特分配信息 对尾数部分进行反量化 恢复变 换系数的指数和尾数 再经过合成滤波器组 把数据由频域变换到时域 最后 输出重建的 PCM 样值信号 13 15 AC3 解码 C 程序流程如图 5 1 所示 其解码的主要步骤为 1 输入比特流 输入到解码器的编码的 AC3 数据 可以是按额定比特率的连续数据流 或 者大量的数据以高速率和低工作周期 duty cycle 突发的进入编码器 本标准 大多数的应用将是运送字节或字 16bits 的 对齐的基本 AC3 比特流 解码器 西南科技大学本科生毕业论文 26 可以接收不对齐的数据如连续的串行比特流 也可以接收字节对齐或字 16bits 对齐的数据 字节或字对齐的输入数据使解码器能够有一些简化 而 且确实降低了同步字错误检测的概率 指数策略 样本块标志 动态范围字 矩阵重设标志 耦合参数 振动标志 比特分配参数 附加信息 尾数包 指数包 主要信息 输入比特流 同步检错 解包 BSI 指数解码 比特分配 粗量化 去耦合 重设矩阵 动态压缩 IMDCT 变换 加窗 叠加 相下混合 输出缓存器 输出 PCM 图图 5 1AC3 解码解码 C 程序流程图程序流程图 2 同步检错 AC3 数据流格式考虑到快速同步 16bits 同步字具有低的错误检测概率 对于不对齐的输入数据流 同步字错误检测的概率为每输入数据流的比特位置 的 0 0015 对于 384kbits s 的数码率 错误检测同步字的概率为每帧 19 字 节对齐的输入数据流将此概率降低到 2 5 而字对齐的则把它降低到 1 2 3 解复用 解码过程固有的操作使把包括在数据流中各种不同类型的信息解包 解复 用 在这个可选项中这个数码流信息的分配是 西南科技大学本科生毕业论文 27 选择的数据可从缓存器复制到专用寄存器 有些来自输入缓存器的数据可复制到特殊的工作存储单元 有些数据可以只安排在输入缓存器中 其指针保存到另一存储单元以便使 用 音频压缩系统的指数以编码的形式在数据流中传递 将指数解包和解码 需两中类型的 辅助信息 必须知道指数的数目 必须知道个声道正在使用的指数 策略 比特指派的计算 提示各尾数要多少比特 比特指派计算的输入是解码的 指数及比特指派辅助信息 比特指派计算的输出是一组比特指派指针 BAP 每个编码尾数有一个 BAP BAP 指出用于尾数的量化器 以及在数据流中将多 少比特用于各尾数 粗量化的尾数组成大量的 AC3 数据流 将各尾数量化到相 应的 BAP 指示的精度等级 为了更有效的将尾数打成数据大包 把几个尾数合 成单个传输值 例如 两个 11 级的量化值用单个 7bit 码 3 5 比特 值 数码流 中传送 按 BAP 指示把聚集在一起的比特剥开来 以解开尾数的数据包 必须把组 合的尾数拆开 单独编码的尾数值变为去量化的值 已指示具有零比特的尾数 可以再现为零 或随机抖动值 在抖动标志下 4 去偶合 de compling 当使用耦合过程时 被耦合的声道必须去耦合 去耦合包括从公共耦合声 道和单独声道的耦合坐标 来重建各被耦合声道的高频部分 指数和尾数 在每个耦合带内 耦合声道的各个系数 指数和尾数 将乘以单独声道的耦合 坐标 5 重新设置矩阵的过程 rematrixing 在 2 0 音频编码模式中 可按重新设置矩阵坐标的指示 采用重新设置矩 阵 rematrixing 当这个标志指示某个频带被重新设置矩阵时 数码流中的 编码系数将是和与差的值 而不是左与右的值 6 动态范围压缩 dynamic range compression 对于各个音频块 动态范围控制值可以包含在数码流中 解码器通过约定 将用这个值按正确处理数据的要求来改变系数 指数和尾数 的大小 7 逆变换 inverse trsform 西南科技大学本科生毕业论文 28 本节所述进行解码的步骤将得到每个编码声道的一组频率系数 逆变换把 这些频率系数块变成时间样本块 8 加窗 重叠 相加 window overlap add 对时间样本的单独数据块必须加窗 而且将相邻的数据块重叠和相加 以 便重建最后连续时间的输出 PCM 音频信号 9 向下混合 downmix 如果在解码器输出所需要的声道数小于在数码流中编码的声道 则进行向 下混合 10 输出缓存器 pcm output buffer 典型的 PCM 解码器必须以 PCM 取样率提供 PCM 输出样本 由于从解码 的过程中得出各个样本块 需要一个输出缓存器 11 输出 PCM output pcm 输出的 PCM 样本用适合于互连到数字模拟变换器的形式 或者用接收机 要求的某种别的形式进行传递 5 2 2 MDCT 和 IMDCT 在 AC3 的编码程序中 MDCT 即改进的离散余弦变换 的作用就是把时 域信号转换到频域 并对数据进行压缩 而 IMDCT 是 MDCT 的逆过程 把编 码后的频域信号进行变换 重建时域信号 这里列出了 AC3 标准提供的 MDCT 和 IMDCT 公式 而其中的 IMDCT 并不是直接以 IMDCT 的公式做转换 而是 以 IFFT 的形式来实现 IMDCT 16 由于 MDCT 为非正交变换 因而由某一块的 MDCT 谱无法完全重建出原 始的信号 但采用时域混叠抵消 TDAC 的方法可以达到完全重建 所以 AC3 的时 频变换采用基于 TDAC 的 MDCT 变换 该变换基于样本分块来进行 编码器中每一个样本块与其前后相邻的样本块各有 50 的重叠 解码端经 IMDCT 恢复出来的信号引入了时域混叠分量 将恢复出的相邻两块信号进行 50 的重叠相加即可抵消时域混叠分量 在非量化时完全重建出原始信号 图 5 2 说明了基于 TDAC 的 MDCT 分析和合成的处理过程 变化块长度的选择是音频变换编码的重要参数 因为在编码器的实现中 对算法的复杂程度和延时的限制 时间分辨率和频率分辨率往往不能同时与人 耳感觉特性匹配 二者必须折衷处理采用自适应的方法变换选择块长度 对于 稳态信号 它的频谱在时间上保持稳态 或者变换缓慢 需要高的频率分辨率 西南科技大学本科生毕业论文 29 应采用长的窗函数或长的 FIR 滤波器 反之 对于快速变化的瞬态信号 要求 有高的时间分辨率 应采用短的窗函数或短的 FIR 滤波器 因此在选择块长度 时 必须考虑时间和频率分辨率的要求 MMMM 2M 2M 2M MDCT MDCT MDCT M M M Frame kFrame k 1Frame k 2Frame k 3 a MDCT 交叠分析处理过程 M M M IMDCT IMDCT IMDCT 2M 2M 2M MM Frame k 1Frame k 2 b MDCT 交叠合成处理过程 图图 5 2基于基于 TDAC 的的 MDCT 分析分析 合成处理过程合成处理过程 AC3 编码器根据信号的瞬态特性 块长取 512 个样点或 256 个样点两种 稳态信号用长块 MDCT 分析 得到 256 个频率系数 瞬态信号用两个短块 MDCT 分析 得到两套 128 个频率系数 将两套系数互插形成 256 个频率系数 在以后的处理 声道耦合 比特分配等 中与长块频率系数无区别对待 1 块长为 N 的 MDCT 变换定义如下 1 0 22 cos21 2121 1 44 N n X kx n h nnkk NN pp a 5 1 其中 是窗口函数序列01 2 N k x n 西南科技大学本科生毕业论文 30 1 对于第一个短块 0 对于第一个长块 1 对于第二个短块 N 512 为长块 N 256 为短块 2 反变换 IMDCT 定义如下 2 1 0 2 2cos21 2121 1 44 N k y nh nX knkk N pp a 5 2 其中 为凯塞 贝塞尔

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论