主要内容

在缺少样本的信号中检测周期性

考虑一个人在2012年闰年的体重记录(以磅为单位)。这个人并没有每天记录体重。你想研究信号的周期性,即使缺少一些数据点。

加载数据并将测量值转换为千克。错过的读数设置为。确定少了多少分。

负载(“weight2012.dat”) WGT = weight2012(:,2)/2.20462;流('缺少%d\n的%d个样本'总和(isnan(重量)、长度(重量))
366缺少27个样品

通过在频域分析来确定信号是否具有周期性。Lomb-Scargle算法设计用于处理缺少样本的数据或不规则采样的数据。

找出周期持续时间,以周为单位测量时间。

[p,f] = plomb(wgt,7;“归一化”);情节(f p)包含(的频率(周^ {1})

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

注意这个人的体重是如何每周波动的。每周都有一个明显的模式吗?去掉一年的最后两天,得到52周。按星期几重新排序测量。

WGD = shape(wgt(1:7*52),[7 52])';情节(wgd)包含(“周”) ylabel (的体重(公斤)= datetime([repmat([2012 1],7,1) (1:7)'],“格式”“eeee”);传奇(string (dweek),“位置”“西北”

图包含一个轴对象。axes对象包含7个line类型的对象。这些对象表示星期日、星期一、星期二、星期三、星期四、星期五、星期六。

使用将低阶多项式拟合到数据子集的滤波器平滑波动。具体来说,将其设置为将三次多项式拟合为七天的集合。

WGS = sgolayfilt(wgd,3,7);情节(wgs)包含(“周”) ylabel (“平滑重量(公斤)”)传说(字符串(dweek),“位置”“东南”

图包含一个轴对象。axes对象包含7个line类型的对象。这些对象表示星期日、星期一、星期二、星期三、星期四、星期五、星期六。

这种人往往在周末吃得更多,因此体重也更重。通过计算日均值来验证。从计算中排除缺失的值。

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公斤

另请参阅

||

相关的话题