このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
2012年うるう年のに(ポンド単位で)記録された特定の人の体重について考えます。この人は自分の体重を毎日は記録していませんでした。信号の周期性を調べたいとします。ただし,それを行う前に,欠損データの処理をしなければなりません。
データを読み込み,測定値をキログラムに変換します。欠損している読み取りが南
に設定されます。いくつの点が欠損しているかを判定します。
负载(“weight2012.dat”) wgt = weight2012(:,2)/2.20462;daynum = 1:长度(重量);失踪= isnan(重量);流('缺失%d个%d\n的样本'sum(失踪),max (daynum))
遗失了27个样品366个
重新取样
を使用して欠損点に値を代入します。既定の設定では,重新取样
は線形内挿を使用して推定値を生成します。元の読み取りと内挿された読み取りをプロットします。欠損点のほぼ半数が含まれている第200 ~ 250日を拡大します。
wgt_orig =重量;重量=重新取样(重量、daynum);情节(daynum wgt_orig,“。”daynum重量,“o”)包含(“天”) ylabel (的体重(公斤))轴([200 250 73 77])图例(“原始”,“插入”网格)
信号が周期的かどうかを周波数領域で解析して判定します。周期の期間を週数で測定し,求めます。変動に集中できるよう,平均値を減算します。
Fs = 7;[p f] = pwelch (wgt-mean(重量 ),[],[],[], Fs);情节(f p)包含(的频率(周^ {1})网格)
該当者の体重が週次でどのように変動したかに注目します。週単位で注目すべきパターンがあるでしょうか。52年の最後の2日間は週にするため消去します。曜日別に測定値を並べ替えます。
wgd = shape(wgt(1:7*52),[7 52]);情节(wgd”)包含(“周”) ylabel (的体重(公斤)) q = legend(datestr(datenum(2012,1,1)),“dddd”));q.Location =“西北”;网格
データのサブセットを低次多項式に近似するフィルターを使用して,変動を滑らかにします。特に7日間のセットを3次多項式に近似するように設定します。
wgs = sgolayfilt (wgd ', 3、7);情节(wgs)包含(“周”) ylabel (的体重(公斤))标题(平滑的体重波动的) q = legend(datestr(datenum(2012,1,1)),“dddd”));q.Location =“东南”;网格
該当者は,週末に他の曜日よりも多く食べるため体重も増加する傾向があります。日次平均値を計算して確認します。
为jk = 1:7 fprintf('%3表示:%5.1f kg\n',…datestr (datenum (2012, jk),ddd的)”,意思是(wgd (jk,:)))结束
太阳平均值:76.2公斤,星期一平均值:75.7公斤,星期二平均值:75.2公斤,星期三平均值:74.9公斤,星期四平均值:75.1公斤,星期五平均值:75.3公斤,星期六平均值:75.8公斤