基于Matlab的常用滤波算法研究(含代码) - 图文

更新时间:2024-04-27 07:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业设计(论文)

UNDERGRADUATE PROJECT (THESIS)

题 目: 冲击测试常用滤波算法研究

学 院 专 业 学 号 学生姓名 指导教师 起讫日期 毕业设计(论文)

目录

摘要 ............................................................................................................................... 2 ABSTRACT .................................................................................................................. 3 第一章 绪论.................................................................................................................. 4

1.1课题背景 ............................................................................................................................ 4 1.2国内外相关领域的研究 .................................................................................................... 4 1.3主要研究内容与创新 ........................................................................................................ 5

1.3.1研究内容与意义 .................................................................................................... 5 1.3.2课题的创新点 ........................................................................................................ 5 1.3.3 研究目的与技术指标 ........................................................................................... 6

第二章 数字滤波基础.................................................................................................. 7

2.1数字滤波算法概念 ............................................................................................................ 7 2.2数据采样与频谱分析原理 ................................................................................................ 8

2.2.1 时域抽样定理 ....................................................................................................... 8 2.2.2 离散傅立叶变换(DFT) ......................................................................................... 8 2.2.3 快速傅立叶变换(FFT) ......................................................................................... 9 2.2.4 频谱分析原理 ....................................................................................................... 9 2.3常用数字滤波算法基础 .................................................................................................. 10

2.3.1常用数字滤波算法分类 ...................................................................................... 10 2.3.2常用数字滤波算法特点 ...................................................................................... 11 2.3.3常用滤波算法相关原理 ...................................................................................... 13 2.4 冲击测试采样数据 ......................................................................................................... 16

2.4.1噪声的特点与分类 .............................................................................................. 16 2.4.2冲击测试采样数据特点 ...................................................................................... 17 2.5 MATLAB简介 .................................................................................................................... 17

2.5.1 MATLAB功能简介 ................................................................................................ 18 2.5.2 MATLAB的发展 .................................................................................................... 18

第三章、冲击测试滤波算法设计及滤波效果分析.................................................. 20

3.1 冲击测试采样数据的分析 ............................................................................................. 20 3.2 滤波算法设计及效果分析 ........................................................................................... 21

3.2.1 中位值平均法的设计 ......................................................................................... 21 3.2.2限幅法和限速法的设计 ...................................................................................... 23 3.2.3一阶滞后法的设计 .............................................................................................. 25 3.2.4低通法的设计 ...................................................................................................... 26

第四章 结论与展望.................................................................................................... 34

4.1冲击测试的滤波算法总结 .............................................................................................. 34 4.2冲击测试的滤波算法展望 .............................................................................................. 34

致 谢............................................................................................................................ 36 参考文献...................................................................................................................... 37 附录:程序代码清单.................................................................................................. 38

1

毕业设计(论文)

冲击测试常用滤波算法研究

摘要

动态信号分析仪是一种主要应用在噪声、振动分析、模型分析、电子设计和声学测试的工具,冲击测试和冲击谱分析是确定设备在经受外力冲撞或作用时的安全性、可靠性和有效性的实验方法,也是动态信号分析仪的一项重要功能。冲击测试采样数据往往会受到来自环境中的各种噪声干扰,有必要对其进行滤波以更好地分析其真实的冲击谱特性。本文中主要研究了一些应用于冲击测试数据滤波的常用滤波算法如中位值法、算术平均法、中位值平均法、限幅法、限速法、一阶滞后法、低通法等。MATLAB是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。本文在MATLAB环境下实现各常用数字滤波算法并讨论了各滤波算法的特点及其选用原则。针对冲击测试仪采样数据的噪声干扰特点,挑选出合适的算法对冲击测试采样数据进行滤波,分析比较各滤波算法的实际滤波效果并且进行相关优化以实现更优的滤波效果。

论文的主要内容:

第一章、绪论主要介绍了有关动态信号分析仪的课题背景、国内外发展情况,课题的研究意义及创新点等。

第二章、介绍了数字滤波的基本原理、常用滤波算法分类与特点、频谱分析基本原理和环境噪声的相关知识。

第三章、主要介绍各滤波算法的参数选择和具体设计流程,并对各算法的滤波效果进行分析比较。

第四章、对冲击测试常用滤波算法实现和滤波效果的分析总结及前景展望。

关键词:数字信号处理、数字滤波、滤波算法、MATLAB

2

毕业设计(论文)

ABSTRACT

Dynamic signal analyzer is a tool mainly applied in noise, vibration analysis, model analysis, electronic design and acoustic test. Impact test and impact spectrum analysis are experimental methods that examine the safety, reliability and validity of the equipment under external force impact. Impact test sample data often suffers from all kinds of noises in the environment, it is necessary to filter the data for better and real impact spectrum characteristics.

In this paper, we mainly study commonly used digital filtering algorithm such as median value method, the arithmetic average method, weighted average method, clipping method, limited speed method, and low pass method and so on. MATLAB is a computing language and interactive environment for senior technical computing algorithm development, data visualization, data analysis and numerical analysis. Using MATLAB, we simulate the commonly used digital filtering algorithms and discuss the characteristics and selection principles of the algorithms. According to the characteristics of noise of the data sampling impact tester, a suitable algorithm it is selected, analyzed, justified to achieve better filtering effect.

The reminder of the thesis is as follows:

Chapter one introduces the project background, the development of the dynamic signal analyzer domestic and abroad, the research significance and innovations etc.

Chapter two includes the basic principle of digital filtering, classification and characteristics of filtering algorithm commonly used, basic principle of spectrum analysis and the relevant knowledge of environmental noise.

Chapter three is the design and effect analysis of digital filtering algorithm in details.

The last chapter is the conclusion of the design and effect analysis of impact test filtering algorithms.

Keywords: Digital signal processing; Digital filtering; Filtering algorithm; MATLAB

3

毕业设计(论文)

第一章 绪论

1.1课题背景

动态信号分析仪是从表示物理量的电信号中分析其特性参数的仪器,由硬件和分析软件构成。动态信号分析仪可从时域、频域和幅值域分析被测信号,具有功能全、分析速度快、测量参数多、频率分辨力和幅值精度高等特点,广泛应用于如计算机制造、航空航天、电子、军事、生物医学、通讯等高科技产品的质量检测和诊断分析[1]。

动态测试、信号处理、模态试验、环境试验、状态监测、故障诊断的核心

手段是动态信号分析仪[2]。而随着科技的进步,特别是微电子技术的迅猛发展,嵌入式微控制器的出现与使用,诞生了集动态信号采集、分析、存储、显示为一体的动态信号分析仪。该种动态信号分析仪体积小、重量轻、速度快、功能强大、方便携带于工程现场的使用,需要时可将所存的数据传送到计算机进行更详细的分析。

冲击测试一般是确定军民用设备在经受外力冲撞或作用时产品的安全性、可靠性和有效性的一种试验方法。而冲击响应谱通常简称“冲击谱”,它是将受到机械冲击作用的一系列单自由度系统的最大响应(如位移、速度或加速度)响应值随系统的固有频率而变化的频谱[3]。国家标准化组织(ISO)所属的技术委员会以及我国的国家标准,都已经把冲击谱作为规定冲击环境的方法之一。冲击谱是对设备实施抗冲击设计的分析基础,也是控制产品冲击环境模拟实验的基本参数。因此冲击响应谱分析是动态信号分析仪应具备的一项重要功能。

由于在冲击测试中,采样数据不可避免地受到各种环境噪声的干扰。所以在进行冲击响应谱分析前,对冲击测试采样数据进行数字滤波处理是很有必要的。本文主要研究冲击测试的常用数字滤波算法,数字滤波根据有用信号与噪声的不同特性,消除或减弱噪声。它对信号安全可靠和有效灵活地传递是至关重要的[4]。数字滤波方式具有精度高、可靠性高、灵活易用(可程控改变特性)、便于集成等特点。

