数字滤波算法的设计及实现

数字滤波算法的设计及实现
数字滤波算法的设计及实现

1引言

在微机控制系统的模拟输入信号中,一般均含有各种噪声和干扰,他们来自被测信号源本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。噪声有2大类:一类为周期性的,其典型代表为50 Hz的工频干扰,对于这类信号,采用积分时间等于20 ms整倍数的双积分A/D转换器,可有效地消除其影响;另一类为非周期的不规则随机信号,对于随机干扰,可以用数字滤波方法予以削弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比重,因此他实际上是一个程序滤波。

数字滤波器克服了模拟滤波器的许多不足,他与模拟滤波器相比有以下优点:(1)数字滤波器是用软件实现的,不需要增加硬设备,因而可靠性高、稳定性好,不存在阻抗匹配问题。

(2)模拟滤波器通常是各通道专用,而数字滤波器则可多通道共享,从而降低了成本。

(3)数字滤波器可以对频率很低(如0.01 Hz)的信号进行滤波,而模拟滤波器由于受电容容量的限制,频率不可能太低。

(4)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。

2常用数字滤波算法

数字滤波器是将一组输入数字序列进行一定的运算而转换成另一组输出数字序列的装置。设数字滤波器的输入为X(n),输出为Y(n),则输入序列和输出序列之间的关系可用差分方程式表示为:

其中:输入信号X(n)可以是模拟信号经采样和A/D变换后得到的数字序列,也

可以是计算机的输出信号。具有上述关系的数字滤波器的当前输出与现在的和过

去的输入、过去的输出有关。由这样的差分方程式组成的滤波器称为递归型数字

滤波器。如果将上述差分方程式中b K取0,则可得:

说明输出只和现在的输入和过去的输入有关。这种类型的滤波器称为非递归型数

字滤波器。

参数a K、b K的选择不同,可以实现低通、高通、带通、带阻等不同的数字滤波

器。

2.1算术平均值滤波

算术平均值滤波是要寻找一个Y,使该值与各采样值X(K)(K=1~N)之间误差的

平方和为最小,即:

这时,可满足式(3)。式(4)便是算术平均值滤波的算法。

设第二次测量的测量值包含信号成分S i和噪声成分C i,则进行N次测量的信号成分之和为:

噪声的强度是用均方根来衡量的,当噪声为随机信号时,进行N次测量的噪声强度之和为:

式(5)和式(6)中,S、C分别表示进行N次测量后信号和噪声的平均幅度。

这样对N次测量进行算术平均后的信噪比为:

其中,S/C是求算术平均值前的信噪比。因此采用算术平均值后,使信噪比提高了倍。

算术平均值法适用于对一般具有随机干扰的信号进行滤波,这种信号的特点是有一个平均值,信号在某一数值范围附近作上下波动,此时仅取一个采样值作依据显然是不准确的,如压力、流量、液平面等信号的测量。但对脉冲性干扰的平滑作用尚不理想,因此他不适用于脉冲性干扰比较严重的场合。由式(7)可知,算术平均值法对信号的平滑滤波程度完全取决于N。当N较大时,平滑度高,但灵敏度低,即外界信号的变化对测量计算结果Y的影响小;当N较小时,平滑度低,但灵敏度高。应视具体情况选取N,以便既少占用计算时间,又达到最好的效果,如对一般流量测量,可取N=8~16,对压力等测量,可取N=4。

2.2加权平均值滤波

算术平均值法对每次采样值给出相同的加权系数,即1/N。但有些场合为了改

进滤波效果,提高系统对当前所受干扰的灵敏度,需要增加新采样值在平均值中的比重,即将各采样值取不同的比例,然后再相加,此方法称为加权平均值法。一个N项加权平均式为:

常数C1,C2,…,C N的选取是多种多样的,其中常用的是加权系数法,即:

加权平均值法适用于系统纯滞后时间常数τ较大、采样周期较短的过程,他给不同的相对采样时间得到的采样值以不同的权系数,以便能迅速反应系统当前所受干扰的严重程度。但采用加权平均值法需要测试不同过程的纯滞后时间τ,同时要不断计算各权系数,增加了计算量,降低了控制速度,因而他的实际应用不如算术平均值法广泛。

2.3滑动平均值滤波

以上平均滤波算法有一个共同点,即每计算1次有效采样值必须连续采样N次。对于采样速度较慢或要求数据计算速率较高的实时系统,这些方法是无法使用的。例如A/D数据,数据采样速率为每秒10次,而要求每秒输入4次数据时,则N不能大于2。滑动平均值法只采样1次,将本次采样值和以前的N-1次采样值一起求平均,得到当前的有效采样值。

滑动平均值法把N个采样数据看成一个队列,对列的长度固定为N,每进行一次新的采样,把采样结果放入队尾,而扔掉原来队首的一个数据,这样在队列中始终有N个“最新”的数据。计算滤波值时,只要把队列中的N个数据进行平均,就可得到新的滤波值。

