在缺少样本的信号中检测周期性
考虑一个人在2012年闰年的体重记录(以磅为单位)。这个人并没有每天记录体重。你想研究信号的周期性,即使缺少一些数据点。
加载数据并将测量值转换为千克。错过的读数设置为南
。确定少了多少分。
负载(“weight2012.dat”) WGT = weight2012(:,2)/2.20462;流('缺少%d\n的%d个样本'总和(isnan(重量)、长度(重量))
366缺少27个样品
通过在频域分析来确定信号是否具有周期性。Lomb-Scargle算法设计用于处理缺少样本的数据或不规则采样的数据。
找出周期持续时间,以周为单位测量时间。
[p,f] = plomb(wgt,7;“归一化”);情节(f p)包含(的频率(周^ {1}))
注意这个人的体重是如何每周波动的。每周都有一个明显的模式吗?去掉一年的最后两天,得到52周。按星期几重新排序测量。
WGD = shape(wgt(1:7*52),[7 52])';情节(wgd)包含(“周”) ylabel (的体重(公斤)= datetime([repmat([2012 1],7,1) (1:7)'],“格式”,“eeee”);传奇(string (dweek),“位置”,“西北”)
使用将低阶多项式拟合到数据子集的滤波器平滑波动。具体来说,将其设置为将三次多项式拟合为七天的集合。
WGS = sgolayfilt(wgd,3,7);情节(wgs)包含(“周”) ylabel (“平滑重量(公斤)”)传说(字符串(dweek),“位置”,“东南”)
这种人往往在周末吃得更多,因此体重也更重。通过计算日均值来验证。从计算中排除缺失的值。
为WGM = find(~isnan(wgd(:, Jk)));流(“%s平均值:%5.1f kg\n”dweek (jk),意味着(wgd (wgm jk)))结束
星期天平均:76.3公斤星期一平均:75.7公斤星期二平均:75.2公斤星期三平均:74.9公斤星期四平均:75.1公斤星期五平均:75.3公斤星期六平均:75.8公斤