当ωc=O.1时,所设计的FIR滤波器的幅频对数特性如图4所示。

本系统可实现不同ωc值的FIR滤波器的自动调用。利用TI公司的FFT函数库对所采数据序列(1 024点)进行FFT计算,然后根据序列的幅频特性,判断出该信号的主要频段,继而调用相应的FIR滤波器进行对高频干扰信号的滤除。

在应用中,采用2.5 kHz采样频率,采集1 024个点,采集到一段含有噪声的数据,用CCS的Gragh工具观察,如图5所示。

通过FFT算法计算,得到主要频段在200 Hz左右,调用归一化截止频率为O.4的FIR滤波器对其进行FIR滤波处理。经FIR滤波后的数据如图5所示,可以看到波形明显平滑。通过FFT算法还得到信号中直流分量的幅度为31,即31/256=0.12V,去除直流分量后的数据如图6所示。

3 软件程序设计

TMS320F2812芯片提供了良好的C语言开发环境,使用C语言可缩短开发周期。主程序的流程图如图7所示。

程序中编写了多种滤波算法和不同归一化截止频率的50阶Kaiser窗FIR滤波器,上位机可通过CAN总线控制下位机选用适当的滤波器来完成参数配置(也可通过程序自动判断加载)。待这些配置完成后,启动计时器,进而启动A/D采样。

3.1 数据采集及滤波

本系统中,ADC模块中的B0通道用来对信号进行过采样。ADC模块工作在启动/停止模式,由EVA中的定时器1的周期中断来控制采样频率。