实时数字音效处理.doc
《实时数字音效处理.doc》由会员分享,可在线阅读,更多相关《实时数字音效处理.doc(9页珍藏版)》请在冰豆网上搜索。
实时数字音效处理
第一章前言
由于各种模拟的音频信号可以数字化,人们可以很方便的对这些数字音频信号进行处理,以得到自己所需要的音效。
各种新型数字声音音源相继出现(如MP3,Mini-Disk,DVD)。
所有这些都为数字音频系统创造了崭新的需求。
随着DSP的普遍应用和数字信号处理技术的发展,对声音信号进行实时处理成为可能,DSP的速度越来越快以及各种快速算法的应用,在上面可以进行各种复杂的数字音效实时处理,如均衡,混响。
可应用于各种数字音频播放器的音频后处理,为五彩缤纷的音乐添加更多的色彩。
第二章硬件系统
1硬件系统框图
DSP
56F826
Audio
A/D
原始
音频信号
Audio
D/A
有音效的
音频信号
键盘
控制
液晶
显示
PCM
输入
PC
图1硬件系统框图
2硬件系统实现
为了灵活,方便快捷的开发本系统,整个系统全部在56F826EVM板上实现。
实时数字音效处理系统是一个典型的数字信号处理系统,外界模拟信号输入,经过模数变换转化成数字信号存储在数字系统中,经过快速DSP的实时处理后,送到数模变换器以模拟的形式输出,本系统的重点在于DSP对数字信号进行实时处理的算法和存储区的合理分配,因为56F826EVM板给我们提供了模拟输入输出接口,AD/DA变换器,外挂存储器,中断按键可以用来提供简单的控制功能,所以它为数字实时音效处理提供了一个比较完善,稳定的硬件系统。
1)MotorolaDSP56F826EVM开发板的介绍
DSP56F826是Motorola公司为了演示DSP56F826功能并且为用户提供一个硬件开发平台而做的一套开发系统,板上有DSP56F826,16位StereoCodec,片外内存和可扩展端口。
56F826可以在80Mhz下工作,运算速度可以达到40MIPS,使音效的实时处理成为可能,外挂存取时间为10ns的静态存储器,配置成16K×16bit的程序存储区和16K×16bit的数据存储区,DSP在70Mhz下可以对外部存储器进行零等待存取。
而音效处理需要大量的滤波,卷积运算,需要延时,很多中间结果需要保存,必须有巨大的存储量,经过预测和实际设计的检验,56F826EVM提供了足够大的存储量。
1M串行EEPROM,DSP可以通过SPI访问,可以在EEPROM里预先存入音频或者语音信号,给设计带来多样化。
如上所述,DSP56F826为音频信号处理提供了一个很好的开发平台,下面对和系统关系密切的硬件进行详细说明:
l外部程序和数据存储区
评估板上的外部数据和程序存储区由一块芯片GS72116组成,它是128K×16bit的快速静态存储器,它的物理区域分成两块64K×16bit的逻辑区域,如下图所示,逻辑分区是通过程序存储区访问信号PS和存储器地址线A0实现的,DSP工作在70Mhz频率下能0等待存取外部存储器的数据,工作在80Mhz频率下时必须有四个等待的时间,跳线JG3连通时存储器有效,由于本系统要用到外部数据存储区,所以JG3一直是连着的。
l时钟源
将JG4的2和3相连,JG5的1和2相连,DSP的时钟由4M的晶体提供,为了达到80M的最高工作频率,56F826通过它的PLL将输入的4M频率放大20倍即可,设置PLL里的寄存器就可以达到目的,同时考虑到访问外部存储器的零等待,只能将工作频率设置在68M(小于70M),将输入4M频率放大17倍。
图二外部程序和数据存储器
l数字专用AD/DA(StereoCodec)
16位立体声Codec,CS4218和DSP56F826的SSI端口相连,支持音频,语音和信号分析处理,评估板上有一个12.288MHz的晶振和Codec相连,这样Codec的抽样频率能在8KHz和48Khz中进行选择,数字音效处理进行的是高保真的音效处理,所以我们选择的抽样频率为48KHz,通过设置三个拨动开关到相应的位置即可。
l模拟输入输出
评估板上有立体声线路输入,线路输出,立体声耳机输出。
图三模拟输入输出部分
l数字接口
DSP和Codec通讯是通过SSI接口实现,SSI与Codec的连接如图四,DSP上的STD管脚是用来输出串行数据到Codec上到,SRD是输入端口,接收CS4218送来的串行数据,分别和CS4218的串行输入和输出管脚SDIN,SDOUT相连。
STCK是串行传送时钟,管脚提供传送数据的波特率。
STFS提供串行数据通讯的侦同步。
图四DSP56F826与CS4218的连接
DSP56F826的通用IO端口D的PD1,PD2,PD3用来对CS4218的工作方式进行编程。
虽然说数字音效涉及到复杂的数字信号处理运算,DSP56F826的40MIPS的运算能力为音效处理提供足够的速度,足够的片内内存和扩展内存为音效处理提供足够大的缓冲,以及快速算法的利用使实时音效处理成为可能。
第三章软件流程
1.在56F826上实现音效处理的流程图
开始
系统初始化:
设置DSP工作频率,工作模式等环境变量
硬件初试化:
包括CODEC的工作方式,SSI的各个参数及中断优先权,开SSI发送接收中断
对音频输入缓冲区的一帧数据进行处理,将结果输出到音频输出缓冲区中
等待:
缓冲区完成接收由中断程序送来的一帧数据
将SSI中接收寄存器的数据写入到接收数据指针所指向的音频输入缓冲区的某个位置,修改接收数据指针并保存
中断程序入口
保存中断程序用到的寄存器
恢复寄存器的值退出中断服务程序
主程序接收数据中断程序
注:
发送数据中断程序流程图同接收数据中断程序
2.系统实现
Codec每次向传送一个16bit的采样数据以后,将引发DSP56F826的SSI接受中断,DSP把接受到的数据存入到系统的输入缓存里,同时对已经存入缓存的音频数据进行各自处理,经过一些变换存入到系统的输出缓冲,而DSP56F826的SSI输出中断程序会定时执行从输出缓存里取数,经过Codec以模拟的方式输出。
数字音效实时处理得以实现。
第四章算法实现
1 混响效果(Reverberation)
生活中有很多混响的例子:
音乐厅、办公室、狭窄小道中的歌声,或者山涧中的欢笑声,都可以听到从各个方向反射来的混响声。
混响声使原声变得更富有表现力,尤其是音乐。
没有混响的音乐会缺乏活力,显得干涩;但是如果混响加的不好,又会使整个乐曲显得杂乱无章。
我们采用的数字混响应用模拟混响的原理,用以增强原音的感染力。
适当的运用混响信号还能造成音乐在方位上的不同感受。
首先,混响音必须发生在原音奏响的一段时间之后,因为人耳对时间间隔在30ms甚至50ms以上两个信号才能分辨出来。
其次,要选择合适的参数,太多的和不合适的混响将毁坏原音的创造力和效果。
我们的混响器参考了Schroeder混响器的设计方案,是由IIR梳状滤波器并联后再级联全通滤波器的一类混响器结构。
下面就是其实现方案:
1、第一级由4个并联的IIR梳状滤波器构成,每一个滤波器的延迟时间和反馈增益a都是不一样的;第二、第三级是结构相同的全通滤波器。
它的结构框图为:
Z-D1
Z-D2
Z-D3
Z-D4
Z-D5
-1
a5
Z-D6
-1
a6
x(n)
y(n)
a1
a2
a3
a4
a7
图3一种自然混响效果结构图
它对应的传输函数为:
2、另外一种实现方案同样也是先用4个IIR梳状滤波器并联,再串联两个结构相同的全通滤波器构成,在具体的滤波器形式上,第二种方案与第一种有所不同,下面就是这种混响器的结构框图:
Z-D1
b1
a1
Z-D2
b2
a2
Z-D3
b3
a3
Z-D4
b4
a4
Z-D5
b5
a5
Z-D6
b6
a6
x(n)
y(n)
图4另一种Schroeder混响器结构
它对应的传输函数为:
我们将至少采用其中的一种结构,通过适当的选取参数(形成几组可选的参数,造成不同的效果),形成一种或多种混响声音效果。
2 合唱效果(Chorusing)
合唱效果同FIR混响器结构很相似,如下图所示。
所不同的是,它的延迟时间函数dk(n)是随时间变化而随机变化的低频信号。
在dk(n)的选取上,我们需要合理的构造。
首先,这个低频信号必须是平滑无幅度跳变的;其次,要考虑“合唱者”的数量。
因此,我们打算采用用相位随机、幅度随机和频率随机的几个正弦信号叠加的方式构造出这个低频随机信号;同时,鉴于其同于混响的性质,不能运用太多的“合唱者”,因此初步认为最多可以3-4人。
如果要想达到10人以上的合唱效果,就得加入改变音色、声音频率等的时变函数。
d1(n)
d2(n)
dm(n)
x(n)
y(n)
a1
a2
am
图5Chorus效果结构框图
传输方程为:
对于合唱效果,我们将至少实现3人左右的合唱效果,通过对m的选择来达到“合唱者”人数控制的目的。
在时间延时的选取上,一方面要保证60-70ms的延时,另一方面要保证其低频且无幅度突变的性质。
3 数字均衡或超重低音效果
多段均衡器是声音设备中常用的一种音效处理技术,目的是对某一频段内的信号进行增强或衰减,以改善输出频响特性,提高听觉效果。
多段均衡器的实现原理:
顾名思义,“多段”即将音频20Hz—20kHz的频率范围按照某种规则划分为多个频段。
“均衡”即对各频段的信号进行增益调整,使其达到某种听觉平衡。
实现框图如下所示:
H1(z)
HN(z)
H2(z)
x(n)
y(n)
G1(n)
G2(n)
GN(n)
图8均衡器实现框图
其中,HN为第N个频段的滤波器系统函数,GN是第N个频段的信号增益调解量。
总的系统函数为:
本设计的关键是设计满足一定指标要求的各个滤波器,构成一个覆盖整个音频频段的滤波器组,在增益为0dB时,总的系统频率响应尽可能的平坦。
很多音响设备都具有的超重低音效果,实际上就是一种简单的均衡器。
它把频段一共划分为了两段:
120Hz或者100Hz以下的低频段和其余的中高频段。
设计上可以考虑用一个高通滤波器和一个低通滤波器,使之达到尽可能的平坦,通过对低频段增益的增强控制来达到超重低音的效果。
我们至少将完成超重低音的效果,如果有可能,将做出一个完整的均衡器。