主要内容

处理具有缺失样本的信号

考虑到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])'原来的''内插') 网格

图包含轴。轴包含2个类型的型号。这些对象代表原始,内插。

通过在频域中分析它来确定信号是否是周期性的。找到循环持续时间,在数周内测量时间。减去了集中在波动的平均值。

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),“位置”'西北') 网格

图包含轴。轴包含7个类型的类型。这些物品代表周日,周一,周二,周三,周四,周五,周五,周六。

使用将低阶多项式适合数据的滤波器来平滑波动。具体地,将其设置为适合立方体多项式到七天的组。

WGS = Sgolayfilt(WGD',3,7);绘制(WGS)XLabel('星期')ylabel('体重(kg)') 标题('平滑体重波动')传奇(字符串(DWEEK),“位置”'东南');网格

图包含轴。具有标题平滑的重量波动的轴包含7个类型的类型。这些物品代表周日,周一,周二,周三,周四,周五,周五,周六。

这个人往往多吃,因此在周末,更多的重量。通过计算每日手段进行验证。

为了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千克

也可以看看

|

相关的话题