主要内容

处理缺少样本的信号

考虑一个人在2012年闰年的体重记录(以磅为单位)。这个人并没有每天记录体重。你想研究信号的周期性,但在你这样做之前,你必须处理丢失的数据。

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

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

给缺失的点赋值重新取样。默认情况下,重新取样使用线性插值进行估计。绘制原始读数和插入读数。放大到第200天到第250天,其中包含了大约一半的缺失点。

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

图包含一个轴对象。axes对象包含2个line类型的对象。这些对象代表Original, Interpolated。

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

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

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

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

WGD =重塑(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),“位置”“东南”);网格

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

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

Jk = 1:7 fprintf(“%s平均值:%5.1f kg\n”dweek (jk),意味着(wgd (jk,:)))结束
星期天平均:76.2公斤星期一平均:75.7公斤星期二平均:75.2公斤星期三平均:74.9公斤星期四平均:75.1公斤星期五平均:75.3公斤星期六平均:75.8公斤

另请参阅

|

相关的话题