matlab 计算汉明距_matlab实现滑动平均滤波

什么是滑动均值滤波

滑动平均滤波就是把连续取得的N个采样值看成一个队列,队列的长度固定为N,每次采样得到一个新数据放到队尾,并丢掉原来队首的一次数据,把队列中的N个数据进行平均运算,就可以获得新的滤波结果。

具体的matlab代码

  1. clear
  2. clc
  3. load boxinfo.mat %载入音频数据
  4. T = data;
  5. figure(1)
  6. plot(T,'-*')
  7. title('原始数据')
  8. hold on;
  9. %%
  10. %滑动平滑滤波
  11. L = length(T);
  12. N=10; % 窗口大下
  13. k = 0;
  14. m =0 ;
  15. for i = 1:L
  16. m = m+1;
  17. if i+N-1 > L
  18. break
  19. else
  20. for j = i:N+i-1
  21. k = k+1;
  22. W(k) = T(j) ;
  23. end
  24. T1(m) = mean(W);
  25. k = 0;
  26. end
  27. end
  28. plot(T1,'r-o')
  29. grid
  30. legend('原始数据','滤波之后')

滤波前后对比图

0fc87465d1fd55d10b65752be51e4a1f.png

简单分析一下

经过滑动滤波之后,波形整体变得平滑,这里我们重点关注一下x轴附近的点,可以发现,在波形与x轴交叉的地方,波形都平稳过度,这极大方便的我们后期进行统计。

窗口大小选择

从代码中我们可以发现窗口大小我们选择的是10,如何选择窗口大小,这里我们需要进行一些简单的分析和测试。如果x轴附近的噪点数量(一上一下)比较多,那么窗口大小就应该大一些,反之,小一些。但是过大又会出现过拟合的现象,所以可以多取几个值,然后对比一下,选择一个最好的即可。

不同的窗口大小对比图

36a761f2dea3027536acd4960409208a.png

简单分析一下

从图中我们可以很明显的看出,当N=4的时候,滤波效果还不是很好,在x轴附近依然有噪点(一上一下),当N=7的时候,已经基本满足我们的要求,图形已经可以很平稳的过度了,但是从右边的标记处可以看出还是不是很平稳,所以可以继续提高N值,当N=10的时候,波形就完全能够达到我们的要求,所以取10即可。

滑动平均(moving average):在地球物理异常图上,选定某一尺寸的窗口,将窗口内的所有异常值做算术平均,将平均值作为窗口中心点的异常值。按点距或线距移动窗口,重复此平均方法,直到对整幅图完成上述过程,这种过程称为滑动平均。

滑动平均相当于低通滤波,在重力勘探和测井资料处理解释中常用此方法。 如果滑动窗长为n的话,滑动平均就是让数据通过一个n点的FIR滤波器,滤波器抽头系数都是1,这样取滑动平均就是起到序列平滑的作用。

利用filter函数求滑动平均

Matlab有多种计算滑动平均的方法,现介绍基于filter函数的计算方法。设原始数据为x,平均窗口设为a(a为正整数),那么无权重滑动平均后的数据y为:

windowSize =a;

y=filter(ones(1,windowSize)/windowSize,1,x);

上述命令实际上计算的是:

y(1)=(1/a)*x(1);

y(2)=(1/a)*x(2)+(1/a)*x(1);

... ...

y(a)=(1/a)*x(a)+(1/a)*x(a-1)+...+(1/a)*x(1);

... ...

y(i)=(1/a)*x(i)+(1/a)*x(i-1)+...+(1/a)*x(i-a+1);

... ....

可以看出,计算某一位置处的平均值时,窗口的前端位于该处。有时为了将窗口中部放在所计算的位置处,这样上述计算方式则变为(为叙述方便起见,设a为奇数):

y(1)=(1/a)*x(1)+(1/a)*x(2)+...+(1/a)*x((a+1)/2);

