文献标识码:A
文章编号: 0258-7998(2013)06-0121-03
采样率转换技术在数字语音信号处理中应用十分广泛,例如在混音操作时,要求各个音频信号具有相同的采样频率,因此必须在混音前进行音频信号采样率转换SRC(Sample Rate Conversion)。常用的音频信号采样率有32 kHz、44.1 kHz、48 kHz和96 kHz。当采样率转换进行非整数倍转换时(如44.1 kHz转换为48 kHz),就会出现噪声,而噪声的大小是由转换器本身以及算法的优劣来决定的。采用通用多相滤波器直接进行采样率转换时会占用大量的硬件资源,而采用Farrow结构滤波器就可以避免硬件资源浪费。Farrow结构滤波器是一种基于分段多项式脉冲响应且可以实现任意采样率转换的高效硬件结构,以内插、多项式滤波和抽取操作级联的方式来实现任意因子的采样率转换。
式中,P为级联多项式的长度,N为分段多项式的阶数,cl(n)为分段多项式滤波系数,vl(m)为中间变量。由上式可知,根据输入和输出采样率(即1/T1、1/T2)便可计算出该滤波器的多项式的系数。为进一步减少硬件乘法器的数目,对Farrow结构滤波器进行改进设计[2-4],如图1所示。由于该滤波器独特的对称性特点,可以减少50%的滤波系数,实现了硬件的精简。
1.2 音频信号异步采样率转换
通用音频信号异步采样率转换IPCore除核心部分的Farrow结构滤波器之外,还包括自动采样率检测、控制模块和输出FIFO模块,采用硬件描述语言Verilog实现音频信号异步采样率转换IP Core的硬件框图如图2所示。其中Farrow结构滤波器采用上述改进型设计方式,其分段多项式长度P为8,分段多项式最高阶数N为3,主时钟clk频率为3.072 MHz或2.822 4 MHz(根据输入或输出采样率是否为44.1 kHz而定)。自动采样率检测及控制模块通过高速时钟clk对输入采样时钟clk_in和输出采样时钟clk_out的周期(即T1和T2)进行计数,完成内插因子和抽取因子及其相关的计算[5],同时计算出μm,提供给Farrow结构滤波器模块。
2 对IP Core的联合仿真及验证
2.1仿真验证平台
在对Farrow滤波器算法IP的设计验证过程中,利用Simulink和ModelSim的综合优势进行多工具联合仿真,将有助于加快算法原型的实现。
传统的Simulink和ModelSim联合仿真方法主要有两种: (1)通过文件读写交互方式;(2)ModelSim中通过FLI(Foreign Language Interface)[6]或DPI(Direct Programming Interface)调用 Matlab引擎库函数的方式。这两种方式存在实现难度大、仿真效率较低、灵活性较差的问题。新版本的Simulink中所带有的EDA Simulator Link[7]提供了其与ModelSim仿真工具进行快速、双向联合仿真的接口,是对FPGA 和ASIC的硬件设计流程进行无缝连结联合仿真的接口扩展模块,由于具有组件建模和可视化等优点,因此,可快速有效地进行算法与架构间的评估及设计验证。
Simulink模型库中的EDA Simulator Link通过服务器/客户端的架构与ModelSim仿真器进行双向联合仿真时,ModelSim为服务器,而Simulink为客户端。EDA Simulator Link提供HDL Cosimulation模块,将待验证的HDL IP模块在Simulink验证平台中实例化,通过图形化界面设置两者之间的对应关系。其中仿真激励可以由Simulink工具箱提供的各种信源模块库所构成的子系统(Subsystem)产生,也可由其他的HDL Cosimulation模块产生,实现对算法IP的验证测试平台如图3所示。
2.2 联合仿真的实现
利用EDA Simulator Link及Simulink工具箱,对HDL实现的Farrow结构滤波器算法IP进行仿真设计。其中仿真激励为50 Hz~7 kHz的音频正弦波信号或真实的语音信号;系统时钟控制模块clk_gen为IP Core提供时钟信号;Farrow_matlab_model模块是在Simulink中搭建的Farrow滤波器的参考模型。整个平台中任何模块(包括HDL Cosimulation模块)的内部信号均可输出至VCD格式的波形文件中,再利用ModelSim的vcd2wlf命令将。VCD文件转换成.WLF文件,以便在ModelSim中查看其时序波形。
具体的联合仿真流程如下:
(1)启动Matlab,搭建Simulink的验证平台,通过Simulink模型库中的HDL Cosimulation block设置与 HDL模块的映射关系。
(2)启动ModelSim,编译HDL实现的算法IP。
(3)在ModelSim中用vsimulink命令启动ModelSim服务器,建立联合仿真。如:vsimulink work.farrow_core-socket 5002。
(4)在Simulink中启动仿真。
(5)仿真结束,查看结果,评估算法IP。
2.3 仿真结果及分析
图4、图5是输入激励信号为2 kHz的正弦波,采样率从32 kHz转换到48 kHz时的仿真结果。
通过对仿真结果进行分析发现,Farrow结构滤波输出的噪声信号被抑制到-90 dB以下。对真实语音信号的异步采样率转换输出进行了客观评价,其清晰度及自然度与原语音信号无明显差别。
本文给出利用Simulink和ModelSim实现的联合仿真实例,验证了HDL实现的音频采样率转换IP具有极小的相位延迟,功能正确、性能良好,完全满足通用的音频信号采样率转换要求。此联合仿真平台结合多种EDA仿真工具的优势,大大减少了验证代码的复杂度,缩短了IP开发设计及验证周期。与传统的HDL算法IP验证平台相比,在数据可视化、数据计算分析和交互式环境等方面都具有不可比拟的优势。
参考文献
[1] SINGH N. Implementation of farrow structure-based interpolator using cubic polynomial approximation[J]. Interational Journal of VLSI and Signal Processing Applications, 2011(1):70-73.
[2] PUN C K S. On the design and efficient implementation of farrow structure[C]. IEEE Signal Processing Letters, 2003.
[3] VESMA J, SARAMAKI T. Design and properties of polynomial-based fractional delay filters[J]. IEEE International Symposium on Circuits and Systems, 2000(3):104-107.
[4] 邓军,杨银堂.一种基于并行处理技术的插值滤波算法及其FPGA实现[J].微电子学与计算机,2010(11):82-85.
[5] PALNITKAR S.Verilog HDL 数字设计与综合(第2 版)[M].夏宇闻,等译.北京:电子工业出版社, 2007.
[6] 胡军强.基于Modelsim FLI接口的FPGA仿真技术[J].电子技术应用,2002,28(7):75-77.
[7] EDA Simulator Link user’s guide 2011b[R]. The MathWorks, Inc., 2011.