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

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

毕业设计(论文) 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)

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

摘要

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

论文的主要内容:

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

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

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

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

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

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

第一章绪论

1.1课题背景

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

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

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

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

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

1.2国内外相关领域的研究

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

便、是适用于现场应用的理想仪器,其性能和功能可适应有严格要求的研发应用需要。内置的信号源及可选的特性更优化了仪器用于分析和查找噪音、振动与声学问题,评测控制系统的功能,以及评估和解决了旋转机器问题,并定性与评估控制系统参数。近几年,随着数字信号处理器(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

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

1.3.3 研究目的与技术指标

研究目的:

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

技术指标:

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

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

第二章数字滤波基础

2.1数字滤波算法概念

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

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

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

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

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

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

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

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

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

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

2.2.1 时域抽样定理[11]

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

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

图2-1 连续信号抽样的离散序列

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

()

j sam 1

(e

)j()n X X n T

ωω∞

Ω

=-∞

=

-∑

(2-1)

其中,)(Ωj e X 的频谱为)(ωj X ,][k X 的频谱为)(ωj e X 。

可见,信号时域抽样导致信号频谱的周期化。T sam /2

π=ω为抽样角频率,1sam f T

=为抽样频率。数字角频率Ω与模拟角频率ω的关系为:Ω=ωT 。

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

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

1

0()[()](),01N kn

N n X k DFT x n x n W n N --===≤≤-∑ (2-2)

逆变换为

1

01()[()](),01N kn

N n x n IDFT X k X k W n N N

--===

≤≤-∑

(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、频谱图

为了直观地表示信号的频率特性,工程上常常将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、缺点:

对流量、速度等快速变化的参数则不宜采用

对周期性的随机干扰效果一般

算术平均法

A、方法:

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

当N值较大时:信号平滑度较高,但灵敏度较低

当N值较小时:信号平滑度较低,但灵敏度较高

B、优点:

对具有幅值变化不大的周期随机干扰滤波效果好,对毛刺有平滑作用

受随机干扰的信号的特点是有一个平均值,信号在某一数值附近上下波动 C、缺点:

对于测量速度较慢或要求数据计算速度较快的实时控制不适用

对脉冲干扰的滤波效果一般

中位值平均滤波法(又称防脉冲干扰平均滤波法)

A、方法:

相当于“中位值滤波法”+“算术平均滤波法”

连续采样N个数据,去掉一个最大值和一个最小值

然后计算N-2个数据的算术平均值作为本次的有效值

N值的选取:3~14

B、优点:

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

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

C、缺点:

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

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

A、方法:

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

每次检测到新值时判断:

如果|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, 则y(n) =

2

) (

)

1

(n

y

n

y+

+

B、优点:

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

既照顾了采样的实时性,又顾及了采样值变化的连续性

C、缺点

增加了较多的计算量,处理速度变慢

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

差值难确定,平滑度差

一阶滞后滤波法

A、方法:

一阶滞后滤波也叫一阶惯性滤波

取滞后系数a=0~1

本次滤波结果=(1-a)?本次采样值+a?上次滤波结果

B、优点:

对周期性干扰具有良好的抑制作用

效果相当硬件电路一阶惯性环节

适用于波动频率较高的场合

C、缺点:

相位滞后,灵敏度低

滞后程度取决于a值大小

低通法

A、方法:

根据噪声的频率设定一个合适的截止频率wc

按wc及其他指标设计相应的低通数字滤波器

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

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

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

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

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

2.3.3常用滤波算法相关原理

中位值平均滤波法:

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

限幅法、限速法:

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

一阶滞后算法:[15]

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

()1

()1f y s x s T s

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

()(1)()()f y n y n T y n x n T

--+= (2-5)

整理可得:

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

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

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

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

统单位脉冲序列)(n h ,它是一个有限长序列。假设)(ωj d e H 是所要求的理想响应序列,则

()()j j n

d d

n H e

h

n e ω

ω∞

-

=-∞

=

∑ (2-7)

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

1

()()2j j n d d h n H e e d π

ωωπ

ωπ

-

=

? (2-8)

求得序列)(n h d 后,可得到

()()n

d d

n H z h n z

-=-∞

=

∑ (2-9)

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

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

)()()(n n h n h d ω= (2-10)

由此可得

1

0()()N n

n H z h n z --==∑ (2-11)

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

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

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

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

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

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

IIR 滤波器相关知识

[17]

IIR 数字滤波器是一种离散时间系统,其系统函数为

)

1()

1(1)(1

1

11

10

-=-==-=--∏-∏=-=

∑∑z d z c A z a z b Z H i N i i M

i N

k k

k M

k k

k (2-12)

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

图2-3 IIR 数字滤波器的设计步骤流程图

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

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

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

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

2.4 冲击测试采样数据

2.4.1噪声的特点与分类

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

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

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

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

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

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

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

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

①静电干扰

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

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

②磁场耦合干扰

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

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

③电磁辐射干扰

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

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

④电导通路耦合干扰

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

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

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

如果一个仪器的地线不与大地连接,则称为“浮地”,否则称为接地。

⑤漏电耦合干扰

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

2.4.2冲击测试采样数据特点

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

2.5 MATLAB简介

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的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时

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

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

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

简单低通滤波器设计及matlab仿真

东北大学 研究生考试试卷 考试科目: 课程编号: 阅卷人: 考试日期: 姓名:xl 学号: 注意事项 1.考前研究生将上述项目填写清楚. 2.字迹要清楚,保持卷面清洁. 3.交卷时请将本试卷和题签一起上交. 4.课程考试后二周内授课教师完成评卷工作,公共课成绩单与试卷交研究生院培养办公室, 专业课成绩单与试卷交各学院,各学院把成绩单交研究生院培养办公室. 东北大学研究生院培养办公室

数字滤波器设计 技术指标: 通带最大衰减: =3dB , 通带边界频率: =100Hz 阻带最小衰减: =20dB 阻带边界频率: =200Hz 采样频率:Fs=200Hz 目标: 1、根据性能指标设计一个巴特沃斯低通模拟滤波器。 2、通过双线性变换将该模拟滤波器转变为数字滤波器。 原理: 一、模拟滤波器设计 每一个滤波器的频率范围将直接取决于应用目的,因此必然是千差万别。为了使设计规范化,需要将滤波器的频率参数作归一化处理。设所给的实际频 率为Ω(或f ),归一化后的频率为λ,对低通模拟滤波器令λ=p ΩΩ/,则1 =p λ, p s s ΩΩ=/λ。令归一化复数变量为p ,λj p =,则p p s j j p Ω=ΩΩ==//λ。所以巴 特沃思模拟低通滤波器的设计可按以下三个步骤来进行。 (1)将实际频率Ω规一化 (2)求Ωc 和N 11010/2-=P C α s p s N λααlg 1 10 110lg 10 /10/--= 这样Ωc 和N 可求。 p x fp s x s f

根据滤波器设计要求=3dB ,则C =1,这样巴特沃思滤波器的设计就只剩一个参数N ,这时 N p N j G 222 )/(11 11)(ΩΩ+= += λλ (3)确定)(s G 因为λj p =,根据上面公式有 N N N p j p p G p G 22)1(11 )/(11)()(-+= += - 由 0)1(12=-+N N p 解得 )221 2exp(πN N k j p k -+=,k =1,2, (2) 这样可得 1 )21 2cos(21 ) )((1 )(21+-+-= --= -+πN N k p p p p p p p G k N k k 求得)(p G 后,用p s Ω/代替变量p ,即得实际需要得)(s G 。 二、双线性变换法 双线性变换法是将s 平面压缩变换到某一中介1s 平面的一条横带里,再通过标准变换关系)*1exp(T s z =将此带变换到整个z 平面上去,这样就使s 平面与z 平面之间建立一一对应的单值关系,消除了多值变换性。 为了将s 平面的Ωj 轴压缩到1s 平面的1Ωj 轴上的pi -到pi 一段上,可以通过以下的正切变换来实现: )21 tan(21T T Ω= Ω 这样当1Ω由T pi -经0变化到T pi 时,Ω由∞-经过0变化到∞+,也映射到了整个Ωj 轴。将这个关系延拓到整个s 平面和1s 平面,则可以得到

中值滤波原理及MATLAB实现.

中值滤波原理及MATLAB实现 摘要:图像是一种重要的信息源,通过图像处理可以帮助人们了解信息的内涵。本文将纯净的图像加入椒盐噪声,然后采用中值滤波的方法对其进行去噪。中值滤波是一种常用的非线性信号处理技术,在图像处理中,它对滤除脉冲干扰噪声最为有效。文章阐述了中值滤波的原理、算法以及在图像处理中的应用。MATLAB是一种高效的工程计算语言,在数据处理、图像处理、神经网络、小波分析等方面都有广泛的应用。 关键词:图像,中值滤波,去噪,MATLAB 1. 引言 20世纪20年代,图像处理首次得到应用。上个世纪60年代中期,随着计算机科学的发展和计算机的普及,图像处理得到广泛的应用。60年代末期,图像处理技术不断完善,逐渐成为一个新兴的学科。图像处理中输入的是质量低的图像,输出的是改善质量后的图像。 为了改善图像质量,从图像中提取有效信息,必须对图像进行去噪预处理。根据噪声频谱分布的规律和统计特征以及图像的特点,出现了多种多样的去噪方法。经典的去噪方法有:空域合成法,频域合成法和最优合成法等,与之适应的出现了许多应用方法,如均值滤波器,中值滤波器,低通滤波器,维纳滤波器,最小失真法等。这些方法的广泛应用,促进数字信号处理的极大发展,显著提高了图像质量。 2. 中值滤波 在图像滤波中,常用的方法是线性滤波技术和非线性滤波技术,线性滤波以其完美的理论基础,数学处理简单、易于采用和硬件实现等优点,一直在图像滤波领域中占有重要的地位。线性滤波对加性高斯噪声有较好的平滑作用,但对脉冲信号和其它形式的高频分量抑制效果较差,且模糊信号边缘。非线性滤波是基于对输入信号序列的一种非线性投影关系,常把某一特定的噪声近似为零而保留信号的重要特征,一定程度上克服线性滤波器的不足,非线性滤波早期运用较多的是中值滤波器,其应用于多维信号处理时,对窄脉冲信号具有良好的抑制能力,但

各类滤波器的MATLAB程序清单

各类滤波器的MATLAB程序 一、理想低通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); Hd=ones(size(IA)); r=sqrt(f1.^2+f2.^2); Hd(r>=0; Y=fft2(double(IA)); Y=fftshift(Y); Ya=Y.*Hd; Ya=ifftshift(Ya); Ia=ifft2(Ya); figure subplot(2,2,1),imshow(uint8(IA)); subplot(2,2,2),imshow(uint8(Ia)); figure surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); 二、理想高通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); Hd=ones(size(IA)); r=sqrt(f1.^2+f2.^2); Hd(r<=0; Y=fft2(double(IA));

Y=fftshift(Y); Ya=Y.*Hd; Ya=ifftshift(Ya); Ia=real(ifft2(Ya)); figure subplot(2,2,1),imshow(uint8(IA)); subplot(2,2,2),imshow(uint8(Ia)); figure surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); 三、B utterworth低通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); D=; r=f1.^2+f2.^2; n=4; for i=1:size(IA,1) for j=1:size(IA,2) t=r(i,j)/(D*D); Hd(i,j)=1/(t^n+1); end end Y=fft2(double(IA)); Y=fftshift(Y); Ya=Y.*Hd; Ya=ifftshift(Ya); Ia=real(ifft2(Ya));

