首页 基于虚拟环绕声的音频处理器设计技术报告

基于虚拟环绕声的音频处理器设计技术报告

举报
开通vip

基于虚拟环绕声的音频处理器设计技术报告基于虚拟环绕声的音频处理器设计技术报告 第三届OpenHW开源硬件与嵌入式大赛 基于虚拟环绕声的音频 处理器 设计方案 中南民族大学 2012年3月 摘要 虚拟听觉空间VAS是一门新兴的边缘交叉学科涉及听觉心理学听觉生理学多传感器集成与融合人工智能并行计算和高性能计算机系统等多个研究领域VAS有时也称为虚拟听觉显示 Virtual Auditory Display 三维声再现系统 3D Sound RenderingReproducing System 虚拟声再现系统 Virtual Sound R...

基于虚拟环绕声的音频处理器设计技术报告
基于虚拟环绕声的音频处理器 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 技术报告 第三届OpenHW开源硬件与嵌入式大赛 基于虚拟环绕声的音频 处理器 设计方案 中南民族大学 2012年3月 摘要 虚拟听觉空间VAS是一门新兴的边缘交叉学科涉及听觉心理学听觉生理学多传感器集成与融合人工智能并行计算和高性能计算机系统等多个研究领域VAS有时也称为虚拟听觉显示 Virtual Auditory Display 三维声再现系统 3D Sound RenderingReproducing System 虚拟声再现系统 Virtual Sound RenderingReproducing System 空间声音再现系统 Spatial Sound Rendering System 虚拟空间三维听觉系统 Virtual Spatial 3D Auditory Systems 声音空间化系统 Sound Spatialization System 和双耳技术 Binaural Technology 等是通过对双耳的声音信号进行捡拾模拟和重放让倾听者在虚拟环境中听到的声信号逼近在真实环境声场中听到的声信号因而在电影院家庭影院中得到了很好的应用[15]其中多通路环绕声经过许多年的发展也获得了很好的效果也先后出现了5161com环绕声系统而且51通路环绕声系统也为国际电信联盟 ITU 所推荐[2] 此外为了适应音频的播放特构建了一款音频DSP处理器以适应本系统 虚拟环绕声技术是区别于多通道环绕声技术的另一类声重放系统它利用声 源到双耳的传递函数 HRTF 通过双耳 即空间两点 声信号的传输与重放实现声 音空间信息的传输与重放这种系统只需两路独立的传输信号和重放扬声器 或耳 机 因而在一些不便于安装多通道放声系统的环境下对改善电视机手机MP3MP4 等等电子产品的音频声效有很大的帮助 关键字相关传递函数 虚拟环绕声 51通路 ABSTRACT Virtual hearing is a new space on the edge of the cross subject involving hearing psychology hearing multi-sensor integration and fusion artificial intelligence parallel computing and high performance computer systems and other research field Virtual hearing space sometimes called virtual hearing display 3 D sound representation system virtual sound representation systems space sound representation systems virtual space 3D auditory system voice of space systems and ears technology is through the ears voice signal collecting simulation and replay let the listener in the virtual environment heard the acoustic signal of the approaching in the real environment field hear acoustic signal so in the cinema home theater has found applications More than one channel surround sound after many years of development and also have the very good also has appeared 51 61 71 or 102 channel surround system and 51 channel surround system also for the international telecommunications union ITU recommendation In addition in order to adapt to the audio playback especially the construction a audio DSP processors to adapt to the system Virtual surround sound technology is different from multi-channel surround-sound technology another kind of sound replay system it uses sound to the ears of the transfer function HRTF through the ears ie space two acoustic signal transmission and replay achieves voice space information transmission and replay the system only two road independent transmission signal and replay the speaker or headset so in some not for easy installation multi-channel laughed system environment to improve television mobile phones MP3 MP4 and so on electronic products audio sound effects which are of great help Keyword Related transfer function virtual surround sound 51 pathways 目录 摘要2 ABSTRACT3 第一章 虚拟环绕声原理介绍5 第二章 本系统的基本组成10 第三章 系统具体的实现18 总结35 致谢36 参考文献37 附录39 第一章 虚拟环绕声原理介绍 由于虚拟环绕是以人耳的声源定位为基础的故在此主要对人耳的声源定位予以介绍心理声学的基本要素是到达人耳的声音的频率强度和谱结构以下将进一步讨论基于心理声学的声源定位距离感知及包围感等 人耳对声源的定位 在自然听音中人的听觉系统对声源的定位取决于多个因素双耳接收到的信号差异用来决定声源的水平位置由外耳对高频信号的反射所引起的耳郭效应决定声源的垂直位置而人耳的某些心理声学特性对于声源的定位也起到很大的作用 2双耳效应 在自然听音环境中双耳信号之间的差异对于声源的定位是非常重要的该因素可以在直达声场的听音环境中得到最好解释如图1所示 图声源S与镜像声源S引入最大程度相似的双耳因素 图 空间锥形区域声像混淆 图3 人头模型测量的耳郭效应 耳郭效应进行声音定位主要是将每次接收到的声音与过去存储在大脑里的重复声排列或梳状波动记忆进行比较然后判断定位因每个人耳郭尺寸不同所以每个人在大脑中存储的记忆是不同的这一点应引起注意 图 头部转动避免声源位置前后混淆 图5系统总体框图 DSP音频处理器是本系统的核心负责音频解码信号叠加等处理虚拟环绕声 模块负责针对音频信号产生虚拟的环绕声音频效果DAC负责还原出音频信号在这些基本功能的础基上实现诸如音频检索等新功能 左后ls和右后环绕声生成器 左后ls和右后环绕声生成器内部结构 图6 左后ls和右后环绕声生成器内部框图 图7 左后ls和右后环绕声生成器原理图 经过研究我们发现当左后和右后的两个声像在同一水平角度时倾听者的声像刚好再在中间的位置因此没有环绕声的效果因此我们做了这个专门处理左后和右后的音频处理装置如图6所示当左后的声源角度为240时如图7所示该声源与右后的135和150两声源之一叠加以此类推最后将说有声音叠加形成环绕声的效果 3DSP音频处理器及虚拟环绕声处理器 DSP音频处理器及虚拟环绕声处理器内部构成 图8 环绕声生成及音频信号处理内部框图 我们系统的核心部分大致如图8所示从sd卡读出的数据流有音频解码等处理得到51个声道 外设部分 NEXYS3开发板的外设接口如图9所示 图9 开发板外设接口图 本项目的两个外设接口均采用了Pmod Port ExpansionPmodSD模块采用了12针进行衔接CS4344采用了6针与开发板相衔接 NEXYS3用来处理复杂的音频相关的计算问题大概的处理过程就是从SD卡中 选择合适的采用率读出音频数据然后将数据放于开发板的缓存中使用核心音频处理IP进行音频数据处理然后将数据通过CS4344将预先设想的声音给还原出来 开发板上4块Pmod Port Expansion的图示如下 图10 Pmod Port Expansion 每一块Pmod Port Expansion 12针的图示 图11 Pmod 12个端口 PmodSD模块它拥有两排六列的接触头和一个SD卡卡槽它方便了SD卡和开发板的衔接SD卡与开发板的通信是依靠那12个触头实现的本项目是采用的SD卡的SPI 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 驱动的SPI协议简单使用的引脚也比较少只需要SSMOSIMISOSCK 图12 PmodSD的工作原理图 自制音频接口的组成是 ICCS4344 电阻470欧姆2个10K欧姆2个0805封装 01uF电容2个0805封装 33uF 3个 0805封装 10uF 1个 B型装装 2500 uH电感 ,个 0805封装 耳机插座 图13 音频接口原理图 图14 自制立体声音频接口图 第三章 系统具体的实现 1基于SPI的SD卡 FatFS是一个为FPGA系统设计的通用文件系统模块对FatFs 的程序编写遵 守ANSI C并且完全与磁盘IO层分开因此它并不依赖于当前的硬件架构它可以嵌 入到FPGA的微控制器中 图15 FatFS原理图 添加的SPI核 axi_spi spi_cntrl_reg spi_core_interface spi_fifo_ifmodule spi_occupancy_reg spi_receive_transmit_reg spi_status_slave_sel_reg SDK spi接口函数 1void XSpi_Abort XSpi InstancePtr 在控制寄存器中设置停止位 2 int XSpi_CfgInitialize XSpi InstancePtr XSpi_Config Config u32 EffectiveAddr 初始化spi 3 int XSpi_Start XSpi InstancePtr 使中断 4 int XSpi_Stop XSpi InstancePtr 禁止中断 5 void XSpi_Reset XSpi InstancePtr 重置 6 int XSpi_Transfer XSpi InstancePtr u8 SendBufPtr u8 RecvBufPtr unsigned int ByteCount 传输数据 7 int XSpi_SetSlaveSelect XSpi InstancePtr u32 SlaveMask 选择通信 的从设 8 u32 XSpi_GetSlaveSelect XSpi InstancePtr 获取当前通信从设的标识 9 void XSpi_SetStatusHandler XSpi InstancePtr void CallBackRef XSpi_StatusHandler FuncPtr 设置状态返回函数 10 void XSpi_SetStatusHandler XSpi InstancePtr void CallBackRef XSpi_StatusHandler FuncPtr 保存状态返回 11 void XSpi_InterruptHandler void InstancePtr 中断进程 12 void XSpi_Abort XSpi InstancePtr 异常终止 com 1f_mount FatFs模块上注册注销一个工作区 文件系统对象 FRESULT f_mount BYTE Drive 逻辑驱动器号 FATFS FileSystemObject 工作区指针 2f_open 创建打开一个用于访问文件的文件对象 FRESULT f_open FIL FileObject 空白文件对象结构指针 const XCHAR FileName 文件名指针 BYTE ModeFlags 模式标志 表一 文件的访问类型和打开方法 模式 描述 FA_READ 指定读访问对象可以从文件中读取数据 与FA_WRITE结合可以进行读写访问 FA_WRITE 指定写访问对象可以向文件中写入数据 与FA_READ结合可以进行读写访问 FA_OPEN_EXISTING 打开文件如果文件不存在则打开失败 默认 FA_OPEN_ALWAYS 如果文件存在则打开否则创建一个新文件 FA_CREATE_NEW 创建一个新文件如果文件已存在则创建失败 FA_CREATE_ALWAYS 创建一个新文件如果文件已存在则它将被截断并覆盖 _FS_READONLY 1 时模式标志 FA_WRITE FA_CREATE_ALWAYS FA_CREATE_NEW FA_OPEN_ALWAYS 是无效的 3 f_close FRESULT f_close FIL FileObject 文件对象结构的指针 4f_read 读取数据 FRESULT f_read FIL FileObject 文件对象结构的指针 void Buffer 存储读取数据的缓冲区的指针 UINT ByteToRead 要读取的字节数 UINT ByteRead 返回已读取字节数变量的指针 5 f_write FRESULT f_write FIL FileObject 文件对象结构的指针 const void Buffer 存储写入数据的缓冲区的指针 UINT ByteToWrite 要写入的字节数 UINT ByteWritten 返回已写入字节数变量的指针 6f_lseekFRESULT f_lseek FIL FileObject 文件对象结构指针 DWORD Offset 文件字节偏移 7 f_truncate FRESULT f_truncate FIL FileObject 文件对象结构指针 8f_sync FRESULT f_sync FIL FileObject 文件对象结构的指针 9 f_opendir FRESULT f_opendir DIR DirObject 空白目录对象结构的指针 const XCHAR DirName 目录名的指针 10f_readdir FRESULT f_readdir DIR DirObject 指向打开的目录对象结构的指针 FILINFO FileInfo 指向文件信息结构的指针 11f_getfreeFRESULT f_getfree const XCHAR Path 驱动器的根目录 DWORD Clusters 存储空闲簇数目变量的指针 FATFS FileSystemObject 文件系统对象指针的指针 12f_stat FRESULT f_stat const XCHAR FileName 文件名或目录名的指针 FILINFO FileInfo FILINFO结构的指针 13f_mkdir FRESULT f_mkdir const XCHAR DirName 目录名的指针 14f_unlink FRESULT f_unlink const XCHAR FileName 对象名的指针 15 f_chmod FRESULT f_chmod const XCHAR FileName 文件或目录的指针 BYTE Attribute 属性标志 BYTE AttributeMask 属性掩码 表二 文件属性表 属性 描述 AM_RDO 只读 AM_ARC 存档 AM_SYS 系统 AM_HID 隐藏 16 f_utime f_utimeFRESULT f_utime const XCHAR FileName 文件或目录路径的指针 const FILINFO TimeDate 待设置的时间和日期 17f_rename FRESULT f_rename const XCHAR OldName 原对象名的指针 const XCHAR NewName 新对象名的指针 18f_mkfs FRESULT f_mkfs BYTE Drive 逻辑驱动器号 BYTE PartitioningRule 分区规则 WORD AllocSize 分配单元大小 19f_forward FRESULT f_forward FIL FileObject 文件对象 UINT Func const BYTEUINT 数据流函数 UINT ByteToFwd 要转发的字节数 UINT ByteFwd 已转发的字节数 20f_chdir f_chdirFRESULT f_chdir const XCHAR Path 路径名的指针 21 f_chdrive f_chdriveFRESULT f_chdrive BYTE Drive 逻辑驱动器号 22 f_gets f_getschar f_gets char Str 读缓冲区 int Size 读缓冲区大小 FIL FileObject 文件对象 23 f_putc f_putcint f_putc int Chr 字符 FIL FileObject 文件对象 24f_puts f_putsint f_puts const char Str 字符串指针 FIL FileObject 文件对象指针 25 f_printf f_printfint f_printf FIL FileObject 文件对象指针 const char Foramt 格式化字符串指针 comO接口 由于FatFs模块完全与磁盘IO层分开因此底层磁盘IO需要下列函数去读写 物理磁盘以及获取当前时间由于底层磁盘IO模块并不是FatFs的一部分因此它 必须由用户提供 1disk_initialize DSTATUS disk_initialize BYTE Drive 物理驱动器号 2disk_status DSTATUS disk_status BYTE Drive 物理驱动器号 3disk_read DRESULT disk_read BYTE Drive 物理驱动器号 BYTE Buffer 读取数据缓冲区的指针 DWORD SectorNumber 起始扇区号 BYTE SectorCount 要读取的扇区数 4disk_write DRESULT disk_write BYTE Drive 物理驱动器号 const BYTE Buffer 写入数据缓冲区的指针 可能未对齐 DWORD SectorNumber 起始扇区号 BYTE SectorCount 要写入的扇区数 5 disk_ioctl DRESULT disk_ioctl BYTE Drive 驱动器号 BYTE Command 控制命令代码 void Buffer 数据传输缓冲区 表三 磁盘命令 命令 描述 CTRL_SYNC 确保磁盘驱动器已经完成等待写过程当磁盘IO模块有一个写回高速缓存时立即冲洗脏扇区在只读配置中不需要该命令 GET_SECTOR_SIZE 返回驱动器的扇区大小赋给Buffer指向的WORD变量在单个扇区大小配置中 __SS 为 512 不需要该命令 GET_SECTOR_COUNT 返回总扇区数赋给Buffer指向的DWORD变量只在f_mkfs函数中使用了该命令 GET_BLOCK_SIZE 返回以扇区为单位的存储阵列的擦除块大小赋给Buffer指向的DWORD变量当擦除块大小未知或是磁盘设备时返回1只在f_mkfs函数中使用了该命令 6get_fattime 图18 音频接口管脚图 其中各管教的用途如下 SDIN用于音频信号的输入 DSMSCLK时钟信号的输入 LRCK左右时钟输入 MCLK主时钟输入 VQ静态电压 AOUTR右声道模拟信号输出 GND接地 AOUTL左声道模拟信号输出 FILT正基准电压 图19 音频接口原理图 32 I2C总线协议 I2C总线系统由两根总线即SCL 串行时钟 线和SDA 串行数据 线构成这种总线可以设计成很多种通讯配置但本文只讨论主从系统的应用主器件控制总线通讯开始,结束传送发送信息并产生I2C系统时钟在写操作过程中从器件一旦被主控器件寻址就执行特定的相应功能在读操作过程中主控器件从从器件那里获得数据在整个主从传送过程中所有的事件都通过主控器件的SCL时钟线达到同步连到总线上的器件的接口形式必须是漏极开路或集电极开路输出状态通过上拉电阻使得两根总线在空闲的状态下都为高电平状态因此I2C总线上具有线与功能即总线上的所有器件都达到高电子状态时I2C总线才能达到高电平状态从而使总线上的高速器件和慢速器件工作同步 在I2C协议中从器件地址是一个唯一的7位地址接下来是一个读写方向标志位读状态是高电平写状态是低电子 根据I2C协议中传输过程的特点I2C模块可以划分为字节发送模块字节接收模块开始条件模块停止条件模块其中字节发送模块字节接收模块和停止条件模块为基本模块在开始条件模块中因为需要发送从器件地址所以要调用字节发送模块Jan M(Rabaey(Digital Integrated Circuits-A Design PerspectiveSecond Edition[M](Prentice HallUSA2003ISBN 73 02079684( J C Middlebrooks Na rrow-band sound localization related to external ear acoustics J Acoust Soc Amer vol 92 no 5 pp 2607–2624 Nov 1992 [17]CML MicrocircuitsCMX649 Recommended Settings[Z]2003 [18]Edward Kamen W Bo nnie Heck SFundamentals of Signals and Systems Using Mat lab Prent ice Hall Inter nat ional Inc 1997 [19]ISOPIEC CD 13818 - 2 Coding of moving pictures and associated audio- Part 2 video 1994 [20] F L Wightman and D J Kistler Resolution of front-bac k ambiguity in spatial hearing by listener and source movement J Acoust Soc Amer vol 105 no 5 pp 2841–2853 May 1999 [21] T Ajdler C Faller L Sbaiz and M Vetterli Sound field analysis along a circle and its application to HRTF interpolation J Audio Eng Soc vol 56 no 3 pp 156–175 Mar 2008 [22] M A Gerzon Ambisonics in multichannel broadcasting and video J Audio Eng Soc vol 33 no 11 pp 859–871 Nov 1985 [23]戴红卫(面向高性能SOC应用的MP3解码器软硬件协同设计与验证 [D](上海交通大学硕士学位论文(2006年1月( 附录 卷积代码 module conv indataoutdataaddressCLKresetstartnconvst1nconvst2nconvst3nbusy1nbusy2 nbusy3wrenout1enout2 input indataCLKresetstartnbusy1nbusy2nbusy3 output outdataaddressnconvst1nconvst2nconvst3wrenout1enout2 wire[70] indata wire CLKresetstartnbusy1nbusy2nbusy3 reg[70] outdata reg[100] address reg nconvst1nconvst2nconvst3wrenout1enout2 reg[60] state reg[50] i reg[10] j reg[110] counter reg[230] line reg[150] result reg high reg k reg EOC1EOC2EOC3 parameter hrir1 1hrir2 2hrir3 3 parameter IDLE 7b0000001 READ_PRE 7b0000010 READ 7b0000100 CALCU 7b0001000 WRREADY 7b0010000 WR 7b0100000 WREND 7b1000000 always posedge CLK begin if reset begin state IDLE counter 12b0 wr 1 enout1 1 enout2 1 outdata 8bz address 11bz line 24b0 result 16b0 high 0 end end of "if" else begin case state IDLEif start begin counter 0 state READ_PRE end else state IDLE READ_PRE if EOC1EOC2EOC3 由于频率相对改进前的卷积 器大大提高所以加入 READ_PRE 状态对取数操作 予以缓冲 state READ else state READ_PRE READbegin high 0 enout2 1 wr 1 if j 1 begin if EOC1 begin line line[150]indata state CALCU end else state READ_PRE end else if j 2counter 0 begin if EOC2 begin line line[150]indata state CALCU end else state READ_PRE end else if j 3counter 0 begin if EOC3 begin line line[150]indata state CALCU end else state READ_PRE end else state READ end CALCUbegin result line[70]hrir1line[158]hrir2line[2316]hrir3 state WRREADY end WRREADYbegin wr 1 address counter if k 1 state WR else state WRREADY end WR begin if high enout1 0 else enout2 0 wr 0 if high outdata result[70] else outdata result[158] if k 1 state WREND else state WR end WRENDbegin wr 1 enout1 1 enout2 1 if k 1 if high begin high 1 state WRREADY end else begin counter counter1 if counter[11]counter[0] state IDLE else state READ_PRE end else state WREND end defaultstate IDLE endcase end of the case end end of "else" end end of "always" 计数器i 用来 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 时间 always posedge CLK begin if reset i 0 else begin if i 44 i 0 else i i1 end end j 是控制信号协调卷积器轮流从三片AD 上读取数据 always posedge CLK begin if i 4 j 2 else if i 10 j 0 else if i 19 j 3 else if i 25 j 0 else if i 34 j 1 else if i 40 j 0 end k 是计数器用以控制写操作信号 always posedge CLK begin if state WRREADYstate WRstate WREND if k 1 k 0 else k 1 else k 0 end 根据计数器i 控制三片AD 转换信号NCONVST1NCONVST2NCONVST3 always posedge CLK begin if reset nconvst1 1 else if i 0 nconvst1 0 else if i 3 nconvst1 1 end always posedge CLK begin if reset nconvst2 1 else if i 15 nconvst2 0 else if i 18 nconvst2 1 end always posedge CLK begin if reset nconvst3 1 else if i 30 nconvst3 0 else if i 33 nconvst3 1 end always negedge CLK begin EOC1 nbusy1 EOC2 nbusy2 EOC3 nbusy3 end endmodule 基于虚拟环绕声的音频处理器 中南民族大学学术论文 2 1 虚拟环绕声 DSP音频处理器 DAC还原 音源 其它新的功能
本文档为【基于虚拟环绕声的音频处理器设计技术报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_003124
暂无简介~
格式:doc
大小:52KB
软件:Word
页数:0
分类:
上传时间:2017-09-29
浏览量:18