主要内容

峰值分析

此示例显示如何执行基本峰值分析。它将帮助您回答问题:我如何在我的信号中找到峰值?如何测量峰之间的距离?如何测量受趋势影响的信号的峰值幅度?如何在嘈杂的信号中发现峰值?如何找到当地的最小值?

寻找Maxima或Peaks

苏黎世太阳黑子相对数测量了太阳黑子的数量和大小。使用findpeaks.函数查找峰值的位置和值。

加载sunspot.dat年=太阳黑子(:,1);Relnums = Sunspot(:,2);Findpeaks(Relnums,年)Xlabel(“年”)ylabel(“太阳黑子数量”) 标题('找到所有山峰'

图中包含一个坐标轴。标题为“查找所有山峰”的轴包含2个类型为line的对象。

上面的图显示了300年来太阳黑子的数量,并标记了探测到的峰值。下一节将展示如何测量这些峰之间的距离。

测量峰间距离

信号的峰值似乎以一定的间隔出现。然而,有些山峰彼此非常接近。的minpeakpromence可以使用这些峰值。在遇到更大的值之前,将两侧下降至少40个相对太阳黑子数字的峰值。

findpeaks(Relnums,年,'minpeakprominence',40)xlabel(“年”)ylabel(“太阳黑子数量”) 标题('找到突出的峰值'

图中包含一个坐标轴。具有标题的轴查找突出的峰值包含2个类型的类型。

以下柱状图显示了峰值区间在各年的分布情况:

figure [pks, locs] = findpeaks(relNums,year,'minpeakprominence', 40);Peakinterval = Diff(LOC);直方图(Peakinterval)网格Xlabel(“间隔年”)ylabel(发生的频率) 标题('峰值间隔的直方图(年)'

图中包含一个坐标轴。具有峰间隔(年)的标题直方图的轴包含类型直方图的对象。

AverageageAstance_Peaks =均值(Diff(LOC))
AverageDistance_Peaks = 10.9600

分布表明,大多数峰间隔位于10到12年之间,表示信号具有循环性质。此外,峰之间的平均间隔为10.96岁与11年的已知循环太阳黑子活性相匹配。

在剪切或饱和信号中找到峰值

你可能想把平的峰视为峰或排除它们。在后一种情况下,最小偏移被定义为峰值与其相邻峰之间的幅值差,使用临界点财产。

加载Clippeaks.mat.数字%在第一个图中显示所有的峰值斧头(1)=子图(2,1,1);findpeaks(saterateddata)xlabel(“样本”)ylabel('振幅') 标题(“检测饱和峰”%在第二个绘图中指定最小偏移斧头(2)=子图(2,1,2);findpeaks(sermateddata,'临界点'(5)包含“样本”)ylabel('振幅') 标题('过滤饱和峰'链接并放大以显示更改linkaxes (ax (1:2),'xy')轴(AX,[50 70 0 250])

图包含2个轴。具有标题检测饱和峰的轴1包含2个类型的线。具有标题过滤饱和峰的轴2包含2个类型的线。

第一副图显示,在一个平坦的峰,上升边被检测为峰。第二个子图显示,指定一个阈值可以帮助拒绝平坦的峰值。

测量峰值的振幅

该示例在ECG(电磁图)信号中显示了峰值分析。ECG是一种衡量心脏的电气活动随着时间的推移。信号通过连接到皮肤的电极测量,并且对由于运动伪像而敏感诸如电源干扰和噪声的扰动。

加载noisyecg.matt = 1:长度(noisyecg_withtrend);图绘图(t,noisyecg_withtrend)标题(“带有趋势的信号”)Xlabel(“样本”);ylabel ('电压(MV)')传说('嘈杂的心电图信号') 网格

图中包含一个坐标轴。具有趋势的标题信号的轴包含类型线的对象。该对象表示嘈杂的ECG信号。

争取数据

上述信号显示基线移位,因此不代表真正的幅度。为了消除趋势,将低阶多项式贴合到信号并使用多项式来拒绝它。

[p,s,mu] = polyfit((1:numel(noisyecg_withtrend)',noisyecg_withtrend,6);f_y = polyval(p,(1:numel(noisyecg_withtrend))',[],mu);ECG_DATA = NOISYECG_WITHTREND  -  F_Y;%去趋势数据图绘制(t, ECG_data)网格ax =轴;轴([ax(1:2) -1.2 1.2])'贬低了ECG信号')Xlabel(“样本”)ylabel('电压(MV)')传说('贬低了ECG信号'

图中包含一个坐标轴。带有标题的轴促使ECG信号包含类型线的对象。该对象代表了贬低的ECG信号。

去趋势后,找到QRS复峰,这是心电信号中最突出的重复峰。QRS复合体对应于人类心脏的左右心室的去极化。它可以用来确定病人的心率或预测心功能异常。下图显示了心电信号中QRS复波的形状。

寻找兴趣高峰的阈值

QRS复合体由三个主要组件组成:Q波,R波,S波.R波可以通过超过0.5 mV的阈值峰检测到。注意,R波被超过200个样本分开。使用此信息通过指定“MinPeakDistance”来删除不需要的峰值。

[〜,locs_rwave] = findpeaks(ECG_DATA,“MinPeakHeight”,0.5,...'minpeakdistance', 200);

为了检测S波,在信号中找到局部最小值并适当地应用阈值。

在信号中找到本地最小值

局部极小值可以通过在原始信号的反方向上寻找峰值来检测。

ECG_inverted = -ECG_data;[~, locs_Swave] = findpeaks (ECG_inverted,“MinPeakHeight”,0.5,...'minpeakdistance', 200);

下图显示了信号中检测到的R波和S波。

图保存情节(t, ECG_data)情节(locs_Rwave ECG_data (locs_Rwave),“房车”'markerfacecolor'“r”)情节(locs_Swave ECG_data (locs_Swave),“rs”'markerfacecolor'“b”)轴([0 1850 -1.1 1.1])网格传奇('ECG信号'R波的“浪潮”)Xlabel(“样本”)ylabel('电压(MV)') 标题(噪声心电信号中的R波和S波

图中包含一个坐标轴。带有标题R波和噪声的S波的轴包含3个类型的类型。这些对象代表ECG信号,R波,S波。

接下来,我们尝试确定Q波的位置。阈值定位Q峰值的峰值导致检测不需要的峰值,因为Q波被埋入噪声。我们首先过滤信号,然后找到峰值。Savitzky-golay过滤用于消除信号中的噪声。

smoothECG = sgolayfilt (ECG_data 7 21);图绘制(t ECG_data“b”t smoothECG“r”) 网格紧的Xlabel(“样本”)ylabel('电压(MV)')传说('嘈杂的心电图信号''过滤信号') 标题('过滤嘈杂的心电图信号'

图中包含一个坐标轴。以滤波噪声心电信号为标题的轴包含2个线型对象。这些对象分别表示噪声心电信号和滤波信号。

我们对平滑信号进行峰值检测,并使用逻辑索引来查找Q波的位置。

[〜,min_locs] = findpeaks(-smoothecg,'minpeakdistance', 40);%峰值在-0.2mV和-0.5mV之间locs_Qwave = min_locs(smoocg (min_locs)>-0.5 & smoocg (min_locs)<-0.2);图保存情节(t, smoothECG);情节(locs_Qwave smoothECG (locs_Qwave),“rs”'markerfacecolor''G')情节(locs_Rwave smoothECG (locs_Rwave),“房车”'markerfacecolor'“r”)plot(locs_swave,shopdeccg(locs_swave),“rs”'markerfacecolor'“b”) 网格标题('信号中的阈值峰值')Xlabel(“样本”)ylabel('电压(MV)')轴=轴;轴([0 1850 -1.1 1.1])传奇(光滑的ECG信号的“Q波”非线性波的浪潮'

图中包含一个坐标轴。信号中的标题阈值峰值的轴包含4个类型的线。这些对象表示平滑的ECG信号,Q波,R波,S波。

上图显示了在噪声心电信号中成功检测到QRS复波。

嘈杂和平滑信号之间的误差

注意原始QRS复合物之间的平均差异和促进过滤信号。

极值的%值[val_qwave,val_rwave,val_swave] =交易(Shimplecg(locs_qwave),shockecg(locs_rwave),shockecg(locs_swave));MeanError_qwave =均值((noisyecg_withtrend(locs_qwave) -  val_qwave))
MeanError_qwave = 0.2771
MeanError_rwave =均值((noisyecg_withtrend(locs_rwave) -  val_rwave))
MeanError_rwave = 0.3476.
MeanError_swave =均值((noisyecg_withtrend(locs_swave) -  val_swave))
MeanError_swave = 0.1844

这表明对噪声峰值分析进行了噪声的噪声。

峰特性

一些重要的峰值特性包括上升时间、下降时间、上升电平和下降电平。对心电信号中的每个QRS复形计算了这些性质。这些属性的平均值如下图所示。

avg_riseTime =意味着(locs_Rwave-locs_Qwave);%平均上升时间avg_falltime =均值(locs_swave-locs_rwave);平均下降时间%avg_riselevel =均值(val_rwave-val_qwave);%平均上升水平avg_fallLevel =意味着(val_Rwave-val_Swave);%平均下降水平Helperpeakanalissinplot(T,Smoothecg,...locs_qwave,locs_rwave,locs_swave,...val_Qwave、val_Rwave val_Swave,...avg_risetime,avg_falltime,...avg_riselevel,avg_falllevel)

图中包含一个坐标轴。心电信号中具有qrs复型的轴包含行、文等类型的11个对象。这些对象代表QRS-Complex, Peak, Minima。

另请参阅