基于Matlab的常用滤波算法研究(含代码)讲解

毕业设计(论文) 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)

蚁群算法TSP问题matlab源代码

function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_max,m,Alpha,Beta ,Rho,Q) %%===================================================== ==================== %% ACATSP.m %% Ant Colony Algorithm for Traveling Salesman Problem %% ChengAihua,PLA Information Engineering University,ZhengZhou,China %% Email:aihuacheng@https://www.360docs.net/doc/4f10340743.html, %% All rights reserved %%------------------------------------------------------------------------- %% 主要符号说明 %% C n个城市的坐标,n×4的矩阵 %% NC_max 最大迭代次数 %% m 蚂蚁个数 %% Alpha 表征信息素重要程度的参数 %% Beta 表征启发式因子重要程度的参数 %% Rho 信息素蒸发系数 %% Q 信息素增加强度系数 %% R_best 各代最佳路线 %% L_best 各代最佳路线的长度 %%===================================================== ==================== %%第一步:变量初始化 n=size(C,1);%n表示问题的规模(城市个数) D=zeros(n,n);%D表示完全图的赋权邻接矩阵 for i=1:n for j=1:n if i~=j D(i,j)=max( ((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2)^0.5,min(abs(C(i,3)-C(j,3)),144- abs(C(i,3)-C(j,3))) );%计算城市间距离 else D(i,j)=eps; end D(j,i)=D(i,j); end end Eta=1./D;%Eta为启发因子,这里设为距离的倒数 Tau=ones(n,n);%Tau为信息素矩阵 Tabu=zeros(m,n);%存储并记录路径的生成 NC=1;%迭代计数器 R_best=zeros(NC_max,n);%各代最佳路线