滑动平均值法对周期性干扰有良好的抑制作用,平滑度高,灵敏度低;但对偶然出现的脉冲性干扰的抑制作用差,不易消除由于脉冲干扰引起的采样值的偏差。因此他不适用于脉冲干扰比较严重的场合,而适用于高频振荡系统。通过观察不同N值下滑动平均的输出响应来选取N值,以便既少占用时间,又能达到最好

的滤波效果。其工程经验值为:流量N取12,压力N取4,液面N取4~12,温度N取1~4。

2.4中值滤波

中值滤波是对某一被测参数连续采样N次(一般N取奇数),然后把N次采样值从小到大,或从大到小排队,再取其中间值作为本次采样值。

中值滤波对于去掉偶然因素引起的波动或采样器不稳定而造成的误差所引起的脉冲干扰比较有效,对温度、液位等变化缓慢的被测参数采用此法能收到良好的滤波效果,但对流量、速度等快速变化的参数一般不易采用。

2.5防脉冲干扰平均值滤波

在脉冲干扰比较严重的场合,若采用一般的平均值法,则干扰将“平均”到计算结果中去,故平均值法不易消除由于脉冲干扰而引起的采样值偏差。防脉冲干扰平均值法先对N个数据进行比较,去掉其中的最大值和最小值,然后计算余下的N-2个数据的算术平均值。即:

在实际应用中,N可取任何值,但为了加快测量计算速度,N一般不能太大,常取为4,即为四取二再取平均值法。他具有计算方便、速度快、存储量小等特点,故得到了广泛应用。

2.6程序判断滤波

工程实践表明,许多物理量的变化都需要一定的时间,相邻两次采样值之间的变化有一定的限度。程序判断滤波就是根据实践经验确定出相邻两次采样信号之间可能出现的最大偏差ΔY,若超出此偏差值,则表明该输入信号是干扰信号,应该去掉;若小于此偏差值,可将信号作为本次采样值。

当采样信号由于随机干扰,如大功率用电设备的启动或停止,造成电流的尖峰干扰或误检测,以及变送器不稳定而引起的严重失真等,可采用程序判断法进行滤波。

程序判断滤波根据滤波方法的不同,可分为限幅滤波和限速滤波2种。

2.6.1 限幅滤波

限幅滤波把两次相邻的采样值相减,求出其增量(以绝对值表示),然后与两次采样允许的最大差值(由被控对象的实际情况决定)ΔY进行比较,若小于或等于ΔY,则取本次采样值;若大于ΔY,则仍取上次采样值作为本次采样值。即:

限幅滤波主要用于变化比较缓慢的参数,如温度、物理位置等测量系统。具体应用时,关键的问题是最大允差ΔY的选取,ΔY太大,各种干扰信号将“乘虚而入”,使系统误差增大;ΔY太小,又会使某些有用信号被“拒之门外”,使计算机采样效率变低。因此,门限值ΔY的选取是非常重要的。通常可根据经验数据获得,必要时也可由实验得出。

2.6.2限速滤波

限速滤波最多可用3次采样值来决定采样结果,设顺序采样时刻t1,t2,t3的采样值分别为Y(1),Y(2),Y(3),则

限速滤波较为折中,既照顾了采样的实时性,又顾及了采样值变化的连续性。但这种方法也有明显的缺点:

(1)△Y的确定不够灵活,必须根据现场的情况不断更换新值;

(2)不能反映采样点数N>3时各采样值受干扰的情况,因而其应用受到一定的限制。具体应用时,可用(|Y(1)-Y(2)|+|Y(2)-Y(3)|)/2作为ΔY,这样也可基本保持限速滤波的特性,虽增加计算量,但灵活性提高了。

2.7低通滤波

将普通硬件RC低通滤波器的微分方程用差分方程来表示,便可以用软件算法来模拟硬件滤波的功能。经推导,低通滤波算法如下:

其中,X(K)为本次采样值;Y(K-1)为上次的滤波输出值;α为滤波系数,其值通常远小于1;Y(K)为本次滤波的输出值。

由式(13)可以看出,本次滤波的输出值主要取决于上次滤波的输出值(注意不是上次的采样值,这和加权平均滤波是有本质区别的),本次采样值对滤波输出的影响是比较小的,但多少有些修正作用。

这种算法模拟了具有较大惯性的低通滤波功能,当目标参数为变化很慢的物理量时,效果很好,但他不能滤除高于1/2采样频率的干扰信号。除低通滤波外,同样可用软件来模拟高通滤波和带通滤波。

2.8复合数字滤波

为了进一步提高滤波效果,有时可以把2种或2种以上不同滤波功能的数字滤波器组合起来,组成复合数字滤波器,或称多级数字滤波器。

例如防脉冲干扰平均值滤波就是一种应用实例,由于这种滤波方法兼顾了中值滤波和算术平均值滤波的优点,所以无论对缓慢变化的信号,还是对快速变化的信号,都能获得较好的滤波效果。

此外,也可采用双重滤波的方法,即把采样值经过低通滤波后,再经过一次高通滤波。这样,结果更接近理想值,这实际上相当于多级RC滤波器。

3结语