数字滤波是语音处理、图像处理、模式识别、频谱分析等应用的基本处理算法[5]。语音处理是最早应用数字滤波的领域之一,也是最早推动数字信号处理理论发展的领域之一。语音的去噪与增强技术已取得许多成果。目前,数字信号滤波在图像处理、数据压缩等方面取得了巨大的进展和成就。小波理论由于其局部分析性能的优异在图像处理中的应用研究得到迅速发展,尤其是在图像压缩、图像去噪等方面的应用研究[6]。而在数字通信、网络通信、图像通信、多媒体通信等应用中,离开了数字滤波几乎是寸步难行。

1.2国内外相关领域的研究

动态信号分析仪在电子测量领域中被称为频域中的“射频万用表”,具有较高的实用性,并得到了广泛的应用[7]。它同时具备几种仪器的功能,坚固、轻

4

毕业设计(论文)

便、是适用于现场应用的理想仪器,其性能和功能可适应有严格要求的研发应用需要。内置的信号源及可选的特性更优化了仪器用于分析和查找噪音、振动与声学问题,评测控制系统的功能,以及评估和解决了旋转机器问题,并定性与评估控制系统参数。近几年,随着数字信号处理器(DSP)和PC机的发展,先进的动态信号分析仪都采用数据采集处理系统加PC机显示管理程序来实现。国内外对动态信号分析仪的研究尤其是国内有了较快的发展。

国外多通道动态信号分析仪的技术已经基本成熟。产品的体积小,速度快,功能强大,性能优异,操作简单但是价格比较昂贵。主要研制的公司有:美国惠普公司(HP),美国安捷伦公司(Agilent惠普公司重组后的测量公司),美国尼高力仪器技术公司(Nioclet),美国Dactorn公司和美国国家仪器有限公司(NI),

惠普公司和安捷伦公司的产品比较早,功能上比较单一,外形类似一般的示波器。如:HP35660A、HP35665A、 HP35670A、Agilent 35670A。

NI公司的产品硬件是一块动态信号采集板,而上层则是使用它的Labview软件开发的虚拟仪器。

而Dactron和 Nicolet的动态信号分析仪都采用了最新的技术,一般都是采集处理系统再配合PC机的上层管理软件PC机一般工作Windows操作系统,操作简单,功能强大。如 Dactron 公司:Photon便携式动态信号分析仪、Spectra动态信号分析仪、Book Focus实时动态信号分析仪Nicolet 公司:Horizon、 Compass动态信号分析仪[8]。

国内自主研发了一批动态信号分析仪器,以北京万博振通公司的产品为代表。北京万拨通公司生产的BVM-102高档触摸型双通道信号分析仪,采用5.6寸液晶显示屏,在Windows xp平台下运行的控制管理软件,信号频率范围高达200kHz,体积小(190*150*64mm)。国内的动态信号分析仪大体功能与国外接近,但是国外产品由于技术比较成熟,所以仪器各方面指标都比较高,另外国外厂商在注重仪器本身的研发的同时注重外围维护和管理软件环境的研发,产品附加值较高[7]。

1.3主要研究内容与创新

1.3.1研究内容与意义

数字滤波是常见的信号处理分析方法。本课题主要讨论应用于冲击测试数据的一些常用数字滤波算法如中位值法、算术平均法、中位值平均法、限幅法、限速法、一阶滞后法、低通法等。基于MATLAB环境实现了各常用数字滤波算法并分析、讨论各算法的特点及选用原则。针对冲击测试采样数据的噪声特点,挑选出适合的算法对冲击测试采样数据进行滤波,分析各滤波算法的滤波效果并且进行相关优化以实现更优的滤波效果。

1.3.2课题的创新点

课题的创新点主要有三点:第一、算法应用于实际环境的冲击测试采样数据,其中所受的噪声干扰如脉冲干扰、工频干扰具有代表性。对它进行的滤波算法研究有一定实际价值。第二、算法基于MATLAB实现,充分利用了MATLAB

5

毕业设计(论文)

的强大计算仿真功能。MATLAB作为一款强大的数学、金融、通信、信号处理的交互式软件,我们可以很方便的在其中编写程序、仿真模型。第三、综合实现了各常用数字滤波算法,总结了各个算法的滤波特点与选用原则。

1.3.3 研究目的与技术指标 研究目的:

毕业设计是一个全面运用各方面知识与能力的综合实践。希望能够通过此次毕业设计能使得我们加深对常用数字滤波知识的理解并尽可能完成滤波算法的优化,同时也使自己掌握分析解决问题的方法,提高自己解决实际问题的能力。

技术指标:

1、冲击测试滤波算法的设计方法,即数字滤波算法的研究与比较,从中选出适合冲击测试系统的滤波算法。

2、冲击测试滤波算法的效果分析,即对某算法应用于具体采样数据的滤波效果分析,进行相关调试或优化以达到更加理想的效果。

6

毕业设计(论文)

第二章 数字滤波基础

2.1数字滤波算法概念

信号分析与处理中,常常会遇到有用信号中叠加了无用噪声的问题。这些噪声有的是与信号同时产生的,有时是传输过程中混入的,有时噪声会大于有用的信号,从而淹没掉信号。因此,从接收到的信号中消除或减弱干扰噪声,就成为信号传输与处理中十分重要的问题。根据有用信号与噪声的不同特性,消除或减弱噪声,提取有用的信号的过程称为滤波[9]。滤波技术是信号分析处理的重要分支。无论是信号的获取、传输还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和灵活有效地传递是至关重要的。

数字信号处理 (Digital Signal Processing)是一门涉及多学科并广泛于各个科学和工程领域的新兴学科[5]。它是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。现代社会已经进入数字化、信息化时代,DSP技术因此得到广泛应用和不断发展。而数字滤波作为其重要分支也飞速发展。

数字滤波是用数字处理的方法按预定的要求滤除干扰信号,获得有用信号。其最初的设想是代替模拟滤波[10]。不同于模拟滤波通过无源或有源器件搭建模拟电路的滤波方式,数字滤波是由数字乘法器、加法器和延时单元组成的一种计算方法。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电子计算机技术和大规模集成电路的发展,数字滤波已可用计算机软件实现,也可用大规模集成数字硬件实时实现。数字滤波是一个离散时间系统,应用数字滤波处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。为得到模拟信号,数字滤波处理的输出数字信号须经数模转换、平滑。

数字滤波方式具有精度高、可靠性高、灵活易用(可程控改变特性)、便于集成等特点。

精度高: 数字滤波方式具有比模拟滤波器更高的精度,甚至能够实现后者在理论上也无法达到的性能。例如,对于数字滤波器来说很容易就能够做到一个 1000Hz 的低通滤波器允许 999Hz 信号通过并且完全阻止 1001Hz 的信号,模拟滤波器无法区分如此接近的信号。

可靠性高: 数字滤波方式还具有模拟滤波方式不能比拟的可靠性。传统的模拟滤波器由电子元件组成,其电路特性会随着时间、温度、电压的变化而漂移,而数字电路则没有这种问题,只要在数字电路的工作环境下,数字滤波器就能够稳定、可靠的持续工作。

灵活易用:数字滤波方式有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器,以及FIR数字滤波器,而这些设计都不需改变硬件,只要修改参数和程序就可实现。

7

毕业设计(论文)

便于集成: 数字滤波器一般由寄存器、延时器、加法器和乘法器等基本数字电路实现。随着大规模集成电路技术的成熟,数字滤波器可以很方面的集成与实现,其应用领域也因此越来越广。

数字滤波是语音处理、图像处理、模式识别、频谱分析等应用的基本处理算法。离开了数字滤波几乎是寸步难行[5]。

2.2数据采样与频谱分析原理

2.2.1 时域抽样定理[11]

时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率fsam大于等于2倍的信号最高频率fm,即fsam?2fm。时域抽样是把连续信号X(t)变成适于数字系统处理的离散信号X[k]。对连续信号

X(t)以间隔T抽样,则可得到的离散序列为X[k]?X(kT)t?kT。

x(t)0T2Tx[k]t012k 图2-1 连续信号抽样的离散序列

若X[k]?X(kT)t?kT,则信号X(t)与X[k]的频谱之间存在:

X(ej?1)?Tn?????X?j(??n?sam)? (2-1)

其中,X(ej?)的频谱为X(j?),X[k]的频谱为X(ej?)。

