主要内容

处理一个缺失样本的信号

考虑一个人在闰年2012年的体重记录(磅)。这个人没有每天记录他们的体重。您希望研究信号的周期性,但在此之前必须处理缺失的数据。

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

负载(“weight2012.dat”) WGT = weight2012(:,2)/2.20462;Daynum = 1:长度(wgt);Missing = isnan(wgt);流('缺少%d\n的%d个样本'sum(失踪),max (daynum))
366个样本中缺少27个

为缺失的点赋值重新取样。默认情况下,重新取样使用线性插值进行估计。画出原始读数和插入读数。把时间放大到第200天到第250天,这一天包含了大约一半的缺失点。

Wgt_orig = wgt;WGT = resample(WGT,daynum);情节(daynum wgt_orig,“。”daynum重量,“o”)包含(“天”) ylabel (的体重(公斤))轴([200 250 73 77])“原始”“插入”网格)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示原始的,插值的。

通过在频域分析信号来确定信号是否具有周期性。查找周期持续时间,以周为单位测量时间。减去平均值以集中于波动。

Fs = 7;[p,f] = pwelch(wgt-mean(wgt),[],[],[],Fs);情节(f p)包含(的频率(周^ {1})网格)

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

注意这个人的体重每周是如何波动的。每周都有明显的规律吗?去掉一年中的最后两天,就有52周了。根据星期几重新安排测量的顺序。

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

图中包含一个轴对象。axis对象包含7个line类型的对象。这些对象代表星期日,星期一,星期二,星期三,星期四,星期五,星期六。

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

WGS = sgolayfilt(wgd',3,7);情节(wgs)包含(“周”) ylabel (的体重(公斤))标题(“平滑的体重波动”)传说(字符串(dweek),“位置”“东南”);网格

图中包含一个轴对象。标题为平滑权重波动的axis对象包含7个类型为line的对象。这些对象代表星期日,星期一,星期二,星期三,星期四,星期五,星期六。

这个人往往在周末吃得更多,因此体重更重。通过计算日平均值来验证。

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

另请参阅

|

相关的话题