数字滤波器

摘要
在微机控制系统的模拟输入信号中,一般均含有各种噪声和干扰,他们来自被测信号源本身、传感器、外界干扰等。对于噪声、干扰为非周期的不规则随机信号,随机干扰可以用数字滤波方法予以削弱或滤除。数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比重,它实际上是一个程序滤波。数字滤波器有多种算法,而一阶惯性滤波法适应用于高频的干扰信号。
数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。数字滤波器有低通、高通、带通、带阻和全通等类型。
关键字:数字滤波  一阶惯性滤波
数字滤波器的设计
1设计任务及目的要求
1.1设计任务
(1)用计算机模拟带有干扰的正弦信号。首先计算机产生一个随机信号,再与正弦信号叠加。
(2)计算机对含有干扰的正弦信号R(频率200Hz 进行数字滤波处理,保留正弦信号,去除干扰。
1.2设计要求
1)分析数字滤波的常用方法,以及各自的优缺点;
  2)采用一阶惯性滤波器算法,设计算法程序;
  3)在显示器上显示滤波前与滤波后的信号曲线;
  4)通过数据分析采样周期T对滤波效果的影响;
  5撰写设计说明书。
6)总结
7)参考资料
2数字滤波器的设计方法及比较
2.1滤波器简介及数字滤波与传统滤波方案比较
滤波器分为数字滤波器和模拟滤波器两大类。数字滤波器是在模拟滤波器的基础上发展起来的,但是他们之间存在一些重要差别。所谓数字滤波器,是指输入、输出均为数字信号,通过一定的运算关系改变输入信号所含频率成分的相对比例或者滤去某些频率成分的器件。因此数字滤波器的概念和模拟滤波器相同,只是信号形式和实现滤波方法不同。
数字滤波器克服了模拟滤波器的许多不足,他与模拟滤波器相比有以下优点:
(1)数字滤波器是用软件实现的,不需要增加硬设备,因而可靠性高、稳定性好,不存在阻抗匹配问题。
(2)模拟滤波器通常是各通道专用,而数字滤波器则可多通道共享,从而降低了成本。
(3)数字滤波器可以对频率很低(0.01 Hz)的信号进行滤波,而模拟滤波器由于受电容容量
的限制,频率不可能太低。
(4)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。
数字滤波的缺点:需要占用单片机资源。由于单片机速度和存储容量都很有限 ,实际应用中由于实时性和存储量的限制 ,在普通单片机上要实现复杂的数字滤波是不太可能和实际的。
2.2数字滤波的常用方法概述
1)限幅限速滤波法
限幅滤波法又称程序判断滤波法,根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效;如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。
    另外还要设定一个范围[min,max],如果本次值>max,则令本次值=max,如果本次值<min,则令本次值=min,否则,本次值有效不变。
优点:能有效克服因偶然因素引起的脉冲干扰。
缺点:无法抑制那种周期性的干扰、平滑度差
这种方法适用于滤掉大的随机干扰信号。
2)中位值滤波法 
方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值; 
优点:能有效克服因偶然因素引起的波动干扰。对温度、液位的变化缓慢的被测参数有良好的滤波效果。 
缺点:对流量、速度等快速变化的参数不宜。
这种方法适用于滤掉小的随机干扰信号。 
3)算术平均滤波法 
方法:连续取N个采样值进行算术平均运算,N值较大时,信号平滑度较高,但灵敏度较低,
N值较小时,信号平滑度较低,但灵敏度较高。
N值的选取:一般流量,N=12;压力,N=4
优点:适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。 
缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM 
这种方法适用于滤掉周期干扰信号。
(4)递推平均滤波法(又称滑动平均滤波法) 
  方法:把连续取N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果  
  N值的选取:流量,N=12;压力,N=4;液面,N=412;温度,N=14 
  优点:对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。 
缺点:灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM
5)一阶滞后滤波法 
  方法: a=01,本次滤波结果=1-a*本次采样值+a*上次滤波结果; 
  优点:对周期性干扰具有良好的抑制作用,适用于高频及低频的干扰信号。 
  缺点:相位滞后,灵敏度低,滞后程度取决于a值大小,不能消除滤波频率高于采样频率的1/2的干扰信号。 
这种方法适用于滤掉高频干扰信号。
另外还有滑动平均滤波法,消抖滤波法,加权平均值滤波法等滤波方法。
3一阶惯性滤波器的设计
3.1一阶惯性滤波算法
一阶滤波,又叫一阶惯性滤波,或一阶低通滤波,是使用软件编程实现普通硬件RC低通滤波器的功能。低通滤波器就是允许低频信号通过,而将高频信号衰减的电路,一般的一阶RC低通滤波器电路图如图3-1所示。
R
C
    3-1一阶RC低通滤波器电路
