随着信息科技的发展,信号处理得到了大幅推动,已经被广泛应用于雷达、通信、自动化、航空航天等领域。在信号处理系统中,输入信号通常含有各种噪声和干扰。为对信号进行准确的 测量 和控制,必须削弱或滤除被测信号中的噪声和干扰。一般在系统中可选用硬件滤波和软件滤波。硬件滤波又分为无源滤波和有源滤波,无源滤波是通过RC 滤波器 或LC滤波器等模拟滤波器进行滤波。软件滤波也称数字滤波,是通过一定的算法削弱噪声的影响。硬件滤波的优势是不需要进行复杂的程序处理,反应灵敏。而软件滤波的优势是不需要硬件的投入,而且可靠稳定。
综合两者的优势,本文提出了一种以低通二阶RC无源滤波 电路 为基准,用 Matlab 和Visual C++ 设计一个具有相同功能数字滤波器的方法即 模拟电路 数字化方法,以滤除信号中的高频杂波,得到了较为理想的波形。
模拟电路数字化的过程如下,首先从硬件滤波电路出发,计算电路的传递函数H(s)。由于软件滤波的信号是离散的数字信号,所以将H(s)转换成离散域的H(z),通过Matlab编程实现对信号的滤波。如果滤波效果不理想,则对传递函数中的参数进行调整,得到具有较理想滤波效果的H(z)。
为最终用Visual C++编程实现,需要将H(z)反变换得时域的h(t),与信号进行卷积和运算以完成滤波。经过以上步骤,完成模拟滤波电路数字化的过程,并在Matlab和Visual C++平台上实现滤波。
对于模拟电路的分析,通常采用传递函数的分析方法。电子电路往往是由若干个动态环节连在一起构成一个复杂电路。对于每个具体环节来说,都有它的输入量和输出量,而一定输入量的变化都会引起输出量的变化。根据一个环节中所进行的物理过程可以写出微分方程,它表示了该环节输出量和输入量的关系。
输入量与输出量都是时间t的函数,用微分方程直接表示输入量与输出量时间函数之间的关系比较复杂。但利用拉氏变换把时间函数变换为s的函数以后,原函数对于时间t的微分积分就简化为s的乘除法。
通常信号在进行放大之前,先对该信号进行滤波。以低频信号为例,使用经典的二阶RC无源滤波电路进行滤波,电路如图1所示。在接下来的部分将以此电路为例对模拟电路数字化方法进行详细的分析和讲解。
滤波器的滤波效果与R1、R2、C1和C2等参数相关,如果取值不当会造成滤波效果不理想。对于复杂的传递函数,谐振频率和带宽不易计算,所以本文采用控制变量法。
对于多因素的问题,常常采用控制因素的方法,把多因素的问题变成多个单因素的问题。每一次只改变其中的某一个因素,而控制其余几个因素不变,从而研究被改变的这个因素对事物的影响,分别加以研究,最后再综合解决,这种方法叫控制变量法,被广泛地运用在各种科学研究之中。
得到传递函数后,就可以对信号进行滤波。由于待处理的数据是数字信号,若想仿真需将频域的传递函数转换为x域的传递函数,即将模拟滤波器转换为数字滤波器。模拟滤波器转换为数字滤波器有两种方法:脉冲响应不变法和双线性变换法。
脉冲响应不变法是一个稳定的设计,主要用于设计某些要求在时域上能模仿模拟滤波器功能的数字滤波器。这种变换法的主要特点是频率坐标的变换是线性的,即由于混叠现象,阻带边缘的衰减要比模拟滤波器稍差一些,但仍能满足技术指标的要求。脉冲响应不变法要求该模拟滤波器是带通滤波器或者低通滤波器,但这种方法在阻带没有起伏的情况下才有用。
双线性变换法映射也是一种稳定的设计,不存在混叠现象,对能够变换的滤波器类型没有限制。但这种方法也有固有缺陷:模拟频率和数字频率之间是非线性关系,它使得频率的标度 弯曲 ,不能保持原来的模拟滤波器的相频特性;数字的频率响应与模拟的频率响应有明显的差别。一般情况下,可以通过频率的预畸变进行校正。但总体来说,双线性变换法的仿真结果比脉冲响应不变法更加理想。