一种基于FPGA的MLSA合成滤波器的制作方法

文档序号:11989442阅读:480来源:国知局
一种基于FPGA的MLSA合成滤波器的制作方法与工艺
本实用新型嵌入式语音合成应用领域,具体涉及基于FPGA的MLSA合成滤波器。
背景技术
:随着数字集成电路的发展,越来越多的模拟电路逐渐被数字电路取代,同时数字电路本身也在不断进行更新换代。随着微电子技术的发展,人们希望设计的专用集成电路(ApplicatioSpecificIntegratedCircuit,ASIC)周期更短,专用性更强,因而出现了可编程逻辑器件,其中应用最广泛的即是FPGA。随着可编程逻辑器件工艺和开发日新月异的发展,FPGA技术与ASIC、DSP及CPU技术不断融合,FPGA器件中已经成功以硬核的形式嵌入ASIC、PowerPC处理器、ARM处理器,以HDL的形式嵌入越来越多的标准数字处理单元,如MicroBlaze处理器、Nios及NiosⅡ处理器等。新技术的发展实现了软硬件设计的完美结合,使得可编程逻辑器件超越了传统意义的FPGA概念;并以此发展形成现在流行的可编程系统级(SystemonaProgrammableChip,SOPC)设计技术,其应用领域扩展到了系统级,涵盖了实时数字信号处理技术、复杂计算等,以及嵌入式系统设计技术。数字滤波器通常定义为通过对数字信号的运算处理,改变信号频谱,完成滤波作用的算法或装置,MLSA(MelLogSpectralApproximation)滤波器就是其中的一种。MLSA滤波器是一种合成滤波器,由于此合成滤波器近似于由梅尔倒谱系数给出的指数传递函数,所以它可以从获得的梅尔倒谱系数直接合成出语音,同时还保证了语音发声的稳定性。此算法主要运用于语音合成的后端处理,而且主要在PC机上运行。但是现在还没有一种利用软核的形式来实现MLSA滤波器的功能。技术实现要素:针对上述存在的技术问题,本实用新型提供了一种基于FPGA的MLSA合成滤波器,此装置不仅可以进行复杂的数据计算,实现语音的合成,同时还实现了便携化,克服了DSP运行速度相对缓慢和传统可编程逻辑器件复杂算法难以实现的缺点,使得灵活、高速的滤波算法简单易行。一种基于FPGA的MLSA合成滤波器,包括FPGA芯片,SD卡存储器,FLASH存储器,SRAM存储器,SDRAM存储器,音频芯片;所述FPGA芯片包括NiosⅡ软核处理器、Avalon总线交换结构、SPI总线控制器、SDRAM控制器、SRAM控制器、定时器、JTAG调试模块、Avalon三态桥、数字音频接口I/O接口、音频控制器和FLASH控制器;所述NiosⅡ软核处理器通过Avalon总线交换结构连接所述SPI总线控制器、SDRAM控制器、SRAM控制器、定时器、JTAG调试模块、Avalon三态桥、数字音频接口I/O端口、音频控制器,所述Avalon三态桥与FLASH控制器相连,FLASH控制器与FLASH存储器相连,所述SDRAM控制器与SDRAM存储器相连,SRAM控制器与SRAM存储器相连,SPI总线控制器与SD卡存储器相连,数字音频接口I/O端口和音频控制器与音频芯片相连;所述SD卡存储器中存储有Mel倒谱序列和基频F0序列,所述NiosⅡ软核处理器包括Mel倒谱数据缓存器、F0序列数据缓存器、滤波参数校正模块、激励信号发生模块和MLSA滤波器模块;所述Mel倒谱和F0序列数据缓存器分别于SPI总线控制器相连。进一步的,所述音频芯片连接有外置的音箱。进一步的,所述NiosⅡ软核处理器为“NiosⅡ/f(快速)”类型。本实用新型MLSA合成滤波器在FPGA中实现,通过FPGA内部的NiosⅡ软核处理器来处理复杂的数据计算。NiosⅡ软核处理器首先通过SPI总线控制器从SD卡存储器中读取mel倒谱序列和基频F0序列,存入缓存器SDRAM中,然后分两部分进行处理,一部分从缓存器中读取Mel倒谱序列送入到滤波参数校正器,得到的处理数据送入MLSA合成滤波器,对滤波器进行调整;另一部分从缓存器中读取基频F0,通过激励信号发生器,得到的数据送入MLSA合成滤波器;最后,通过MLSA合成滤波器模块合成出语音数据,并且通过音频芯片输出语音。FPGA实现了大数据的快速处理,并且实现了装置的便携化,可移动性,不再仅局限于在计算机上实现数据的处理和仿真;此合成滤波器合成相同质量的语音,不仅需要的数据率很低,而且合成的语音流畅。附图说明为了更清楚地说明本实用新型实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实用新型的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为一种基于FPGA的MLSA合成滤波器的模块示意图;图2为基于FPGA的MLSA合成滤波器处理步骤示意图;图3为表示MLSA滤波器的方框图;图4表示MLSA滤波器的另一方框图。具体实施方式本实用新型提供了一种基于FPGA(可编程门阵列,FieldProgrammableGateArray)的MLSA(MelLogSpectralApproximation)合成滤波器,主要利用FPGA的嵌入式NiosⅡ软核来实现滤波器功能,根据FPGA技术的特点和数字滤波器的性能本文设计了一种基于FPGA的MLSA合成滤波器,此设计克服了DSP运行速度相对缓慢和传统可编程逻辑器件复杂算法难以实现的缺点,使得灵活、高速的滤波算法简单易行。下面将结合本实用新型中的附图,对本实用新型中的技术方案进行清楚、完整地描述,显然,所描述的仅仅是本实用新型一部分实施例,而不是全部的实施例。基于本实用新型中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本实用新型保护的范围。参见图1所示,本实用新型公开了一种基于FPGA的MLSA合成滤波器,包括FPGA芯片,SD卡存储器,FLASH存储器,SRAM存储器,SDRAM存储器,音频芯片;所述FPGA芯片包括NiosⅡ软核处理器、Avalon总线交换结构、SPI总线控制器、SDRAM控制器、SRAM控制器、定时器、JTAG调试模块、Avalon三态桥、数字音频接口I/O接口、音频控制器和FLASH控制器;所述NiosⅡ软核处理器通过Avalon总线交换结构连接所述SPI总线控制器、SDRAM控制器、SRAM控制器、定时器、JTAG调试模块、Avalon三态桥、数字音频接口I/O端口、音频控制器,所述Avalon三态桥与FLASH控制器相连,FLASH控制器与FLASH存储器相连,所述SDRAM控制器与SDRAM存储器相连,SRAM控制器与SRAM存储器相连,SPI总线控制器与SD卡存储器相连,数字音频接口I/O端口和音频控制器与音频芯片相连;所述SD卡存储器中存储有Mel倒谱序列和基频F0序列,所述NiosⅡ软核处理器包括Mel倒谱数据缓存器、F0序列数据缓存器、滤波参数校正模块、激励信号发生模块和MLSA滤波器模块;所述Mel倒谱和F0序列数据缓存器分别于SPI总线控制器相连。在本实施例中,所述音频芯片连接有外置的音箱。在本实施例中,所述NiosⅡ软核处理器为“NiosⅡ/f(快速)”类型。。参见图2所示,本实用新型MLSA合成滤波器利用FPGA内嵌的NiosⅡ软核处理器,通过Avalon交换总线控制各个设备。首先,NiosⅡ软核处理器通过Avalon交换总线来控制SPI总线控制器,进而将存储于SD卡存储器中的Mel倒谱序列和基频F0序列调出,然后通过对SDRAM控制器的调节将调出的数据序列存入到SDRAM存储器中,对调出的数据做缓存处理。对缓存的数据逐帧的进行调出,分两部分进行:一部分调出Mel倒谱序列,将Mel倒谱序列送入滤波参数校正器,对滤波器参数进行调整;另一部分调出基频F0序列,将基频F0送入激励信号发生器,从而产生激励信号;通过调整过后的滤波参数和激励信号分别送入MLSA合成滤波器,最后合成出语音数据,让合成的语音数据通过数字音频接口I/O端口送入音频芯片(WM8731)进行解码,最终让数字信号转换成模拟信号,通过音箱播放出来。NiosⅡ软核处理器是FPGA的嵌入式处理器,首先在QuartusⅡ环境下通过Qsys系统对NiosⅡ软核处理器进行配置。通过性能的比较,此处选择“NiosⅡ/f(快速)”类型,因其具有最高的系统性能和中等的FPGA使用量。然后在Qsys系统下对NiosⅡ系统进行配置:添加时钟信号clk核,设置为50MHz;添加并配置处理器NiosⅡProcessors;添加控制器SDRAMController模块,目的是为控制SDRAM存储器;添加音频控制器和SPI控制器IP核;指定复位和异常处理向量;添加和配置两个定时器模块,一个用于系统级的事务处理,一个用于用户应用程序;添加核配置PIO模块,主要是为数字音频接口做准备,外接音频芯片(WM8731);添加JTAGUART模块,此模块在系统运行调试时可以作为与NiosⅡ开发环境的互动接口,可以输出程序运行的打印信息,也可以接收NiosⅡ开发环境的输入信号。添加系统SystemID模块,为NiosⅡ系统添加系统ID作为NiosⅡ系统的标识;调整寄存器基址和中断请求;最后生成HDL文件和信息文件,NiosⅡ系统配置完成。SD卡存储器的读写操作,SD卡是一种嵌入式应用的外部大容量存储器。SD卡支持两种操作模式,SD模式和SPI(串行外设接口)模式。本文中选择SPI模式,SD卡有四个端口,mosi(表示主设备输出,从设备输入)、miso(表示主设备输入,从设备输出)、sclk(时钟信号)、ss(表示从设备的低电平有效的片选输入)。在SPI模式中,SD卡充当从设备,SPI控制器发布命令。接收到命令后,SD卡会回应一个响应帧。对于读和写操作,它连续传送数据令牌和批量数据。SD卡传送数据是以块为单位,FPGA的NiosⅡ处理器作为主设备通过SPI控制器来控制SD卡,发送一个块读取命令或块写命令来启动数据传输。读操作,主设备发送CMD17命令,SD卡使用有效的R1响应(0x00)给予确认,然后传送数据包;写操作,主设备发送CMD24命令,接收到有效的R1回应(0x00)之后,主设备传送一个数据包。基本的SD卡命令SDRAM存储器的读写操作:SDRAM是同步动态随机访问存储器,在FPGA芯片中,外部的SDRAM存储器是被SDRAM控制器通过AvalonMM总线控制的。一个SDRAM控制器是通过AvalonMM来访问外接SDRAM芯片的,它按照芯片的时序要求产生合适的控制信号,利用地址存放数据和读取数据。在Avalon框架中,SDRAM控制器可以被配置成一个Qsys组件,含有一个AvalonMM从设备接口、一个系统时钟的时钟输入接口和一个连接SDRAM芯片的I/O引脚的导管接口。读操作,首先SDRAM控制器发布一个激活命令,将行地址输出到addr(地址寄存器)上,初始化读操作。SDRAM激活这一行,检索整行的数据,并将其存入数据锁存器。在下一时刻发布一个read命令,将列地址传到addr(地址寄存器)上。SDRAM使能列多路选择器,把选择的数据发送到输出地址。最后缓存器上的数据变成有效,SDRAM控制器读取数据。写操作,SDRAM控制器发布一个激活命令,将行地址输出到addr(地址寄存器)上,初始化写操作。SDRAM激活这一行,获取整行的数据,并将其存入数据锁存器。在下一时刻发布一个write命令,将列地址传到addr(地址寄存器)上,将数据放在缓存器总线上。SDRAM检索数据,使能列译码器,在选择的锁存器位置上写入数据,然后将整行的数据写回指定的行。音频芯片(WM8731)控制:WM8731音频芯片通过控制接口进行配置,此处控制接口选用两线I2C总线协议进行控制。I2C总线包括双向线路sda(表示串行数据)和scl(表示串行时钟),分别用于数据和时钟控制。两条线分别连接到WM8731音频芯片的sdin和sclk引脚。最后通过I2C总线将合成的数字信号传输到音频芯片,转换成模拟信号并通过音箱播放出来。滤波参数校正器:通过输入的Mel倒谱系数根据下列的算法得出滤波器的参数,转换公式为b(m)=c(m)m=Mc(m)-αb(m+1),0≤m<M---(1)]]>c(m)为Mel倒谱系数,b(m)为转换后的滤波器系数。本算法是以C语言的形式实现。激励信号发生器:对输入的基频F0数据通过激励信号发生器后产生一系列的激励,产生的激励信号送入MLSA合成滤波器,产生出语音信号序列。MLSA滤波器的算法处理:为了从得到的梅尔倒谱系数重新合成语音,需要实现指数传输函数D(z)。虽然该传递函数D(z)不是一个有理的函数,但是MLSA(梅尔对数频谱逼近)滤波器可以使D(z)近似到足够的精度。复指数函数expω是由有理函数逼近得到的例如,如果我们选择AL,l(l=0,1,2···L)取AL,l=1l!Ll/2Ll---(3)]]>则当ω=0时,(3)是expω的[L/L]Pade逼近。然而D(z)是通过下式逼近的其中F(z)为下式表示F(z)=z~Tc1=Σm=0Mc1(m)z~-m---(5)]]>它表明当AL,l(l=0,1,2···L)是定值的时候,c1(m)是可变的。为了去除F(z)的自由延迟回环,(5)式改为下式F(z)=z~Tc1=z~TAA-1c1=ΦTb=Σm=1Mb(m)Φm(z)---(6)]]>其中A和A-1用下式表示矢量Φ由下式给出Φ=A-1z~=[1,Φ1(z),Φ2(z),...,ΦM(z)]T---(9)]]>其中Φm(z)=(1-α2)z-11-αz-1z~-(m-1),m≥1---(10)]]>系数b可以从c1中通过下式转换得到b=ATc1=[0,b(1),...,b(M)]T---(11)]]>上式(11)的矩阵运算可以由下式的递归算法替代b(m)=c1(m)m=Mc1(m)-αb(m+1),0≤m<M---(12)]]>由于下式的约束,b的第一个元素等于0,αTc1=0(13)在时刻0时,F(z)冲击响应的值为0,也即是F(z)没有自由延时回环。图3和图4为表示MLSA滤波器的方框图。由于传递函数F(z)没有自由延迟路径,所以RL(F(z))也没有自由延迟回环,这表明RL(F(z))可行的。(a)基本滤波器结构F(z)(M=3)(b)指数传递函数D(z)的实现(a)(b)本MLSA合成滤波器是以EP4CE115开发板为实例说明,在FPGA中嵌入NiosⅡ软核处理器来实现信号的合成滤波。但如果以MicroBlaze为嵌入式的软核形式实现也受到保护。数据是从SD卡中读取的,如果换成其他的存储器如FLASH、CF卡、硬盘、NANDHash等形式也受保护。以上内容是结合具体的优选实施方式对本实用新型所作的进一步详细说明,不能认定本实用新型的具体实施只局限于这些说明。对于本实用新型所属
技术领域
的普通技术人员来说,在不脱离本实用新型构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本实用新型的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1