| Signal Processing Toolbox | ![]() |
表示
y=interp(x,r) y=interp(x,r,l,alpha) [y,b]=interp(x,r,l,alpha)
詳細
補間は、データ列のオリジナルのサンプリングレートを高いサンプリングレートに変換します。interp は、オリジナルの列にゼロを挿入してから、特殊なローパスフィルタを適用することにより、ローパスの補間を実行します。
y は、 = interp(x,r)
xのサンプリングレートをrのファクタだけ増加させます。補間されたベクトルyは、オリジナルの入力xよりr倍長くなります。
y は、 = interp(x,r,l,alpha)
l(フィルタの長さ)とalpha(カットオフ周波数)を設定します。lのデフォルト値は4で、alphaのデフォルト値は0.5です。
[y,b] は、補間に使用されたフィルタ係数ベクトル = interp(x,r,l,alpha)
bを出力します。
例題
t=0:0.001:1; % 時間ベクトル x=sin(2*pi*30*t) + sin(2*pi*60*t); y=interp(x,4); stem(x(1:30)); title('Original Signal'); figure stem(y(1:120)); title('Interpolated Signal');
アルゴリズム
interpは、参考文献[1]に記述されているローパス補間アルゴリズム8.1を使用します。
FIRローパス補間フィルタの長さは、2*l*r+1です。補間に使用されるオリジナルサンプル値の数は、 2*lです。通常、lは10以下にしてください。オリジナルの信号は、正規化カットオフ周波数0 
alpha 
1で制限された帯域内にあるものと仮定しています。ここで、1はオリジナルのサンプリング周波数の1/2(Nyquist周波数)です。lのデフォルト値は4で、alpha のデフォルト値は0.5です。
診断
rが整数の場合、interpは、つぎのエラーメッセージを表示します。
Resampling rate R must be an integer.
参考
|
データ列に対するサンプリングレートの低減(間引き) |
|
1次元データ補間(テーブルルックアップ)(MATLAB Function Referenceを参照) |
|
任意のファクタによるサンプリングレートの変更 |
|
キュービックスプライン補間(MATLAB Function Referenceを参照) |
|
FIRフィルタの適用とサンプリングレート変換 |
参考文献
[1] Programs for Digital Signal Processing, IEEE Press, New York, 1979, Algorithm 8.1.
| impz | intfilt | ![]() |