文档库 最新最全的文档下载
当前位置:文档库 › Kalman滤波及其实现(含代码4)

Kalman滤波及其实现(含代码4)

Kalman滤波及其实现(含代码4)
Kalman滤波及其实现(含代码4)

Kalman滤波

在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!

卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯(哈哈,布达佩斯——陈佩斯和他哥哥陈布达名字的根源)。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。如果对这篇论文有兴趣,可以到这里下载:https://www.wendangku.net/doc/3f12946817.html,/~welch/kalman/media/pdf/Kalman1960.pdf 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。

1.卡尔曼滤波器的介绍(Introduction to the Kalman Filter)

为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。

在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。

好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。

假如我们要估算k时刻的是实际温度值。首先你要根据k-1时刻的温度值,来预测k时刻的温度。因为你相信温度是恒定的,所以你会得到k时刻的温度预测值是跟k-1时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平方相加再开方,就是5)。然后,你从温度计那里得到了k时刻的温度值,假设是25度,同时该值的偏差是4度。

由于我们用于估算k时刻的实际温度有两个温度值,分别是23度和25度。究竟实际温度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的covariance来判断。因为Kg^2=5^2/(5^2+4^2),所以Kg=0.78,我们可以估算出k时刻的实际温度值是:

23+0.78*(25-23)=24.56度。可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。

现在我们已经得到k时刻的最优温度值了,下一步就是要进入k+1时刻,进行新的最优估算。到现在为止,好像还没看到什么自回归的东西出现。对了,在进入k+1时刻之前,我们还要算出k时刻那个最优值(24.56度)的偏差。算法如下:((1-Kg)*5^2)^0.5=2.35。这里的5就是上面的k时刻你预测的那个23度温度值的偏差,得出的2.35就是进入k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3)。

就是这样,卡尔曼滤波器就不断的把covariance递归,从而估算出最优的温度值。他运行的很快,而且它只保留了上一时刻的covariance。上面的Kg,就是卡尔曼增益(Kalman Gain)。他可以随不同的时刻而改变他自己的值,是不是很神奇!

下面就要言归正传,讨论真正工程系统上的卡尔曼。

2.卡尔曼滤波器算法(The Kalman Filter Algorithm)

在这一部分,我们就来描述源于Dr Kalman的卡尔曼滤波器。下面的描述,会涉及一些基本的概念知识,包括概率(Probability),随机变量(Random Variable),高斯或正态分配(Gaussian Distribution)还有State-space Model等等。但对于卡尔曼滤波器的详细证明,这里不能一一描述。

首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述: X(k)=A X(k-1)+B U(k)+W(k)

再加上系统的测量值:

Z(k)=H X(k)+V(k)

上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H 是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是Q,R(这里我们假设他们不随系统状态变化而变化)。

对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的covariances 来估算系统的最优化输出(类似上一节那个温度的例子)。

首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:

X(k|k-1)=A X(k-1|k-1)+B U(k) (1)

式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。

到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的covariance还没更新。我们用P表示covariance:P(k|k-1)=A P(k-1|k-1) A’+Q (2)

式(2)中,P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应的covariance,A’表示 A的转置矩阵,Q是系统过程的covariance。式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。

现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值

X(k|k):

X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) (3)

其中Kg为卡尔曼增益(Kalman Gain):

Kg(k)= P(k|k-1) H’/(H P(k|k-1) H’+ R) (4)

到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要使卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的covariance:

P(k|k)=(I-Kg(k)H)P(k|k-1) (5)

其中I为1的矩阵,对于单模型单测量,I=1。当系统进入k+1状态时,P(k|k)就是式子(2)的P(k-1|k-1)。这样,算法就可以自回归的运算下去。

卡尔曼滤波器的原理基本描述了,式子1,2,3,4和5就是他的5个基本公式。根据这5个公式,可以很容易的实现计算机的程序。

下面,我会用程序举一个实际运行的例子。

3.简单例子(A Simple Example)

