1引言
一个模拟集成运算放大器可实现一个二阶滤波器,高阶滤波器可由二阶滤波器串联而成。然而,无源元器件实现滤波器的误差值为1.5%或更高,这需要提高元器件的性能。滤波器的典型的调试方法是不断的更换元器件值。而且,运算放大器要获得高的增益带宽,需要相位漂移保持最小或要保持闭环系统的稳定,这必然增加工程中实现滤波器的难度。
随着数字信号处理的发展,数字滤波器比传统的模拟滤波器在设计的选择中更有吸引力。因为数字系统的信号是数字量,他相对于模拟滤波器更容易进行滤波代数运算。而且,数字滤波器没有模拟滤波器随时间、温度、电压漂移的优点。他能很容易地实现过滤低频信号的设计目的。还有,数字滤波器能实现近似的理想响应和线性的相位。
2几种数字滤波器算法
有许多好的方法确定滤波器的算法。首先,设计人员估计要设计的滤波器的性能,由传递函数实现。连续时间域的传递函数变换成离散时间域的线性差分方程,这个差分方程在z域的通式如下:
530)this.width=530" border=0>
这是冲激传递函数方程。他实际是连续时间域的滤波器的单位冲激响应在z域的变换式。相反,滤波器的冲激响应是z域的单位冲激函数的反变换。系数an和bn决定数字滤波器的响应。改变系数就能改变滤波器的响应。z一n和z一m项表示分支的延迟或锁存。g(z)方程表示对输入信号进行代数运算。输入信号与do相乘加上采样值与dl的乘积再加上采样值与d:的乘积,如此类推。当所有n项完成乘积与累加运算,则就计算出了输出值。同时,输出值被锁存,分别与b0,b1,b2,…,bm系数相乘,然后把乘积累加起来,再与原输出的累加值相加得出最终的输出值。这个过程称作回旋。一个输出值由每个输入值计算而得。
设定滤波器的系数是设计滤波器的关键,因为他能设计出预计的频率响应。递归数字滤波器或无限冲激响应滤波器(infiniteimpactivereaction,iir)是设计研究方法和模拟滤波器最相近似的典型数字滤波器。
一种确定系数的方法是先确定一个能在连续时间域实现chebyshev,butterworth或等纹波的滤波器,然后用z变换把连续时间域的传递函数转化为离散时间域的传递函数,这样滤波器系数就可确定。
第二个常用方法是使用双边变换。这个方法的步骤是工程师先设计一个模拟滤波器,这是为了将来转变数字滤波器;设计的模拟滤波器满足要求的数字滤波器的性能指标;这个模拟滤波器经过5变量的拉普拉斯变换再经z变量的z变换就转换成了数字滤波器。
第三种方法称为parks-mcccllean法。在这个方法中,带通滤波器和带阻滤波器的边缘和阶数是确定的。冲激响应系数被系统修改以便在每个近似的带通中获得一个等纹波性能。使用这种方法,滤波器在阶数方面不是很先进。因而需有一个捷径来确定滤波器的阶数,且这个捷径能减少通过使用方程来确定一个满足性能指标的阶数。有限冲激响应滤波器和无限冲激响应滤波器都有各自的优点和缺点。有限冲激响应滤波器的性能稳定,因为他没有输出反馈量且冲激响应是有限的;他的幅度和相位是任意设定的。另一方面,有限冲激响应滤波器通常需要数量较多的分支抽头。因而,输出值需经大量的代数运算。他的设计方法与模拟滤波器的设计方法不相近似。无限冲激响应滤波器需要很少的系数,但要输出反馈使得电路变得复杂。如果由于数字运算误差不能选择适当的系数,稳定的无限冲激响应滤波器变得不稳定。在设计数字滤波器中产生的4种主要误差,他们都是量化误差:
①输入信号的模数转换量化误差;
②系数的量化误差;
③由于数字运算,包括溢出产生的量化误差;
④有限循环量化误差。
有各种各样的计算机软件帮助工程师设计滤波器,如美国亚特兰大信号处理公司的设计软件dfdp。
3利用可编程逻辑器件设计有限冲激响应滤波器
图1为利用可编程逻辑器件设计有限冲激响应滤波器的功能模块图。
530)this.width=530" border=0>
为了有高的性能和较强的灵活性,在滤波器的设计中使用可编程逻辑器件。有限的参数将进行乘法/累加的运算,分支抽头将占用硬件大量的物理空间。电路设计使用一个工作速度为85ns的单口16b乘法/累加器,这个器件可工作在双数运算状态和饱和输出能力。由于器件的微码基础使得他很容易被可编程逻辑器件控制。
首先,系统必须把n(n=64)个采样值装入队列fifo(在反馈发生之前),否则队列就装不满。计数器在20ral0中正常工作。一个6b异步计数器使用4b。smp-dn随时钟工作(模数转换器完成采样值转换),最高的2b作为纹波计数器。smp_dn信号由20ral0产生,但由模数转换器触发。
当计数器的计数值为63时,样本值已被保存在移位/保持寄存器中;go信号变