杨 磊,刘美枝,高 海
(山西大同大学物理与电子科学学院,山西大同037009)
在复杂环境下传感器采集的信号包含大量干扰信息,如果设计能够应用于高速高精度测控系统的滤波器,可以有效滤除原始数据中的干扰信号,提取目标信号,为系统的实时分析和处理提供重要保证。
在现场测控系统中,传感器的采样频段范围往往较宽,目标信号的频率可能存在于某段范围较窄的频率段内。如果滤波器的频段范围设计成传感器的采样频段范围,不能有效去除干扰信号。所以设计多通道滤波器分频段滤波,可以提高提取目标信号的精度。当目标信号属于高频信号时,传统的单片机等微处理器无法满足高频信号处理的要求,而FPGA(Field Programmable Gate Array)做为专用集成电路(ASIC)领域中的半定制电路,可根据用户需求自行设计电路模块。不同级别的FPGA芯片拥有的I/O引脚资源数和大规模现场可编程逻辑门阵列不尽相同,内置的硬件乘法器模块使其具有强大的高速数据并行处理能力[1]。处理高频信号时,外部晶振频率利用锁相环(PLL)最大可倍频到几G赫兹供给系统做为主时钟频率,使信号处理速度达到ps级别。
本文设计了基于FPGA的多通道并行滤波器。在MATLAB的Simulink中建立数据采集和多通道并行滤波的系统仿真模型,验证各不同频段滤波器的性能,利用FDATool滤波器设计与分析工具箱设计不同频段的带通滤波器,通过Generate HDL功能模块生成可直接在Altera公司的Quartus II软件中进行综合的Verilog HDL硬件描述语言,最终经过编译综合下载到FPGA电路板运行测试,其性能稳定具有很强的可移植性和扩展性。
基于FPGA的多通道滤波器测控系统,对机械碰撞产生的突发型声发射信号进行滤波处理,声发射信号波形为典型的脉冲式波形,峰值在极短时间内迅速增大并立刻衰减。由于机械加工现场环境复杂,大量噪声等干扰信号混合在传感器采集到的原始数据中,不同的加工部件发出的声发射信号覆盖了从次声波到超声波的频段范围。针对滤波信号频率变化范围大,涉及高频信号处理领域,本文设计一种适合不同频段范围的、可实现多通道并行滤波的带通滤波器[2]。
Buttre worth带通滤波器是一种无限脉冲响应滤波器,通频带频率响应曲线平滑,幅频特性精度高,生成Verilog HDL综合后占用FPGA逻辑单元少、延时短。FDATool设计的10 Khz到110 Khz滤波频段的Buttre worth带通滤波器如图1所示。
图1 Buttre worth带通滤波器
Simulink是MATLAB的建模仿真工具,在线性系统和非线性系统采用框图设计建立动态模型[3]。Simulink具有与第三方软件和硬件直接对接的交互接口,在工具箱模块库中选择多通道滤波器所需的各种模块绘制系统的仿真框图,无需编写复杂的程序代码和了解模块内部工作原理,直接对各模块进行参数化设置。
Simulink设计的四通道Buttre worth带通滤波器仿真模型如图2所示。
图2 四通道Buttre worth带通滤波器仿真模型
图2中,首先从Simulink的File/Import Data选项中添加传感器采集的txt格式的声发射信号,在work⁃space窗口将导入的txt数据保存成mat文件格式,然后编写采样模块M代码封装到Fcn模块中,利用图形化模块建模方法设计四个Buttre worth带通滤波器,滤波频段分别为10~110 Khz、500~600 Khz、800~900 Khz和1~10 Mhz。将四频段滤波后的信号分别输入到以M代码封装的信号分析处理模块,进行后续的信号分析处理。经过Simulink建模实现了四通道Buttre worth带通滤波器仿真模型,比较不同频段的滤波效果存在显著差异,说明传感器采集的原始数据中包含的目标信号只存在某一较窄的频段范围。采用多通道并行滤波可选择出最理想的滤波器频段,提高信号处理的精度。
Verilog HDL是一种用于FPGA开发设计的硬件描述语言,通过FDATool设计不同频段范围的Buttre worth带通滤波器,其Generate HDL功能可直接与第三方FPGA开发工具Quartus II连接,转换成能够在Quartus II进行编译综合的Verilog HDL代码。
通过自顶向下的方法在Quartus II中设计存储器ROM。首先通过MATLAB将存放在txt文件中的机械加工时产生的声发射信号转换成mif格式,再利用Quartus II自带的ROM IP核把mif格式存储的声发射信号导入到设计的ROM中,做为FPGA设计综合仿真时数据模块。采用Verilog HDL硬件描述语言设计ROM读写时序控制单元,将从ROM中读出的含有噪声等干扰信息的声发射信号输入到But⁃tre worth带通滤波器模块的输入端口,经过滤波后从输出端口得到精确的声发射信号。采用FPGA的时序仿真软件Medelsim对Buttre worth带通滤波器进行时序仿真如图3所示。
图3 Buttre worth带通滤波器Medelsim仿真
图3中,带通滤波器模块的filter_in端口是含有噪声的声发射信号,filter_out端口是滤波后的信号。仿真分析得出,经过Buttre worth带通滤波器滤波后,噪声被有效滤除,整个同频带内信号较平滑,没有赋值突变等干扰信息,提高了信号的精度。
滤波器硬件电路采用Altera公司Cyclone IV系列的FPGA芯片EP4CE15F17C8,稳定工作频率为200Mhz[4]。硬件电路外接50 Mhz晶振,通过EP4CE15F17C8内部的锁相环PLL倍频后使系统时钟以100Mhz工作。EP4CE15F17C8内部含有15 Kbit逻辑单元LE,高速硬件乘法器模块满足多通道并行滤波要求[5]。
FPGA硬件实现利用Verilog HDL硬件描述语言设计A/D采样模块,配合传感器和信号调理电路完成数据采样控制,采样数据分别输入四个不同频段范围的Buttre worth带通滤波器模块,滤波后的信号经过FIFO缓冲模块后进行各频段信号的后续处理[6]。四通道并行滤波器FPGA实现的整体结构如图4所示。
图4 FPGA实现整体结构
对图4中采用Verilog HDL设计的各模块进行自顶向下设计。在Quartus II中进行硬件描述和功能仿真,综合分析后生成寄存器级的RTL Viewer电路。
通过A/D电路模块控制采样时序和ROM中原始信号的读写操作,并将数据分别传输给四个并行的带通滤波器模块。所有模块的Verilog HDL综合后共占用5.8 Kbit的逻辑单元LE,硬件资源利用率高。
本文利用FPGA在高速并行数据处理方面的优点,结合MATLAB中FDATool滤波器设计优势,最终采用半定制方式实现了Verilog HDL对整个硬件电路的设计描述。多通道带通滤波器的FPGA实现移植性强,用户修改方便可实现其他形式的FIR和IIR滤波器,具有很强的实用性。