这里我们结合第二第三节,举一个非常简单的例子来说明卡尔曼滤波器的工作过程。所举的例子是进一步描述第二节的例子,而且还会配以程序模拟结果。

根据第二节的描述,把房间看成一个系统,然后对这个系统建模。当然,我们见的模型不需要非常地精确。我们所知道的这个房间的温度是跟前一时刻的温度相同的,所以A=1。没有控制量,所以U(k)=0。因此得出:

X(k|k-1)=X(k-1|k-1) (6)

式子(2)可以改成:

P(k|k-1)=P(k-1|k-1)+Q (7)

因为测量的值是温度计的,跟温度直接对应,所以H=1。式子3,4,5可以改成以下:

X(k|k)= X(k|k-1)+Kg(k)(Z(k)-X(k|k-1)) (8)

Kg(k)= P(k|k-1)/(P(k|k-1)+R) (9)

P(k|k)=(1-Kg(k))P(k|k-1) (10)

现在我们模拟一组测量值作为输入。假设房间的真实温度为25度,我模拟了200个测量值,这些测量值的平均值为25度,但是加入了标准偏差为几度的高斯白噪声(在图中为蓝线)。

为了令卡尔曼滤波器开始工作,我们需要告诉卡尔曼两个零时刻的初始值,是X(0|0)和P(0|0)。他们的值不用太在意,随便给一个就可以了,因为随着卡尔曼的工作,X会逐渐的收敛。但是对于P,一般不要取0,因为这样可能会令卡尔曼完全相信你给定的X(0|0)是系统最优的,从而使算法不能收敛。我选了X(0|0)=1度,P(0|0)=10。

该系统的真实温度为25度,图中用黑线表示。图中红线是卡尔曼滤波器输出的最优化结果(该结果在算法中设置了Q=1e-6,R=1e-1)。

?什么是kalman滤波器?

kalman滤波器是一个最优化递归处理算法(optimal recursive data processing algorithm)。

(1)最优(optimal)依赖于评价性能的判据。Kalman滤波器充分利用如下信息估计感兴趣变量当前取值:a.系统和测量装置的动态特性;

b.系统噪声、测量误差和动态模型的不确定性的统计描述;

c.感兴趣变量的初始条件的相关信息。

(2)递归(recursive)是指kalman不需要保存先前的数据,当进行新的测量时也不需要对原来数据进行处理。

(3)filter(DPA)实际上是数据处理算法,只不过是计算中处理的程序,因此能处理离散时间测量样本,而不是连续时间输入。

?基本假设

采用线性模型是合理的;这是典型工程模型在某些主要点或轨迹是线性的,线性模型比非线性模型更简单。因此用线性模型来近似。

白噪声意味着噪声值和时间不相关;白噪声指在整个频率上都有相同强度的频率特性的噪声。实际应用中将频率设为常值,带宽大大超过系统带宽的噪声称为白噪声,用高斯白噪声来模拟,可以大大简化模型。

采用高斯密度函数在实践上是可行的。因为采用高斯函数在数学上容易处理。当缺少高阶统计量时,除了假定高斯密度外,没有更好的可以表示的函数形式。用一阶和二阶统计量完全可以描述高斯白噪声。

