新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DSP的数字效果器的研究

基于DSP的数字效果器的研究

作者:时间:2007-03-09来源:网络收藏
摘要:提出了一种基于TMS320VC5402的音频信号处理系统。介绍了该系统的总体方案和硬软件设计,并对音频信号的处理算法进行了论述。实际使用证明,所述的基于的硬件和软件系统是一个很好的音频信号采集与处理系统。关键词:音频信号 音频效果 在调音台和各种音响设备上,效果器是一种不可缺少的设备。有了效果器,才有了声音的千变万化。高质量的效果器能达到令人满意的效果,使人有身临其境的感觉。现在效果器上的效果种类越来越多,有的多达几十种。实际上从声学原理考虑,一共只有五种基本效果: (1)延时/延迟类(包括延时、延迟、混响、残响等), (2)压缩类(包括噪声门、均衡器等), (3)失真类(包括各种失真、金属、“脏”效果器等), (4)合唱类(包括立体声、镶边、八度器等), (5)滤波器(包括哇音、相位等)。 目前国内的效果器市场多被国外产品所垄断,价格昂贵。国产的效果器又多为模拟实现,成本高、损耗大、干扰大、稳定性差,且参数不易修改。而基于DSP的数字效果器,是一种具有内置的数字接口且可进行数字音频处理的音响系统,它能克服以上缺点,达到令人满意的效果。1 系统总体方案 音频信号处理系统如图1所示,整个系统由单片机MCU、器DSP、A/D和D/A转换器、外扩存储器、显示屏和键盘等组成。其中MCU作为主机,整个系统的初始化和控制都由它来完成。DSP作为从机,主要完成音频信号的算法处理,实现各种效果。而LED则把通过键盘控制的各种效果及其参数显示出来,以便工作人员及时调整和修改。由于DSP内部存储器较小,不能满足系统数据和程序存储需要,所以需要外扩存储器。 系统工作时,输入的音频信号是模拟信号,经过高精度、高速度的ADC转换之后得到一串数字信号,分帧送入到波形输入缓冲区RAM。然后经过DSP内部高速处理,通过各种算法实现各种效果。经过处理的音频信号再输入到高精度、高速度的DAC转换器中,还原成模拟的声音信号,经音响功率放大电路放大输出。 为了实现音效的实时处理,加入了缓冲区。系统中各模块是同时进行处理的,一部分信号正在ADC中进行转换,而另一部分信号则正在DSP处理器中进行算法处理。整个系统以流水线方式进行工作,保证了对音效的实时处理。 2 系统硬件电路的设计 DSP芯片选用美国TI公司的TMS320VC5402(以下简称‘C5402),单片机选用PIC16F72,A/D和D/A转换器选用24位的CS4228A,其较宽的动态范围能够满足高保真的音频系统的要求。 2.1 ‘C5402 ‘C5402是TI公司于1999年10月推出的性价比较高的定点器,主要特点如下: %26;#183;具有先进的多总线结构,三条16位数据存储器总线,一条程序存储器总线和四条地址总线; %26;#183;操作速率达100MIPS; %26;#183;40位算术逻辑单元(ALU),包括一个40位桶形移位器和两个40位累加器;%26;#183;一个17%26;#215;17乘法器和一个40位专用加法器,允许16位带/不带符号的乘法; %26;#183;整和维特比加速器,用于提高维特比编译码的速度; %26;#183;8个辅助寄存器及一个软件栈,允许使用最先进的定点DSP、C语言编译器; %26;#183;数据/程序寻址空间为1M%26;#215;16位,内置4K%26;#215;16位ROM和16K%26;#215;16位RAM; %26;#183;内置可编程等待状态发生器、锁相环(PLL)时钟产生器、两个多通道缓冲串行口、一个8位与外部处理器通信的HPI口、两个16位定时器以及6通道DMA控制器; %26;#183;低功耗,工作电源为3V和1.8V(内核)。 DSP通过其McBSP口与CS4228A相连。McBSP串口是在TDM串口和BSP串口的基础上发展而来的。它既可以实现时分多路通讯功能,又可以通过DSP提供的DMA功能实现不用CPU参与的自动缓存功能,从而把 DSP从繁重的串口通讯中解放出来,提高了运行的效率。McBSP串口由数据接收发送部分、时钟及帧同步信号产生器、多通道选择以及CPU中断信号和DMA同步信号等组成。同以前的串口相比,McBSP串口具有相当大的灵活性。串口的接收和发送时钟CLKR和CLKX既可由外部设备提供,又可由内部时钟产生器提供;帧同步信号FSX和FSR的输入、输出极性可以进行选择;串口的信号发送和接收部分既可单独运行,又可合在一起配合工作;CPU中断信号和DMA同步信号使得Mc BSP串口可由CPU控制运行,也可脱离CPU通过直接内存存取单独运行;多通道选择部分使得串口具备了多通道信号通讯能力。 正是由于McBSP串口所特有的灵活性,使其可以满足T1/E1标准和AC97标准。它的多通道接收和发送能力可达128个通道,数据宽度可在8、12、16、20、24和32比特中任选,可进行A律和μ律压缩和扩展。8比特数据传送时可选择从高位或低位开始传送,帧同步信号和数据时钟信号的极性可编程,内部时钟和帧同步信号产生器也可由软件编程控制。 2.2 A/D和D/A电路 CS4228A多媒体数字信号编解码器(CODEC)在一个压缩的28针SSOP芯片上可提供两个模/数转换器和6个数/模转换器,并分别带有音量控制功能。CS4228A芯片具有功能较强、连接方便、控制容易的特点。该芯片与环绕声解码器相结合,成为DVD机、A/V功放接收器和汽车音响的理想芯片。它可支持杜比数码AC-3、AAC、DTS、杜比逻辑环绕声(Dolby Pro-Logic)、THX和MPEG等标准。一个灵活的串行接口允许使用Left Justified、Right Justified、I2S、或One Line Data 模式。采样率可达100kHz,具有可连接片外静音电路的静音控制引脚,片内具有抗混叠和输出平滑滤波器。 在本系统中,CS4228A采用主模式的工作方式。在工作过程中,LRCK管脚向DSP发出一个帧同步信号,而采样的数据信号将接着帧同步信号后由SDOUT管脚向DSP传送,从而完成采样的全过程。经过DSP处理的数据信号由BDX0管脚向CS4228A传送。CS4228A与DSP之间的主要接线如图2所示。 2.3 单片机部分 单片机主要完成两部分的工作,一是对CS4228A的操作,通过CCLK、CDIN、CS和RST管脚实现对它的初始化和工作模式的选择;另一就是对键盘和LED的控制,实现效果选择和参数显示。 3 软件设计 软件部分包括DSP编程和单片机编程。DSP编程的主要任务是完成音频信号的算法处理,单片机编程的重点则是管理DSP操作和应用层软件的编写。本系统若完全采用汇编语言进行编程,比较麻烦,而C语言以其灵活性和易移植性已经广泛应用在开发系统中。对于更复杂的系统更是如此。本系统采用了混合编程的方法。 这里主要介绍一下音频算法处理的实现。在进行算法研究时,先在PC机上用Matlab进行仿真,然后再移植到DSP平台中。考虑到效率问题,可进一步进行手工汇编的调整。在各种效果实现的过程中,延时不仅是一种最基本的输出效果,也是实现其它输出效果的基础,如混响效果、合唱效果、弗兰格效果,都离不开延时。 基本的延时有两种,其中一种是不带反馈的,其原理如图3所示,它只是对输入实现一次延时,能实现回声效果;另一种是带反馈控制的延时,它能实现声音的反复延时、重复播放,其原理如图4所示。还有一种特殊的延时,它的延时时间是可变的,可以在基本延时结构的基础上加一个低频振荡器(LFO)来实现。一般情况下,可以用正弦波或者三角波来实现。在合唱和弗兰格效果的实现过程中就要用到这种延时。其原理如图5所示。 目前,基于数字化的延时设备的应用已非常有效。实际上,数字延时设备的实现非常简单,只要有一定容量的内存,在每一个取样间隔将先前值从存储器的一个单元中读出来,然后将当前的输入值存储在另一个存储单元中(有时,这两个存储区域可能是同一个区域,所以在写入一个值前,必须首先将其中的值读出)即可。在下一个取样期间,读写存储区间的另一个区域,当到达存储器底部时,又将从第一个存储区域开始循环。编写一个延时程序一般会使用两个指针:一个读指针和一个写指针,用来记录从存储器读出的地址和写入存储器的地址。每进行一次操作指针就会自动加一。对于第一种不带反馈的延时,可用如下C程序实现: void delay() { int i,j,k; for (i=0;i<=delay_size;i++) { if (i>=delay) j=i-delay; //work out the buffer position else j=i-delay+delay_size+1; //add the delayed sample to the input sample s=input+delay_buffer[j]*decay; //store the result in the delay buffer,and output delay_buffer[i]=s; output=s; } } 混响也是一种比较常用且重要的效果,其实现比较复杂,要通过六个并联的梳状滤波器comb和一个全通滤波器allpass才能很好地实现。其实现过程如图6所示。4 CCS集成开发平台的应用 Code Composer Studio 简称CCS,是TI公司推出的为开发TMS320系列DSP软件的集成开发环境。CCS工作在Windows操作系统下,采用图形接口界面,提供有编辑工具和工程管理工具。CCS所集成的代码调试工具具有各种调试功能,包括原TI公司提供的C源代码调试器和模拟器所具有的全部功能,支持ASM编程、C语言编程以及ASM和C语言混合编程。能对TMS320系列DSP进行指令级的仿真和可视化的实时数据分析。CCS在调试和仿真时具有很强的功能:允许中断点、剖析点及探测点三种断点设置,分别实现程序断点、实时分析和数据导入等功能。此外,还提供丰富的输入/输出库函数和信号处理的库函数,极大地方便了TMS320系列DSP软件的开发过程。在程序编译时,设定不同的编译选项来控制优化目标,如使用-pm、-o3和内联函数等,其效果是显著的,计算速度可提高很多。 本文设计完成的的音频信号处理系统实现了音频的压缩、失真、均衡、延时、混响等效果,各种效果可以单独使用,也可以串接使用,都能达到预想的效果。把相同的电吉它信号分别输入ZOOM 505(日产电吉它音效器)系统和本系统,然后在时域与频域以及振幅与相位上对输出波形进行比较,可以看出最后的音色效果几乎一样。将它用于调音台或效果器等音频设备,具有广阔的市场前景。

评论


相关推荐

技术专区

关闭