Engee 文档

medfilt1

页面进行中。

一维中值滤波。

库::`工程师`

语法

函数调用

  • [参数:y]=medfilt1(<参数:x>>,<参数:n>>,[],<参数:dim>>) — 使用尺寸 [参数:暗淡] 过滤器工作的原因。 论点 [] 需要向后兼容而忽略。

争论

输入参数

# x — 输入信号

+ 向量资料 | 矩阵 | 一个N维数组

Details

指定为实数向量、矩阵或多维数组的输入信号。

数据类型

漂浮物32, 漂浮64</无翻译>

# 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). 在这种情况下,函数对数字进行排序,并计算排序列表的两个平均元素的算术平均值。

数据类型

漂浮64</无翻译>

# 昏暗 — 过滤测量

+ 标量,标量

Details

过滤后的维度,指定为正整数标量。 默认情况下,该函数适用于多维的第一个维度 [参数:x]. 特别是,如果 [参数:x] 是一个矩阵,该函数过滤其列,以便: y(:,i)=medfilt1(x(:,i),n).

数据类型

漂浮64</无翻译>

# nanflag — 条件
"包括" (默认情况下)| "omitnan"

Details

条件 ,设为 "包括""omitnan":

  • "包括" 返回经过滤波的信号,使得包含 ,也等于 .

  • "omitnan" 返回经过滤波的信号,使得包含 ,等于除 . 如果所有的段元素是 ,结果将是 .

# 填充物 — 边界值的过滤

+ "zeropad" (默认情况下)| "截断"

Details

边界值的滤波,定义为 "zeropad""截断":

  • "zeropad" 将信号视为超出边界值的零。

  • "截断" 当信号边界达到时,计算较小段的中间值。

输出参数

# y — 滤波信号

+ 向量资料 | 矩阵 | 一个N维数组

Details

滤波后的信号作为实数向量、矩阵或多维数组返回。 尺寸 y[参数:x].

数据类型

漂浮64</无翻译>

例子:

使用中值滤波降噪

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)

medfilt1 1

文学作品

  1. Pratt,William K.数字图像处理。 第4版。 Hoboken,NJ:John Wiley&Sons,2007。