π/T为抽样角频率,可见,信号时域抽样导致信号频谱的周期化。?sam?2fsam?1T为抽样频率。数字角频率Ω与模拟角频率ω的关系为:Ω=ωT。

2.2.2 离散傅立叶变换(DFT)[12]

8

毕业设计(论文)

有限长序列x(n)的离散傅立叶变换(DFT)为

?knX(k)?DFT[x(n)]??x(n)WN,0?n?N?1 (2-2)

n?0N?1

逆变换为

1x(n)?IDFT[X(k)]?N?knX(k)W,0?n?N?1?Nn?0N?1 (2-3)

2.2.3 快速傅立叶变换(FFT)[13]

在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散

傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。

有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。

MATLAB为计算数据的离散快速傅立叶变换,提供了一系列丰富的数学函数,主要有fft、ifft、fft2 、ifft2, fftn、ifftn和fftshift、ifftshift等。当所处理的数据的长度为2的幂次时,采用基-2算法进行计算,计算速度会显著增加。所以,要尽可能使所要处理的数据长度为2的幂次或者用添零的方式来添补数据使之成为2的幂次。 fft函数调用方式: ○1Y=fft(X); ○2Y=fft(X,N); ○3Y=fft(X,[],dim)或Y=fft(X,N,dim)。 函数ifft的参数应用与函数fft完全相同。

2.2.4 频谱分析原理[14]

时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。由于从频域能获得的主要是频率信息,所以本节主要介绍频率(周期)的估计与频谱图的生成。 1、频率、周期的估计

对于Y(k?f),如果当k?f = f时,Y(k?f)取最大值,则f为频率的估计值,由于采样间隔的误差,f也存在误差,其误差最大为?f / 2。 周期T=1/f。

从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期,这个将在下一章做出验证 2、频谱图

9

毕业设计(论文)

为了直观地表示信号的频率特性,工程上常常将Fourier变换的结果用图形的方式表示,即频谱图。

以频率f为横坐标,|Y(f)|为纵坐标,可以得到幅值谱; 以频率f为横坐标,arg Y(f)为纵坐标,可以得到相位谱; 以频率f为横坐标,Re Y(f)为纵坐标,可以得到实频谱; 以频率f为横坐标,Im Y(f)为纵坐标,可以得到虚频谱。

根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即Fourier变换的结果中频率大于Fs/2的部分是不正确的部分,故不在频谱图中显示。即横坐标f ∈[0, Fs/2]。

2.3常用数字滤波算法基础

2.3.1常用数字滤波算法分类

图2-2 数字滤波算法分类

10

毕业设计(论文)

图中为数字滤波算法的分类,包括经典滤波算法和现代滤波算法。本文研究的冲击测试数据滤波对于滤波要求相对简单,所以文中主要讨论几种经典数字滤波算法。

2.3.2常用数字滤波算法特点

中位值法

 A、方法:

 连续进行N次数据采样(N一般取奇数)  把采样的N个数据按大小排列  取数列的中间值为本次有效值  B、优点:

 能有效滤除由于偶尔因素或采样器本身不稳定而引起的脉冲干扰  对温度、液位等变化缓慢的被测参数比较有效  C、缺点:

 对流量、速度等快速变化的参数则不宜采用 对周期性的随机干扰效果一般 算术平均法  A、方法:

 连续进行N次采样并对采样得到的这N个数据进行算术平均运算 把计算得到的算术平均值作为本次有效值

 当N值较大时:信号平滑度较高,但灵敏度较低  当N值较小时:信号平滑度较低,但灵敏度较高  B、优点:

 对具有幅值变化不大的周期随机干扰滤波效果好,对毛刺有平滑作用  受随机干扰的信号的特点是有一个平均值,信号在某一数值附近上下波动  C、缺点:

 对于测量速度较慢或要求数据计算速度较快的实时控制不适用  对脉冲干扰的滤波效果一般

中位值平均滤波法(又称防脉冲干扰平均滤波法)  A、方法:

 相当于“中位值滤波法”+“算术平均滤波法”  连续采样N个数据,去掉一个最大值和一个最小值  然后计算N-2个数据的算术平均值作为本次的有效值  N值的选取:3~14  B、优点:

 同时具有两种滤波法的优点

 对于脉冲噪声干扰与幅值变化不大的随机干扰都有良好的抑制作用,可消除干扰引起的采样值偏差  C、缺点:

 测量速度比较慢,和算术平均滤波法一样

实际滤波效果可能不及“中位值滤波法”+“算术平均滤波法”的方式。 限幅法

 A、方法:

 根据经验常识判断,确定两次采样允许的最大偏差值(设为?y)

11

毕业设计(论文)

 每次检测到新值时判断:

 如果|y(n)-y(n-1) |<=?y, 则取y(n)=y(n)  如果|y(n)-y(n-1 ) >?y, 则取y(n)=y(n-1)  B、优点:

 能有效克服因偶然因素引起的脉冲干扰  C、缺点

 无法抑制周期性的随机干扰

限幅差值难确定,平滑度差 限速法

 A、方法:

 根据经验判断, 确定最大偏差值?y,最多取两次采样值并进行判断以得到本次采样的有效值

 每次检测到新值时判断:

 如果|y(n)-y(n-1) | <=?y, 则y(n)=y(n-1)

 如果|y(n)- y(n-1) | > ?y, 则y(n)无效,但仍保留y(n),继续采样取得y(n+1) 如果|y(n+1)-y(n) |<=?y, 则y(n)=y(n+1)

y(n?1)?y(n) 如果|y(n+1)- y(n ) | > ?y, 则y(n) =

2 B、优点:

能克服因偶然因素引起的脉冲干扰

 既照顾了采样的实时性,又顾及了采样值变化的连续性  C、缺点

增加了较多的计算量,处理速度变慢  同样无法抑制周期性的随机干扰  差值难确定,平滑度差 一阶滞后滤波法  A、方法:

 一阶滞后滤波也叫一阶惯性滤波 取滞后系数a=0~1

 本次滤波结果=(1-a)?本次采样值+a?上次滤波结果  B、优点:

 对周期性干扰具有良好的抑制作用  效果相当硬件电路一阶惯性环节

适用于波动频率较高的场合  C、缺点:

 相位滞后,灵敏度低  滞后程度取决于a值大小 低通法

 A、方法:

根据噪声的频率设定一个合适的截止频率wc 按wc及其他指标设计相应的低通数字滤波器

按频率滤波,使有用信号所在频率通过、噪声所在频率被滤除  B、优点:

能有效滤波截止频率范围外的噪声,且平滑度较高

12

毕业设计(论文)

参数易调整,可以方便地进行修改以达到最佳效果  C、缺点:

无法滤除与有用信号混频的噪声干扰

无法滤除高于采样频率一半的干扰

2.3.3常用滤波算法相关原理

中位值平均滤波法:

中位值滤波:对连续采样的N个数据进行排序,取排序在中间的值。 算术平均滤波:连续进行N次采样并对采样得到的N个数据进行算术平均运算。 中位值平均滤波法:综合了两者优势的算法,算法虽然简单,但是它是基于数学概率的基本原理,其滤波效果是不错的。

限幅法、限速法:

实际信号中的原始信号因为信号的连续性,往往存在相邻两个采样值的一个最大偏差差值,超过这个偏差值基本就可以确定是噪声干扰。限幅法就是根据经验常识判断,确定两次采样允许的最大偏差值(设为?y),进行简单的程序判断,而限速法是在权衡采样实时性和采样变化的连续性后对限幅法的有限改进。

一阶滞后算法:[15]

常用的RC滤波器的传递函数是:

y(s)1? (2-4) x(s)1?Tfs其中Tf?RC,RC滤波器的滤波效果取决于滤波时间常数Tf。可以模仿上式做成一阶惯性滤波器亦称低通滤波器,即将上式写成差分方程:

y(n)?y(n?1)Tf?y(n)?x(n) (2-5)

T整理可得:

y(n)?a?y(n?1)?(1?a)?x(n) (2-6)

FIR滤波器相关知识:[ 16]

