基于matlab的常用滤波算法研究含代码Word格式.docx
《基于matlab的常用滤波算法研究含代码Word格式.docx》由会员分享,可在线阅读,更多相关《基于matlab的常用滤波算法研究含代码Word格式.docx(50页珍藏版)》请在冰豆网上搜索。
![基于matlab的常用滤波算法研究含代码Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/24/9787b701-d3c5-49ef-9554-5eb7eeb9f21f/9787b701-d3c5-49ef-9554-5eb7eeb9f21f1.gif)
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.5MATLAB简介17
2.5.1MATLAB功能简介18
2.5.2MATLAB的发展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
冲击测试常用滤波算法研究
摘要
动态信号分析仪是一种主要应用在噪声、振动分析、模型分析、电子设计和声学测试的工具,冲击测试和冲击谱分析是确定设备在经受外力冲撞或作用时的安全性、可靠性和有效性的实验方法,也是动态信号分析仪的一项重要功能。
冲击测试采样数据往往会受到来自环境中的各种噪声干扰,有必要对其进行滤波以更好地分析其真实的冲击谱特性。
本文中主要研究了一些应用于冲击测试数据滤波的常用滤波算法如中位值法、算术平均法、中位值平均法、限幅法、限速法、一阶滞后法、低通法等。
MATLAB是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
本文在MATLAB环境下实现各常用数字滤波算法并讨论了各滤波算法的特点及其选用原则。
针对冲击测试仪采样数据的噪声干扰特点,挑选出合适的算法对冲击测试采样数据进行滤波,分析比较各滤波算法的实际滤波效果并且进行相关优化以实现更优的滤波效果。
论文的主要内容:
第一章、绪论主要介绍了有关动态信号分析仪的课题背景、国内外发展情况,课题的研究意义及创新点等。
第二章、介绍了数字滤波的基本原理、常用滤波算法分类与特点、频谱分析基本原理和环境噪声的相关知识。
第三章、主要介绍各滤波算法的参数选择和具体设计流程,并对各算法的滤波效果进行分析比较。
第四章、对冲击测试常用滤波算法实现和滤波效果的分析总结及前景展望。
关键词:
数字信号处理、数字滤波、滤波算法、MATLAB
ABSTRACT
Dynamicsignalanalyzerisatoolmainlyappliedinnoise,vibrationanalysis,modelanalysis,electronicdesignandacoustictest.Impacttestandimpactspectrumanalysisareexperimentalmethodsthatexaminethesafety,reliabilityandvalidityoftheequipmentunderexternalforceimpact.Impacttestsampledataoftensuffersfromallkindsofnoisesintheenvironment,itisnecessarytofilterthedataforbetterandrealimpactspectrumcharacteristics.
Inthispaper,wemainlystudycommonlyuseddigitalfilteringalgorithmsuchasmedianvaluemethod,thearithmeticaveragemethod,weightedaveragemethod,clippingmethod,limitedspeedmethod,andlowpassmethodandsoon.MATLABisacomputinglanguageandinteractiveenvironmentforseniortechnicalcomputingalgorithmdevelopment,datavisualization,dataanalysisandnumericalanalysis.
UsingMATLAB,wesimulatethecommonlyuseddigitalfilteringalgorithmsanddiscussthecharacteristicsandselectionprinciplesofthealgorithms.Accordingtothecharacteristicsofnoiseofthedatasamplingimpacttester,asuitablealgorithmitisselected,analyzed,justifiedtoachievebetterfilteringeffect.
Thereminderofthethesisisasfollows:
Chapteroneintroducestheprojectbackground,thedevelopmentofthedynamicsignalanalyzerdomesticandabroad,theresearchsignificanceandinnovationsetc.
Chaptertwoincludesthebasicprincipleofdigitalfiltering,classificationandcharacteristicsoffilteringalgorithmcommonlyused,basicprincipleofspectrumanalysisandtherelevantknowledgeofenvironmentalnoise.
Chapterthreeisthedesignandeffectanalysisofdigitalfilteringalgorithmindetails.
Thelastchapteristheconclusionofthedesignandeffectanalysisofimpacttestfilteringalgorithms.
Keywords:
Digitalsignalprocessing;
Digitalfiltering;
Filteringalgorithm;
MATLAB
第一章绪论
1.1课题背景
动态信号分析仪是从表示物理量的电信号中分析其特性参数的仪器,由硬件和分析软件构成。
动态信号分析仪可从时域、频域和幅值域分析被测信号,具有功能全、分析速度快、测量参数多、频率分辨力和幅值精度高等特点,广泛应用于如计算机制造、航空航天、电子、军事、生物医学、通讯等高科技产品的质量检测和诊断分析[1]。
动态测试、信号处理、模态试验、环境试验、状态监测、故障诊断的核心手段是动态信号分析仪[2]。
而随着科技的进步,特别是微电子技术的迅猛发展,嵌入式微控制器的出现与使用,诞生了集动态信号采集、分析、存储、显示为一体的动态信号分析仪。
该种动态信号分析仪体积小、重量轻、速度快、功能强大、方便携带于工程现场的使用,需要时可将所存的数据传送到计算机进行更详细的分析。
冲击测试一般是确定军民用设备在经受外力冲撞或作用时产品的安全性、可靠性和有效性的一种试验方法。
而冲击响应谱通常简称“冲击谱”,它是将受到机械冲击作用的一系列单自由度系统的最大响应(如位移、速度或加速度)响应值随系统的固有频率而变化的频谱[3]。
国家标准化组织(ISO)所属的技术委员会以及我国的国家标准,都已经把冲击谱作为规定冲击环境的方法之一。
冲击谱是对设备实施抗冲击设计的分析基础,也是控制产品冲击环境模拟实验的基本参数。
因此冲击响应谱分析是动态信号分析仪应具备的一项重要功能。
由于在冲击测试中,采样数据不可避免地受到各种环境噪声的干扰。
所以在进行冲击响应谱分析前,对冲击测试采样数据进行数字滤波处理是很有必要的。
本文主要研究冲击测试的常用数字滤波算法,数字滤波根据有用信号与噪声的不同特性,消除或减弱噪声。
它对信号安全可靠和有效灵活地传递是至关重要的[4]。
数字滤波方式具有精度高、可靠性高、灵活易用(可程控改变特性)、便于集成等特点。
数字滤波是语音处理、图像处理、模式识别、频谱分析等应用的基本处理算法[5]。
语音处理是最早应用数字滤波的领域之一,也是最早推动数字信号处理理论发展的领域之一。
语音的去噪与增强技术已取得许多成果。
目前,数字信号滤波在图像处理、数据压缩等方面取得了巨大的进展和成就。
小波理论由于其局部分析性能的优异在图像处理中的应用研究得到迅速发展,尤其是在图像压缩、图像去噪等方面的应用研究[6]。
而在数字通信、网络通信、图像通信、多媒体通信等应用中,离开了数字滤波几乎是寸步难行。
1.2国内外相关领域的研究
动态信号分析仪在电子测量领域中被称为频域中的“射频万用表”,具有较高的实用性,并得到了广泛的应用[7]。
它同时具备几种仪器的功能,坚固、轻便、是适用于现场应用的理想仪器,其性能和功能可适应有严格要求的研发应用需要。
内置的信号源及可选的特性更优化了仪器用于分析和查找噪音、振动与声学问题,评测控制系统的功能,以及评估和解决了旋转机器问题,并定性与评估控制系统参数。
近几年,随着数字信号处理器(DSP)和PC机的发展,先进的动态信号分析仪都采用数据采集处理系统加PC机显示管理程序来实现。
国内外对动态信号分析仪的研究尤其是国内有了较快的发展。
国外多通道动态信号分析仪的技术已经基本成熟。
产品的体积小,速度快,功能强大,性能优异,操作简单但是价格比较昂贵。
主要研制的公司有:
美国惠普公司(HP),美国安捷伦公司(Agilent惠普公司重组后的测量公司),美国尼高力仪器技术公司(Nioclet),美国Dactorn公司和美国国家仪器有限公司(NI),
惠普公司和安捷伦公司的产品比较早,功能上比较单一,外形类似一般的示波器。
如:
HP35660A、HP35665A、HP35670A、Agilent35670A。
NI公司的产品硬件是一块动态信号采集板,而上层则是使用它的Labview软件开发的虚拟仪器。
而Dactron和Nicolet的动态信号分析仪都采用了最新的技术,一般都是采集处理系统再配合PC机的上层管理软件PC机一般工作Windows操作系统,操作简单,功能强大。
如Dactron公司:
Photon便携式动态信号分析仪、Spectra动态信号分析仪、BookFocus实时动态信号分析仪Nicolet公司:
Horizon、Compass动态信号分析仪[8]。
国内自主研发了一批动态信号分析仪器,以北京万博振通公司的产品为代表。
北京万拨通公司生产的BVM-102高档触摸型双通道信号分析仪,采用5.6寸液晶显示屏,在Windowsxp平台下运行的控制管理软件,信号频率范围高达200kHz,体积小(190*150*64mm)。
国内的动态信号分析仪大体功能与国外接近,但是国外产品由于技术比较成熟,所以仪器各方面指标都比较高,另外国外厂商在注重仪器本身的研发的同时注重外围维护和管理软件环境的研发,产品附加值较高[7]。
1.3主要研究内容与创新
1.3.1研究内容与意义
数字滤波是常见的信号处理分析方法。
本课题主要讨论应用于冲击测试数据的一些常用数字滤波算法如中位值法、算术平均法、中位值平均法、限幅法、限速法、一阶滞后法、低通法等。
基于MATLAB环境实现了各常用数字滤波算法并分析、讨论各算法的特点及选用原则。
针对冲击测试采样数据的噪声特点,挑选出适合的算法对冲击测试采样数据进行滤波,分析各滤波算法的滤波效果并且进行相关优化以实现更优的滤波效果。
1.3.2课题的创新点
课题的创新点主要有三点:
第一、算法应用于实际环境的冲击测试采样数据,其中所受的噪声干扰如脉冲干扰、工频干扰具有代表性。
对它进行的滤波算法研究有一定实际价值。
第二、算法基于MATLAB实现,充分利用了MATLAB的强大计算仿真功能。
MATLAB作为一款强大的数学、金融、通信、信号处理的交互式软件,我们可以很方便的在其中编写程序、仿真模型。
第三、综合实现了各常用数字滤波算法,总结了各个算法的滤波特点与选用原则。
1.3.3研究目的与技术指标
研究目的:
毕业设计是一个全面运用各方面知识与能力的综合实践。
希望能够通过此次毕业设计能使得我们加深对常用数字滤波知识的理解并尽可能完成滤波算法的优化,同时也使自己掌握分析解决问题的方法,提高自己解决实际问题的能力。
技术指标:
1、冲击测试滤波算法的设计方法,即数字滤波算法的研究与比较,从中选出适合冲击测试系统的滤波算法。
2、冲击测试滤波算法的效果分析,即对某算法应用于具体采样数据的滤波效果分析,进行相关调试或优化以达到更加理想的效果。
第二章数字滤波基础
2.1数字滤波算法概念
信号分析与处理中,常常会遇到有用信号中叠加了无用噪声的问题。
这些噪声有的是与信号同时产生的,有时是传输过程中混入的,有时噪声会大于有用的信号,从而淹没掉信号。
因此,从接收到的信号中消除或减弱干扰噪声,就成为信号传输与处理中十分重要的问题。
根据有用信号与噪声的不同特性,消除或减弱噪声,提取有用的信号的过程称为滤波[9]。
滤波技术是信号分析处理的重要分支。
无论是信号的获取、传输还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和灵活有效地传递是至关重要的。
数字信号处理(DigitalSignalProcessing)是一门涉及多学科并广泛于各个科学和工程领域的新兴学科[5]。
它是将信号以数字方式表示并处理的理论和技术。
数字信号处理与模拟信号处理是信号处理的子集。
现代社会已经进入数字化、信息化时代,DSP技术因此得到广泛应用和不断发展。
而数字滤波作为其重要分支也飞速发展。
数字滤波是用数字处理的方法按预定的要求滤除干扰信号,获得有用信号。
其最初的设想是代替模拟滤波[10]。
不同于模拟滤波通过无源或有源器件搭建模拟电路的滤波方式,数字滤波是由数字乘法器、加法器和延时单元组成的一种计算方法。
其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。
由于电子计算机技术和大规模集成电路的发展,数字滤波已可用计算机软件实现,也可用大规模集成数字硬件实时实现。
数字滤波是一个离散时间系统,应用数字滤波处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。
数字滤波输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。
为得到模拟信号,数字滤波处理的输出数字信号须经数模转换、平滑。
精度高:
数字滤波方式具有比模拟滤波器更高的精度,甚至能够实现后者在理论上也无法达到的性能。
例如,对于数字滤波器来说很容易就能够做到一个1000Hz的低通滤波器允许999Hz信号通过并且完全阻止1001Hz的信号,模拟滤波器无法区分如此接近的信号。
可靠性高:
数字滤波方式还具有模拟滤波方式不能比拟的可靠性。
传统的模拟滤波器由电子元件组成,其电路特性会随着时间、温度、电压的变化而漂移,而数字电路则没有这种问题,只要在数字电路的工作环境下,数字滤波器就能够稳定、可靠的持续工作。
灵活易用:
数字滤波方式有低通、高通、带通、带阻和全通等类型。
它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。
应用最广的是线性、时不变数字滤波器,以及FIR数字滤波器,而这些设计都不需改变硬件,只要修改参数和程序就可实现。
便于集成:
数字滤波器一般由寄存器、延时器、加法器和乘法器等基本数字电路实现。
随着大规模集成电路技术的成熟,数字滤波器可以很方面的集成与实现,其应用领域也因此越来越广。
数字滤波是语音处理、图像处理、模式识别、频谱分析等应用的基本处理算法。
离开了数字滤波几乎是寸步难行[5]。
2.2数据采样与频谱分析原理
2.2.1时域抽样定理[11]
时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:
对于基带信号,信号抽样频率
大于等于2倍的信号最高频率
,即
。
时域抽样是把连续信号
变成适于数字系统处理的离散信号
对连续信号
以间隔
抽样,则可得到的离散序列为
图2-1连续信号抽样的离散序列
若
,则信号
与
的频谱之间存在:
(2-1)
其中,
的频谱为
可见,信号时域抽样导致信号频谱的周期化。
为抽样角频率,
为抽样频率。
数字角频率Ω与模拟角频率ω的关系为:
Ω=ωT。
2.2.2离散傅立叶变换(DFT)[12]
有限长序列
的离散傅立叶变换(DFT)为
(2-2)逆变换为
(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函数调用方式:
Y=fft(X);
Y=fft(X,N);
Y=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、频谱图
为了直观地表示信号的频率特性,工程上常常将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数字滤波算法分类
图中为数字滤波算法的分类,包括经典滤波算法和现代滤波算法。
本文研究的冲击测试数据滤波对于滤波要求相对简单,所以文中主要讨论几种经典数字滤波算法。
2.3.2常用数字滤波算法特点
中位值法
A、方法:
连续进行N次数据采样(N一般取奇数)
把采样的N个数据按大小排列
取数列的中间值为本次有效值
B、优点:
能有效滤除由于偶尔因素或采样器本身不稳定而引起的脉冲干扰
对温度、液位等变化缓慢的被测参数比较有效
C、缺点:
对流量、速度等快速变化的参数则不宜采用
对周期性的随机干扰效果一般
算术平均法
连续进行N次采样并对采样得到的这N个数据进行算术平均运算
把计算得到的算术平均值作为本次有效值
当N值较大时:
信号平滑度较高,但灵敏度较低
当N值较小时:
信号平滑度较低,但灵敏度较高
对具有幅值变化不大的周期随机干扰滤波效果好,对毛刺有平滑作用
受随机干扰的信号的特点是有一个平均值,信号在某一数值附近上下波动
对于测量速度较慢或要求数据计算速度较快的实时控制不适用
对脉冲干扰的滤波效果一般
中位值平均滤波法(又称防脉冲干扰平均滤波法)
相当于“中位值滤波法”+“算术平均滤波法”
连续采样N个数据,去掉一个最大值和一个最小值
然后计算N-2个数据的算术平均值作为本次的有效值
N值的选取:
3~14
同时具有两种滤波法的优点
对于脉冲噪声干扰与幅值变化不大的随机干扰都有良好的抑制作用,可消除干扰引起的采样值偏差
测量速度比较慢,和算术平均滤波法一样
实际滤波效果可能不及“中位值滤波法”+“算术平均滤波法”的方式。
限幅法
根据经验常识判断,确定两次采样允许的最大偏差值(设为∆y)
每次检测到新值时判断:
如果|y(n)-y(n-1)|<
=∆y,则取y(n)=y(n)
如果|y(n)-y(n-1)>
∆y,则取y(n)=y(n-1)
能有效克服因偶然因素引起的脉冲干扰
C、缺点
无法抑制周期性的随机干扰
限幅差值难确定,平滑度差
限速法
根据经验判断,确定最大偏差值∆y,最多取两次采样值并进行判断以得到本次采样的有效值
如果|y(n)-y(n-1)|<
=∆y,则y(n)=y(n-1)
如果|y(n)-y(