文档

dsp.MedianFilter系统对象

中值滤波器

描述

dsp.MedianFilter系统对象™的移动平均计算输入信号沿着每个通道独立。对象使用滑动窗口方法计算移动值。在这种方法中,一个窗口指定长度的移动在每个通道,取样和计算的对象中的数据窗口的中值。更多细节,请参阅算法

对象接受多路输入,——- - - - - -n大小的输入,≥1,n> 1。样品的数量在每一帧(或通道),然后呢n通道的数量。对象还接受适应输入。一旦对象被锁定后,您可以更改每个输入通道的大小。然而,通道的数量不能改变。这个对象支持C和c++代万博1manbetx码生成。

计算移动输入的中位数:

  1. 创建一个dsp.MedianFilter对象并设置对象的属性。

  2. 调用一步计算移动值。

请注意

或者,而不是使用一步定义的方法来执行操作系统对象,您可以调用对象的参数,就好像它是一个函数。例如,y =步骤(obj, x)y = obj (x)执行相同操作。

建设

medFilt = dsp.MedianFilter返回一个对象中值滤波器,medFilt使用缺省属性。

medFilt = dsp.MedianFilter(兰)设置WindowLength财产Len

medFilt = dsp.MedianFilter(名称、值)指定属性的使用名称,值对。未指定的属性有默认值。

例子:

movMin = dsp.MedianFilter (“WindowLength”5);

属性

全部展开

长度的滑动窗口,指定为一个积极的标量整数。

方法

重置 重置的内部状态系统对象
一步 移动平均的输入信号
常见的系统对象
释放

允许系统对象属性值的变化

例子

全部展开

从嘈杂的正弦波滤波器高频噪声信号使用中值滤波。中值滤波器的性能比较平均滤波器。

初始化

建立了一个dsp.MedianFilter对象,medFilt和一个dsp.MovingAverage对象,movavgWin。这些对象使用滑动窗口方法的窗口长度7。创建时间范围查看输出。

Fs = 1000;medFilt = dsp.MedianFilter (7);movavgWin = dsp.MovingAverage (7);范围= dsp.TimeScope (“SampleRate”Fs,“TimeSpanOverrunAction”,“滚动”,“时间间隔”,1“ShowGrid”,真的,“YLimits”3 [3],“LayoutDimensions”(3 - 1),“NumInputPorts”3);范围。ActiveDisplay = 1;范围。Title =“信号+噪声”;范围。ActiveDisplay = 2;范围。Title =移动平均产量(窗口长度= 7)';范围。ActiveDisplay = 3;范围。Title =的中值滤波器输出(窗口长度= 7)';FrameLength = 256;数= 1;正弦= dsp.SineWave (“SampleRate”Fs,“频率”10“SamplesPerFrame”,FrameLength);

过滤器吵闹的正弦波

生成一个嘈杂的正弦波信号的频率10赫兹。应用中值滤波信号和移动平均线对象。查看输出的时间范围。

我= 1:50 0 hfn = 3 *(兰德(FrameLength, 1) < 0.02);x = sin() + 1依照* randn (FrameLength 1) + hfn;日元= movavgWin (x);y2 = medFilt (x);范围(x, y1, y2);结束

中值滤波器去除高频噪声比移动平均线对象更有效。

这个例子展示了如何从一个流媒体信号消除高频离群值使用dsp.MedianFilter系统对象™。

使用dsp.MatFileReader读取陀螺仪垫文件系统对象。陀螺仪垫文件包含3列的数据,与每一列包含7140个样本。三列代表X设在,Y设在,Z设在陀螺仪运动传感器的数据。选择一个帧大小的714个样本,这样每一列的数据包含10帧。的dsp.MedianFilter系统对象使用一个窗口长度为10。创建一个dsp.TimeScope对象查看过滤输出。

读者= dsp.MatFileReader (“SamplesPerFrame”,714,“文件名”,“LSM9DS1gyroData73.mat”,“VariableName”,“数据”);medFilt = dsp.MedianFilter (10);范围= dsp.TimeScope (“NumInputPorts”,1“SampleRate”,119,“YLimits”(-300 300),“ChannelNames”,{“输入”,“过滤输出”},“时间间隔”现年60岁的“ShowLegend”,真正的);

过滤陀螺仪数据使用dsp.MedianFilter系统对象。查看过滤Z设在数据的时间范围。

我= 1:10 gyroData =读者();filteredData = medFilt (gyroData);范围([gyroData (:, 3), filteredData (:, 3)));结束

原始数据包含几个离群值。放大数据证实,中值滤波去除所有的离群值。

算法

全部展开

引用

[1]Bodenham,院长。“自适应过滤,流数据变化检测。“博士论文。伦敦帝国理工学院,2012。

扩展功能

介绍了R2016b

这个主题有帮助吗?