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 | ![]() |