|
FPGA实现的FIR算法在汽车动态称重仪中的应用
引言
车辆在动态称重时,作用在平台上的力除真实轴重外,还有许多因素产生的干扰力,如:车速、车辆自身谐振、路面激励、轮胎驱动力等,给动态称重实现高精度测量造成很大困难。若在消除干扰的过程中采用模拟方法滤波,参数则不能过大,否则将产生过大的延迟导致不能实现实时处理,从而造成滤波后的信号仍然含有相当一部分的噪声。所以必须采用数字滤波消除干扰。
FIR滤波的原理及实现
本文采用FIR数字滤波,其原理如公式1所示。
Y(n)= (1)
其中h(k)为系统滤波参数,x(n)为采集的信号,Y(n)为滤波后的输出信号。
FIR滤波器的h(n)0≤n≤N-1
H(z)= (2)
在本文中N=17。由于h(n)具有对称性质,即:
h(n)=h(N-1-n) (n=0,1,...,(N-1)/2) (3)
这样就可以把FIR滤波器设计成具有线性相位。利用这一情况,可以得到的乘法结构,需要(N+1)/2次乘法,仅是级联或并联结构所需次数的一半,因此,实际应用中多采用此方法。
我们选用17点的FIR滤波算法,这样实现一次FIR卷积运算需要执行9次乘法和16次加法。为了实现数据的实时处理,需要在20ms内完成这个卷积运算,如果选用单片机89C51(12M晶振)则无法实现。所以我们选用了Altera公司的FLEX10K20。FLEX10K系列是工业界第一个嵌入式的PLD,采用重复可构造的CMOS SRAM工艺,把连续的快速通道互连与独特的嵌入式阵列结构相结合,同时也结合了众多可编程器件的优点来完成普通门阵列的宏功能。具有高密度、低成本、低功率等特点。
图1 硬件结构框图硬件设计
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?我要注册
x
|