(转载自:luckydongbin专栏https://www.wendangku.net/doc/3f12946817.html,/luckydongbin/archive/2007/03/01/1518594.aspx)

附 matlab下,kalman滤波程序:

%卡尔曼滤波

clear

N=800;

w(1)=0;

w=randn(1,N) %系统预测的随机白噪声

x(1)=0;

a=1;

for k=2:N;

x(k)=a*x(k-1)+w(k-1); %系统的预测值

end

V=randn(1,N); %测量值的随机白噪声

q1=std(V);

Rvv=q1.^2;

q2=std(x);

Rxx=q2.^2;

q3=std(w);

Rww=q3.^2;

c=0.2;

Y=c*x+V; %测量值

p(1)=0;

s(1)=0;

for t=2:N;

p1(t)=a.^2*p(t-1)+Rww; %前一时刻X的相关系数

b(t)=c*p1(t)/(c.^2*p1(t)+Rvv); %卡尔曼增益

s(t)=a*s(t-1)+b(t)*(Y(t)-a*c*s(t-1)); %经过滤波后的信号

p(t)=p1(t)-c*b(t)*p1(t);%t状态下x(t|t)的相关系数

end

figure(1)

plot(x)

title('系统的预测值')

figure(2)

plot(Y)

title('测量值')

figure(3)

plot(s)

title('滤波后的信号')

运行结果图:

来自: https://www.wendangku.net/doc/3f12946817.html,/tangsu2009/blog/item/f61ba9f10f3f31a6a40f5234.html

简单低通滤波器设计及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)

基于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);%中值像素点的位置

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.wendangku.net/doc/3f12946817.html,/walqxlqxaw/blog/item/aabb517f877e6f190dd7daad.ht ml

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代码)

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为核函数中心,σ为函数的宽度参数, 控制了函数的径向作用范围。

用matlab编程设计切比雪夫低通滤波器..

目录 1摘要 (3) 2设计原理 (4) 2.1 切比雪夫滤波器介绍 (4) 2.2滤波器的分类 (5) 2.3 模拟滤波器的设计指标 (6) 3切比雪夫I型滤波器 (7) 3.1 切比雪夫滤波器的设计原理 (7) 3.2切比雪夫滤波器的设计步骤 (10) 3.3 用matlab编程设计切比雪夫低通滤波器 (11) 4 总结 (18) 5 参考文献 (18)

摘要 随着信息和数字时代的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。在现代通信系统中,由于信号中经常混有各种复杂成分,因此很多信号的处理都是基于滤波器而进行的。所以,数字滤波器在数字信号处理中起着举足轻重的作用。 而数字滤波器的设计都要以模拟滤波器为基础的,这是因为模拟滤波器的理论和设计方方法都已发展的相当成熟,且有典型的模拟滤波器供我们选择。,如巴特沃思滤波器、切比雪夫滤波器等。 本次课程设计将运用MATLAB设计一个基于切比雪夫低通滤波器,并出所设计滤波器的幅度及幅度衰减特性。 关键词:滤波切比雪夫模拟低通 1切比雪夫滤波器介绍