将电路输出电压与输入电压的比称为传递函数,RC滤波器的传递函数为:
    =   
Tf=RC,称之为滤波时间常数。假设一阶RC低通滤波器的输入电压为Xt),输出为Yt,它们之间的关系如下:
RC      +Yt=X(t)                   
分别对其采样,即 Yn=Ynt,Xn=X(nt)。如果采样间隔△t足够小,则可得离散值约为:
RC{ Ynt- Y[n-1)△t]}/t+ Ynt= X(nt)   
即写成前向差分方程为:Tf+Y(n)= X(n)   
整理后为:Y(n)= X(n)+ Y(n-1)=(1-r)X(n)+rY(n-1)
其中Ts是采样周期,r=      是滤波系数,满足r∈(01)。X(n)为未经滤波
的第n次采样值,Y(n)为第n次采样值经滤波后输出值。
    一阶惯性滤波算法对周期性干扰具有良好的抑制作用,适用于波动频繁的参数滤波,不足之处是使相位滞后,灵敏度低,滞后的程度取决于滤波系数r的大小。同时,它不能滤除频率高于采样频率二分之一的干扰信号。
3.2一阶惯性滤波器参数选取
滤波系数r由实验确定,只要使被测的信号不产生明显的纹波即可。一般情况下,滤波系数r越大,则带宽越窄,滤波频率越低。
    滤波器的截止频率为fc=1/2лRC,当Tf=RC的值越大,滤波系数r越大,滤波器截止频率越低。在程序设计时,选取r=0.8,计算得到Tf=4Ts,,取采样周期为Ts=0.2*10s,则采样频率为50KHZTf=0.8*10s,又fc=1/2лRC,代入数据得fc=12.5 KHZ
3.3一阶惯性滤波流程图
本次设计是对带有随机信号干扰的正弦信号进行数字滤波,采用MATLAB进行软件编程。
首先利用MATLAB产生200Hz的正弦信号,再将正弦信号和随机信号进行采样,离散化,
然后将信号叠加,输出滤波前的叠加的带干扰信号波形图。编写一阶惯性滤波的算法程序,赋初值,用前向差分方程求出数字滤波后电压值,再通过MATLAB输出波形图。
程序流程图如下3-2所示:
3-2 程序流程图
4基于MATLAB的滤波器设计
4.1 利用matlab产生正选信号
由于产生频率200Hz,振幅5v的正弦波,设为x(t)=5*sin(400*pi*t),因为干扰信号频率很高,所以采样周期应该足够小,取采样周期为T=1/100000;t为第t个采样值,x(t)=x(t*T)=5*sin(400*pi*t/100000)=5*sin(400*pi*k);k=t/100000;强调:x(t)是第t个采样值。
MATLAB中输入下面程序:
for t=1:1000
k= t/100000;
x(t)=5*sin(2*pi*200*k);
end
plot(x) ;
title('正弦信号');
xlabel('时间t');
ylabel('电压值');
运行结果如图4-1所示
4-1 正弦信号
4.2利用MATLAB将随机干扰信号和正弦信号叠加
利用MATLAB产生随机干扰,并将正弦信号和干扰叠加,产生带干扰的正弦信号。
for t=1:1000
k=t/100000;
x=5*sin(400*pi*k);
y=2.4*rand(1);
e(t)=x+y;
end
plot(e);
title('带干扰的正弦信号');
xlabel('时间t');
ylabel('电压值');
运行结果,产生带干扰的正弦信号。如图4-2所示:
4-2 带干扰的正弦信号
4.3利用一阶惯性滤波法对加有干扰的正弦信号滤波
带干扰的正弦信号采用一阶惯性滤波法进行滤波。由前面一阶滤波算法公式在MATLAB上进行编程。去滤波系数a=0.9,采样n=1000个采样点。最后将滤波前和滤波后信号进行比较。
MATLAB中输入下面程序:
for t=1:1000
k= t/100000;
x=5*sin(2*pi*200*k);
y=2.4*rand(1,length(t))
e(t)=x+y;
end
subplot(2,1,1);
plot(e) ;
title('滤波前信号');
xlabel('时间t');
ylabel('电压值');
u(1)=0.1;
a=0.9;%赋初值
n=1000;%赋初值
for i=1:n-1 %注意i2开始取
u(i+1)=a*u(i)+(1-a)*e(i+1); %一阶惯性滤波算法公式
end
subplot(2,1,2);
plot(u);
title('滤波后信号');
xlabel('时间t');
ylabel('电压值');
运行结果,产生滤波前后波形。如图4-3所示:

本文发布于:2024-09-24 18:19:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/95437.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:滤波   信号   干扰   正弦   采样   频率   数字滤波
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议