FIR滤波器的主要设计方法有窗函数法、最优化设计法及约束最小二乘逼近法。在滤波器传统设计中,要得到其幅频和相频响应特性,需要根据这些方法进行大量的计算,这使得滤波器的设计缓慢,周期变长,不利于设计的优化。MATLAB信号处理工具箱中提供了基于滤波器设计方法的工具函数,编程中可根据设计要求直接调用相应的函数,方便快捷,FIR数字滤波器的设计方法主要是建立在对理想滤波器频率特性作某种近似的基础上,这些近似方法较多。本文选用窗函数法来设计FIR滤波器。

窗函数设计滤波器的基本思想,是把给定的频率响应通过IDTFT(Inverse Discrete Time Fourier Transform),求得脉冲响应,然后利用加窗函数对它进行截断和平滑,以实现一个物理可实现且具有线性相位的FIR滤波器的设计目的。其核心是从给定的频率特性,通过加窗确定有限长单位脉冲响应序列h(n)。系

13

毕业设计(论文)

统单位脉冲序列h(n),它是一个有限长序列。假设Hd(ej?)是所要求的理想响应序列,则

Hd(ej?)?n????h?dn(e)??jn (2-7)

式(2-7)中hd(n)是对应的单位脉冲响应序列,而滤波器的频率响应和单位脉冲响应序列是傅里叶变换对,则

hd(n)?12?????Hd(ej?)ej?nd? (2-8)

求得序列hd(n)后,可得到

Hd(z)?n????h(n)zd??n (2-9)

注意到,这里hd(n)为无限长序列,因此hd(n)是物理不可实现的。

为了使系统变为物理可实现的,且使FIR滤波器实际频率响应尽可能逼近理想的频率响应,采用窗函数将无限脉冲响应hd(n)截取一段h(n)来近似表示hd(n) 可得

h(n)?hd(n)?(n) (2-10)

由此可得

H(z)??h(n)z?nn?0N?1

(2-11)

式(2-11)中,N为窗口宽度,H(z)是物理可实现系统。

而窗函数所必须满足的特性:

(1)窗谱主瓣尽可能地窄,以获得较陡的过渡带;

(2)尽量减少窗谱的最大旁瓣的相对幅度,也就是能量尽量集中于主瓣,使肩峰和纹波减小,就可增多阻带的衰减。

(3)窗函数的频率特性的旁瓣在当?趋近于π的过程中,其能量迅速趋于零。

这就给窗函数序列的形状和长度选择提出了严格的要求。常用窗函数有如下几种[8]:矩形窗(Rectangle Window)、三角窗(Bartlett Window)、汉宁窗(Hanning Window)、海明窗(Hamming Window)、布莱克曼窗(Blackman Window)、凯泽窗(Kaiser Window)( β=7.865),各种窗函数基本参数比较如下表:

14

毕业设计(论文)

表1 常用窗函数基本参数 窗函数 频谱性能指标 旁瓣 主瓣 峰值 宽度 /dB /(2π/N) -13 2 矩形窗 -25 4 三角形窗 -31 4 汉宁窗 -41 4 海明窗 -57 6 布莱克曼窗 -57 5 凯泽窗 (β=7.865)

IIR滤波器相关知识 [17]

加窗后滤波器性能指标 过渡带宽 阻带最 ?? 小衰减 / dB /(2π/N) 0.9 -21 2.1 -25 3.1 -44 3.3 -53 5.5 -74 -80 IIR数字滤波器是一种离散时间系统,其系统函数为

H(Z)??bkz?k1??akz?kk?1k?0NM?1?AiN (2-12)

?1?(1?diz)i?1?(1?ciz?1)M假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。IIR数字滤波器的设计实际上是求解滤波器的系数ak和bk,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。

数字滤波器 技术指标 变换 ??g(?) 模拟滤波器 技术指标 模拟滤波器 设计方法 模拟滤波器 H(S) 变换 数字滤波器 H(Z) S=f(Z) 图2-3 IIR数字滤波器的设计步骤流程图

IIR数字滤波器的设计可以使用模拟滤波器原型,借鉴成熟的模拟滤波器设

15

毕业设计(论文)

计方法进行设计再转化成数字滤波器。常用的设计方法有脉冲响应不变法和双线性法,本文主要使用脉冲响应不变法进行设计。而常用的模拟滤波器原型有:巴特沃兹滤波器、切比雪夫滤波器、椭圆滤波器等,其幅频特性可逼近于理想滤波器的幅频响应特性。

下图分别为巴特沃兹滤波器、切比雪夫滤波器 I 型和II型、椭圆滤波器的幅频响应特性图。

图2-4 常用滤波器幅频响应特性图

2.4 冲击测试采样数据

2.4.1噪声的特点与分类

(1) 根据干扰的来源划分

内部干扰——指系统内部电子电路的各种干扰。 外部干扰——指由外界窜入到系统的各种干扰。 (2) 根据干扰出现的规律划分

固定干扰——指系统附近固定的电气设备运行时发出的干扰。

半固定干扰——指某些偶然使用的电气设备(如行车、电钻)引起的干扰。

随机干扰——属于偶发性的干扰。如闪电、供电系统继电保护的动作等干扰。 (3)根据干扰产生和传播的方式划分 静电干扰

磁场耦合干扰 电磁辐射干扰 电导通路耦合干扰 漏电耦合干扰

(4) 根据干扰输入信号的关系划分 串模(差模)干扰 共模干扰

16

毕业设计(论文)

其中,根据干扰产生和传播的方式划分: ① 静电干扰

静电干扰实际是电场通过电容耦合的干扰。

从电路理论可知,电流流经一导体时,导体产生电场,这个电场可交连到附近的导体中,使它们感生出电位,这个电位就是干扰电压。从交流电路传输来看,干扰起因于导体与导线之间、元件之间的寄生电容。外部噪声源与导体之间的寄生电容耦合到电路,造成对电路的干扰。 ② 磁场耦合干扰

磁场耦合干扰是一种感应干扰。

在连接信号源的传输线经过的空间总存在着交变电磁场。在诸如动力线、变压器、电动机、继电器、电风扇等附近,都会有这种磁场。这些交变的磁场穿过传输线形成的回路,将在传输线上或闭合导线上感应出交流干扰电压。 ③ 电磁辐射干扰

在工厂内,各种大功率高频、中频发生装置以及各种电火花机床,都将产生高频电磁波向周围空间辐射,形成电磁辐射干扰源。

辐射能量是以与通信接收机接收无线电频率能量相同的方法耦合到电路中而产生干扰。

④ 电导通路耦合干扰

电导通路是指构成电回路的通路。

电导通路耦合干扰是由各单元回路之间的公共阻抗干扰。由于接地电位不同而造成的干扰为这类干扰的主要表现形式。

在数据采集系统中,“地”有两种含义:一是指大地,它是系统中各个设备的自然参考电位,二是指一个设备内部电源的参考电位。

如果一个仪器的地线不与大地连接,则称为“浮地”,否则称为接地。 ⑤ 漏电耦合干扰

漏电耦合干扰是由于仪器内部的电路绝缘不良而出现的漏电流引起的电阻耦合产生的干扰,如图所示。在高输入阻抗器件组成的系统中,其阻抗与电路板绝缘电阻可以比拟,通过电路板产生漏电流,将形成干扰。

2.4.2冲击测试采样数据特点

作为冲击测试采样的电压数据,其在采样和传输过程中不可避免地会受到环境和系统电路本身的噪声干扰,噪声的干扰对冲击测试结果会产生许多不利的影响,我们有必要其进行数字滤波处理。根据冲击测试结果可知,冲击测试采样数据受到的主要干扰为电工噪声干扰和随机噪声干扰.。其中的随机噪声干扰主要是由数量少幅值变化大的脉冲干扰和数量多幅值变化小的随机干扰组成,而这些随机干扰普遍存在于环境中。电工干扰则属于波动频率较高的周期性干扰,是市电以电磁波的辐射形式对周围的电气设备和电子设备造成干扰,可以导致设备运行异常,严重时甚至损坏设备。

2.5 MATLAB简介

17

毕业设计(论文)

2.5.1 MATLAB功能简介

