主要内容

时域中的能量检测

该示例显示了如何使用信号的RMS值在有限间隔中检测离散时间信号的能量。根据定义,有限间隔的RMS值 -N≤.N≤.N由:

R. m S. = 1 2 N + 1 σ. N = - N N | X. N | 2

通过有限间隔的离散时间信号的能量 -N≤.N≤.N由:

E. N = σ. N = - N N | X. N | 2

要从RMS值确定信号能量,方形为RMS值并将结果乘以用于计算RMS值的样本。

E. N = R. m S. 2 × 2 N + 1

计算MATLAB中的RMS值®和模拟金宝app®,分别使用移动的RMS系统对象™和块。

检测信号能量

该示例显示了如何计算来自信号的RMS值的信号的能量,并将能量值与指定阈值进行比较。当信号能量高于阈值时检测事件。

创建A.dsp.movi​​ngrms.系统对象™计算信号的移动RMS。将此对象设置为使用窗口长度为20的滑动窗口方法。创建一个Timescope.对象以查看输出。

FrameLength = 20;FS = 100;movrmswin = dsp.movi​​ngrms(20);范围= timescope('samplerate',fs,......'timespanoverrunaction''滚动'......'timespansource''财产''timespan',100,......'showgrid',真实,'layoutdimensions',[3 1],'numinputports',3);
scope.activedisplay = 1;scope.ylimits = [0 5];scope.title =.'输入信号';
scope.activedisplay = 2;scope.ylimits = [0 350];scope.title =.'用阈值比较信号能量';
scope.activedysplay = 3;scope.ylimits = [0 2];scope.plottype =.'楼梯';scope.title =.'检测信号能量大于阈值';

创建输入信号。该信号是具有帧长为20的嘈杂楼梯。阈值是200.通过平衡RMS值并将结果乘以窗口长度来计算信号的能量。将信号能量与阈值进行比较。检测事件,并且当信号能量交叉阈值时,将其标记为1。

count = 1;Vect = [1/8 1/2 1 2 3 4 3 2 1];阈值= 200;对于索引= 1:长度(vect)v = vect(索引);对于i = 1:90 x = v + 0.1 * randn(frameLength,1);y1 = movrmswin(x);Y1ENER =(Y1(END)^ 2)* 20;事件=(Y1ENER>阈值);范围(Y1,[Y1ENER。*那些(FrameLength,1),阈值。*那些(FrameLength,1)],事件。*那些(FrameLength,1));结束结束

您可以将能量掩码自定义为不同于标量阈值的模式。您还可以记录信号能量在阈值高于或低于阈值的时间。

相关主题