时域能量检测
这个例子展示了如何使用信号的均方根值在有限的区间内检测离散时间信号的能量。根据定义,在有限区间上的均方根值-N≤n≤N是由:
离散时间信号在有限区间内的能量N≤n≤N是由:
要从均方根值确定信号能量,将均方根值平方,并将结果乘以用于计算均方根值的样本数量。
在MATLAB中计算RMS值®和仿真软件®,分别使用移动RMS系统对象™和块。
检测信号能量
这个例子展示了如何从信号的RMS值计算信号的能量,并将能量值与指定的阈值进行比较。当信号能量高于阈值时检测事件。
创建一个dsp。米ovingRMS
系统对象™计算信号的移动均方根。将此对象设置为使用窗口长度为20的滑动窗口方法。创建一个timescope
对象查看输出。
FrameLength = 20;Fs = 100;movrmsWin = dsp.MovingRMS (20);范围= timescope (“SampleRate”Fs,...“TimeSpanOverrunAction”,“滚动”,...“TimeSpanSource”,“属性”,“时间间隔”, 100,...“ShowGrid”,真的,“LayoutDimensions”(3 - 1),“NumInputPorts”3);
范围。ActiveDisplay = 1;范围。YLimits = [0 5];范围。Title =输入信号的;
范围。ActiveDisplay = 2;范围。YLimits = [0 350];范围。Title =“用阈值比较信号能量”;
范围。ActiveDisplay = 3;范围。YLimits = [0 2];范围。PlotType =“楼梯”;范围。Title =“当信号能量大于阈值时检测”;
创建输入信号。信号是一个框架长度为20的嘈杂楼梯。阈值为200。通过RMS值的平方和结果乘以窗口长度来计算信号的能量。将信号能量与阈值进行比较。检测该事件,当信号能量超过阈值时,将其标记为1。
数= 1;Vect = [1/8 1/2 1 2 3 4 3 2 1];阈值= 200;为索引= 1:长度(矢量)V =矢量(索引);为i = 1:90 x = V + 0.1 * randn(FrameLength,1);日元= movrmsWin (x);y1ener = (y1(结束)^ 2)* 20;事件= (y1ener >阈值);范围(y1, [y1ener。*的(FrameLength, 1),阈值。*的(FrameLength,1)],事件。* (FrameLength, 1));结束结束
您可以将能量掩码定制为一个变化超过一个标量阈值的模式。您还可以记录信号能量停留在阈值以上或以下的时间。