本文讨论了8种数字滤波算法,每种滤波算法都有其各自的特点,在实际应用中,究竟选取哪一种数字滤波算法,应根据具体的测量参数合理的选用。不适当地应用数字滤波,不仅达不到滤波效果,反而会降低控制品质,甚至失控,这点必须予以注意。

IIR数字滤波器设计原理

IIR 数字滤波器设计原理 利用双线性变换设计IIR 滤波器(只介绍巴特沃斯数字低通滤波器的设计),首先要设计出满足指标要求的模拟滤波器的传递函数)(s H a ,然后由)(s H a 通过双线性变换可得所要设计的IIR 滤波器的系统函数)(z H 。 如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率 s p w w 和的转换,对s p αα和指标不作变化。边界频率的转换关系为)21tan(2w T =Ω。接着,按照模拟低通滤波器的技术指标根据相应 设计公式求出滤波器的阶数N 和dB 3截止频率c Ω;根据阶数N 查巴特沃斯归一 化低通滤波器参数表,得到归一化传输函数 )(p H a ;最后,将c s p Ω=代入)(p H a 去归一,得到实际的模拟滤波器传输函数)(s H a 。之后,通过双线性变换法转换公式 11 112--+-=z z T s ,得到所要设计的IIR 滤波器的系统函数)(z H 。 步骤及内容 1) 用双线性变换法设计一个巴特沃斯IIR 低通数字滤波器。设计指标参数为: 在通带内频率低于π2.0时,最大衰减小于dB 1;在阻带内[]ππ,3.0频率区间上,最小衰减大于dB 15。 2) 以π02.0为采样间隔,绘制出数字滤波器在频率区间[]2/,0π上的幅频响应特 性曲线。 3) 程序及图形 程序及实验结果如下: %%%%%%%%%%%%%%%%%%

%iir_1.m %lskyp %%%%%%%%%%%%%%%%%% rp=1;rs=15; wp=.2*pi;ws=.3*pi; wap=tan(wp/2);was=tan(ws/2); [n,wn]=buttord(wap,was,rp,rs,'s'); [z,p,k]=buttap(n); [bp,ap]=zp2tf(z,p,k); [bs,as]=lp2lp(bp,ap,wap); [bz,az]=bilinear(bs,as,.5); [h,f]=freqz(bz,az,256,1); plot(f,abs(h)); title('双线性z 变换法获得数字低通滤波器,归一化频率轴'); xlabel('\omega/2\pi'); ylabel('低通滤波器的幅频相应');grid; figure; [h,f]=freqz(bz,az,256,100); ff=2*pi*f/100; absh=abs(h); plot(ff(1:128),absh(1:128)); title('双线性z 变换法获得数字低通滤波器,频率轴取[0,\pi/2]'); xlabel('\omega'); ylabel('低通滤波器的幅频相应');grid on; 运行结果: 00.050.10.150.20.25 0.30.350.40.450.500.1 0.2 0.3 0.40.50.60.70.8 0.9 1 双线性z 变换法获得数字低通滤波器,归一化频率轴 ω/2π低通滤波器的幅频相应

FIR数字滤波器设计与使用

实验报告 课程名称:数字信号处理指导老师:刘英成绩:_________________实验名称: FIR数字滤波器设计与使用同组学生姓名:__________ 一、实验目的和要求 设计和应用FIR低通滤波器。掌握FIR数字滤波器的窗函数设计法,了解设计参数(窗型、窗长)的影响。 二、实验内容和步骤 编写MATLAB程序,完成以下工作。 2-1 设计两个FIR低通滤波器,截止频率 C =0.5。 (1)用矩形窗,窗长N=41。得出第一个滤波器的单位抽样响应序列h 1(n)。记下h 1 (n) 的各个抽样值,显示h 1 (n)的图形(用stem(.))。求出该滤波器的频率响应(的N 个抽样)H 1(k),显示|H 1 (k)|的图形(用plot(.))。 (2)用汉明窗,窗长N=41。得出第二个滤波器的单位抽样响应序列h 2(n)。记下h 2 (n) 的各个抽样值,显示h 2(n)的图形。求出滤波器的频率响应H 2 (k),显示|H 2 (k)|的 图形。 (3)由图形,比较h 1(n)与h 2 (n)的差异,|H 1 (k)|与|H 2 (k)|的差异。 2-2 产生长度为200点、均值为零的随机信号序列x(n)(用rand(1,200)0.5)。显示x(n)。 求出并显示其幅度谱|X(k)|,观察特征。 2-3 滤波 (1)将x(n)作为输入,经过第一个滤波器后的输出序列记为y 1(n),其幅度谱记为|Y 1 (k)|。 显示|X(k)|与|Y 1 (k)|,讨论滤波前后信号的频谱特征。 (2)将x(n)作为输入,经过第二个滤波器后的输出序列记为y 2(n),其幅度谱记为|Y 2 (k)|。 比较|Y 1(k)|与|Y 2 (k)|的图形,讨论不同的窗函数设计出的滤波器的滤波效果。 2-4 设计第三个FIR低通滤波器,截止频率 C =0.5。用矩形窗,窗长N=127。用它对x(n)进行滤波。显示输出信号y

