文档

去除信号中的尖刺

有时数据会出现不必要的瞬变或峰值。中值滤波是消除它们的一种自然方法。

考虑在60hz电源线噪声存在时模拟仪器输入端的开环电压。采样率为1 kHz。

负载openloop60hertzfs = 1000;t = (0:numel(openLoopVoltage) - 1)/fs;

通过在随机点上添加随机符号来破坏信号。为再现性重置随机数生成器。

rng默认的spikeSignal = 0(大小(openLoopVoltage));spks = 10:100:1990;spikeSignal (spks +轮(2 * randn(大小(spks)))) =符号(randn(大小(spks)));noisyLoopVoltage = openLoopVoltage + spikessignal;情节(t, noisyLoopVoltage)包含(“时间(s)”) ylabel (“电压(V)”)标题(“带有附加峰值的开环电压”

yax = ylim;

这个函数medfilt1用该点的中值和指定数目的相邻点替换信号中的每一个点。因此,中值滤波丢弃与周围环境有很大差异的点。滤波信号,使用三个相邻点的集合来计算中值。请注意尖峰是如何消失的。

medfiltLoopVoltage = medfilt1 (noisyLoopVoltage 3);情节(t, medfiltLoopVoltage)包含(“时间(s)”) ylabel (“电压(V)”)标题(中值滤波后的开环电压) ylim (yax)网格

另请参阅

相关的话题