Signal Processing Toolbox | ![]() ![]() |
表示
y=
sgolayfilt(x,k,f) y=
sgolayfilt(x,k,f,w)
詳細
y
は、ベクトル =
sgolayfilt(x,k,f)
x
の中のデータにSavitzky-Golay FIR平滑化フィルタを適用します。x
が行列の場合、sgolayfilt
は各列に機能します。多項式の次数k
は、フレームサイズf
よりも短くなければなりません。そして、k
は奇数でなければなりません。k
= f-1
の場合、フィルタは平滑化を行いません。
y
は、長さ =
sgolayfilt(x,k,f,w)
f
の重みベクトルw
を設定します。これは、最小二乗処理の間に使われる正の実数値の重みを含んだものです。
注意
Savitzky-Golay平滑化フィルタ(ディジタル平滑化多項式フィルタまたは最小二乗平滑化フィルタとも言われます)は、ノイズの多い信号の周波数スパーンが広い場合に平滑化するために使われます。この種のアプリケーションでは、Savitzky-Golay平滑化フィルタが、標準の平均化するFIRフィルタより効果があり、ノイズを多く含んでいると思われる高周波数部分からの信号を抽出する傾向があります。Savitzky-Golayフィルタは、信号の高周波数成分を保存する機能が強いけれども、標準の平均化FIRフィルタよりノイズ除去に関しては劣ります。
Savitzky-Golay フィルタは、ノイズデータの各フレームに多項式を適合させ最小二乗誤差を最小にするという基準で最適なものです。
例題
41の長さのデータフレームに3次のSavitzky-Golayフィルタを適用して、mtlb
信号を平滑化します。
load mtlb % データのロード
smtlb =
sgolayfilt(mtlb,3,41); % 3次のフィルタを適用
subplot(2,1,1)
plot([1:2000],mtlb(1:2000)); axis([0 2000 -4 4]);
title('mtlb'); grid;
subplot(2,1,2)
plot([1:2000],smtlb(1:2000)); axis([0 2000 -4 4]);
title('smtlb'); grid;
参考
|
1次元メディアンフィルタ |
|
巡回型(IIR)または非巡回型(FIR)フィルタによるデータのフィルタリング |
|
Savitzky-Golayフィルタ設計 |
|
2次のIIRフィルタ |
参考文献
[1] Orfanidis, S.J., Introduction to Signal Processing, Prentice-Hall, Englewood Cliffs, NJ, 1996.
![]() | sgolay | sinc | ![]() |