y(2)=(1/a)*x(1)+(1/a)*x(2)+...+(1/a)*x((a+1)/2+1);

... ...

y((a+1)/2)=(1/a)*x(1)+(1/a)*x(2)+...+(1/a)*x((a+1)/2)+...+(1/a)*x(a);

... ...

y(i)=(1/a)*x(i-(a-1)/2)+(1/a)*x(i-(a-1)/2+1)+...+(1/a)*x(i)+...+(1/a)*x(i+(a-1)/2);

... ...

这种方式的滑动平均称为中心滑动平均,其Matlab的计算语句为:

windowSize =a;

y1=filter(ones(1,a/2+1)/windowSize,1,x);

y2=filter(ones(1,a/2+1)/windowSize,1,fliplr(x));

y=y1+fliplr(y2)-(1/a)*x;

如利用1-2-1 滤波器计算有权重的中心滑动平均,其Matlab语句为:

y1=filter([0.50.25],1,x);

y2=filter([0.5 0.25],1,fliplr(x));

y=y1+fliplr(y2)-0.5*x;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

svg转css font,css – 如何将.svg文件转换为字体?

我在Stack Overflow上找到了两个相关的答案:不幸的是,这两者都不是真正的编码答案,这是我真正希望的(脚本转换的命令行实用程序,或者也许是某人可以编写这样的东西的API).尽管如此,通过结合这两个答案,我得到了我想要的东西.清理SVG(此步骤可能是可选的.)在自由软件…

个人家用nas_NAS不会用?NAS真的很难操作吗?可能是你没选对!

在这个大数据时代,越来越多的小伙伴们发现,无论手机容量如何扩充升级,还是无法满足越来越多资料的存储和备份。于是不少人有了想搭建NAS私有云的想法,配备了一台超大容量的NAS私有云,不仅可以即时备份电脑以及手机等设…

background的用法css,关于CSSbackground的使用方法

下面为大家带来一篇CSS background全部汇总。内容挺不错的,现在就分享给大家,也给大家做个参考。所有背景属性都不能继承。1. background-color所有元素都能设置背景颜色。background-color的默认值是transparent;也就是说,如果一…

我的世界服务器怎么修改合成表,《我的世界》1.8原版自定义合成表教程 怎么自定义合成表...

《我的世界》1.8原版自定义合成方法,很多玩家还不了解,今天给大家带来玩家“真名”分享的《我的世界》1.8原版自定义合成表教程,一起来看看吧。版本要求1.8优点:自定义合成表数量可以很大合成表可以很复杂没有名字、NBT不会合成自…

postgresql定义访问ip与用户_Postgresql-12.1最新版本在线安装以及配置使用全流程

Postgresql-12.1最新版本在线安装以及配置使用全流程 Postgresql-12.1简单介绍 PostgreSQL 12.1 已经发布,该版本在各方面都得到了加强,包括显著地提升查询性能,特别是对大数据集,总的空间利用率方面。 这个版本主要几大特点如下 …

construct2 ajax,Construct2/3

我们常在游戏中见到各种各样的剧情对话,电子游戏从最早的RPG类对话框演变至今,已经产生了无数种解决方案。但总的来说,常见的对话分为两类:最常见的galgame对话,可以看到较大的立绘图表现人物的表情动态(甚至动画)&…

tcp中的crc检验算法原理_在数据传输过程中的CRC 算法的简单说明

CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC 算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少&#xff…

服务器修改用户组权限设置,如何:修改用户的权限

如何:修改用户的权限08/18/2008本文内容更新:2007 年 11 月随着时间的推移,若要对管理和项目需求进行更改,可能要求您更改 Team Foundation Server 服务器级或项目级用户的权限。更改单个用户的权限前,可将其移除&…

和氟西汀类似的备注_撒狗粮:可爱又霸气的给男朋友的微信备注