数字滤波算法

几种简单的数字滤波 假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值*/ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值滤波法 /* N值可根据实际情况调整 排序采用冒泡法*/ #define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;countvalue_buf[i+1] ) { temp = value_buf[i]; value_buf[i] = value_buf[i+1]; value_buf[i+1] = temp; } } }

return value_buf[(N-1)/2]; } 3、算术平均滤波法 /* */ #define N 12 char filter() { int sum = 0; for ( count=0;count

数字滤波器的MATLAB设计与实现.

数字滤波器的MATLAB设计与实现 数字滤波器的MATLAB设计与实现 类别:电子综合 引言 随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 1 数字滤波器的设计1.1 数字滤波器设计的基本步骤数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。数字滤波器设计的基本步骤如下:(1)确定指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中人有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为N 的滤波器(阶数为N-1),计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。(2)逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。(3)性能分析和计算机仿真上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。 1.2 滤波器的MATLAB设计(1)MATLAB MATLAB是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。在设计数字滤波器时,通常采用MATLAB来进行辅助设计和仿真。(2)FIR滤波器的MATLAB设计下面以设计线性相位FIR滤波器为例介绍具体的设计方法。线性相位FIR滤波器通常采用窗函数法设计。窗函数法设

数字滤波器设计与分析

吉林大学仪器科学与电气工程学院本科生实习报告 实习题目:信号分析和处理 实习时间:2012.09 专业:电气工程及其自动化 所在班级:65100615 学生姓名:王双伟 指导教师:朱凯光田宝凤林婷婷

信号实习报告 一.实验目的 加深对信号系统与信号处理理论的理解,学会信号处理的基本知识和方法,并在基本技能方面得到系统训练;熟悉MA TLAB编程环境,掌握MA TLAB编程基本技能,以及程序调试仿真方法,能够采用MATLAB语言和工具进行信号处理;掌握现代信号分析与处理技术,包括信号频谱分析和数字滤波器(FIR、IIR)设计,学会信号处理系统设计与系统功能检测的基本方法;将理论知识与实际应用结合,提高学生解决实际问题的动手能力,为信号系统与信号处理知识的应用、后续专业学习以及今后从事相关科学研究和实际工作打下坚实基础。二.实验工具 计算机,matlab软件 三.实验内容 设计FIR数字带通滤波器,对于给定函数s=sin(2πx100t)+sin(2πx200t)+sin(2πx400t),设计带通滤波器滤除100和400赫兹的频率,并画出滤波前后的时频图及滤波器的增益图。 f1=100;f2=200;f3=400; fs=2000; m=(0.3*f1)/(fs/2); M=round(8/m); N=M-1; fc=[0.15,0.3]; b=fir1(N,fc); figure(1) [h,f]=freqz(b,1,1000); plot(f*fs/(2*pi),20*log10(abs(h))) xlabel('频率/赫兹'); ylabel('增益/分贝'); title('滤波器的增益响应'); figure(2) subplot(211) t=0:1/fs:0.5; s=sin(2*pi*f1*t)+sin(2*pi*f2*t)+sin(2*pi*f3*t); plot(t,s); xlabel('时间/秒'); ylabel('幅度'); title('信号滤波前时域图');

常用的8种数字滤波算法

常用的8种数字滤波算法 摘要:分析了采用数字滤波消除随机干扰的优点,详细论述了微机控制系统中常用的8种数字滤波算法,并讨论了各种数字滤波算法的适用范围。 关键词:数字滤波;控制系统;随机干扰;数字滤波算法 1 引言 在微机控制系统的模拟输入信号中,一般均含有各种噪声和干扰,他们来自被测信号源本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。噪声有2大类:一类为周期性的,其典型代表为50 Hz 的工频干扰,对于这类信号,采用积分时间等于20 ms整倍数的双积分A/D转换器,可有效地消除其影响;另一类为非周期的不规则随机信号,对于随机干扰,可以用数字滤波方法予以削弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比重,因此他实际上是一个程序滤波。 数字滤波器克服了模拟滤波器的许多不足,他与模拟滤波器相比有以下优点: (1)数字滤波器是用软件实现的,不需要增加硬设备,因而可靠性高、稳定性好,不存在阻抗匹配问题。 (2)模拟滤波器通常是各通道专用,而数字滤波器则可多通道共享,从而降低了成本。 (3)数字滤波器可以对频率很低(如0.01 Hz)的信号进行滤波,而模拟滤波器由于受电容容量的限制,频率不可能太低。 (4)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。 2 常用数字滤波算法 数字滤波器是将一组输入数字序列进行一定的运算而转换成另一组输出数字序列的装置。设数字滤波器的输入为X(n),输出为Y(n),则输入序列和输出序列之间的关系可用差分方程式表示为: 其中:输入信号X(n)可以是模拟信号经采样和A/D变换后得到的数字序列,也

FIR数字滤波器设计及软件实现