MATLAB是一种科学计算软件。MATLAB 是矩阵实验室(matrix laboratory)的缩写。这是一种以矩阵为基础的交互式程序计算语言。早期的MATLAB主要用于解决科学和工程的复杂数学计算问题。由于它使用方便、输入便捷、运算高效、适应科技人员的思维方式,并且有绘图功能,有用户自行扩展的空间,特别受到用户的欢迎,使它成为在科技界广为使用的软件,也是国内外高校教学和科学研究的常用软件。

MATLAB比较易学,它只有一种数据类型(即64位双精度二进制),一种标准的输入输出语句,它用解释方式工作,不需要编译,一般入门后经过自学就可以掌握。如果有不清楚的地方,可以通过它的帮助(help)和演示(demo)功能得到启示。MATLAB学习的难点在于它有大量函数,这些MATLAB函数仅基本部分就有700多个,其中常用的就有200-300个,掌握和记忆比较困难[18]。

在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文档管理等各项操作。它提供人机交互的教学系统环境,用来解决一些实际课题和数学模型问题。典型的应用包括数值计算、算法设计与验证以及一些特殊的矩阵计算应用,如自动控制理论、统计、数字信号处理及相应的仿真等。

MATLAB语言简洁方便,有丰富的运算符号和库函数,还具有结构化的控制语句和面向对象编程的特点。随着其版本的不断提高,各种工具箱不断扩充和完善,MATLAB的功能越来越强,从而被广泛应用于仿真技术、自动控制和数字信号处理等领域。与C语言等其他高级编程语言不同,MATLAB提供了一套内容广泛的教学、统计与工程函数。交互式图形能力对用于生成曲线的功能进行了扩展。工具箱是由本领域专家编写的算法集合,可以提供应用程序的专用功能。这些工具箱在信号与图像处理、数据分析与统计、数学建模、控制系统设计等方面增强了MATLAB 的功能。

2.5.2 MATLAB的发展

MATLAB由美国Mathworks公司于1984年开始推出,历经升级,到2001年已经有了6.0版,现在MATLAB 6.1、6.5、7.0版本都已相继面世。早期的MATLAB在DOS环境下运行,1990年推出了Windows界面下的编程,它的功能越来越强大,在科技和工程界广为传播。它集数值分析、矩阵运算、信号处理和图形显示于一体,是科学研究、工程应用的工具。在MATLAB内部配备了涉及到自动控制、信号处理和计算机仿真等种类繁多的工具箱,所以MATLAB的应用非常广泛,它可涉足于数值分析、控制、信号分析和通信等多种领域。MATLAB不仅可完成基本代数运算操作,而且还可完成矩阵函数运算,提供丰富的实用函数命令。另外,用户还可以根据自己的需要编写函数。

MATLAB已成为一个系列产品:MATLAB主包和各种工具箱(Toolbox),其丰富的功能吸引了不同领域的研究者。迄今为止,它的30多个工具箱大致可分为两类:功能型工具箱和领域形工具箱。功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时

18

毕业设计(论文)

交互功能,能用于多种学科;而领域型工具箱是专业性比较强的,如控制工具箱和信号处理工具箱等。

目前, MATLAB软件为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。运用MATLAB软件进行仿真不存在设计效率较低,无可视图形,不便于修改参数等缺点。由于其以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。尤其是MATLAB 工具箱使各个领域的研究人员可以直观方便地进行科学研究与工程应用。其中的信号处理工具箱、图像处理工具箱、小波工具箱等更是为数字滤波研究的蓬勃发展提供了可能[19-20]。

本文中主要使用MATALAB的M程序方式来实现设计,设计中使用的命令有画图相关命令、常用载入载出命令、信号处理工具箱函数和一些基本的数学运算处理命令。

19

毕业设计(论文)

第三章、冲击测试滤波算法设计及滤波效果分析

3.1 冲击测试采样数据的分析

冲击测试响应谱分析是动态信号分析仪的一项重要的功能。在冲击测试采样环境中,采样数据往往会受到来自环境中和系统电路本身的各种干扰,使采样数据难以反应被测系统的真实冲击频谱特性。本课题中这种干扰主要表现为环境的随机噪声干扰和周期性的电工噪声干扰。而随机干扰主要是数量少幅值变化大的脉冲干扰和数量多幅值变化小的一般干扰,电工干扰则是频率波动高的周期性的干扰,一般用电环境中都会存在。所以本课题的选用数字滤波算法必须既能抑制脉冲干扰又能抑制一般随机干扰。如果是通过低通数字滤波方式则要需要根据实际采样数据的频率特性,设置合理的截止频率和衰减指标,以达到更好地衰减甚至消除噪声的目的。

图 3-1 频谱分析

图3.1为冲击采样数据的频谱分析图,它是通过对采样数据进行离散FFT变换并调整频率位置所得。 频谱分析步骤如下:

1、对冲击测试数据采样、离散化,由于冲击测试数据已经是离散数列,而我们又不想减少原始数据的个数,所以只要直接读取即可。

2、将采样得到的数据进行离散傅立叶变换再取其绝对值,在MATLAB的命令为fft(y,n)和abs,其中y为待变换的离散数列,n进行变换的点数,这里直接取数列的离散数列个数n=2500。

3、对所得频谱进行调整,即fftshift命令。如果不进行调整可能不能反映正确的频率分布。

4、以频率f为横轴,以经fft变换后的Y为y轴,画出图形,图形一般是关于

20

毕业设计(论文)

y轴对称的图形。

整个变换过程为Y=fftshift(abs(fft(y,n))); 然后画出频谱图即plot(f,Y);

从频谱图中我们可以看到,所受干扰信号的频率分布很广、能量分散。实际上频谱图显示有用信号与噪声已经产生了混频但混频范围较小且混频范围内噪声能量小,不会对有用信号产生较大影响。而有用信号的能量主要集中在1000HZ以内,所以设置的下限频率为1000Hz,上限频率为800Hz。

3.2 滤波算法设计及效果分析

3.2.1 中位值平均法的设计

由前面所述冲击测试数据特点分析可知,测试数据受到脉冲噪声和一般的随机噪声的干扰。本文选用中位值平均滤波算法作为冲击测试数据的滤波算法,因为中位值滤波对脉冲干扰滤波效果较好,而算术平均滤波算法对于幅值变化不大的随机干扰效果佳,中位值平均滤波算法综合了两者的优势。设计过程中分为两个步骤,我首先单独设计了中位值滤波和算术平均滤波并验证了其滤波效果,然后再设计了理论上效果相当于“中位值滤波法”+“算术平均滤波法”的中位值平均滤波。而实际滤波效果与预期有一部分差异,所以对算法进行了一些改进以达到更好的效果。

1、单独设计“中位值滤波”和“算术平均滤波”并验证了其滤波效果 中位值滤波算法和算术平均滤波算法实现起来都比较简单,一个是对采样数据排序取中间值为本次有效值,另一个是采样N个数据计算算术均值为本次有效值。设计过程中主要考虑的参数是滤波窗口大小N,本次针对冲击测试采样数据滤波,影响N大小的因素主要是原始数据中的噪声频率f和采样频率fs。对于中值滤波比如假设N=5,测试滤波效果好。当采样频率fs不变时,噪声频率f下降时,如果选用同样大小的窗口N=5,由于噪声频率f下降,导致采样所得数据差异小,尖峰脉冲干扰难以被滤除,此时应该适当加大窗口N。同理,算术平均滤波也有类似的问题。实际的数据的采样频率是固定的为fs=25kHZ,所以主要受噪声频率f影响。测试过程中中位值窗口n1=13,算术均值窗口n2=15。结果显示:两者算法单独的滤波效果都不错,能够有效滤除数据的噪声。

下图为滤波效果图,其中滤波后的效果图为局部放大图:

21

毕业设计(论文)

图3-2 中位值、算术平均滤波

2、设计中位值平均滤波算法

中位值平均滤波算法首先去掉N个采样值中最大和最小的两个值相当于去掉了采样数据中两个不可信值,然后进行算术平均取为本次有效值。主要参数还是窗口的大小选取,经测试n1=15时噪声滤除效果较好同时基本保持了原波形的最大幅值。 M程序部分实现代码:

