《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 基于DSP的数字效果器的研究

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

2008-10-14
作者:游林儒 李 慧 方昌始

    摘  要: 提出了一种基于TMS320VC5402 DSP的音频信号" title="音频信号">音频信号处理系统。介绍了该系统的总体方案和硬软件设计,并对音频信号的处理算法进行了论述。实际使用证明,所述的基于 DSP的硬件和软件系统是一个很好的音频信号采集与处理系统。 

    关键词: 音频信号  音频效果  数字信号处理 

 

    在调音台和各种音响设备上,效果器是一种不可缺少的设备。有了效果器,才有了声音的千变万化。高质量的效果器能达到令人满意的效果,使人有身临其境的感觉。现在效果器上的效果种类越来越多,有的多达几十种。实际上从声学原理考虑,一共只有五种基本效果: 

    (1)延时/延迟类(包括延时、延迟、混响" title="混响">混响、残响等), 

    (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月推出的性价比较高的定点数字信号处理器,主要特点如下: 

    ·具有先进的多总线结构,三条16位数据存储器总线,一条程序存储器总线和四条地址总线; 

    ·操作速率达100MIPS; 

    ·40位算术逻辑单元(ALU),包括一个40位桶形移位器和两个40位累加器; 

    ·一个17×17乘法器和一个40位专用加法器,允许16位带/不带符号的乘法; 

    ·整和维特比加速器,用于提高维特比编译码的速度; 

    ·8个辅助寄存器及一个软件栈,允许使用最先进的定点DSP、C语言编译器; 

    ·数据/程序寻址空间为1M×16位,内置4K×16位ROM和16K×16位RAM; 

    ·内置可编程等待状态发生器、锁相环(PLL)时钟产生器、两个多通道" title="多通道">多通道缓冲串行口、一个8位与外部处理器通信的HPI口、两个16位定时器以及6通道DMA控制器; 

    ·低功耗,工作电源为3V和1.8V(内核)。 

    DSP通过其McBSP口与CS4228A相连。McBSP串口" title="串口">串口是在TDM串口和BSP串口的基础上发展而来的。它既可以实现时分多路通讯功能,又可以通过DSP提供的DMA功能实现不用CPU参与的自动缓存功能,从而把 DSP从繁重的串口通讯中解放出来,提高了运行的效率。McBSP串口由数据接收发送部分、时钟及帧同步" title="帧同步">帧同步信号产生器、多通道选择以及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(日产电吉它音效器)系统和本系统,然后在时域与频域以及振幅与相位上对输出波形进行比较,可以看出最后的音色效果几乎一样。将它用于调音台或效果器等音频设备,具有广阔的市场前景。 

参考文献 

1 TMS320VC5402 FixedPoint Signal Processor.TI Technology Document Sprs079e, 2000.8 

2 彭振哲.使用TMS320C542构成数据采集处理系统.电子技术应用, 2000;26(9)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。