主要内容

Medfilt1.

1-D中位过滤

描述

y= medfilt1(X将三阶一维中值滤波器应用于输入向量,X。该函数将信号视为超出端点的0。输出,y,具有与X

例子

y= medfilt1(XN.适用A.N.th-命令一维中值滤波器X

y= medfilt1(XN.,blksz,暗淡或者y= medfilt1(XN.,[],暗淡指定维度,暗淡,过滤器沿着该过滤器操作。Blksz.向后兼容性需要并被忽略。

例子

y= medfilt1(___nanflag.填充指定如何使用来自先前语法的任何输入参数,在每个段处理值。此语法还指定填充,在信号边缘执行的滤波类型。

nanflag.填充可以在任何地方出现X在函数调用中。

例子

全部收缩

在100Hz时产生一个针对1秒的正弦信号。添加更高频率的正弦曲线以模拟噪声。

FS = 100;t = 0:1 / FS:1;X = SIN(2 * PI * T * 3)+ 0.25 * SIN(2 * PI * T * 40);

使用10阶中间滤波器来平滑信号。绘制结果。

y = medfilt1(x,10);plot(t,x,t,y)传奇('原来的''过滤') 传奇('boxoff'

图包含轴。轴包含2个类型的型号。这些对象代表原稿,过滤。

产生由不同频率的正弦曲线组成的双通道信号。将尖刺放在随机的地方。使用NAN随机添加缺少的样本。重置随机数发生器以进行可重复的结果。绘制信号。

RNG('默认')n = 59;X = SIN(pi ./ [15 10]'*(1:n)+ pi / 3)';spk = randi(2 * n,9,1);X(SPK)= X(SPK)* 2;X(Randi(2 * N,6,1))= Nan;plot(x)

图包含轴。轴包含2个类型的型号。

使用信号过滤信号Medfilt1.使用默认设置。绘制过滤的信号。默认情况下,过滤器将NaN分配给任何缺少样本的任何段的中位数。

y = medfilt1(x);情节(y)

图包含轴。轴包含2个类型的型号。

转换原始信号。再次过滤,指定函数沿行工作。计算中位数时排除缺少的样本。如果您将第二个参数留空,那么Medfilt1.使用3的默认过滤器顺序。

y = medfilt1(x',[],[],2,'omitnan');情节(y')

图包含轴。轴包含2个类型的型号。

该函数无法为仅包含NANS的段分配值。增加段长度以解决此问题。该更改也更彻底地删除了异常值。

y = medfilt1(x,4,'omitnan');情节(y)

图包含轴。轴包含2个类型的型号。

默认的零填充结果导致函数低估边缘处的信号值。使用减少窗口来计算结束的中位数来减轻这种效果。

y = medfilt1(x,4,'omitnan''截短');情节(y)

图包含轴。轴包含2个类型的型号。

输入参数

全部收缩

输入信号,指定为真实值的矢量,矩阵或N-D阵列。

数据类型:单身的|双倍的

一维中值滤波器的顺序,指定为正整数标量。

  • 什么时候N.是奇怪的,y(k)是中位数X(k-(n-1)/ 2:k +(n-1)/ 2)

  • 什么时候N.甚至,y(k)是中位数X(k-n / 2:k +(n / 2)-1)。在这种情况下,Medfilt1.对数字进行排序,占据排序列表的两个中间元素的平均值。

例子:如果N.= 11,然后y(k)是中位数x(k-5:k + 5)

例子:如果N.= 12,然后y(k)是中位数x(k-6:k + 5)

数据类型:双倍的

将尺寸过滤,指定为正整数标量。默认,Medfilt1.沿着第一个不连贯的尺寸操作X。特别是,如果X是一个矩阵,函数过滤它的列,使其过滤y(:,i)= medfilt1(x(:,i),n)

数据类型:双倍的

条件,指定为'IncludeNan'或者'omitnan'

  • 'IncludeNan'- 返回滤波后的信号,以使任何包含的段的中位数也是

  • 'omitnan'- 返回滤波后的信号,以使任何包含的段的中位数s是非的中位数价值观。如果段的所有元素都是s,结果是

端点过滤,指定为'Zeropad'或者'截短'

  • 'Zeropad'- 将信号视为超出端点的零。

  • '截短'- 计算到达信号边缘时较小段的中位数。

输出参数

全部收缩

过滤信号,作为实值矢量,矩阵或N-D阵列。y与尺寸相同X

数据类型:双倍的

尖端

如果您有图像处理工具箱™软件的许可证,则可以使用Medfilt2.(图像处理工具箱)功能执行二维中值过滤。

参考

[1] Pratt,William K.数字图像处理。第四届。霍博肯,新泽:约翰瓦利和儿子,2007年。

在R2006A之前介绍