n1=15;%中值平均滤波窗口 y1 =[y;y(1:n1)]; for i=1:length(y) s=y1(i:i+n1-1); sort(s);

out(i)=mean(s(2:n1-2)); end y2=out;

22

毕业设计(论文)

图3-3 中位值平均滤波

原理上中位值平均算法能达到中位值滤波法”+“算术平均滤波法”的效果,但实际的滤波结果显示与预期效果有一定差距,基本上类似于算术平均算法的滤波效果,在毛刺减少方面比算术平均算法稍好。如图3.3为滤波前后的电压波形,相比滤波前,经中位值平均算法滤波的波形的毛刺明显减少,图形变得平滑自然。滤波算法简单,效果良好。主要缺点是波形仍然有一些不平滑,信号中仍然包含不少随机噪声,波形的最大幅值有所下降。所以为了进一步减少幅值变化不大的随机噪声,在其后又添加了一个中位值滤波环节,结果显示波形变得更加平滑,噪声基本被滤除,能够达到预期的要求。

3.2.2限幅法和限速法的设计

限幅法是根据生产经验,确定两次采样允许的最大差值?y,若滤波过程中两次采样值差值超过最大差值?y,则判定为噪声信号去掉采样值,取上次的采样值本次有效值。若小于最大差值?y,则保留信号取为本次有效值。实际设计中值?y的确定并不容易。如果?y取得过小,有用信号可能被滤除,如果?y取得过大,则噪声又无法被滤除。

在冲击采样数据滤波中,我根据其特点取?y =0.03,并根据实际情况修改了部分算法,经测试滤波效果可以接受。而限速法是限幅法的改进,照顾了滤波的实时性,又顾及了采样值的连续性。实际测试发现滤波效果并不好。 两算法的一般流程图分别如下:

23

毕业设计(论文)

图3-4限幅法流程图 图3-5限速法流程图

上图为一般程序判断流程,由于是冲击测试采样数据,我们的数据中肯定会出现冲击信号其两次采样值的差值很大的情况,所以最大差值?y我取了两个.当?y <=0.03,本次采样值保留,或?y >0.06本次也采样值保留。?y >0.06这个值是根据采样数据所受噪声一般是幅值变化不大的随机噪声和冲击测试数据特点来确定的。同样,限速法中我也添加了?y >0.06这个滤波条件。

24

毕业设计(论文)

图3-6 限幅法、限速法滤波

从上面的滤波效果图,可以看到左边的限幅法波形非常干净,几乎没有任何毛刺。从原始信号和滤波信号的对比中,我们可以看出限幅法的滤波结果滤除几乎所有噪声,但也只保持了原信号的部分重要信息,实际的有用信号不可能完全没有波动。算法对原始采样数据的细节信息保留不完整。对于本次的冲击测试数据来说,总体保持了大部分重要的信号,结果可以接受。而右图限速滤波则效果不佳,滤波后的图形噪声干扰有所减少,但是还是有许多噪声被保留,其原因我认为是由于所受干扰属于波动频率较高的周期性随机噪声干扰,而限速滤波从上面流程图可以看出,如果两次采样值大于?y=0.03,本次数值保留但不采用,而会根据下一组数据判断,若下一组数据仍大于?y=0.03,则取两次数值的平均值,从而使得噪声信号最终以均值的方式被保留在采样数据中,所以该算法不适合本课题的冲击采样数据。

3.2.3一阶滞后法的设计

一阶滞后滤波又称为一阶惯性滤波,它是通过模拟硬件RC滤波器的方式来实现数字滤波,效果相当于硬件一阶RC滤波环节。该算法是通过将普通硬件RC滤波器的微分方程用差分方程来表示,使之变成简单关系式来实现的,即y(n)=a?y(n-1)+(1-a)?x(n)。从式子可以看出本次滤波的输出值主要取决于上次滤波的输出值和本次采样值而非上次的采样值和本次的采样值,与普通加权取平均有本质区别。这种算法对于MATLAB编程来说,编写起来十分简单,只要列写一个式子即可完成。但它模拟了具有较大惯性的低通滤波功能,抛弃了传统的硬件。 式子如下:

y(n)=a?y(n-1)+(1-a)?x(n) (3-1)

25

毕业设计(论文)

其中

a?TfTf?T----滤波系数 0

Tf----滤波时间常数

T-----采样周期

滤波系数a越大,滤波结果 越平稳,但是灵敏度越低;滤波系数a越小,灵敏度越高但是滤波结果平稳度越差。由此可见,灵敏度和平稳度似乎是一对相互制约的指标,二者无法完全兼顾。本文主要侧重于提高平稳度,经测试取得系数a=0.7滤波效果图如下:

图3-7 一阶滞后滤波

从图中看,一阶滞后滤波后图形的噪声得到相当的抑制,无论噪声的幅值大小还是噪声的密度都得到了改善,有效抑制了脉冲干扰,但仍有许多噪声没有被滤除。因此,在其后我又添加了算术平均滤波来滤除采样数据中的幅值变化不大的随机干扰。最终“一阶滞后滤波+算术平均滤波” 的滤波波形比较平滑,滤波效果不错。

3.2.4低通法的设计

3.2.4.1基于窗函数的FIR低通滤波器设计

FIR数字滤波器的设计方法主要有窗函数法、最优化设计法、最小二乘逼近法,本文采用的方法是实际FIR滤波器设计中比较常用的窗函数法,也称为傅立叶级数法。

设计FIR数字低通滤波器,要求通带边界频fp=0.8kHZ,阻带边界频率fs=1kHZ,通带最大衰减 rp=0.5dB阻带最小衰减rs=20dB,采样频率为

26

毕业设计(论文)

Fs=25kHZ。

窗函数法设计FIR低通滤波器的步骤大致为:

1、选择窗函数的类型和长度,确定窗函数的数学表达式。一般是根据阻带的最小衰减选择窗函数w(n)的类型,然后根据过渡带宽确定所选窗函数的长度N。

jw2、构造希望逼近的频率响应函数Hd(e)。根据实际要求,一般构造相应的

线性相位理想滤波器如(理想低通、理想高通、理想带通、理想带阻)另外,理想滤波器的截止频率wc近似为-6dB处的截止频率,即信号频率使幅值下降到最大值0.5倍处。 3、计算

hd(n):

1hd(n)?2?

??H??d(ejw)ejwndw (3-2)

4、加窗设计结果:

h(n)?hd(n)w(n) (3-3)

本文实际设计时,由于是在MATLAB环境下进行设计,可以比较简便地调

用工具箱函数来实现。

步骤1是直接根据设计指标选取窗函数的类型和长度,本文由于阻带最小衰减Rs=0.5dB,选择了汉宁窗,则过渡带宽满足??6.2?,即N=ceil(6.2*pi/w);%

N根据过渡带宽度求滤波器阶数

步骤2-4的解题过程是使用MATLAB信号处理工具箱函数来设计,直接调用其中的fir1函数即可设计。fir1调用格式如下:hn=fir1(N,wc,’ftype’,window) 其中: N------窗口长度

wc-----6dB处对π归一化截止频率,0?wc?1 ftype-----滤波器类型(如high、stop)

window----窗口类型 (如hamming、hanning)默认缺省则选用hamming窗 部分M 代码如下: wp=2*pi*800/Fs; ws=2*pi*1000/Fs;

wc=(wp+ws)/2;% 近似计算截止频率

w=2*pi*(ws-wp)/wc;% 过渡带宽

N=ceil(6.2*pi/w);% 根据过渡带宽度求滤波器阶数 window=hanning(N+1);% 汉宁窗

27

毕业设计(论文)

b=fir1(N,wc/pi,window); y1=filter(b,1,y);

图3-8 FIR数字滤波

图为滤波前后的信号波形,FIR滤波器即有限长单位冲激响应滤波器,它无反馈回路,是一种无条件稳定系统,具有线性相位特性,相比IIR滤波器需计算的数据少,从图中看,FIR数字滤波器很好地完成了滤波,频率通带内波纹小,阻带衰减快,图形平滑,充分显示FIR数字滤波器作为普遍使用的数字滤波器的优越性。

