【发布时间】:2017-02-23 09:02:52
【问题描述】:
我有以下代码:
x = VarName3;
y = VarName4;
x = (x/6000)/60;
plot(x, y)
其中VarName3 和VarName4 是3000x1。我想在 MATLAB 中对此应用中值滤波器。但是,我遇到的问题是,如果我使用medfilt1,那么我只能输入一个变量数组作为第一个参数。而对于medfilt2,我只能输入一个矩阵作为第一个参数。但是如果我将x 和y 转换为矩阵,数据看起来非常模糊。
x 是时间,y 是整数列表。我希望能够过滤掉尖峰和下降。我该怎么做呢?我正在考虑通过直接操作数据文件来消除错误的数据点。但是,我并没有真正得到中值滤波器的效果。
【问题讨论】:
-
您的问题中提到了 2 个过滤器。中值过滤器不会过滤掉高于和低于某个范围的值。你需要哪一个?
-
但是中值过滤器不能帮助我摆脱数据中的尖峰吗?
-
是,但不是“高于或低于某个范围的值”
-
抱歉,措辞错误。我想要的是摆脱异常值。我已经编辑了 OP。
-
medfilt1有什么问题?似乎是正确的选择
标签: matlab filter signal-processing