测量不确定度和噪声有时使得难以在信号中发现振荡行为,即使预期此类行为也是如此。
周期性信号的自相关序列具有与信号本身相同的循环特性。因此,自相关可以帮助验证循环的存在并确定其持续时间。
考虑由办公大楼内的温度计收集的一组温度数据。该设备每半小时拍摄四个月。加载数据并绘制它。减去浓缩温度波动的平均值。将温度转换为摄氏度。在几天内测量时间。样品率为2测量/小时×24小时/天= 48测量/天。
加载officaleemp.tempc =(temp-32)* 5/9;tempnorm = tempc-mean(tempc);FS = 2 * 24;t =(0:长度(qupnnorm) - 1)/ fs;绘制(t,tempnorm)xlabel('时间(天)')ylabel('温度({} ^ \ circc)')轴紧的
温度似乎振荡,但不能容易地读出周期的长度。
计算温度的自相关,使得它在零滞后是统一的。限制阳性和负滞后三周。注意信号的双周期。
[AutoCor,LAG] = Xcorr(Tempnorm,3 * 7 * FS,'coeff');绘图(LAGS / FS,AUTOCOR)XLABEL('滞后(天)')ylabel('自相关')轴([ - 21 21 -0.4 1.1])
通过找到峰值位置并确定它们之间的平均时间差异来确定短期和长期。
找到长期,限制findpeaks.
寻找多个短段分开的峰值,最小高度为0.3。
[pksh,lcsh] = findpeaks(autocor);短=平均值(Diff(LCSH))/ FS
短= 1.0021
[pklg,lclg] = findpeaks(autocor,......'minpeakdistance',CEIL(短)* FS,'minpeakheight',0.3);long =平均值(diff(lclg))/ fs
long = 6.9896.
抓住上PKS = PLOT(LAG(LCSH)/ FS,PKSH,'或者'那......滞后(LCLG)/fs,pklg+0.05,'vk');抓住离开传奇(PKS,[Repmat('时期: ',[2 1])NUM2STR([短;长],0)])轴([ - 21 21-0.4 1.1])
为了非常好的近似,自相关每天和每周振荡。这是预期的,因为建筑物的温度更高,当人们在夜间和夜间和周末较低时,较低。