matlab中的移动平均滤波和中值滤波

matlab进行数值分析时,可能要使用滤波,除去数据中的噪声,这里首先介绍移动平均滤波(smooth)和中值滤波(medfilt1)。

操作方法

  • 01

    首先介绍移动平均滤波,该滤波方法比较简单实用,我经常会用到,因为是一维滤波,所以命令的使用也非常简单。 smooth命令。 aa = sin(0:pi/100:pi);>> bb = randn(101,1);>> aa = aa'>> cc = aa+bb/10; 我们先新建一个一维数组,然后人为的加入一些噪声。

  • 02

    然后可以使用smooth命令: dd = smooth(cc); hold on; plot(dd); 但是可以看到滤波效果比较差,这是因为默认的smooth只是对数据周围的5个数据进行移动平均(默认值),我们可以给他指定20个数据进行滤波。 ee = smooth(cc,20); hold on; plot(ee); 可以看到滤波效果明显较好,但是也不是说数值越高越好,太高的话容易造成数据失真。

  • 03

    当然,移动平均滤波也有滤波方法,比如默认的方法是低通滤波 ('moving'),还有线性最小二乘滤波('lowess'),加权的线性最小二乘滤波('loess'),Savitzky-Golay 滤波('sgolay'),'rlowess','rloess'等方法。 下面看看其区别: ff = smooth(cc,20,'lowess'); figure;plot(ee);hold on; plot(ff); 可以看到lowess滤波方法比单纯的moving方法稍好。 大家可以根据自己的数据调节不同的滤波。

  • 04

    下面介绍中值滤波,medfilt1: 举例来说,输入:Y[1-10]:1,2,3,4,5,6,7,8,9,10. 取区间2k = 4,所以k=2; 执行中值滤波 K=中值滤波(Y) 由x-k+1>=1,所以当k=2时,x>=2 滤波时: K[1]=Y[1] K[2]=(Y[1]、Y[2]、Y[3]、Y[4])的中间值,即为2或3

  • 05

    还是举例介绍吧,同样是上面的cc,aa为原始数据。 xx = medfilt1(cc); yy = medfilt1(cc,20); plot(cc);hold on;plot(xx);hold on;plot(yy); legend('噪声数据','默认中值滤波','20阶中值滤波') 滤波秩序(n,这里是20): Example: If n = 11, then y(k) is the median of x(k-5:k+5). Example: If n = 12, then y(k) is the median of x(k-6:k+5).

  • 06

    如果数据中有NaN值时,可以考虑使用'omitnan','includenan'命令,忽略或者加入NaN值进行滤波。

  • 07

    中值滤波与移动平均滤波对比: figure;plot(ff);hold on;plot(yy); legend('移动平均滤波','中值滤波');

  • 08

    可以看到二者区别不大,如果数据不是太复杂的话,二者都可以用。

(0)

相关推荐

  • matlab如何实现中值滤波

    matlab是进行数值分析的一个重要的工具.今天讲一下matlab对一维信号进行中值滤波的使用方法.所谓的滤波,简单意义上来说,就是对原信号进行处理,通过一系列的变换得到另一个信号.好比A为一组输入信 ...

  • excel中如何隐藏单元格的值为"0"的单元格?

    excel中如何隐藏单元格的值为"0"的单元格? 在我们编辑excel表的时候,有时我们需要对excel表进行整理,例如在一个excel工作表中如果有很多单元格中的数据为"0"的数字单元格,那么我们想 ...

  • 在excel表格中如何设置不显示零值?

    零值不显示的效果很多会想到用单元格格式自定义的方法,但其实我们有更简单的方法,下面小编就为大家介绍在excel表格中如何设置不显示零值方法,不会的朋友可以参考本文,来看看吧! 如何让excel不显示零 ...

  • 在Excel中利用LEFT函数返回文本值最左边的字符方法介绍

    在Excel的使用中,有时需要用到LEFT函数返回文本值最左边的字符,那么具体该如何使用LEFT函数呢?下面就为大家介绍一下,来看看吧! 方法/步骤 1.Excel中根据指定的字符数返回文本串中的第一 ...

  • 如何还原Windows10系统中的文件资源管理器默认值

    win10是我们最常用的计算机系统之一,它凭借超高性能和美观界面深得用户的喜爱,可是不少朋友不知道怎么还原Windows10系统中的文件资源管理器默认值,小编今天就来问您解答这个问题.具体如下:1. ...

  • 如何在Excel中设置“不允许输入重复值”?

    相信很多小伙伴在日常办公中都会用到Excel,在其中如何才能设置"不允许输入重复值"呢?方法很简单,下面小编就来为大家介绍.具体如下:1. 首先,在Excel中打开我们要进行操作的 ...

  • 怎么在美团中查看账号会员的成长值

    有的朋友会好奇自己的美团账号会员成长值是多少,现在小编就来教大家一个查看的方法.具体如下:1.首先,我们打开美团APP首页.2.接着,点击页面右下角的"我的".3.这时,点击页面的 ...

  • 怎么在Excel中批量填充非空数据值到空白单元格中

    有的小伙伴在使用Excel软件编辑数据时,发现表格中有很多空白单元格,因此想要批量填充非空数据值到空白单元格中,但是却不知道如何填充,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,双击或者右击 ...

  • 怎么在excel表格中设置不允许输入重复值

    我们在使用excel表格处理数据的时候,为了避免出现重复输入数据的情况,就要给表格设置限制重复输入,今天给大家介绍一下怎么在excel表格中设置不允许输入重复值的具体操作步骤.1. 如图,我们将需要编 ...