リサンプリング
Signal Processing Toolbox™ には、元のサンプルのレートより、高いレート、または、低いレートで信号をリサンプリングするいくつかの関数が用意されています。
操作 | 関数 |
---|---|
リサンプリング付きの FIR フィルター | |
三次スプライン内挿 | |
間引き | |
内挿 | |
他の1 次元内挿 | |
新しいレートでリサンプリング |
以下の例を参照してください。
関数 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 次内挿などの様々な方法を使用して、内挿あるいはテーブル ルックアップ内挿を行います。