在巴特沃兹滤波器中,幅度响应在通带和阻带内都是单调的。因此,若滤波器的技术要求是用最大通带和阻带的逼近误差来给出的话,那么,在靠近通带低频端和阻带截止频率以上的部分都会超出技术指标。一种比较有效的途径是使逼近误差均匀地分布于通带或阻带内,或同时在通带和阻带内都均匀分布,这样往往可以降低所要求的滤波器阶次。通过选择一种具有等波纹特性而不是单调特性的逼近方法可以实现这一点。切比雪夫型滤波器就具有这种性质:其频率响应的幅度既可以在通带中是等波纹的,而在阻带中是单调的(称为I 型切比雪夫滤波器),也可以在通带中是单调的,而在阻带中是等波纹的(称为II 型切比雪夫滤波器),其中切比雪夫II 型滤波器又称为逆切比雪夫滤波器。 I 型切比雪夫滤波器的幅度平方函数是 2|)(|Ωj H C = )/(11 2 2c N C ΩΩ+ε (2.1) 其中ε是一个小于1的正数,它与通带波纹有关,ε越大,波纹也越大,式中为N 阶切比雪夫多项式,定义为 )cos cos()(1x N x C N -= (2.2) 当N 大于或等于1时,从定义切比雪夫多项式可以直接得出由 ) (x C N 和 )(1x C N -求)(1x C N +的递推公式。将三角恒等式代入 (2.2)式,得 )(1x C N +=2x -)(x C N )(1x C N - (2.3) 从 (2.2)式我们注意到,当01时,x 1cos -是虚数,所以) (x C N 像双曲余弦一样单调地增加。参考(2.1), 2|)(|Ωj H C 对于0≤p ΩΩ/≤1呈现出在1和1/(21ε+)之间的波动;而对于 p ΩΩ/〉1单调地减小。需要用三个参量来确定该滤波器:ε,p Ω和N 。 在典型的设计中,用容许的通带波纹来确定ε,而用希望的通带截止频率来确定 c Ω。然后选择合适的阶次N ,以便阻带的技术要求得到满足。

低通滤波的matlab实现

四种低通滤波器: 一、理想低通滤波器 I=imread('bb.jpg'); T=rgb2gray(I); figure(1); subplot(1,2,1),imshow(uint8(I)); title('原图像'); subplot(1,2,2),imshow(uint8(T)); title('理想低通滤波所得图像'); [f1,f2]=freqspace(size(T),'meshgrid'); H=ones(size(T)); r=sqrt(f1.^2+f2.^2); H(r>0.1)=0; Y=fft2(double(T)); Y=fftshift(Y); Ya=Y.*H; Ya=ifftshift(Ya); I=ifft2(Ya); figure(2); surf(H,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); title('频谱图');

二、巴特沃斯低通滤波器 I=imread('bb.jpg'); T=rgb2gray(I); figure(1); subplot(1,2,1),imshow(uint8(I)); title('原图像'); subplot(1,2,2),imshow(uint8(T)); title('巴特沃斯低通滤波所得图像'); [f1,f2]=freqspace(size(T),'meshgrid'); D=0.3; r=f1.^2+f2.^2; n=4; for i=1:size(T,1) for j=1:size(T,2) t=r(i,j)/(D*D); H(i,j)=1/(t^n+1); end end Y=fft2(double(T)); Y=fftshift(Y); Ya=Y.*H; Ya=ifftshift(Ya); I=real(ifft2(Ya)); figure(2); surf(H,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); title('频谱图');

图像处理——均值滤波+中值滤波(Matlab)讲课讲稿

题目:均值滤波和中值滤波 在自己的证件照中加入椒盐噪声、高斯白噪声。 分别用3*3、5*5、7*7的均值滤波器和中值滤波器进行滤波。 处理过程 1.用imnoise函数在图像中分别加入椒盐噪声和高斯白噪声; 2.均值滤波:用fspecial函数创建各模板大小的均值滤波器,并用imfilter函数进行 滤波。 中值滤波:直接用matlab提供的medfilt2中值滤波器进行滤波即可。 处理结果 程序清单 (1)均值滤波 rgb=imread('photo.jpg'); J1=imnoise(rgb,'salt & pepper',0.02); J2=imnoise(J1,'gaussian',0,0.01); h1=fspecial('average',[3,3]); h2=fspecial('average',[5,5]); h3=fspecial('average',[7,7]); rgb1=imfilter(J2,h1); rgb2=imfilter(J2,h2); rgb3=imfilter(J2,h3); figure; subplot(2,3,1);imshow(rgb) title('原图像'); subplot(2,3,2);imshow(J2) title('加入噪声后的图像'); subplot(2,3,4);imshow(rgb1) title('3*3均值滤波图像'); subplot(2,3,5);imshow(rgb2) title('5*5均值滤波图像'); subplot(2,3,6);imshow(rgb3) title('7*7均值滤波图像'); (2)中值滤波 rgb=imread('photo.jpg'); J1=imnoise(rgb,'salt & pepper',0.02); J2=imnoise(J1,'gaussian',0,0.01); J3=rgb2gray(J2); rgb1=medfilt2(J3,[3 3]);

利用matlab设计巴特沃斯低通滤波器

三峡大学 课程设计报告 专业班级 20091421 课程数字信号处理课程设计 学号 2009142116 学生姓名姜祥奔 指导教师王露 2012年 5 月 平时成绩(20%) 报告成绩(40%) 答辩成绩(40%) 总成绩

数字信号处理课程设计 实验一:用双线性变换法和脉冲响应不变法设计IIR 数字滤波器 采用双线性变换法设计一个巴特沃斯数字低通滤波器,要求:通带截止频率 100Hz ,阻带截止频率200Hz ,通带衰减指标Rp 小于2dB ,阻带衰减Rs 大于15dB ,滤波器采样频率Fs=500Hz 。绘制频率响应曲线。 理论部分:(原理及设计过程) 第一步:论ω和f 的关系及数字域性能的公式表示。模拟频率与数字频率之间为线性关系,T f T fT T s ,101,24-===Ω=πω为抽样周期,故 ππω4.0500110021=? ?==c c kHz f 对应于 修正后 )2 t a n (21c T ω=Ω ππω8.0500120021=? ?==st st kHz f 对应于 修正后 )2 tan(21st T ω= Ω 按衰减的定义 2) ()(log 204.0010≤πj j e H e H 15)()(log 208.0010 ≥πj j e H e H 设0=ω处频率响应幅度归一化为1,即1)(0=j e H ,则上两式变成 2)(log 204.010-≥πj e H (1) 15)(log 208.010-≤πj e H (2)

这就是数字滤波器的性能指标的表达式。 2 下面把数字低通滤波器的性能要求转变为“样本”模拟低通滤波器的性能 要求。由T Ω=ω,按修正式)()(T j H e H a j ωω≈,设没有混叠效应(即混叠效应设计完成后再进行校验) 则有 πωω ω≤Ω==),()()(j H T j H e H a a j (3) 利用(3)式,由(1)、(2)式可写出模拟低通滤波器的指标为 2)102(log 20)4.0(log 2021010-≥?=ππj H T j H a a …….(4) 15)104(log 20)8.0(log 2021010-≤?=ππj H T j H a a …(5) 3 计算“样本”模拟低通滤波器所需的阶数N 及3dB 截止频率C Ω。巴特沃思低通滤波器的幅度平方函数是 N C a j H 22)(11)(ΩΩ+=Ω 以分贝形式表示上式,即 ?? ????ΩΩ+-=ΩN C a j H 21010)(1log 10)(log 20 ……………(6) 把求出的性能指标关系(4)式、(5)式代入(6)式得 2)(1log 102110-≥?? ????ΩΩ+-N C 15)(1log 102210-≤?? ????ΩΩ+-N C 先用等号来满足指标,可得 N C 21)(1ΩΩ+=2.010 N C 22)(1ΩΩ+=5.110 解此两方程,得N=1.3709, N 是滤波器阶次,必须取整数,为了满足或超过给定

实验三--均值滤波和中值滤波

实验三均值滤波和中值滤波 一、实验目的 进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。 了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。 二、实验要求 (1)学生应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。 (2)利用MATLAB软件实现空域滤波的程序: I=imread('electric.tif'); J = imnoise(I,'gauss',0.02); %添加高斯噪声 J = imnoise(I,'salt & pepper',0.02); (注意空格) %添加椒盐噪声 ave1=fspecial('average',3); %产生3×3的均值模版 ave2=fspecial('average',5); %产生5×5的均值模版 K = filter2(ave1,J)/255; %均值滤波3×3 L = filter2(ave2,J)/255; %均值滤波5×5 M = medfilt2(J,[3 3]); %中值滤波3×3模板 N = medfilt2(J,[4 4]); %中值滤波4×4模板 imshow(I); figure,imshow(J); figure,imshow(K); figure,imshow(L); figure,imshow(M); figure,imshow(N); 三、实验设备与软件 (1) IBM-PC计算机系统 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容与步骤 a) 调入并显示原始图像Sample2-1.jpg 。 b) 利用imnoise 命令在图像Sample2-1.jpg 上加入高斯(gaussian) 噪声 c)利用预定义函数fspecial 命令产生平均(average)滤波器

相关文档
相关文档 最新文档