考虑到2012年闰年期间记录(以磅)的人的重量。该人没有每天重量。您想研究信号的周期性,但在您可以这样做之前,您必须处理缺失的数据。
加载数据并将测量值转换为千克。错过读数被设定为南
.确定漏了多少分。
加载('theage2012.dat') WGT = weight2012(:,2)/2.20462;daynum = 1:长度(重量);失踪= isnan(重量);流('缺少%d \ n'的样品,sum(缺失),max(日内))
缺少27个样本366
将值分配给缺失点重组
.默认情况下,重组
使用线性插值进行估计。绘制原始和内插读数。放大第200到250天,其中包含大约一半的缺失点。
wgt_orig = wgt;WGT =重组(WGT,Daynum);绘图(Daynum,WGT_ORIG,'.-'daynum重量,“o”)包含('天')ylabel('体重(kg)')轴([200 250 73 77])'原来的'那'内插') 网格
通过在频域中分析它来确定信号是否是周期性的。找到循环持续时间,在数周内测量时间。减去了集中在波动的平均值。
FS = 7;[p,f] = pwelch(wgt-均值(wgt),[],[],[],fs);绘制(F,P)Xlabel('频率(周^ { - 1})') 网格
注意这个人的体重每周是如何波动的。每周有明显的模式吗?去掉一年的最后两天,得到52周。根据星期几重新排列测量值。
WGD = REPAPE(WGT(1:7 * 52),[7 52]);绘制(WGD')Xlabel('星期')ylabel('体重(kg)')Dweek = DateTime([Repmat([2012 1],7,1)(1:7)'],'格式'那'eeee');传奇(字符串(DWEEK),“位置”那'西北') 网格
使用将低阶多项式适合数据的滤波器来平滑波动。具体地,将其设置为适合立方体多项式到七天的组。
WGS = Sgolayfilt(WGD',3,7);绘制(WGS)XLabel('星期')ylabel('体重(kg)') 标题('平滑体重波动')传奇(字符串(DWEEK),“位置”那'东南');网格
这个人往往多吃,因此在周末,更多的重量。通过计算每日手段进行验证。
为了JK = 1:7 fprintf('%s mean: %5.1f kg\n',Dweek(JK),意思(WGD(JK,:)))结尾
星期天意味着:76.2千克星期一:75.7千克星期二意味着:75.2公斤周三意思:74.9公斤周四意思:75.1千克星期五意味着:75.3公斤星期六意味着:75.8千克