関数 > 変換とフィルタ > 例: フィルタと指数による平滑化
例: フィルタと指数による平滑化
Detrending and Lowpass Filtering in the Transform DomainTime-domain Iterative Exponential Smoothing という 2 つの方法による平滑化の結果を比較します。
1. データ点の数を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
2. sin関数とrnd関数を使用して、平滑化する関数を定義します。
クリックしてこの式をコピー
3. 各サンプルの時間を表すベクトルを作成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
4. slope関数を使用して信号に最も適合する直線の傾きを取得してから、mean関数を使用して信号の平均を取得します。
クリックしてこの式をコピー
クリックしてこの式をコピー
5. 関数をプロットし、傾向と平均を表す直線を表示します。
クリックしてこの式をコピー
平均線は水平になる一方で、傾向線は水平にならず、信号に線形傾向があることを示しています。
変換領域での傾向除去とローパスフィルタ
フィルタによる平滑化では、最初に線形傾向を除去します。これを行わない場合、この変換によって高周波情報ではなく線形信号の周波数成分が表示されます。
1. 信号から傾向を除去します。新しい信号の傾きと平均を再計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 新しい関数をプロットし、傾向と平均を表す直線を表示します。
クリックしてこの式をコピー
平均線と傾向線が水平であるため、信号には線形傾向がないことが示されます。
3. dft関数を使用して、この信号の変換を求めます。
クリックしてこの式をコピー
4. 中央の要素をゼロで置き換えるウィンドウ処理を行うことで、低周波数に相当する先頭と末尾だけを残します。
クリックしてこの式をコピー
5. ウィンドウ関数をプロットします。縦マーカーを使用して、ウィンドウの始点と終点を表示します。
クリックしてこの式をコピー
6. idft 関数を使用して逆変換を取得してから、傾向を再び加算します。
クリックしてこの式をコピー
ベクトルの成分ごとに加算されるので、加算演算子を 1 つ使用することで傾向を加算できます。
7. dw 関数をプロットします。
クリックしてこの式をコピー
平滑化された関数に傾向が復元されました。
タイムドメインでの反復指数平滑化
種に基づく反復計算による平滑化を行います。反復のシード値を求めるため、時系列の先頭から、固定値と傾向値 (sb) を推定します。
1. intercept関数と slope 関数を使用して、固定値と傾向値を推定します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 2 つの平滑化定数を選択します。α が 1 に近いほど、平滑化された曲線が元のデータに近くなります。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
ここで、P は元の時系列を指数平滑化したものです。
2 つの手法の比較
プロットして 2 つの平滑化手法を比較します。上の 2 つのトレースは、同じグラフに表示できるように 4 オフセットされています。
クリックしてこの式をコピー
上記のトレースは、上から下に、時系列、指数平滑化、時系列、DFT による平滑化を表しています。
指数平滑化では、平滑化係数 ab によって十分な点が平均化されるまでは、効果的にデータに追随しません。
ワークシートを再計算し、元の信号定義にさまざまな乱数が含まれることでトレースがどう変わるかを確認します。
すべての再計算で、指数平準化された関数よりも DFT によって平準化された関数の方が、より正確に元の信号を追従していることがわかります。
これは役に立ちましたか?