MATLAB数值滤波处理,去除实验得到的数值中的毛刺。

发布网友 发布时间:2022-04-22 08:27

我来回答

4个回答

热心网友 时间:2022-06-18 15:15

MATLAB数值滤波处理方法有:

首先关于fspecial函数的定义,fspecial函数用于建立预定义的滤波算子。

其语法格式为:     

h = fspecial(type)     

h = fspecial(type,para)

其中type指定算子的类型,para指定相应的参数;

函数type的类型有:

1、'average'averaging filter为均值滤波,参数为hsize代表模板尺寸,默认值为[3,3]。

函数格式:H = fspecial('average',hsize)

2、 'disk'circular averaging filter为圆形区域均值滤波,参数为radius代表区域半径,默认值为5。

函数格式:H = fspecial('disk',radius)

3、'gaussian'Gaussian lowpass filter为高斯低通滤波,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma为滤波器的标准值,单位为像素,默认值为0.5。

函数格式:H = fspecial('gaussian',hsize,sigma)

4、'laplacian' filter approximating the 2-D Laplacian operatorlaplacian filter为拉普拉斯算子,参数alpha用于控制算子形状,取值范围为[0,1],默认值为0.2.

函数格式:H = fspecial('laplacian',alpha)

5、'log'Laplacian of Gaussian filter为拉普拉斯高斯算子,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma为滤波器的标准差,单位为像素,默认值为0.5。

函数格式:H = fspecial('log',hsize,sigma)

6、'motion'motion filter运动模糊算子,有两个参数,表示摄像物体逆时针方向以theta角度运动了len个像素,len的默认值为9,theta的默认值为0。

函数格式:H = fspecial('motion',len,theta)

7、'prewitt'Prewitt horizontal edge-emphasizing filter用于边缘增强,大小为[3 3],无参数。

函数格式:H = fspecial('prewitt')

8、'sobel'Sobel horizontal edge-emphasizing filter用于边缘提取,无参数

函数格式:H = fspecial('sobel')the filter H: H'.9、'unsharp'unsharp contrast enhancement filter为对比度增强滤波器。参数alpha用于控制滤波器的形状,范围为[0,1],默认值为0.2.函数格式:H = fspecial('unsharp',alpha)

热心网友 时间:2022-06-18 15:16

如果毛刺是上下波动的话,取个整数N,conv(y,ones(1,N)/N),结果取t相同长度(头上几个去掉)看下

热心网友 时间:2022-06-18 15:16

你可以看下smooth函数的用法,里边提供了很多降噪的方法
最简单的,比方说你要画(t,y)
y1=smooth(y,10)%后边的数字越大越平滑
plot(t,y1)

热心网友 时间:2022-06-18 15:17

方法挺多的吧,如果对数据要求不是很高的话可以试试
1)毛刺不是特别大,可是使用滑动平均窗滤波
2)用cftool工具箱拟合数据
3)用神经网络做个函数拟合
拙见

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com