超声波液位计基于DSP的探讨 二十八
5.2.2FIR滤波器设计
上面叙述了FIR滤波器的相关结构,本文借助MATLAB的辅助工具FDATOOL设计一个Equiripple型FIR滤波器,将其系数导出,添加到DSP的工程之中,作为一个数组的方式在DSP中与用户数据进行卷积。
MATLAB为开发者提供了一个综合性的数字滤波器设计工具FDATOOL滤波器设计分析工具,通过设定FDATOOL的图形界面中的各项参数即可以得到理想的数字滤波器的系数以及幅频响应。
由于本课题的超声波回波频率为40KHz,设计的数字滤波器参数如下所示:(1)滤波器类型为中心频率40KHz的带通滤波器;(2)FIR滤波器的阶数为33阶;(3)Fstopl:20KHz;Fpassl:35KHz;Fpass2:45KHz;Fstoop2:60KHz;(4)阻带衰减为一80dB。同理设计低通滤波器用于求取超声波回波信号的包络波形。设计的带通以及低通滤波器幅频特性如图5.8以及5.9所示,将使用数据采集卡(采样频率为400KHz)采集到的数据在MATLAB中进行处理以后的效果。
本文设计的滤波器系数一共有68位,假设FIR滤波器的系数h,在DSP的程序设计过程中,将系数中的每一位与得到的数字化超声波回波信号进行相乘并相加。
程序中,X代表携带超声波回波的数字信号首地址,h代表本节设计的FIR滤波器系数所在的首地址,Y代表滤波后输出数据的地址,nh代表滤波器系数的个数,ny代表输出数据个数。从图中程序可以看出,该程序使用了两层循环,碰到的问题和互相关运算一样,在数据量非常庞大的情况下,DSP无法实现实时运算。
本质上,FIR滤波器也是两个数据进行卷积运算,也可以通过讨论互相关运算时候的方法解决。
5.DSP的算法设计
通过上述处理以后得到的两个波形均存储在DSP的存储器SDRAM中,在求取液位过程中均会使用。
5.3本章小结
本章主要介绍了本课题中的DSP软件部分使用到的互相关算法以及MATLAB中设计的FIR滤波器的DSP实现,结合本课题中数据量过大的特点,提出了使用FFT来实现数字信号处理中的卷积运算的方法。在减少运算量以及提高DSP的算法实时性方面做了非常大的改善。
详情请浏览公司网站的产品中心 http://www.dlysys.com/ 超声波液位计
超声波流量计