Signal Processing Toolbox    
intfilt

補間FIRフィルタの設計

表示

詳細

b = intfilt(r,l,alpha) は、rサンプル毎に(r-1)個の連続するゼロを内挿し、最近傍の(2*l-1)個のゼロでないサンプルを使って、理想的な帯域制限された内挿を行なう線形位相FIRフィルタを設計します。これは、Nyquist周波数をalpha倍したオリジナルの帯域制約を仮定しています。出力されるフィルタは、interpが使用するフィルタと同じです。

b = intfilt(r,n,'Lagrange') または、 b = intfilt(r,n,'l') は、r個のサンプルごとに(r-1)個の連続するゼロを内挿し、データ列にn次のLagrange多項式補間を実行するFIRフィルタを設計します。bは、nが偶数の場合、長さ(n + 1)*rとなり、nが奇数の場合、長さ(n + 1)*r-1となります。

いずれのタイプのフィルタも基本的にローパスであり、補間や間引きを目的としています。

例題

帯域制限法を使って、信号のサンプル数を4倍にするディジタル補間フィルタを設計します。

フィルタh1は、オリジナルの信号がNyquist周波数のalpha倍に帯域制限されたときに最も適切に働きます。つぎに、帯域制限雑音信号を作成します。

ここで、サンプルごとに3つのゼロを信号に付加します。得られる列は、xの長さの4倍となります。

コマンドfilterを使って、補間します。

yxの補間バージョンであり、7個のサンプル分だけ遅れます(フィルタの群遅延)。その部分を拡大してこれを確認します。

intfiltは、オリジナルの信号のLagrange多項式補間も実行します。たとえば、1次多項式補間は単なる線形補間であり、つぎのように三角フィルタで実現することができます。

アルゴリズム

帯域制限法は、firlsを使って参考文献[1]に示されている補間FIRを設計します。多項式法では、等間隔のサンプルにLagrange多項式補間公式を使って、適切なフィルタを作成します。

参考
decimate
データ列に対するサンプリングレートの低減(間引き)
interp
整数ファクタによるサンプリングレートの増加(補間)
resample
任意のファクタによるサンプリングレートの変更

参考文献

[1] Oetken, Parks, and Schüßler, "New Results in the Design of Digital Interpolators," IEEE Trans. Acoust., Speech, Signal Processing, Vol. ASSP-23 (June 1975), pp. 301-309.


 interp invfreqs