实验五:FIR数字滤波器设计及软件实现 一、实验目的: (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 二、实验容及步骤: (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。 (4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 友情提示: ○1MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本课本;

○ 2采样频率Fs=1000Hz ,采样周期T=1/Fs ; ○ 3根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz ,阻带截至频率fs=150Hz ,换算成数字频率,通带截止频率 p 20.24p f ωπ=T =π,通带最大衰为0.1dB ,阻带截至频率s 20.3s f ωπ=T =π,阻带最小衰为60dB 。] ○ 4实验程序框图如图2所示。 图2 实验程序框图 三、实验程序: 1、信号产生函数xtg 程序清单: %xt=xtg(N) 产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz. function xt=xtg N=1000;Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T; fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10;

数字滤波器的设计及实现

数字滤波器的设计及实现 【一】设计目的 1. 熟悉IIR 数字滤波器和FIR 数字滤波器的设计原理和方法; 2. 学会调用MATLAB 信号处理工具箱中的滤波器设计函数设计各种IIR 和FIR 数字滤波器,学会根据滤波要求确定滤波器指标参数; 3. 掌握用IIR 和FIR 数字滤波器的MA TLAB 实现方法,并能绘制滤波器的幅频特性、相频特性; 4. 通过观察滤波器的输入、输出信号的时域波形及其频谱,建立数字滤波的概念。 【二】设计原理 抑制载波单频调幅信号的数学表达式为 []))(2cos())(2cos(2 1)2cos()2cos()(000t f f t f f t f t f t s c c c ++-==ππππ (2.1) 其中,)2cos(t f c π称为载波,c f 为载波频率,)2cos(0t f π称为单频调制信号,0f 为调制正弦波信号频率,且满足0c f f >。由(2.1)式可见,所谓抑制载波单频调制信号,就是两个正弦信号相乘,它有2个频率成分:和频c f +0f ,差频c f -0f ,这两个频率成分关于载波频率c f 对称。所以,1路抑制载波单频调幅信号的频谱图是关于载波频率c f 对称的两根谱线。 复合信号st 产生函数mstg 清单: function st=mstg %产生信号序列st ,并显示st 的时域波形和频谱 %st=mstg 返回三路调幅信号相加形成的混合信号,长度N=800 N=800; %信号长度N 为800 Fs=10000;T=1/Fs;Tp=N*T; %采样频率Fs=10kHz ,Tp 为采样时间 t=0:T:(N-1)*T;k=0:N-1;f=k/Tp; fc1=Fs/10; %第1路调幅信号载波频率fc1=1000Hz fm1=fc1/10; %第1路调幅信号的调制信号频率fm1=100Hz fc2=Fs/20; %第2路调幅信号载波频率fc2=500Hz fm2=fc2/10; %第2路调幅信号的调制信号频率fm2=50Hz fc3=Fs/40; %第3路调幅信号载波频率fc3=250Hz fm3=fc3/10; %第3路调幅信号的调制信号频率fm3=25Hz xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号 xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号 xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号 st=xt1+xt2+xt3; %三路信号相加,得到复合信号

数字滤波器课程设计

课程设计 课程设计名称:数字信号处理课程设计 专业班级:电信1203 学生姓名:刘海峰 学号: 201216020307 指导教师:乔丽红 课程设计时间:2015/07/01-2015/07/06 电子信息工程专业课程设计任务书

说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页

一. 技术要求 ?双线性变换法设计切比雪夫II型数字IIR低通滤波器, ?要求通带边界频率为400Hz, ?阻带边界频率分别为500Hz, ?通带最大衰减1dB, ?阻带最小衰减40dB, ?抽样频率为2000Hz, 二. 设计原理 IIR滤波器的设计包括三个步骤:①给出所需要的滤波器的技术指标; ②设计一个H(z)使其逼近所需要的技术指标:③实现所设计的H(z),IIR数字滤波器设计的最通用的方法是借助于模拟滤波器的设计方法。所以IIR数字低通滤波器的设计步骤是:①按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标;②根据转换后的技术指标设计模拟低通滤波器G(s):③再按一定规则将G(s)转换成H(z)。 在此过程中,我们用到了很多MATLAB中的函数,如设计切比雪夫低通滤波器的函数afd_chebl、由直接型转换为级联型的函数dir2cas、双线性变换的函数bilinear等。其中afd _chebl用于实现用模拟指标设计一个低通模拟滤波器,bilinear用于利用双线性变换法将模拟低通滤波器转换为数字低通滤波器。

三.程序流程图

四:源代码(完美版) %归一化低通滤波器技术指标 clc; clear all; Ap=1; %最大通带衰减 As=40; %最小阻带衰减 W=2000; %抽样周期 Wp=400; %通带边界频率 Ws=500; %阻带边界频率 wp=2*pi*Wp/W; %归一化通带边界频率 ws=2*pi*Ws/W; %归一化阻带边界频率 Wp1=tan(wp/2); %模拟低通滤波器通带边界频率 Ws1=tan(ws/2); %模拟低通滤波器阻带边界频率 %归一化切比雪夫II型低通模拟滤波器 [N,Wn]=cheb2ord(Wp1,Ws1,Ap,As,'s'); %确定滤波器阶数和频率尺度缩放因子 [BT,AT]=cheby2(N,As,Wn,'s');%传输函数的系数 [Z,P,K]=cheb2ap(N,As);%最小阻带衰减为As(DB)的N阶归一化模拟切比雪夫2型低通滤波器的零点、极点和增益因子 [H,W]=zp2tf(Z,P,K);%传输函数有理化形式 figure; [P,Q]=freqs(H,W);

FIR数字滤波器设计与软件实现(精)讲解学习

实验二:FIR 数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1掌握用窗函数法设计 FIR 数字滤波器的原理和方法。 (2掌握用等波纹最佳逼近法设计 FIR 数字滤波器的原理和方法。 (3掌握 FIR 滤波器的快速卷积实现原理。 (4学会调用 MA TLAB 函数设计与实现 FIR 滤波器。 2. 实验内容及步骤 (1认真复习第七章中用窗函数法和等波纹最佳逼近法设计 FIR 数字滤波器的原理; (2调用信号产生函数 xtg 产生具有加性噪声的信号 xt ,并自动显示 xt 及其频谱,如图 1所示;

图 1 具有加性噪声的信号 x(t及其频谱如图 (3请设计低通滤波器,从高频噪声中提取 xt 中的单频调幅信号,要求信号幅频失真小于 0.1dB ,将噪声频谱衰减 60dB 。先观察 xt 的频谱,确定滤波器指标参数。 (4根据滤波器指标选择合适的窗函数,计算窗函数的长度 N ,调用 MATLAB 函数 fir1设计一个 FIR 低通滤波器。并编写程序,调用 MATLAB 快速卷积函数 fftfilt 实现对 xt 的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (5 重复 (3 , 滤波器指标不变, 但改用等波纹最佳逼近法, 调用MA TLAB 函数 remezord 和 remez 设计 FIR 数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○ 1MA TLAB 函数 fir1的功能及其调用格式请查阅教材; ○ 2采样频率 Fs=1000Hz,采样周期 T=1/Fs;

○ 3根据图 1(b和实验要求,可选择滤波器指标参数:通带截止频率 fp=120Hz,阻带截 至频率 fs=150Hz, 换算成数字频率, 通带截止频率 p 20.24 p f ωπ =T=π, 通带最大衰为 0.1dB , 阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为 60dB 。 3、实验程序框图如图 2所示,供读者参考。 图 2 实验程序框图 4.信号产生函数 xtg 程序清单(见教材 二、滤波器参数及实验程序清单 1、滤波器参数选取 根据实验指导的提示③选择滤波器指标参数: 通带截止频率 fp=120Hz,阻带截至频率 fs=150Hz。代入采样频率 Fs=1000Hz,换算成 数字频率,通带截止频率 p 20.24 p f

十一种软件数字滤波算法

1 数字滤波 1.1 概述 在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。 采用数字滤波算法克服随机干扰的误差具有以下优点: 1、数字滤波无需其他的硬件成本,只用一个计算过程,可靠性高,不存在阻 抗匹配问题。尤其是数字滤波可以对频率很低的信号进行滤波,这是模拟滤波器做不到的。 2、数字滤波使用软件算法实现,多输入通道可共用一个滤波程序,降低系统 开支。 3、只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这 对于滤除低频干扰和随机信号会有较大的效果。 4、在单片机系统中常用的滤波算法有限幅滤波法、中值滤波法、算术平均滤 波法、加权平均滤波法、滑动平均滤波等。 1.2 限幅滤波算法 原理:该运算的过程中将两次相邻的采样相减,求出其增量,然后将增量的绝对值,与两次采样允许的最大差值A进行比较。A的大小由被测对象的具体情况而定,如果小于或等于允许的最大差值,则本次采样有效;否则放弃本次值取上次采样值作为本次数据的样本。 优点:能有效克服因偶然因素引起的脉冲干扰。 缺点:无法抑制那种周期性的干扰,平滑度差。 说明:限幅滤波法主要用于处理变化较为缓慢的数据,如温度、物体的位置等。使用时,关键要选取合适的门限制A。通常这可由经验数据获得,必要时可通过实验得到。 1.3 中值滤波算法 原理:该运算的过程是对某一参数连续采样N次(N一般为奇数),然后把N次采样的值按从小到大排列,再取中间值作为本次采样值,整个过程实际上是一个序列排序的过程。

十种数字滤波方法

1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰 对温度、液位的变化缓慢的被测参数有良好的滤波效果 自动化科协 C、缺点: 对流量、速度等快速变化的参数不宜 3、算术平均滤波法 A、方法: 连续取N个采样值进行算术平均运算 N值较大时:信号平滑度较高,但灵敏度较低 N值较小时:信号平滑度较低,但灵敏度较高 N值的选取:一般流量,N=12;压力:N=4 B、优点: 适用于对一般具有随机干扰的信号进行滤波 这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动 C、缺点: 对于测量速度较慢或要求数据计算速度较快的实时控制不适用 比较浪费RAM 4、递推平均滤波法(又称滑动平均滤波法) A、方法: 把连续取N个采样值看成一个队列 队列的长度固定为N 每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果

N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4 B、优点: 对周期性干扰有良好的抑制作用,平滑度高 适用于高频振荡的系统 C、缺点: 灵敏度低 对偶然出现的脉冲性干扰的抑制作用较差 不易消除由于脉冲干扰所引起的采样值偏差 不适用于脉冲干扰比较严重的场合 比较浪费RAM 5、中位值平均滤波法(又称防脉冲干扰平均滤波法) A、方法: 相当于“中位值滤波法”+“算术平均滤波法” 连续采样N个数据,去掉一个最大值和一个最小值 然后计算N-2个数据的算术平均值 N值的选取:3~14 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 自动化科协 测量速度较慢,和算术平均滤波法一样 比较浪费RAM 6、限幅平均滤波法 A、方法: 相当于“限幅滤波法”+“递推平均滤波法” 每次采样到的新数据先进行限幅处理, 再送入队列进行递推平均滤波处理 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 比较浪费RAM 7、一阶滞后滤波法 A、方法: 取a=0~1 本次滤波结果=(1-a)*本次采样值+a*上次滤波结果 B、优点: 对周期性干扰具有良好的抑制作用 适用于波动频率较高的场合 C、缺点:

FIR数字滤波器设计与实现

FIR 数字滤波器设计与实现 一.摘要:数字滤波器是一种具有频率选择性的离散线性系统,在信号数字处理中有着广泛的应 用。其中FIR 滤波器是一种常用的滤波器,它在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性,在语音分析、图像处理、雷达监测等对信号相位要求高的领域有着广泛的应用,能实现IIR 滤波器不能实现的许多功能。 二.关键词:FIR 窗函数系统函数MATLAB 三.内容提要: 数字滤波器的功能就是把输入序列通过一定的运算变换成输出序列,因此数字滤波器的结构系 统中就必须包括一定数量和性能的运算器件和运算单元,而运算器件和运算单元的配置必须由数字滤波器的结构特点和性能特点来决定,因此在进行FIR 数字滤波器的设计之前,有必要介绍和总结FIR 数字滤波器的基本结构和相关特性(包括频响曲线(幅度和相位),单位冲激响应等),在介绍完其基本结构和相关特性后,就进行FIR 数字滤波器的设计和实现。 (一)FIR 滤波器的基本结构 在讨论任何一种滤波器时,都要着重分析其系统函数,FIR 滤波器的系统函数为: n N n z n h z H ∑-==1 0)()(。从该系统函数可看出,FIR 滤波器有以下特点: 1)系统的单位冲激响应h(n)在有限个n 值处不为零; 2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(稳定系统); 3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包 含有反馈的递归部分。 1.FIR 滤波器实现的基本结构有: 1) 横截型(卷积型、直接型) a.一般FIR 滤波器的横截型(直接型、卷积型)结构: 若给定差分方程为: 。则可以直接由差分方程得出FIR 滤波器结构如 下图所示: 这就是FIR 滤波器的横截型结构,又称直接型或卷积型结构。 b .线性相位FIR 滤波器的横截型结构

FIR数字滤波器设计与软件实现

实验二:FIR数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。(3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。

(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○1MATLAB函数fir1的功能及其调用格式请查阅教材; ○2采样频率Fs=1000Hz,采样周期T=1/Fs; ○3根据图1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止 频率 p 20.24 p f ωπ =T=π,通带最大衰为0.1dB,阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为60dB。 ○4实验程序框图如图2所示,供读者参考。

FIR数字滤波器设计与软件实现

一、实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MA TLAB函数设计与实现FIR滤波器。 二、实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图10.5.1所示; 图10.5.1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。 (4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez 设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○1MA TLAB函数fir1和fftfilt的功能及其调用格式请查阅本书第7章和第?章; ○2采样频率Fs=1000Hz,采样周期T=1/Fs; ○3根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率 fs=150Hz,换算成数字频率,通带截止频率 p 20.24 p f ωπ =T=π,通带最大衰为0.1dB,阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为60dB。] ○4实验程序框图如图10.5.2所示。

单片机数字滤波算法

单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。 但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。 在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。 1采用数字滤波算法克服随机干扰的误差具有以下优点: 1.数字滤波无需其他的硬件成本,只用一个计算过程,可靠性高,不存在阻 抗匹配问题。尤其是数字滤波可以对频率很低的信号进行滤波,这是模拟滤波器做不到的。 2.数字滤波使用软件算法实现,多输入通道可共用一个滤波程序,降低系统 开支。 3.只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这 对于滤除低频干扰和随机信号会有较大的效果。 4.在单片机系统中常用的滤波算法有限幅滤波法、中值滤波法、算术平均滤 波法、加权平均滤波法、滑动平均滤波等。 2限幅滤波算法 该运算的过程中将两次相邻的采样相减,求出其增量,然后将增量的绝对值,与两次采样允许的最大差值A进行比较。A的大小由被测对象的具体情况而定,如果小于或等于允许的最大差值,则本次采样有效;否则取上次采样值作为本次数据的样本。 算法的程序代码如下: #define A //允许的最大差值 char data; //上一次的数据 char filter() { char datanew; //新数据变量 datanew=get_data(); //获得新数据变量 if((datanew-data)>A||(data-datanew>A)) return data; else return datanew; }

实验五IIR数字滤波器设计及软件实现

实验四:IIR数字滤波器设计及软件实现 一、实验内容及步骤 1、调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号 st,三路信号在时域混叠无法在时域分离,但频域是可分离的,所以可以通过滤波的方法在频域分离。 2、要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可 以分离st中三路抑制载波单频调幅信号的三个滤波器(低通、高通、带通)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1db,阻带最小衰减为60db. 3、编程序调用MATLAB滤波器设计函数ellipord和ellip分别设计三个椭圆滤 波器,并绘图显示其损耗函数曲线。 4、调用滤波器实现函数filter,用三个滤波器分别对信号产生函数mstg产生 的信号st进行滤波,分离出st中的三路不同载波频率的调幅信号yn1、yn2、yn3的,并绘图显示其时域波形,观察分离效果。 二、实验结果显示 原信号图形:

高通滤波器 输出波形

带通滤波器输出波形

低通滤波器输出波形

带阻滤波器输出波形

三、实验结论:由上面所绘图形可知,利用数字滤波器完全可以将时域混叠而频域未混叠的波形分开,达到滤波目的。 四、思考题 (1)请阅读信号产生函数mstg,确定三路调幅信号的载波频率和调制信号频率。答:第一路调幅信号的调制信号频率为100HZ,载波频率为1000HZ;第二路调幅信号的调制信号频率为50HZ,载波频率为500HZ;第三路调幅信号的调整信号频率为25HZ,载波频率为250HZ。 (2)信号产生函数mstg中采样点数N=1600,对st进行N点FFT可以得到6根理想谱线。如果取N=1800,可否得到6根理想谱线?为什么?N=2000呢?请改变函数mstg 中采样点数N的值,观察频谱图验证您的判断是否正确? 答: 因为信号st是周期序列,谱分析时要求观察时间为整数倍周期。分析可知,st的每个频率成分都是25Hz的整数倍。采样频率Fs=10kHz=25×400Hz,即在25Hz 的正弦波的1个周期中采样400点。所以,当N为400的整数倍时一定为st的整数个周期。因此,采样点数N=800和N=2000时,对st进行N点FFT可以得到6根理想谱线。如果取N=1000,不是400的整数倍,不能得到6根理想谱线。

数字滤波器的设计

实验报告 课程名称:数字信号与信息处理 实验名称:数字滤波器的设计 院(系): 专业班级: 姓名: 学号: 指导教师:李家星 2012年12月14日

一、实验目的: (1)实验类型:设计性实验。 (2)掌握通过零、极点设计低阶数字滤波器的设计方法。 (3)掌握IIR 和FIR 数字滤波器的设计方法,并利用所设计滤波器解决实际问题。 (4)通过分析滤波前后信号频谱的变化,使学生能深刻理解滤波的概念。 (5)对两种滤波器设计方法的进行比较。 二、实验主要仪器设备,软件 (1)硬件准备:PC 机 (2)软件准备:Matlab 语言环境 三、实验的基本原理与内容: 1)实验原理: 数字滤波器是具有某种特定频率特性的线性时不变系统。广义上,任何线性时不变离散系统都是一个数字滤波器。设计数字滤波器的任务就是需求一个因果稳定的线性是不变系统,并使系统函数H(z)具有指定的频率特性。 ()() ()n j 0 n e z j e n h z H e H j ωω ω ∑∞ ==== 低阶数字滤波器一般指一阶或二阶滤波器。因其阶次较低,可用零极点的分布来调控其频率特性;其好处处理速度快,硬件简单。另外,高阶滤波器在许多情况下由多个低阶滤波器组合来实现。 LTI 系统可在z 域中用零极点图的形式来描述。这在设计简单的滤波器时很重要,利用其可进行谱分析,只要正确地配置零极点就可达到一定的设计要求。那么,建立零极点与频率特性的关系规律:1)设计滤波器时,一定要保证结构的稳定,因此所有极点应该位于单位圆之内;2)负相位越大引起系统的延时越大,为了减少系统时延,所设计的系统零点最好也在单位圆内(或上);3)极点在单位圆附近,对应频率幅度会出现波峰;零点在单位圆上,对应频率幅度会出现波谷。 基于零极点的低阶数据滤波器模型: 低通:()111121--?-+?-=z a z a z H LP 高通:()1 1 1121--?--?+=z z z H HP αα

10种简单的数字滤波算法(C语言源程序)

假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值*/ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值滤波法 /* N值可根据实际情况调整 排序采用冒泡法*/ #define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;countvalue_buf[i+1] ) { temp = value_buf[i]; value_buf[i] = value_buf[i+1]; value_buf[i+1] = temp; } } } return value_buf[(N-1)/2]; } 3、算术平均滤波法

*/ #define N 12 char filter() { int sum = 0; for ( count=0;count

相关文档
最新文档