基于matlab-的巴特沃斯低通滤波器的实现

基于matlab 的巴特沃斯低通滤波器的实现 一、课程设计的目的 运用MATLAB实现巴特沃斯低通滤波器的设计以及相应结果的显示,另外还对多种低通滤波窗口进行了比较。 二、课程设计的基本要求 1)熟悉和掌握MATLAB 的基本应用技巧。 2)学习和熟悉MATLAB相关函数的调用和应用。 3)学会运用MATLAB实现低通滤波器的设计并进行结果显示。 三、双线性变换实现巴特沃斯低通滤波器的技术指标: 1.采样频率10Hz。 2.通带截止频率fp=0.2*pi Hz。 3.阻带截止频率fs=0.3*pi Hz。 4.通带衰减小于1dB,阻带衰减大于20dB 四、使用双线性变换法由模拟滤波器原型设计数字滤波器 程序代码: T=0.1; FS=1/T; fp=0.2*pi;fs=0.3*pi; wp=fp/FS*2*pi; ws=fs/FS*2*pi; Rp = 1; % 通带衰减 As = 15; % 阻带衰减 OmegaP = (2/T)*tan(wp/2); % 频率预计 OmegaS = (2/T)*tan(ws/2); % 频率预计 %设计巴特沃斯低通滤波器原型

N = ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(OmegaP/OmegaS))); OmegaC = OmegaP/((10^(Rp/10)-1)^(1/(2*N))); [z,p,k] = buttap(N); %获取零极点参数 p = p * OmegaC ; k = k*OmegaC^N; B = real(poly(z)); b0 = k; cs = k*B; ds = real(poly(p)); [b,a] = bilinear(cs,ds,FS);% 双线性变换 figure(1);% 绘制结果 freqz(b,a,512,FS);%进行滤波验证 figure(2); % 绘制结果 f1=50; f2=250; n=0:63; x=sin(2*pi*f1*n)+sin(2*pi*f2*n); subplot(2,2,1);stem(x,'.'); title ('输入信号'); y=filter(b,a,x); subplot(2,2,2);stem(y,'.') ; title('滤波之后的信号'); figure(3) ; stem(y,'.') title('输出的信号'))

matlab实现中值滤波去除脉冲噪声matlab小程序

matlab实现中值滤波去除脉冲噪声matlab小程序(图像处理)2010-04-1612:58:44阅读8评论0字号:大中小 实验原理:中值滤波器是将领域内像素灰度的中值代替该像素的值,对处理脉冲噪声(椒盐噪声)非常有效。为了对一幅图像上的某个点进行中值滤波处理,必须先将掩模内欲求的像素及其领域的像素值排序,确定出中值,主要功能是使拥有不同灰度的点看起来更接近于它的邻近值。 程序说明:函数名为mid(pic_name,s)的函数,其中参数pic_name为读入的图像,s为掩模矩阵的边长,由用户自行决定。 实验说明:随着掩模矩阵的变大,我们可以看到脉冲噪声去除得更加理想,但同时图像会变得更模糊,因为各点像素与其邻域更为接近,因此,进行中值滤波时选择一个适合的掩模矩阵十分重要。另外,我们看到图像的边界处出现了黑色的斑点,这是由于我采用了0来直译边界,这种影响可用镜像反射方式对称地沿其边界扩展来减弱。 另附:其实本实验可以完全由matlab中的函数median或medfilt2简单实现,此处写出内部处理过程,主要是为了让大家理解中值滤波的具体处理过程。 程序源代码: function mid(pic_name,s) close all; s=double(s); X=imread(pic_name); Y1=imnoise(X,'salt&pepper',0.2);%对读入的图像加脉冲噪声 figure; imshow(uint8(Y1)); Y1=double(Y1); [m,n]=size(X); s2=round(s/2); s3=round(s*s/2);%中值像素点的位置

蚁群算法matlab程序代码

先新建一个主程序M文件ACATSP.m 代码如下: function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_max,m,Alpha,Beta,Rho,Q) %%================================================== ======================= %% 主要符号说明 %% C n个城市的坐标,n×2的矩阵 %% NC_max 蚁群算法MATLAB程序最大迭代次数 %% m 蚂蚁个数 %% Alpha 表征信息素重要程度的参数 %% Beta 表征启发式因子重要程度的参数 %% Rho 信息素蒸发系数 %% Q 表示蚁群算法MATLAB程序信息素增加强度系数 %% R_best 各代最佳路线 %% L_best 各代最佳路线的长度 %%================================================== =======================

