请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2478|回复: 2

[程序设计] 裁缝Butter+filtfilt滤波函数

[复制链接]

新浪微博达人勋

发表于 2023-3-4 14:05:56 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 一夜荒原 于 2023-3-9 15:32 编辑

参考论坛里的之前交流的用MATLAB设计滤波的帖子,用butter和filtfilt函数裁缝一个普适性比较强的(个人认为)滤波函数,最高可用于3维矩阵的滤波。

这个函数的优点在于:(1)对于三维的变量场,不需要写循环,运行速度会很快;(2)矩阵中含有NaN的格点可以自动排除掉,省去判断if ~isnan(y)的过程。


需要注意的是:

如果你的数据是二维的,必须把时间维放到第一个维度。因为filtfilt这个函数只支持第一维度的滤波(不像filter函数可以指定维度)。


自己和写循环的方式对比过,结果无差异,应该没什么问题吧。

函数使用过程如果有什么问题,或函数本身有什么本质上的错误可随时联系我!谢谢!



but_filt.m

999 Bytes, 下载次数: 8, 下载积分: 金钱 -5

售价: 1 贡献  [记录]

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-3-5 09:46:23 | 显示全部楼层
请教一下,n(阶数)应该怎么选;
如果是用bandpass,参数应该如何设置?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-3-5 10:55:40 | 显示全部楼层
474620961 发表于 2023-3-5 09:46
请教一下,n(阶数)应该怎么选;
如果是用bandpass,参数应该如何设置?

阶数选取我也不太清楚原则;
bandpass的Hz可以设置为[1/n 1/m]就好
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表