medfilt1
|
页面进行中。 |
一维中值滤波。
库::`工程师`
语法
函数调用
-
[参数:y]=medfilt1(_,[参数:nanflag],[参数:填充])— 用途[参数:nanflag]确定如何处理这些值南在每个段中,使用来自先前语法的任何输入参数。 此语法还定义了填充。[参数:填充]-在信号的边界处执行的滤波的类型。争论
[参数:nanflag]和[参数:填充]它们可以位于之后的任何地方[参数:x]在函数调用中。
争论
输入参数
# n — 过滤顺序
+
3 (默认情况下)| 标量,标量
Details
一维中值滤波器的阶数,作为正整数标量给出:
-
如果
n如果是奇数,那么y(k)-中位数x(k-(n-1)//2:k+(n-1)//2). -
如果
n甚至,然后y(k)-中位数x(k-n/2:k+(n/2)-1). 在这种情况下,函数对数字进行排序,并计算排序列表的两个平均元素的算术平均值。
| 数据类型 |
|
#
nanflag —
条件 南
"包括" (默认情况下)| "omitnan"
Details
条件 南,设为 "包括" 或 "omitnan":
-
"包括"返回经过滤波的信号,使得包含南,也等于南. -
"omitnan"返回经过滤波的信号,使得包含南,等于除南. 如果所有的段元素是南,结果将是南.
# 填充物 — 边界值的过滤
+
"zeropad" (默认情况下)| "截断"
Details
边界值的滤波,定义为 "zeropad" 或 "截断":
-
"zeropad"将信号视为超出边界值的零。 -
"截断"当信号边界达到时,计算较小段的中间值。
例子:
使用中值滤波降噪
Details
产生具有采样频率的正弦信号 100 Hz期间 1 几秒钟。 添加更高频率的正弦曲线来模拟噪声。 使用中值滤波器 10-平滑信号的顺序。 让我们建立一个图表。
import EngeeDSP.Functions: medfilt1
fs = 100
t = range(0, 1, step=1/fs)
x = sin.(2π * t * 3) .+ 0.25 * sin.(2π * t * 40)
y = medfilt1(x, 10)
p = plot(t, x, label="Original", linewidth=1.5)
plot!(p, t, y, label="Filtered", linewidth=2)
plot!(p, legend=:topright, framestyle=:box)
