Main Content

リサンプリング

Signal Processing Toolbox™ には、元のサンプルのレートより、高いレート、または、低いレートで信号をリサンプリングするいくつかの関数が用意されています。

操作

関数

リサンプリング付きの FIR フィルター

upfirdn

三次スプライン内挿

spline

間引き

decimate

内挿

interp

他の1 次元内挿

interp1

新しいレートでリサンプリング

resample

以下の例を参照してください。

関数 resample

関数 resample は、シーケンスのサンプル レートを 2 つの整数の比によって元に比例する任意のレートに変更します。resample の基本構文は、以下のとおりです。

y = resample(x,p,q)

この場合、関数はシーケンス x を元のサンプル レートの p/q 倍でリサンプリングします。結果 y の長さは、x の長さの p/q 倍になります。

リサンプリングの応用例の 1 つとしては、48 kHz (デジタル オーディ オ テープ (DAT) 規格) から、44.1 kHz (コンパクト ディスク (CD) 規格) などのように、デジタル化された音声信号のあるサンプル レートから別のサンプル レートへの変換があります。例については、DAT レートの CD サンプル レートへの変換を参照してください。

resample は、ローパス フィルターを入力シーケンスに適用して、リサンプリングの際のエイリアシングを回避します。関数は、関数 firls を使用して、カイザー ウィンドウをベースにしてこのフィルターを設計します。フィルターの長さとカイザー ウィンドウの beta パラメーターを制御できます。あるいは、関数 intfilt を使用して、内挿フィルターを設計できます。

関数 decimate および interp

関数 decimate および関数 interp は、それぞれ p=1 および q=1 を設定した resample と同じです。これらの関数には、さまざまなアンチエイリアシング フィルター処理オプションが用意されていますが、フィルター処理によりわずかな信号の遅延が生じます。

関数 upfirdn

ツールボックスには、FIR フィルターを入力シーケンスに適用し、フィルター後のシーケンスを元のものとは異なるサンプル レートで出力する関数 upfirdn も含まれています。マルチレート フィルター バンクの実装を参照してください。

関数 spline

標準の MATLAB® 環境には、不規則間隔データで動作する関数 spline が含まれます。関数 interp1 は、線形内挿や 3 次内挿などの様々な方法を使用して、内挿あるいはテーブル ルックアップ内挿を行います。

参考

アプリ

関数