このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
リサンプリング
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 次内挿などの様々な方法を使用して、内挿あるいはテーブル ルックアップ内挿を行います。