1、课程设计任务书课程设计任务书学生姓名:学生姓名:xxxxxx 专业班级:专业班级:自动化自动化 xxxxxxxx 班班 指导教师:指导教师:xxxxxx 工作单位:工作单位:自动化学院自动化学院 题题 目目:数字滤波器的设计数字滤波器的设计初始条件:初始条件:1计算机对含有干扰的正弦信号R(频率100Hz)进行数字滤波处理,保留正弦信号,去除干扰。2用计算机模拟带有干扰的正弦信号。首先计算机产生一个随机信号,再与正弦信号叠加。要求完成的主要任务要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.分析数字滤波的常用方法,以及各自的优缺点;2.采用一阶惯性滤波器算法
2、,设计算法程序;3.在显示器上显示滤波前与滤波后的信号曲线;4.通过数据分析采样周期T对滤波效果的影响;5.撰写设计说明书。课程设计说明书应包括:设计任务及要求;方案比较及论证;数字滤波原理,硬件原理,电路图,采用器件的功能说明;软件思想,流程,源程序;调试记录及结果分析;参考资料;附录:芯片资料,程序清单;总结。指导教师签名:指导教师签名:年年 月月 日日系主任(或责任教师)签名:系主任(或责任教师)签名:年年 月月 日日摘 要本次设计是对带有干扰的正弦信号进行数字滤波处理保留正弦信号去除干扰信号。数字滤波是一种用软件程序实现的滤波方式,不需要硬件,适当改变滤波器程序或运算参数,就能十分方便
3、的改变滤波特性。我的设计是采用数字滤波中的一阶惯性滤波的方法进行滤波,一阶惯性滤波对高频及低频的干扰信号有较好的滤波效果。将一阶惯性滤波的算法编写成 MATLAB 的程序,再在 MATLAB 上进行仿真,可清楚地看到滤波前后信号的对比。滤波后的信号去除了干扰信号,保留了正弦信号。关键词:数字滤波 滤波参数 一阶惯性滤波 MATLAB目 录1 设计要求.12 数字滤波方法及简介.12.1 数字滤波简介.12.2 数字滤波的常用方法及优缺点.13 一阶惯性滤波器设计.43.1 一阶惯性滤波算法.43.2 一阶惯性滤波器参数选取.43.3 一阶惯性滤波流程图.53.4 方案比较论证及程序设计.63.
4、4.1 方案比较论证.63.4.2 运行环境简介.63.4.3 程序设计.63.4.4 分析采样周期对滤波效果的影响.104 心得体会.12参考文献.13武汉理工大学计算机控制课程设计说明书0数字滤波器的设计1 设计要求计算机对含有干扰的正弦信号R(频率100Hz)进行数字滤波处理,保留正弦信号,去除干扰。用计算机模拟带有干扰的正弦信号。首先计算机产生一个随机信号,再与正弦信号叠加。1)分析数字滤波的常用方法,以及各自的优缺点;2)采用一阶惯性滤波器算法,设计算法程序;3)在显示器上显示滤波前与滤波后的信号曲线;4)通过数据分析采样周期T对滤波效果的影响;5)撰写设计说明书。2 数字滤波方法及
5、简介2.1 数字滤波简介数字滤波,就是通过一定的计算程序或者判断程序,对采集的数据进行某种处理,从而消除或削弱干扰和噪声的影响,提高测量的可靠性和精度。数字滤波的优点:是一个计算过程,无需硬件,因此可靠性高,并且不存在阻抗匹配、特性波动、非一致性等问题。模拟滤波器在频率很低时较难实现的问题,不会出现在数字滤波器的实现过程中。数字滤波的缺点:需要占用单片机资源。由于单片机速度和存储容量都很有限,实际应用中由于实时性和存储量的限制,在普通单片机上要实现复杂的数字滤波是不太可能和实际的。2.2 数字滤波的常用方法及优缺点数字滤波方法有很多种,每种方法有其不同的特点和使用范围,常用方法如下:1)限幅滤
6、波法(又称程序判断滤波法)系统的输入端如果窜入尖脉冲干扰,会造成信号的严重失真。对于这种随机干扰,我们就要用到限幅滤波的方法。方法:武汉理工大学计算机控制课程设计说明书1 比较相邻的两个采样值 Yn 和 Yn-1,根据经验判断,确定两次采样允许的最大偏差值(设为 A)。如果两次采样值 Yn 和 Yn-1 的差值超过了允许的最大偏差范围,则认为是发生了随机干扰,并且认为最后一次采样值 Yn 为非法值,予以剔除。剔除 Yn 后,可用 Yn-1代替 Yn。若未超过允许的最大偏差范围,则认为本次采样值有效。优点:能有效克服因偶然因素引起的脉冲干扰。缺点:无法抑制那种周期性的干扰,平滑度差。2)中位值滤
7、波法中位值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。中位值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,消除孤立的噪声点。方法:对被测参数连续采样 N 次(N 取奇数),再把 N 次采样值按大小顺序排列,取中间值作为本次采样的有效值。优点:能有效克服因偶然因素引起的波动干扰。对温度、液位的变化缓慢的被测参数有良好的滤波效果。缺点:对流量、速度等快速变化的参数不宜。3)算术平均滤波法 所谓算术平均滤波就是把 n 个采样值相加,然后取其算术平均值作为本次有效的采样信号。方法:连续取 N 个采样值进行算术平均运算;N 值较大时,信号平滑度较高
8、,但灵敏度较低;N 值较小时,信号平滑度较低,但灵敏度较高;N 值的选取:一般流量,N=12;压力,N=4;武汉理工大学计算机控制课程设计说明书2优点:适用于对一般具有随机干扰的信号进行滤波,特别适用于信号本身在某一数值范围附近上下波动的情况。这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费 RAM。4)递推平均滤波法(又称滑动平均滤波法)所谓递推平均滤波法是指把连续取 N 个采样值看成一个队列,队列的长度固定为 N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据,并且把队列中的 N 个数据进行算术平均
9、运算,就可获得新的滤波结果。方法:把连续取 N 个采样值看成一个队列,队列的长度固定为 N;每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则);把队列中的 N 个数据进行算术平均运算,就可获得新的滤波结果;N 值的选取:流量,N=12;压力,N=4;液面,N=412;温度,N=14;优点:对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。缺点:灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费 RAM。5)一阶滞后滤波法 一阶滞后滤波法又称为低通滤波法,是在硬件电路 RC 低通滤波器
10、的基础上改写为一阶滞后滤波的算法,并通过程序实现。方法:取 a=01;本次滤波结果=(1-a)*本次采样值+a*上次滤波结果;优点:对周期性干扰具有良好的抑制作用,适用于高频及低频的干扰信号。武汉理工大学计算机控制课程设计说明书3缺点:相位滞后,灵敏度低,滞后程度取决于 a 值大小,不能消除滤波频率高于采样频率的 1/2的干扰信号。3 一阶惯性滤波器设计3.1 一阶惯性滤波算法一阶滤波,又叫一阶惯性滤波,或一阶低通滤波,是使用软件编程实现普通硬件 RC 低通滤波器的功能。低通滤波器就是允许低频信号通过,而将高频信号衰减的电路,一般的一阶 RC 低通滤波器电路图如图 3-1 所示。图 3-1 一
11、阶 RC 低通滤波器电路将电路输出电压与输入电压的比称为传递函数,RC 滤波器的传递函数为:=令 Tf=RC,称之为滤波时间常数。假设一阶 RC 低通滤波器的输入电压为 X(t),输出为Y(t),它们之间的关系如下:RC +Y(t)=X(t)分别对其采样,即 Yn=Y(nt),Xn=X(nt)。如果采样间隔t 足够小,则可得离散值约为:RC Y(nt)-Y(n-1)t/t+Y(nt)=X(nt)即写成差分方程为:Tf+Y(n)=X(n)TsnYnY)1()(整理后为:Y(n)=X(n)+Y(n-1)=(1-r)X(n)+rY(n-1)TsTfTsTsTfTf其中 Ts 是采样周期,r=是滤波系
12、数,满足 r(0,1)。X(n)为未经滤波的第 n 次采样值,Y(n)为第 n 次采样值经滤波后输出值。一阶惯性滤波算法对周期性干扰具有良好的抑制作用,适用于波动频繁的参数滤波,不足之处是使相位滞后,灵敏度低,滞后的程度取决于滤波系数 r 的大小。同时,它不11RCsUiUodttdY)(TsTfTf武汉理工大学计算机控制课程设计说明书4能滤除频率高于采样频率二分之一的干扰信号。3.2 一阶惯性滤波器参数选取滤波系数 r 由实验确定,只要使被测的信号不产生明显的纹波即可。一般情况下,滤波系数 r 越大,则带宽越窄,滤波频率越低。滤波器的截止频率为 fc=1/2RC,当 Tf=RC 的值越大,滤
13、波系数 r 越大,滤波器截止频率越低。在程序设计时,选取 r=0.8,计算得到 Tf=4Ts,取采样周期为Ts=0.2*10s,则采样频率为 50KHZ,Tf=0.8*10s,又 fc=1/2RC,代入数据得44fc=12.5 KHZ。3.3 一阶惯性滤波流程图本次设计是对带有随机信号干扰的正弦信号进行滤波,采用 MATLAB 进行软件编程。首先应对正弦信号和随机信号进行采样,离散化,再将信号叠加,输出滤波前的叠加信号波形图。再编写一阶惯性滤波的算法程序,赋初值,用差分方程求出滤波后电压值,再通过 MATLAB 输出波形图。流程图如下图 2-2 所示:武汉理工大学计算机控制课程设计说明书5开始
14、信号采样,离散化信号叠加输出滤波前的信号赋初值循环开始一阶惯性滤波算法公式结束循环后,输出滤波后信号结束图 3-2 一阶惯性滤波算法流程图3.4 方案比较论证及程序设计3.4.1 方案比较论证数字滤波是一种程序滤波,它克服了模拟滤波器的不足,不需要增加硬件设备,稳定性好,可靠性高,还可对低频信号和高频信号进行滤波,滤波方法灵活多样,只需针对不同的信号及滤波要求,选取滤波方法及参数,就可得到较好的滤波结果。这是数字滤波器优于模拟滤波器之处。在硬件电路中,常用一阶惯性 RC 网络的模拟滤波器来抑制干扰,当滤波时间常数 Tf越大时,R 值越大,设备体积增大,误差增大,降低了滤波效果。而一阶惯性滤波算
15、法是以数字形式通过算法来实现的动态 RC 滤波,能很好的克服模拟滤波器的缺点,更适合于武汉理工大学计算机控制课程设计说明书6滤波常数大的场合。3.4.2 运行环境简介此次设计用到了一个编程软件 MATLAB。MATLAB 由一系列工具组成。这些工具方便用户使用 MATLAB 的函数和文件,其中许多工具采用的是图形用户界面。包括 MATLAB 桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。MATLAB 有以下优点:可用于技术计
16、算,开发环境可对代码、文件和数据进行管理,交互式工具可以按迭代的方式探查、设计及求解问题,数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等,二维和三维图形函数可用于可视化数据,各种工具可用于构建自定义的图形用户界面,各种函数可将基于MATLAB 的算法与外部应用程序和语言集成。3.4.3 程序设计本次设计中,正弦信号为 s=A*sin(w*t+),A 为正弦波幅值,取 A=6,w=2f,由于要求为 100HZ 的正弦波,所以 f=100HZ,取=/6,得正弦波方程式为s=6sin(200t+/6)。随机信号选取 MATLAB 的 rand 函数,rand 函数是一种均匀分布的
17、随机数,其元素分布在(0,)上。进行滤波前编写采样子程序为:for t=1:3000i=t/50000;s=6*sin(200*pi*i+pi/6);v=1*rand(1);x(t)=s+v;end用 MATLAB 的 plot 函数输出滤波前的信号波形图。figure(1);plot(x);title(一阶惯性滤波前信号);xlabel(时间 t);武汉理工大学计算机控制课程设计说明书7ylabel(电压值);MATLAB 绘出的滤波前信号图如图 3-3 所示:图 3-3 滤波前信号图一阶惯性滤波的子程序编写如下:for i=2:n%注意 i 从 2 开始取y(i)=r*y(i-1)+(1-
18、r)*x(i);%一阶惯性滤波算法公式end由于滤波前 t=1:3000,为保持一致,程序赋初值时 n=3000,选取的滤波系数 r=0.8,MATLAB 编写的总程序如下:for t=1:3000i=t/50000;s=6*sin(200*pi*i+pi/6);v=1*rand(1);x(t)=s+v;endfigure(1);plot(x);武汉理工大学计算机控制课程设计说明书8title(一阶惯性滤波前信号);xlabel(时间 t);ylabel(电压值);x(1)=3;%赋初值y(1)=3;%赋初值r=0.8;%赋初值n=3000;%赋初值for i=2:n%注意 i 从 2 开始取
19、y(i)=r*y(i-1)+(1-r)*x(i);%一阶惯性滤波算法公式endfigure(2);plot(y);title(一阶惯性滤波后信号);xlabel(时间 t);ylabel(电压值);MATLAB 绘出的滤波后信号图如下图 3-4 所示:武汉理工大学计算机控制课程设计说明书9图 3-4 滤波后信号图滤波前和滤波后输出信号的对比图如图 3-5 所示,程序如下,运用 MATLAB 的 subplot函数。subplot(2,1,1);plot(x);title(一阶惯性滤波前信号);xlabel(时间 t);ylabel(电压值);subplot(2,1,2);plot(y);tit
20、le(一阶惯性滤波后信号);xlabel(时间 t);ylabel(电压值);武汉理工大学计算机控制课程设计说明书10图 3-5 一阶惯性滤波前后信号对比图3.4.4 分析采样周期对滤波效果的影响随着采样周期 Ts 增大,根据公式 r=中可知 Tf=RC 一定时,Ts 与 r 成反比,Ts 越大,r 越小;Ts 越小,r 越大。取 r=0.8 的滤波前后对比图效果如图 3-5 所示。当 Ts增大时,取 r=0.4 时得到的滤波前后信号对比图如图 3-6 所示。TsTfTf武汉理工大学计算机控制课程设计说明书11图 3-6 将 Ts 增大后的滤波前后信号对比图由图 3-6 可知,当 Ts 增大时
21、,带有干扰的正弦信号经过一阶惯性滤波后的滤波效果没有 Ts 值较小时的滤波效果好。分析知,采样周期 Ts 值能够影响一阶惯性滤波的滤波效果,RC 选定时,当 Ts 越大,滤波的结果是正弦信号所带的纹波越明显。因为此时滤波器的带宽较大,滤波频率较高,使能够通过的干扰信号增加,滤出来的正弦信号所带纹波较多。4 心得体会为期一周多的课程设计结束了。回想起来,还是有许多滋味从心头涌起。这次课程设计,我所做的是有关数字滤波器的设计的问题。从本次课程设计的目的来看,收获是不少的,它使我们对课本以及以前学过的知识有了一个更好的总结与理解,也让我知道了,学和做分开是不行的。通过这次微型计算机控制技术的课程设计
22、,我更清楚实践的重要性。经过这次课程设计后,觉得自己有一个不小的进步。虽然有些方面有些不足,但通过阅读相关书籍,学到了更好更多的东西。他们从另一个方面透析了自己的不足,这是很重要的,它让我学会了怎样学习别人的长处并把它变成自己的长处。有这样的机会和收获,要感谢老师的教导,是他们让自己有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路,虽然自己走出来的路要崎岖的多,但觉得踏实、放心。武汉理工大学计算机控制课程设计说明书12以前对于编程工具的使用还处于一知半解的状态上,但是这次设计我通过一段时间的上机实践,对于怎么去排错、查错,怎么去看运行结果,怎么去确保程序的正确性上都有了很大程度
23、的能力的提高。从本次课题对数字滤波器的设计中,我对数字滤波方面的知识有了更深刻的认识,还了解了 MATLAB 编程方面的知识。随着信息技术和计算机技术的飞速发展,数字信号处理技术在众多领域得到广泛应用。数字滤波器由于其精度高、稳定性好、使用灵活等优点,广泛应用在各种数字信号处理领域。数字滤波方法有很多种,每种方法有其不同的特点和使用范围,常用的有以下几种滤波方法,即限幅滤波法,中值滤波法,算数平均值滤波法,递推平均滤波法,加权递推平均滤波法,一阶惯性滤波法,中位值平均滤波法,限幅平均滤波法。在设计过程中也遇到了一些问题,当然通过查阅相关资料,对这些都做到了解决。但是这次设计还是有很多不足之处,
24、所以还有待完善。这也使我明白了,事情是在不断的完善中,当你达到一定高度后,一定还可以做得更好。课程设计是一个很好的锻炼动手能力的机会,虽说只有短短一周多的时间,但是我受益匪浅。参考文献1 于海生.微型计算机控制技术.北京:清华大学出版社.2006.82 高俊斌.MATLAB 5.0 语言与程序设计.武汉:华中科技大学出版社.1999.13 高西全.数字信号处理.西安:西安电子科技大学出版社.2008.84 孙兆林.MATLAB6.x 图像处理.北京:清华大学出版社.2002.65 潘新民.微型计算机控制技术实用教程.北京:电子工业出版社.2006.1武汉理工大学计算机控制课程设计说明书136 徐安等.微型计算机控制技术.北京:电子工业出版社.2008.10