最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
間引き — 整数係数単位でのサンプルレートの低減
y = decimate(x,r)
y = decimate(x,r,n)
y = decimate(x,r,'fir')
y = decimate(x,r,n,'fir')
間引きでは、シーケンスの元のサンプルレートが低減されます。これは内挿の逆の操作です。decimate
ローパスは、入力をフィルター処理してエイリアシングから保護し、結果をダウンサンプリングします。関数は、参考文献[1]の間引きアルゴリズム 8.2 および 8.3 を使用します。
decimate
はローパス フィルターを作成します。既定では、cheby1
を使用してチェビシェフ I 型フィルターが設計されます。このフィルターは、0.8/r
の正規化されたカットオフ周波数と 0.05 dB の通過帯域リップルをもちます。伝達関数の生成に必要な畳み込みから蓄積された丸め誤差が原因で、指定したフィルター次数でパスバンドの歪みが生じることがあります。decimate
は、歪みが原因でカットオフ周波数において振幅応答とリップルとの差が 10–6 を超える場合、フィルター次数を自動的に減らします。
'fir'
オプションを指定した場合、decimate
は fir1
を使用して、カットオフ周波数 1/r
をもつローパス FIR フィルターを設計します。
FIR フィルターを使用する場合、decimate
は入力シーケンスを一方向にのみフィルター処理します。これはメモリの消費を節約するため、長いシーケンスの処理に有効です。IIR フィルターでは、decimate
は filtfilt
を使用して順方向と逆方向にフィルターを適用し、位相歪みを除去します。このプロセスによって、フィルター次数は実質的に 2 倍になります。いずれの場合も、この関数は、端点の条件の一致を確認して、信号の両端における過渡状態の影響を最小限にします。
最後に、decimate
は、フィルター処理後のデータ内から r
個ごとに点を選択し、データをリサンプリングします。リサンプリングされたシーケンス (y
) では、IIR フィルターが使用された場合は y(end)
が x(end)
に一致し、FIR フィルターが使用された場合は y(1)
が x(1)
に一致します。
[1] Digital Signal Processing Committee of the IEEE® Acoustics, Speech, and Signal Processing Society, eds. Programs for Digital Signal Processing. New York: IEEE Press, 1979.