在微信里,你的男朋友是怎么被你备注的? 是“老公”,“儿子”,还是“死鬼”? 看看各地网友们的精彩备注吧!——————————————————————小垃圾大宝贝小闹闹周少爷chou狗软蛋蛋小可爱免费鸭…

服务器+返回500错误信息,HttpWebResponse远程服务器返回错误: (500) 内部服务器错误 的解决办法...

在工作中用C#开发了一个小程序,不断访问去请求一个网站的页面,在循环过程中有时会报“远程服务器返回错误: (500) 内部服务器错误”,有时不会,出现的时机也不太一样。开始以为是网站的问题,后来网站是可以正常访问的&a…

ogg 查看某条更新_明道云Web 6.1更新:日历视图上线

更新时间:2020年12月22日(周二)19点预计时长:2小时是否停服:否版本代号:Web 6.1(移动端需同步强制更新)主要更新功能日历视图日历视图让用户能从时间维度排列并管理业务数据&#xf…

服务器的可维护性,可靠性和可维护性

可靠性和可维护性可靠性一直是戴尔服务器产品线的一大亮点,R515也不例外。如内部结构所示,当你打开R515机箱的时候,你可以很明显地看到风扇的数量、分布的各个组件和双电源机箱。你也可以感觉出从中取出各个组件和拆装机箱都十分简便。配合低…

createdroptargets_使用DUILIB建立项目

使用DUILIB加载XML界面这篇主要目的就是教给大家怎样在自己的工程中加载XML界面,这是最基本的应用,对于界面控件响应啥的,我就不讲了,在大家懂了这个之后,我会给大家一个其它人写的博客,再看他的文章&#…

服务器缺少storportSYS文件,Windows操作系统蓝屏日志分析方法

或许你可以先检测下机器硬件健康状况,详情点击查看检测教程工具:X64 Debuggers And Tools-x64_en-us 下载地址:链接:http://pan.baidu.com/s/1cAO2ey 密码:9oms源文件:DMP蓝屏日志 ,文件目录查看…

vue 时区转换_vue---时间戳转换

在/assets下创建一个utils.jsfunction formatDate(date, fmt) {if (/(y)/.test(fmt)) {fmt fmt.replace(RegExp.$1, (date.getFullYear() ).substr(4 - RegExp.$1.length))}let o {M: date.getMonth() 1,d: date.getDate(),h: date.getHours(),m: date.getMinutes(),s: dat…

过滤特征_LR训练优化-稀疏特征过滤

一、背景在推荐系统中,LR由于简单高效,至今在各大互联网公司中仍广泛应用。但是互联网公司中的数据大都是高维稀疏,比如广告id,再加上各种人工的特征组合,特征维度很容易达到上亿维,使得内存的消耗和训练的…

合并工具_你值得拥有这个PDF合并工具 免费获取转换方法

合并PDF文件?很多人在日常生活中经常会需要使用到合并文档的要求,但是不是所有的人都能够很熟练的去合并我们生活中常用的文件,例如PDF,例如Word和Excel等等,其实只要我们学会了PDF合并的方法,以上文件的合…

python中eof表示什么语句错误_python中pickle的EOF错误

根据这些评论,我对最有可能的问题有一个猜测,但至少有50%的可能性我猜错了,在这种情况下……告诉我,我会删除答案。在我猜你是在尝试使用流套接字,就好像它是一个消息序列一样。这是网络编程新手中非常常见的问题。在想…

事物与持久化_跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现...

提到MySQL的事物,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关。而事务的ACID(即原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)可以说涵盖了事务…

cookie里面用到的关键字_晓龙吊打面试官系列:synchronized关键字入门(同步方法与同步代码块)...

文章目录一、 线程安全问题二、synchronized简介1) 原子性2) 可见性3) 有序性4)可重入1. 什么是synchronized2.什么是同步3.synchronized的特性4.synchronized的实现原理(了解即可)三、synchronized的用法1. 同步方法2. 同步代码块四、对象锁和类锁1)对象锁2)类锁1.对象锁的探索…