Signal Processing Toolbox    

resample

任意のファクタによるサンプリングレートの変更

表示

詳細

y = resample(x,p,q) は、ポリフェーズフィルタを使って、オリジナルのサンプリングレートのp/q倍で、ベクトルxのデータ列をリサンプリングします。yは、xの長さのceil(length(x)*p/q)倍になります。pおよびqは、正の整数でなければなりません。xが行列の場合、resamplexの列方向の処理を行います。

resampleは、リサンプリングプロセスでxにアンチエイリアス(ローパス)FIRフィルタを適用します。これは、Kaiserウィンドウを使ったfirlsで設計します。

y = resample(x,p,q,n) は、カレントサンプルx(k)のデータ列の一方向のn項を使用してリサンプリングを実行します。resampleが使用するFIRフィルタの長さはnに比例し、nの値を大きくすると精度は高くなりますが計算時間が必要になります。nのデフォルト値は10です。 n = 0にすると、resampleは最近傍近似を使用します。

ここで、x のインデックスがlength(x)よりも大きい場合、y(k) = 0です。

y = resample(x,p,q,n,beta) は、resampleがローパスフィルタを設計するのに使用するKaiserウィンドウの設計パラメータとしてbetaを使用します。betaのデフォルト値は5です。

y = resample(x,p,q,b) は、フィルタ係数ベクトルbxをフィルタ処理します。

[y,b] = resample(x,p,q) は、リサンプリング過程でxに適用されるフィルタの係数を含んだベクトルbを出力します。

例題

単純な線形列をオリジナルのサンプリングレートの3/2倍でリサンプリングします。

出力yの最後の数点が不正確になっていることに注目してください。そのフィルタリング過程で、resampleは、xで与えられたサンプルの範囲外では、サンプルをゼロと見なします。したがって、データ列xの終点でゼロから大きく偏るとyの終点で不正確になる可能性があります。つぎの2つのプロットに、resampleのこの一方向適用による影響を示します。

参考

decimate
データ列に対するサンプリングレートの低減(間引き)
firls
条件付き最小2乗線形位相FIRフィルタの設計
interp
整数要素によるサンプリングレートの増加(補間)
interp1
1次元データ補間(MATLAB Function Referenceを参照)
intfilt
補間FIRフィルタの設計
kaiser
Kaiserウィンドウ
spline
キュービックスプライン補間(MATLAB Function Referenceを参照)
upfirdn
FIRフィルタの適用とサンプリングレート変換


  remezord residuez