%% 蚁群算法MATLAB程序第一步:变量初始化 n=size(C,1);%n表示问题的规模(城市个数) D=zeros(n,n);%D表示完全图的赋权邻接矩阵 for i=1:n for j=1:n if i~=j D(i,j)=((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2)^0.5; else D(i,j)=eps; % i = j 时不计算,应该为0,但后面的启发因子要取倒数,用eps(浮点相对精度)表示 end D(j,i)=D(i,j); %对称矩阵 end end Eta=1./D; %Eta为启发因子,这里设为距离的倒数 Tau=ones(n,n); %Tau为信息素矩阵 Tabu=zeros(m,n); %存储并记录路径的生成

FIR低通滤波器+matlab编程+滤波前后图形

Matlab实现振动信号低通滤波 附件txt中的数字是一个实测振动信号,采样频率为5000Hz,试设计一个长度为M=32的FIR低通滤波器,截止频率为600Hz,用此滤波器对此信号进行滤波。要求: (1)计算数字截止频率; (2)给出滤波器系数; (3)绘出原信号波形; (4)绘出滤波后的信号波形; 解答过程: 第一部分:数字截止频率的计算 =600/5000/2=0.24 数字截止频率等于截止频率除以采样频率的一半,即 n 第二部分:滤波器系数的确定 在matlab中输入如下程序,即可得到滤波器系数: n=32 Wn=0.24 b=fir1(n,Wn) 得到的滤波器系数b为 Columns 1 through 9 -0.0008 -0.0018 -0.0024 -0.0014 0.0021 0.0075 0.0110 0.0077 -0.0054 Columns 10 through 18 -0.0242 -0.0374 -0.0299 0.0087 0.0756 0.1537 0.2166 0.2407 0.2166 Columns 19 through 27 0.1537 0.0756 0.0087 -0.0299 -0.0374 -0.0242 -0.0054 0.0077 0.0110 Columns 28 through 33 0.0075 0.0021 -0.0014 -0.0024 -0.0018 -0.0008 第三部分:原信号波形 将附件4中的dat文件利用识别软件读取其中的数据,共1024个点,存在TXT 文档中,取名bv.txt,并复制到matlab的work文件夹。 在matlab中编写如下程序: x0=load('zhendong.txt'); %找到信号数据地址并加载数据。 t=0:1/5000:1023/5000; %将数据的1024个点对应时间加载

基于MATLAB的巴特沃斯滤波器

数字信号处理课程设计 2015年 6 月25 日

目录 一.设计目的: (3) 二.设计要求: (3) 三.设计内容: (4) 3.1选择巴特涡斯低通数据滤波器及双线性变换法的原因 (4) 3.2巴特沃思低通滤波器的基本原理 (4) 3.3双线性变换法原理 (5) 3.4数字滤波器设计流程图 (7) 3.5数字滤波器的设计步骤 (7) 四.用matlab实现巴特沃斯低通数字滤波器的仿真并分析 (9) 4.1巴特沃斯低通数字滤波器技术指标的设置 (9) 4.2用matlab实现巴特沃斯低通数字滤波器的仿真 (9) 4.3波形图分析: (12) 五.总结与体会 (13) 六.附录参考文献 (14) 2

一.设计目的: 该课程设计是测控技术与仪器专业的必修课,开设课程设计的目的使学生掌握数字信号处理的基本概念和基本理论,能够利用辅助工具进行FIR和IIR数字滤波器的设计,进行一维信号的频谱分析,并进行仿真验证。加强实践教学环节,加强学生独立分析、解决问题的能力,培养学生动手能力和解决实际问题的能力,实现宽口径教育。 (1)理解低通滤波器的过滤方法。 (2)进一步熟悉低通滤波器的基本应用。 (3)用仿真工具matlab软件对设计的滤波器进行软件和硬件仿真。 (6)将对仿真结果进行比较,从而检验滤波器滤波性能的准确性。 二.设计要求: 地震发生时,除了会产生地震波,还会由地层岩石在断裂、碰撞过程中所发生的震动产生次声波。它的频率大约在每秒十赫兹到二十赫兹之间(可以用11Hz和15Hz的两个信号的和进行仿真,幅度可以分别设定为1、2)。大气对次声波的吸收系数很小,因此它可以传播的很远,而且穿透性很强。通过监测次声波信号可以监测地震的发生、强度等信息,因为自然界中广泛存在着各种次声波,这就对地震产生的次声波产生了干扰(可以用白噪声模拟,方差为5),需要采取一定的处理方法,才能检测到该信号,要求设计检测方案;并处理方法给出具体的软件(可以以51系列单片机、STM32F407、TMS320F28335或TMS320F6745为例)。 假设地震次声波信号为x,输入x=sin(2*π*11*t)+2*sin(2*π*15*t)和伴有白噪声的合成信号,经过滤波器后滤除15Hz以上的分量,即只保留x=sin(2*π*11*t)+2*sin(2*π*15*t)的分量信号,来验证设计的滤波器是否达到了设计要求。 3

数字图像处理_平均滤波与中值滤波(含MATLAB代码)

数字图像处理实验二 15生医 一、实验内容 产生教材104页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18所要求的处理(3x3的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0或1),显示处理前后的图像,比较其异同。 二、运行环境 MATLAB R2014a 三、运行结果及分析 1. 四种不同的窗的3x3平均滤波 ①在 MATLAB 图形窗界面进行放大可以看出四者之间的差别: 4领域与8邻域之间没有明显差别,但是加权与未加权之间的差别较为明显,体现在: 加权后每个矩形块的四个尖角部分都被保留了下来4邻域平均滤波后图 像8邻域平均滤波后图像 4邻域加权平均滤波后图像8邻域加权平均滤波后图像

(图像四周边界不考虑),而未加权的尖角处黑色变为白色。 ②原因分析: 加权后尖角处原来白色的点(1)进行计算3/5=0.6四舍五入后值为1,保持白色,原来黑色的点(0)进行计算2/5=0.4四舍五入后值为0,保持黑色;而未加权尖角处无论原来是黑色还是白色,进行计算 2/4=0.5四舍五入后值为1,所以原先的黑色(0)也变成了白色(1)。 ③下图为放大后的截图: 2.中值滤波与原图像的对比

①在 MATLAB图形窗界面进行放大后可观察出: 使用3x3 方形中值滤波模板的效果与4领域、8领域加权平均滤波的 效果相同,每个矩形块的四个尖角部分都被保留了下来(图像四周边界不考虑)。 ②原因分析: 套用3x3方形中值滤波模板后,尖角处原来白色的点(1)在窗内1多于0,取中值后仍保持白色,原来黑色的点(0)在窗内0多于1,取中值后仍保持白色。 ③下图为放大后的截图: 原图像中值滤波后图像

中值滤波快速算法&菱形窗口matlab实现

function g=QuiMedFil2(f) g=f; t=2; [m,n]=size(f); for i=2:m-1 for j=2:n-1 if(j==2) A=f(i-1:i+1,j-1:j+1); hist=imhist(A); mdn=median(A(:)); %mdn=Med(f(i-1:i+1,j-1:j+1))+1; L=find(f(i-1:i+1,j-1:j+1)th mdn=mdn-1; Ltmdn = Ltmdn-hist(mdn+1); end

while (Ltmdn+hist(mdn+1))<=th Ltmdn=Ltmdn+hist(mdn+1); mdn=mdn+1; end g(i,j)=mdn; end end t=t+1;%t-line; end ======================================= =========================实现过程如下 rgb=imread('Figure1.JPG'); %此处通过matlab读入任何一幅图像 >> I=rgb2gray(rgb); %将图像灰度化 >> I=imresize(I,0.1); %若图像过大可进行适当调整,或省略此步 >> g=QuiMedFil2(I) %调用所编程序执行中值滤波快速算法 figure,imshow(I),figure,imshow(g) %显示原图像和滤波后的图像 =============================================================================== =================================================== 与传统中值滤波算法的同窗口的计算时间对比 快速算法略高于一般算法 =============================================================================== =====================================================菱形5*5中值滤波程序function g=MedFilRho(f) g=f; g=[]; [m,n]=size(f); for i=3:(m-2) for j=3:(n-2) B=[f(i,j),f(i-2,j),f(i-1,j),f(i+1,j),f(i+2,j),f(i,j-1),f(i,j-2),f(i,j+1),f(i,j+2),f(i-1,j-1),f(i+1,j+1),f(i-1,j+1),f(i+1,j-1)]; g(i,j)=median(B); end end 备注:程序为原创,原文地址: https://www.360docs.net/doc/4f10340743.html,/walqxlqxaw/blog/item/aabb517f877e6f190dd7daad.ht ml

蚁群算法MATLAB代码

function [y,val]=QACStic load att48 att48; MAXIT=300; % 最大循环次数 NC=48; % 城市个数 tao=ones(48,48);% 初始时刻各边上的信息最为1 rho=0.2; % 挥发系数 alpha=1; beta=2; Q=100; mant=20; % 蚂蚁数量 iter=0; % 记录迭代次数 for i=1:NC % 计算各城市间的距离 for j=1:NC distance(i,j)=sqrt((att48(i,2)-att48(j,2))^2+(att48(i,3)-att48(j,3))^2); end end bestroute=zeros(1,48); % 用来记录最优路径 routelength=inf; % 用来记录当前找到的最优路径长度 % for i=1:mant % 确定各蚂蚁初始的位置 % end for ite=1:MAXIT for ka=1:mant %考查第K只蚂蚁 deltatao=zeros(48,48); % 第K只蚂蚁移动前各边上的信息增量为零 [routek,lengthk]=travel(distance,tao,alpha,beta); if lengthk

matlab设计低通滤波器

个matlab程序怎么编?(设计低通滤波器) 通带边缘频率10khz 阻带边缘频率22khz 阻带衰减75db 采样频率50khz 要求设计这个低通滤波器 画出脉冲响应的图形 还有滤波器的形状 具体程序怎么编? 谢谢各位大虾的指点!!! 最佳答案 1.1 实验目的 1.了解数字信号处理系统的一般构成; 2.掌握奈奎斯特抽样定理。 1.2 实验仪器 1.YBLD智能综合信号源测试仪1台 2.双踪示波器1台 3.MCOM-TG305数字信号处理与现代通信技术实验箱1台 4.PC机(装有MATLAB、MCOM-TG305配套实验软件)1台 1.3 实验原理 一个典型的DSP系统除了数字信号处理部分外,还包括A/D和D/A两部分。这是因为自然界的信号,如声音、图像等大多是模拟信号,因此需要将其数字化后进行数字信号处理,模拟信号的数字化即称为A/D转换。数字信号处理后的数据可能需还原为模拟信号,这就需要进行D/A转换。一个仅包括A/D和D/A两部分的简化数字信号处理系统功能如图1所示。 A/D转换包括三个紧密相关的过程,即抽样、量化和编码。A/D转换中需解决的以下几个重要问题:抽样后输出信号中还有没有原始信号的信息?如果有能不能把它取出来?抽样频率应该如何选择?

奈奎斯特抽样定理(即低通信号的均匀抽样定理)告诉我们,一个频带限制在0至fx以内的低通信号x(t),如果以fs≥2fx的抽样速率进行均匀抽样,则x(t)可以由抽样后的信号xs(t)完全地确定,即xs(t)包含有x(t)的成分,可以通过适当的低通滤波器不失真地恢复出x(t)。最小抽样速率fs=2fx称为奈奎斯特速率。 低通 译码 编码 量化 抽样 输入信号样点输出滤波输出 A/D(模数转换)D/A(数模转换) 图1 低通采样定理演示 为方便实现,实验中更换了一种表现形式,即抽样频率固定(10KHz),通过改变输入模拟信号的频率来展示低通抽样定理。我们可以通过研究抽样频率和模拟信号最高频率分量的频率之间的关系,来验证低通抽样定理。 1.4 实验内容 1.软件仿真实验:编写并调试MATLAB程序,分析有关参数,记录有关波形。 2.硬件实验:输入不同频率的正弦信号,观察采样时钟波形、输入信号波形、样点输出波形和滤波输出波形。 1.5 MATLAB参考程序和仿真内容 %*******************************************************************% %f—余弦信号的频率

MATLAB滤波程序

1线性平滑滤波器 用MA TLAB实现领域平均法抑制噪声程序: I=imread(' c4.jpg '); subplot(231) imshow(I) title('原始图像') I=rgb2gray(I); I1=imnoise(I,'salt & pepper',0.02); subplot(232) imshow(I1) title(' 添加椒盐噪声的图像') k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波 k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波 k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波 k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波 subplot(233),imshow(k1);title('3*3 模板平滑滤波'); subplot(234),imshow(k2);title('5*5 模板平滑滤波'); subplot(235),imshow(k3);title('7*7 模板平滑滤波'); subplot(236),imshow(k4);title('9*9 模板平滑滤波'); 2.中值滤波器 用MA TLAB实现中值滤波程序如下: I=imread(' c4.jpg '); I=rgb2gray(I); J=imnoise(I,'salt&pepper',0.02); subplot(231),imshow(I);title('原图像'); subplot(232),imshow(J);title('添加椒盐噪声图像'); k1=medfilt2(J); %进行3*3模板中值滤波 k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波 k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波 k4=medfilt2(J,[9,9]); %进行9*9模板中值滤波 subplot(233),imshow(k1);title('3*3模板中值滤波'); subplot(234),imshow(k2);title('5*5模板中值滤波'); subplot(235),imshow(k3);title('7*7模板中值滤波'); subplot(236),imshow(k4);title('9*9 模板中值滤波'); 3状态统计滤波器:ordfilt2函数 Y=ordfilt2(X,order,domain) 由domain中非0元素指定邻域的排序集中的第order个元素代替X中的每个元素。Domain 是一个仅包括0和1的矩阵,1仅定义滤波运算的邻域。 Y=ordfilt2(X,order,domain,S) S与domain一样大,用与domain的非0值相应的S的值作为附加补偿。 4二维自适应除噪滤波器:wiener2函数 wiener2函数估计每个像素的局部均值与方差,该函数用法如下:

基于蚁群算法的MATLAB实现

基于蚁群算法的机器人路径规划MATLAB源代码 基本思路是,使用离散化网格对带有障碍物的地图环境建模,将地图环境转化为邻接矩阵,最后使用蚁群算法寻找最短路径。 function [ROUTES,PL,Tau]=ACASPS(G,Tau,K,M,S,E,Alpha,Beta,Rho,Q) %% --------------------------------------------------------------- % ACASP.m % 基于蚁群算法的机器人路径规划 % GreenSim团队——专业级算法设计&代写程序 % 欢迎访问GreenSim团队主页→https://www.360docs.net/doc/4f10340743.html,/greensim %% --------------------------------------------------------------- % 输入参数列表 % G 地形图为01矩阵,如果为1表示障碍物 % Tau 初始信息素矩阵(认为前面的觅食活动中有残留的信息素) % K 迭代次数(指蚂蚁出动多少波) % M 蚂蚁个数(每一波蚂蚁有多少个) % S 起始点(最短路径的起始点) % E 终止点(最短路径的目的点) % Alpha 表征信息素重要程度的参数 % Beta 表征启发式因子重要程度的参数 % Rho 信息素蒸发系数 % Q 信息素增加强度系数 % % 输出参数列表 % ROUTES 每一代的每一只蚂蚁的爬行路线 % PL 每一代的每一只蚂蚁的爬行路线长度 % Tau 输出动态修正过的信息素 %% --------------------变量初始化---------------------------------- %load D=G2D(G); N=size(D,1);%N表示问题的规模(象素个数) MM=size(G,1); a=1;%小方格象素的边长 Ex=a*(mod(E,MM)-0.5);%终止点横坐标 if Ex==-0.5 Ex=MM-0.5; end Ey=a*(MM+0.5-ceil(E/MM));%终止点纵坐标 Eta=zeros(1,N);%启发式信息,取为至目标点的直线距离的倒数 %下面构造启发式信息矩阵 for i=1:N

(完整版)蚁群算法matlab程序实例整理

function [y,val]=QACS tic load att48 att48; MAXIT=300; % 最大循环次数 NC=48; % 城市个数 tao=ones(48,48);% 初始时刻各边上的信息最为1 rho=0.2; % 挥发系数 alpha=1; beta=2; Q=100; mant=20; % 蚂蚁数量 iter=0; % 记录迭代次数 for i=1:NC % 计算各城市间的距离 for j=1:NC distance(i,j)=sqrt((att48(i,2)-att48(j,2))^2+(att48(i,3)-att48(j,3))^2); end end bestroute=zeros(1,48); % 用来记录最优路径 routelength=inf; % 用来记录当前找到的最优路径长度 % for i=1:mant % 确定各蚂蚁初始的位置 % end for ite=1:MAXIT for ka=1:mant %考查第K只蚂蚁 deltatao=zeros(48,48); % 第K只蚂蚁移动前各边上的信息增量为零 [routek,lengthk]=travel(distance,tao,alpha,beta); if lengthk

高斯平滑滤波器(含matlab代码)

Gaussian Smoothing Filter 高斯平滑滤波器 一、图像滤波的基本概念 图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声、脉冲噪声、高斯噪声等.椒盐噪声含有随机出现的黑白强度值.而脉冲噪声则只含有随机的白强度值(正脉冲噪声)或黑强度值(负脉冲噪声).与前两者不同,高斯噪声含有强度服从高斯或正态分布的噪声.研究滤波就是为了消除噪声干扰。 图像滤波总体上讲包括空域滤波和频域滤波。频率滤波需要先进行傅立叶变换至频域处理然后再反变换回空间域还原图像,空域滤波是直接对图像的数据做空间变换达到滤波的目的。它是一种邻域运算,即输出图像中任何像素的值都是通过采用一定的算法,根据输入图像中对用像素周围一定邻域内像素的值得来的。如果输出像素是输入像素邻域像素的线性组合则称为线性滤波(例如最常见的均值滤波和高斯滤波),否则为非线性滤波(中值滤波、边缘保持滤波等)。 线性平滑滤波器去除高斯噪声的效果很好,且在大多数情况下,对其它类型的噪声也有很好的效果。线性滤波器使用连续窗函数内像素加权和来实现滤波。特别典型的是,同一模式的权重因子可以作用在每一个窗口内,也就意味着线性滤波器是空间不变的,这样就可以使用卷积模板来实现滤波。如果图像的不同部分使用不同的滤波权重因子,且仍然可以用滤波器完成加权运算,那么线性滤波器就是空间可变的。任何不是像素加权运算的滤波器都属于非线性滤波器.非线性滤波器也可以是空间不变的,也就是说,在图像的任何位置上可以进行相同的运算而不考虑图像位置或空间的变化。 二、图像滤波的计算过程分析 滤波通常是用卷积或者相关来描述,而线性滤波一般是通过卷积来描述的。他们非常类似,但是还是会有不同。下面我们来根据相关和卷积计算过程来体会一下他们的具体区别: 卷积的计算步骤: (1)卷积核绕自己的核心元素顺时针旋转180度 (2)移动卷积核的中心元素,使它位于输入图像待处理像素的正上方 (3)在旋转后的卷积核中,将输入图像的像素值作为权重相乘 (4)第三步各结果的和做为该输入像素对应的输出像素 相关的计算步骤: (1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方 (2)将输入图像的像素值作为权重,乘以相关核 (3)将上面各步得到的结果相加做为输出 可以看出他们的主要区别在于计算卷积的时候,卷积核要先做旋转。而计算相关过程中不需要旋转相关核。 例如:magic(3) =[8 1 6;3 5 7;4 9 2],旋转180度后就成了[2 9 4;7 5 3;6 1 8] 三、高斯(核)函数 所谓径向基函数(Radial Basis Function 简称RBF), 就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数, 可记作k(||x-xc||), 其作用往往是局部的, 即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数,形式为k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc为核函数中心,σ为函数的宽度参数, 控制了函数的径向作用范围。

相关文档
最新文档