主要内容

利用自相关发现周期性

测量的不确定性和噪声有时使识别信号中的振荡行为变得困难,即使这种行为是预期的。

周期信号的自相关序列具有与信号本身相同的循环特性。因此,自相关可以帮助验证周期的存在并确定它们的持续时间。

考虑一组由办公大楼内的温度计收集的温度数据。该设备在四个月内每半小时读取一次数据。加载数据并绘制它。减去平均值以集中于温度波动。把温度转换为摄氏。以天来衡量时间。因此,采样率为2次/小时× 24小时/天= 48次/天。

负载officetemptempC = (temp-32) * 5/9;tempnorm = tempC-mean (tempC);fs = 2 * 24;T = (0:length(tempnorm) - 1)/fs;情节(t, tempnorm)包含(的时间(天)) ylabel ('Temperature ({}^\circC)')轴

图中包含一个轴。轴包含一个类型为line的对象。

温度似乎确实有振荡,但周期的长度不易读出。

计算温度的自相关,使其在零滞后时是统一的。将积极和消极的滞后时间限制在三周之内。注意信号的双重周期性。

[autocor,滞后]= xcorr (tempnorm 3 * 7 * fs,多项式系数的);情节(滞后/ fs, autocor)包含(“滞后(天)”) ylabel (自相关的)轴([-21 21 -0.4 1.1])

图中包含一个轴。轴包含一个类型为line的对象。

通过寻找峰值位置并确定它们之间的平均时间差来确定短周期和长周期。

要找长周期,限制findpeaks寻找间隔超过短周期且最小高度为0.3的峰。

[pksh, lcsh] = findpeaks (autocor);短=意味着(diff (lcsh)) / fs
短= 1.0021
[pklg, lclg] = findpeaks (autocor,...“MinPeakDistance”装天花板(短)* fs,“MinPeakheight”, 0.3);长=意味着(diff (lclg)) / fs
长= 6.9896
持有繁荣正义党=情节(pksh滞后(lcsh) / fs,”或“...滞后(lclg) / fs, pklg + 0.05,“vk”);持有传奇(pks [repmat (”时期,“, [2]) num2str((长、短),0)])轴(21 -0.4 - 1.1 [-21])

图中包含一个轴。坐标轴包含3个类型为line的对象。这些对象表示Period: 1, Period: 7。

对于一个非常好的近似值,自相关每天和每周都振荡。这是意料之中的,因为人们上班时大楼里的温度更高,晚上和周末的温度更低。

另请参阅

|

相关的话题