3.2.4.2基于脉冲响应不变法的IIR数字低通滤波器设计

一般,数字滤波器设计采用按技术指标先设计模拟滤波器然后通过某种方式转化为数字滤波器的方式。下文采用脉冲响应法设计模拟滤波器,其中有一些典型的优良滤波器类型可供采用,如Butterworth。然后将设计好的模拟滤波器转化为数字滤波器。 3.2.4.2.1Butterworth低通滤波器

这里使用脉冲响应不变法来设计巴特沃斯数字低通滤波器,而待过滤的数据并没有指定的参数要求。所以我们根据实际情况自己进行设定和修改以达到最佳滤波效果。根据频谱分析结果,我们设定通带边界频率fp=0.8kHZ,阻带边界频率fs=1kHZ,通带最大衰减采用常用值rp=0.5dB;阻带最小衰减通过实际测试在兼顾滤波效果和滤波器阶数N的情况下选择rs=2dB,采样频率已知为Fs=25kHZ。

低通巴特沃斯滤波器设计步骤如下: (1)确定阶数N

28

毕业设计(论文)

kp?100.1Rs?1?2.1894 (3-4) 0.1Rp10?12?fs?1.25 (3-5) 2?fp?sp?N?lg2.1894?3.51,取整N=4 (3-6)

lg1.25j(2k?N?1)?/2N(2)按公式pk?ek=0,1,2···N-1求取极点 p0,p1,p2,p3

归一化低通原型系统函数为

Ga(p)?1?(p?pk?04

k

(3-7)

)然后根据阶数N可得

Ga(p)?1 (3-8)

(p?p0)(p?p1)(p?p2)(p?p3)

(3)由p?s代入,将Ga(p)去归一化 ??c4325314H(s)?s?b3?s?b2?s?b1?s?b0?2 (3-9)

上面是通过计算直接求取,计算过程比较烦琐,在MATLAB中已经将该过程的计算打包成工具箱,只要调用函数即可实现。 下面用M程序编程实现

用脉冲响应不变法设计的Butterworth低通滤波器的M程序如下: clear; close all;clc; load data0.mat x=b(:,1); y=b(:,2); fp=800; fs=1000;

rp=0.5; %通带最大衰减 rs=2; %阻带最小衰减 Fs=25000; %抽样频率

Wp=2*fp/Fs; %数字角频率 Ws=2*fs/Fs; %数字角频率 [n,Wn]=buttord(Wp,Ws,rp,rs);

29

毕业设计(论文)

[b,a]=butter(n,Wn); y1=filter(b,a,y); subplot(2,1,1); plot(x, y);

xlabel('t/s');ylabel('电压幅值/v'); title('滤波前波形'); grid on;

subplot(2,1,2); plot(x, y1);

xlabel('t/s');ylabel('电压幅值/v'); axis([-0.04 0.04,2.2,3.2]); title('巴特沃斯滤波'); grid on;

运行后的滤波效果如下:

图3-9 Butterworth数字滤波

图为滤波前后的信号波形,滤波前波形明显受到随机噪声的干扰,电压幅值在2.3V附近来回振荡。相比滤波前,波形明显变得平滑,基本没有毛刺。稳定段电压幅值保持在2.3V左右基本保持稳定,脉冲段电压幅值保持了原数据的最大幅值。滤波效果良好、速度快,算法实现简单。

3.2.4.2.2Chebyshev I型和II型

设计切比雪夫数字低通滤波器,指标要求与前面所述的巴特沃斯低通数字滤波器基本一致。参数要求:通带边界频fp=0.8kHZ,阻带边界频率fs=1kHZ,通带最大衰减rp=0.5dB;阻带最小衰减I型的rs=2dB,II型的rs=20dB,采样频率

30

毕业设计(论文)

为Fs=25kHZ,其中I型纹波系数rp取值0.5,而II型纹波系数rs取20dB。

切比雪夫I型II型低通波器设计流程与巴特沃斯滤波器设计流程也是基本一致:确定阶数N 求极点 求归一化系统函数Ga(p) 求去归一化系统函数Ha(s)。

下面切比雪夫I型和II型的M程序中与巴特沃斯低通滤波器的不同之处,相同部分不再重复。

Wp=2*fp/Fs; %数字角频率 Ws=2*fs/Fs; %数字角频率 [n,Wn]=cheb1ord(Wp,Ws,rp,rs); [b,a]=cheby1(n,0.5,Wn); y1=filter(b,a,y);

************************** Wp=2*fp/Fs; %数字角频率 Ws=2*fs/Fs; %数字角频率 [n,Wn]=cheb2ord(Wp,Ws,rp,rs); [b,a]=cheby2(n,20,Wn); y1=filter(b,a,y);

其中的[n,Wn]=cheb1ord(Wp,Ws,rp,rs) 是根据参数要求,计算滤波器阶数n和截止频率Wn. 而[b,a]=cheby1(n,rp ,Wn),其中rp为指定通带内波纹大小(归一化后),默认的rp=0.5(即3dB衰减处),b,a为系统函数的系数,fillter函数为调用设计好的函数进行滤波。

Chebyshev I型运行后的滤波效果如下:

31

毕业设计(论文)

图3-10 Chebyshev I型 数字滤波

Chebyshev II型运行后的滤波效果如下:

图3-11 Chebyshev II型 数字滤波

从两幅图中,我们可以清楚地看到Chebyshev I型滤波效果十分好,而Chebyshev II型效果不错,但是波形有点振荡。原因是Chebyshev I型和II型两种类型,分别具有通带等波纹和阻带等波纹性能。Chebyshev I型在通带内为等波纹,在阻带内为单调。Chebyshev I型滤波器比Butterworth滤波器的下降斜度大,但代价是通带内波纹较大,在冲击测试数据滤波中由于有用信号较稳定,而噪声干扰波动很大,所以通带内波纹较大对波形的影响不大,但阻带波纹大将导致波形受影响较大。所以Chebyshev II型的滤波波形有点振荡且波形不如 I型平滑,相比之下,Chebyshev I型更加适合本课题的滤波。另外我同时也测试了椭圆滤波器,它可以得到下降斜度更大、衰减更快性能,但通带和阻带均

32

毕业设计(论文)

为等波纹,同理该型滤波器也不合适本系统。滤波图形如下:

图3-12 椭圆数字滤波

33

毕业设计(论文)

第四章 结论与展望

4.1冲击测试的滤波算法总结

本次设计完成了动态信号分析仪中关于冲击测试数据的滤波任务,滤波效果良好,达到了预定要求。其中我们总共研究了5种算法,包括中位值平均算法、限幅法、限速法、一阶滞后法和低通法,实际测试中限速法不合适本系统的滤波,滤波效果不佳,其他几个大都完成预期任务。在此总结各个滤波算法的选用原则和参数选择:

1、中位值平均滤波可以滤除脉冲干扰和幅值变化不大的随机干扰,适合较复杂的噪声干扰环境,主要参数选择是滤波窗口长度的选择,对冲击测试数据的滤波效果良好。

2、限幅法对于脉冲干扰滤波效果好,但最大差值较难选取,需根据经验和实际测试结果来决定。

3、限速法由于是对限幅法的改进,同理对于脉冲干扰滤波效果好,但是其不适合波动频率较高的周期性噪声场合,所以不适合本课题的系统。主要参数也是最大差值。

4、一阶滞后法,效果模拟硬件的一阶惯性环节,所以对于抑制脉冲噪声和周期性噪声效果好,主要参数为滤波系数a。a越大,波形平稳度越好,灵敏度越差,a越小,波形平稳度越差,灵敏度越好。适合波动频率较高的场合,对冲击测试数据的滤波效果,在配合算术平均滤波后效果不错。

5、低通法,即数字滤波器方式,具有典型的优秀滤波器原型可供使用,可以根据有用信号所在频率来确定截止频率,通带内信号可以通过,阻带内信号被阻止,对于本文冲击测试滤波,FIR滤波器完成预期目标,FIR滤波器适合各种对信号相位要求不高的场合,主要参数是阻带最大衰减,用于选择窗函数类型和长度。

