您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 虚拟环绕立体声系统的研究与dsp实现
学号:DSP原理及应用课程论文课程论文题目:基于DSP的虚拟环绕立体声系统的研究开课学院:课程老师:学生姓名:学生专业班级:2011-2012学年第一学期基于DSP的虚拟环绕立体声系统的研究摘要随着个人电脑以及DVD的普及应用,越来越多的用户希望能够享受到多声道环绕声的效果,同时希望重放设备尽量少,而且能保持原多声道系统的重放效果。DSP芯片在处理音频数据方面具有很强的能力,本文是在TMS320VC5510DSK平台上实现了虚拟环绕立体声系统。其中采用了DSP/BIOS中的中断机制完成音频信号的采集与传输,以及信号的虚拟环绕算法处理,利用RTDX技术实现了Host控制端与Target端之间的数据高速传输。关键字:虚拟环绕立体声DSPRTDXAbstractThepersonalcomputerandthepopularizationandapplicationofDVD,moreandmorecustomerswanttobeabletoenjoymorethantotracksurroundsoundeffect,buthopereplayequipmentasfaraspossible,andcankeeptheoriginaltracksystemmorethanthereplayofeffect.Digitalsignalprocessor(DSP)inthetreatmentoftheaudiodatahasstrongability,thisarticleisinTMS320VC5510DSKplatformtovirtualsurroundsoundsystem.UseamongthemtheDSP/BIOSinterruptmechanismofcompleteaudiosignalcollectionandtransmission,andthesignalprocessingalgorithmvirtualsurround,useRTDXtechniqueistheHostcontrolTargetandbetweenthedatatransmissionwithhighspeed.Keyword:virtualsurroundsoundDSPRTDX1引言虚拟环绕声的英文是VirtualSurround,也有叫SimulatedSurround,人们把这种技术称为非标准环绕声技术。在环绕声的实现上,无论是杜比AC3还是DTS,都有一个特点,就是回放时需要多个音箱,但由于价格及空间方面的原因,有的使用者,如多媒体电脑的用户,并没有足够的音箱。这时候就需要一种技术,能够把多声道的信号经过处理,在两个平行放置的音箱中回放出来,并且能够让人感觉到环绕声的效果,这就是虚拟环绕声技术[1]。为了获得极高音质的音响效果,家庭放音设备是必不可少的。然而,按照杜比定向逻辑环绕立体声的要求,影院系统至少需要五个扬声器、相应的功率放大器和杜比定向逻辑解码器,同时杜比AC.3对扬声器和功放的要求也是相当高的。要购置一套这样的放音设备,不仅价格昂贵,而且对听音环境、校调技术的要求也是比较高。因此,对于普通的家庭,这是可望而不可及的。有没有能够利用较简单的设备也可以实现类似于杜比定向逻辑或杜比AC.3的听音效果呢?虚拟环绕立体声技术能够解决这样的问题。虚拟环绕立体声技术是在立体声增强技术(即3D空间增强)的基础上发展起来的,不仅具有立体声增强技术的空间感和包围感,还具有社比定向逻辑的声像定位效果,完全符合人们对家庭影院效果的要求,因此应用十分广泛。相对于多声道环绕声系统,虚拟环绕声系统只需两个声道就可以实现环绕声的效果,这使得希望享受“家庭影院”的用户的愿望得以满足。2TMS320VC5510简介TMS320VC5510DSP是主频为200MHz的定点16-bitDSP,属于德州仪器C55x系列。性能方面,C55xCPU的内部总线结构包含l条程序总线,3条数据读总线,2条数据写总线和用于外围器件与DMA操作的总线;2个17bitX17bit的乘累加器(MAc);1个40bit的算术逻辑运算单元(ALu)和1个16bR的ALU,等等。功能方面,C55xCPU包含4个主要单元:指令缓冲单元(InstructionbufferUnit)、程序流单元(ProgramflowUnit)、地址数据流单元(Address-dataflowUnit)和数据计算单元(DatacomputationUnit)。图1TMS320VC5510DSK硬件结构另外,C5510有别于其它DSP的特征主要是包括1个160Kwords的快速片内存储器,3个多通道缓冲串行端口(Multi.channelbufferedserialports,MCBSPs),两个片上定时器和一个6通道直接内存访问(Directmemoryaccess,DMA)控制器和一个灵活的外部存储器接口(externalmemoryinterface,EMIF)。因为C55x系列的成员都有相同的特征,所以很容易将C5510的开发软件应用于C55x系列的其它开发板,它们都是拥有5510资源的子集。TMS320VC5510DSK的性能指标如表1所示。[2]表1TMS320VC5510DSP的性能指标模块指标DSP模块芯片型号TMS320VC5510,BGA封装,240引脚工作电压I/O电压3.3V,核心电压1.6V内部工作时钟200MHZ(5ns)计算能力400MMACS外部总线时钟100MHz音频模块芯片信号TLV320AIC23音频输入立体声或单声道输入音频输出立体声或单声道输出音频带宽48Khz带宽音频采用速率8khz-96khz音频编码方式16或32-btPCM编码C5510有很多的内部存储器,可以将应用程序的代码和数据存放到片上。但是,当C5510需要进行外部访问的时候,它会利用32bit的外部存储接口EMIF来进行外部存储器访问,这时EMIF可以设置为异步模式或者同步模式。DSK包括一个外部非易失Flash芯片,用来存储启动程序,另外还有一个外部SDRAM,作为系统配置外部存储器的例子。开发板上还有标准的11扩展总线(ExpansionBus),可以通过它在开发板上再添加其它的子卡。DSK上有一个复杂的可编程逻辑器件CPLD)。CPLD有4个可编程寄存器,是使用者与DSK板的接口。通过它们来进行DSK的配置。这4个寄存器用来访问板上的LED和DIP,以及控制子卡接口。3虚拟环绕立体声原理简介虚拟环绕声系统是根据心理听觉的特征,利用声源到双耳的传输函数HRTF对双通路立体声信号进行处理,通过双耳声信号来再现声源的空间信息。这种系统只需要两个重放声道就可以再现环绕声的效果,与其它环绕声系统相比,环绕感强,动态范围大,还可在一定程度上改善节目源的信噪比,而且成本低。虚拟环绕声系统的基础是听觉传输技术,即通过与头相关传递函数来实现声场空间信息的传输重发。现在主要应用的是多通路虚拟环绕声系统。这类系统多采用听觉传输技术中的虚拟声源的方法,通过HRTF的模拟,利用一对前方扬声器虚拟出部分扬声器,从而实现环绕声的效果。值得一提的是,这类系统也存在听音域窄和声像前后倒置的缺陷。[3]这类系统的代表有SRSTru—Surround.SpatializerN-N-2和Qsurround,等等。图2通路环绕声系统的扬声器布置图2所示为通路环绕声系统的扬声器布置,在通路重发中,前方左声道(L)、中置声(c)、右声道(R).以及左环绕(SL),右环绕(SR)五路独立信号分别馈给相应的五个扬声器进行重发。在通路虚拟重发中五路信号经过处理,利用前方一对左右扬声器(L和R)进行重发,重发信号可以写为:RLcLoutSgSgCgLgL211(1)RLcRoutSgSgCgRgR21(2)即E、R、c信号经过一定的衰减馈送给左右扬声器,gL、gI、gc是衰减因子,gt、勘分别表示对SL、Sn的虚拟处理,以产生前方范围的立体声声像分布,也可以对L、R、C信号进行与其相对应方位的HRTF处理后再利用扬声器重发。对于SL、SR要经过相应的HRTF处理后再送到左右扬声器重发。4系统的硬件设计本系统的DSP实现中使用了中断机制,对音频信号进行采集并逐帧处理。具体流程如图3所示。AIC23采集音频PCM信号,并连续的送向与其相连的C5510的多通道缓冲串口(McBSP)。MeBSPI用来控制AIC23内部配置寄存器,McBSP2是AIC23发送和接收音频采样数据的缓冲嚣,当到达的数据填满McBSP2的缓冲区后,系统将产生一个硬中断,把数据从McBSP2的缓冲区以DMA方式送到Pipe对象(PIP)中去,这一过程不会影响到系统主程序的运行。这里的Pipe对象是一个缓冲区,这个缓冲区具有一定个数的数据帧(numframes),并且数据帧的长度(framesize)是一定的。图3系统硬件框图5系统软件实现5.1实现音频信号的采集与处理PIP的存储实体设在DSP的片内RAM中,设定PIP由两个缓冲区构成,一个数据发送缓冲区(pipTx),一个数据接收缓冲区(pipRx)。初始时两个缓冲区的状态都为“空闲”,来自McBSP2的数据可以通过DMA方式连续地填入“空闲”的pipRx缓冲区。当pipRx缓冲区被填满时,PlP管理模块将此缓冲区标为“写满”,同时发出一个软中断信号,通知CPU一帧数据已经采集完毕,可供处理。CPU读出这帧数据后,PIP管理模块再将此pipRx缓冲区的状态置为“空闲”。CPU处理完当前帧数据之后,将处理后的音频数据放入pipTx缓冲区通过DSK上的lineout或speakerout播放出来。。这一音频信号采集和处理的过程完全由触发的软中断服务程序DataProO来实现。下面是其实现代码[5]:VoidDataPro(Void){Inti,size;unsignedshort*src.*dst;if(PIP_getReaderNumFrames(&pipRx)=0{LOG_error(”echo:Noreaderframe!”,o);//接收缓冲区pipRx是否有数//据return;}if(PIP_getWriterNumFrames(&pipTx)=0){LOG_error(”echo:Nowriterframe!”,0);//发送缓冲区pipTx是否有数//据return;}PIP_get(&pipRx);//A接收缓冲区pipRx中读出一帧数据src=PIP_getReaderAddr(&pipRx);//返回所读数据帧的起始地址size=PIP_getReaderSize(&pipRx)+sizeof(short);//返回所读数据帧的有效字节//数PIP_aUoc(&pipTx);//从发送缓冲区pipTx中获得一个空数据帧dst=PiP_getWriterAddr(&pipTx);//返回所得数据帧的起始地址for(i=0;isize/2;i++){LeflDataln[i]=*sfc++;RightDataIn[i]=*src++;)RevPr00;//对接收数据帧进行定位与混响算法处理for(i=0;isize/2;i++){*dst++=LeflDataOut[i];*dst++=RightDataOut[i];}PIPsetWriterSize(&pipTx,PIP_getReaderSize(&pipRx));//确认将要播放的数//据帧有效字节数PIP_free(&pipRx);//释放数据接收缓冲区供下次数据采集之用PIP_put(&pipTx);//发送已处理数据5.2RIDX实现Host与Target端通信图4Host端与Target端程序流程图利用RTDX技术进行数据传输能够不打断Target上运行的程序,而且数据的传输速度非常快,这也是RTDX的优势所在。本系统的DSP实现中,Host与Target端的通信流程示意图如图4。这里我们实现了Host到T
本文标题:虚拟环绕立体声系统的研究与dsp实现
链接地址:https://www.777doc.com/doc-2089218 .html