而对于IIR滤波器,本文测试了多种优秀滤波器原型,Butterworth滤波器在通带内幅度响应最平滑,过渡带下降斜度小,而Chebyshev I和II型则分别具有通带等波纹和阻带等波纹性能,过渡带下降斜度较大,椭圆滤波器则具有通带等波纹和阻带都是等波纹的特性,下降斜度最大。基本上过渡带下降斜度与波形的平稳度相互制约。本系统中由于噪声波动频率较高,所以阻带波动的滤波器类型不太适合本系统,最终的结果显示Butterworth和Chebyshev I滤波器相较其他类型效果好。

最后,通过这次设计,我们充分运用了信号处理相关知识,熟悉了MATLAB工作环境,提高了自己解决实际问题的能力。

4.2冲击测试的滤波算法展望

冲击测试一般是确定军民用设备在经受外力冲撞或作用时产品的安全性、可靠性和有效性的一种试验方法。冲击测试和冲击谱分析是对设备实施抗冲击设计的分析基础,也是控制产品冲击环境模拟实验的基本参数。而冲击测试采

34

毕业设计(论文)

样数据的滤波则是必不可少的,未来的滤波方式肯定是越来越丰富。

从滤波发展历程讲,数字滤波经历了几个重要阶段,20世纪60年代数字滤波刚刚兴起。当时主要采用计算机模拟的方式进行数字滤波研究。70年代,开始将微处理器应用于数字滤波。但是由于处理器性能不高,在很多场合都难以实现实时处理。80年代,由于VLSI技术的发展,通用DSP处理器大量涌现并逐渐趋于成熟,使得音频范围内数字滤波技术得到广泛应用。目前,不仅通用DSP芯片的速度和功能不断提高,还出现了专用DSP芯片能适应要求信号处理速度极快的特殊场合,总之,目前数字滤波领域的研究十分热门、未来发展方向众多、前景光明。

就本系统的滤波而言,还有许多值得改进和提高的地方:

1、采用的许多滤波算法较为简单,难以适应更高的滤波要求,限于时间和知识的有限,还有许多复杂的现代滤波算法没有讨论。

2、对滤波结果分析得不够透彻,由于对滤波算法研究不够深入,许多分析都十分浅显,难以分析到问题的本质。

3、课题中许多算法的滤波效果仍然不够精细,比如中位值平均的滤波效果仍有一些提高的空间,有待进一步改进。

4、仅仅基于MATLAB环境进行设计,没有更全面的设计和测试,与实际的滤波效果肯定有一定的差异。

35

毕业设计(论文)

致 谢

本文是在导师的悉心指导下完成的。从毕设的选题、相关知识的学习、程序的编写到论文的写作,王老师都给予了足够的帮助与指导,使我受益匪浅。同时感谢同组同学的帮助,使我在融洽的环境中完成毕业设计。最后感谢父母的鼓励与支持,使我能够顺利完成学业。

再次向所有关心帮助我的老师、亲人和朋友表示感谢!

36

毕业设计(论文)

参考文献

[1] 严洪燕,武桦.动态信号分析仪自动检定系统设计[J].自动化与仪表,2010,3(02): 16-17.

[2]张令弥, 张春林.多通道动态测试分析系统研制与应用[J]. 振动与冲击, 1995, 14(3): 1-3.

[3]刘晋浩.冲击响应谱的应用方法研究[J]. 包装工程, 2006, 27(4): 29-30. [4]邓重一.滤波技术的发展现状[J].传感器世界,2010,03:1-2.

[5]邹彦.DSP原理及应用[M].北京:电子工业出版社,2005.169-170.

[6]张玉春,杨成峰.基于小波变换的数字滤波[J].天津电力技术, 2008, 03(1): 6-7.

[7]罗文忠. 动态信号分析仪软件分析[D].上海:上海大学, 2013. 1-2. [8]史慧. 实时动态信号分析仪的研制[D].吉林:吉林大学, 2006. 1-3.

[9]姜建国.信号与系统分析基础[M].北京:清华大学出版社,2006.218-219. [10]阮锐. 数字滤波技术的探讨[J]. 海洋测绘, 1998, 02(4): 28-29.

[11] 杨峰,苏玉萍,余冬菊. 用MATLAB模拟实现数字信号的调制与频谱分析[J]. 电脑学习, 2008, (04).

[12] 王占丽.频谱分析技术在实际中的应用[J].黑龙江科技信息, 2009, (27) .

[13] 赵淑敏.基于MATLAB实现对语音信号频谱分析[J].信息通信,2010, (04) .

[14] 李媛媛,徐岩,王靖岳.对MATLAB实现数字信号的频谱分析[J].通信技术, 2008, (01) .

[15] 张玉珊,崔金玲.数据采集系统中的数字滤波方法研究[J].通信技术, 2007, (15)3.23-25.

[16]丁玉美.数字信号处理(第二版)[M].西安:西安电子科技大学出版社,2000.12.

[17]王世一.数字信号处理[M].北京:北京理工大学出版社,2005. [18]洪乃刚.电力电子、电机控制系统的建模和仿真[M].北京:机械工业出版社 , 2010.1-3.

[19]陈杰. MATLAB宝典[M].北京:电子工业出版社,2007.

[20] 尹则明,丁春利,等.精通MATLAB6[M].北京:清华大学出版社,2002.

37

毕业设计(论文)

附录:程序代码清单

1、模拟噪声信号的产生的MATLAB实现代码 close all; clc; clear;

load data0.mat x=b(:,1); y=b(:,2);

fs=25000;% 对应于离散数字信号的采样速率 n=length(y);% 做fft的点数 f=fs*[-n/2:n/2-1]/n

Y=fftshift(abs(fft(y,n))); figure(1);

subplot(2,1,1); plot(x,y);

xlabel('t/s');ylabel('电压幅值/v'); title('时域图形'); grid on;

subplot(2,1,2); plot(f,Y,'r');

xlabel('f/Hz');ylabel('幅值'); axis([-3000,3000,0,400]); title('频域特性局部放大'); grid on;

2、中值滤波的MATLAB实现代码(函数调用实现) function y = calc_median(input,len)

% OUT = CALC_MEDIAN(INPUT,LEN)

% calculate the median value by each length LEN of the INPUT; % INPUT is the input series or matrix need to be filtered;

% LEN is the average filter length, and LEN must be smaller than the input size; % return OUT is the same size series or matrix of input. [m,n] = size(input);

input = reshape(input,m*n,1); if len>=m*n

return error('the filter length is too large!'); else

input = [input;input(1:len-1)]; out = [];

for i=1:m*n

out(i) = median(input(i:i+len-1));

end

38

毕业设计(论文)

y = reshape(out,m,n); end

3、算术平均滤波的MATLAB实现代码(函数调用实现) function y = calc_avg(input,len)

% OUT = CALC_AVG(INPUT,LEN)

% calculate the average value by each length LEN of the INPUT; % INPUT is the input series or matrix need to be filtered;

% LEN is the average filter length, and LEN must be smaller than the input size; % return OUT is the same size series or matrix of input. [m,n] = size(input);

input = reshape(input,m*n,1); if len>=m*n

return error('the filter length is too large!'); else

input = [input;input(1:len-1)]; out = [];

for i=1:m*n

out(i) = mean(input(i:i+len-1));

end

y = reshape(out,m,n); end

4、中位值平均滤波的MATLAB实现代码clear; close all; clc; load data0.mat x=b(:,1); y=b(:,2);

n1=15; %中值平均滤波窗口 n2=13 ;%中值滤波窗口 y1 =[y;y(1:n1)]; for i=1:length(y) s=y1(i:i+n1-1); sort(s);

out(i)=mean(s(2:n1-2)); end y2=out;

y3=calc_avg(y2,n2); subplot(3,1,1); plot(x,y);

xlabel('t/s');ylabel('电压幅值/v'); title('滤波前波形');

axis([-0.05 0.05,2.2,3.2]); grid on;

subplot(3,1,2);

39

本文来源:https://www.bwwdw.com/article/gfyg.html

Top