最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Interpolation

実数入力サンプルの値の内挿

ライブラリ

信号処理

dspsigops

説明

Interpolation ブロックは、線形または FIR 内挿を使用して離散実数入力を内挿します。ブロックは、ベクトル、行列または N 次元配列を受け入れます。ブロックは、内挿値のスカラー、ベクトル、行列または N 次元配列を出力します。

内挿点 (値を内挿するタイミング) を 1 ベースの内挿配列 IPts に指定しなければなりません。IPts に 1 を入力すると入力データの最初のサンプルを参照し、同様に 2.5 を入力すると 2 番目と 3 番目の入力サンプルの間の中央のサンプルを参照します。入力データの次元に応じて、IPts にはスカラー、長さ P の行または列ベクトル、P 行 N 列の行列または P が N 次元配列の最初の次元のサイズである N 次元の配列を指定できます。ほとんどの場合、P は正の整数です。有効な内挿配列の詳細については、ブロックによる内挿配列の入力への適用方法の表を参照してください。

ほとんどの場合、ブロックは IPts を N 次元の入力配列の最初の次元または各入力ベクトルに適用します。ブロックを設定して、すべての入力データ (ブロック マスクに入力される静的内挿点) に同じ内挿配列を適用するか、各 N 次元配列、行列またはベクトル入力 (Pts 入力端子を介して受信する時変内挿点) に異なる内挿配列を使用するようにできます。

静的内挿点の指定

ブロックに静的内挿配列 (入力データのすべてのベクトルまたは N 次元配列に適用される内挿配列) を提供するには、次の手順を実行します。

  • [Source of interpolation points] パラメーターを [Specify via dialog] に設定します。

  • 内挿配列を [Interpolation points] パラメーターに入力します。内挿配列の詳細については、ブロックによる内挿配列の入力への適用方法を参照してください。

時変内挿点の指定

ブロックに時変内挿配列 (ブロックが各ベクトルまたは N 次元配列入力に異なる内挿配列を使用する場合) を提供するには、次の手順を実行します。

  1. [Source of interpolation points] パラメーターを [Input port] に設定すると、Pts 端子がブロックに表示されます。

  2. 内挿配列の信号を生成して、それを Pts 端子に提供します。ブロックはこの端子への入力を内挿点として使用します。内挿配列の詳細については、ブロックによる内挿配列の入力への適用方法を参照してください。

ブロックによる内挿配列の入力への適用方法

内挿配列 IPts は、入力信号の値を内挿する時点を表します。IPts に 1 を入力すると入力の最初のサンプルを参照し、同様に 2.5 を入力すると 2 番目と 3 番目の入力サンプルの間の中央のサンプルを参照します。ほとんどの場合、IPts がベクトルである場合は、任意の長さを指定できます。

内挿配列 IPts の有効な値の範囲は、1 ~入力の各チャネルのサンプル数です。ブロックによる範囲外の内挿値の処理方法の詳細については、範囲外の内挿点の処理を参照してください。

入力の次元と IPts の次元に応じて、ブロックは通常、次のいずれかの方法で IPts を入力に適用します。

  • IPts 配列を N 次元配列の最初の次元に適用し、N 次元配列を出力します。

  • ベクトル IPts を各入力ベクトルに (入力ベクトルが単一チャネルのように) 適用することで、入力と同じ方向 (列方向または行方向) のベクトルを出力します。

次の表は、ブロックが内挿配列 IPts をすべての可能な入力のタイプに適用する方法の概要および結果の出力次元を示します。

最初の表では、[Source of interpolation points][Specify via dialog] である場合のブロックの動作について説明します。

入力の次元内挿配列 IPts の有効な次元ブロックによる入力への IPts の適用方法出力の次元 (フレーム ベース)

M x N x K の行列

P 行 1 列の列

IPts を入力の最初の次元に適用します。

P x N x K の配列

P x N x K の行列

IPts の各列 (IPts の各要素) を入力行列の対応する列に適用

P x N x K の配列

M 行 N 列の行列

1 行 N 列の行

IPts の各列 (IPts の各要素) を入力行列の対応する列に適用

1 行 N 列の行

P 行 1 列の列

IPts を各入力列に適用

P 行 N 列の行列

P 行 N 列の行列

IPts の列を対応する入力行列の列に適用

M 行 1 列の列

1 行 P 列の行

(アルゴリズムは IPts を列として扱います)

IPts を入力列に適用

P 行 1 列の列

P 行 1 列の列

1 行 N 列の行

(非推奨)

1 行 N 列の行

該当なし。ブロックは入力ベクトルをコピー

1 行 N 列、入力ベクトルのコピー

P 行 1 列の列

各行が入力ベクトルのコピーである P 行 N 列の行列

P 行 N 列の行列

次の表では、[Source of interpolation points][Input port] である場合のブロックの動作について説明します。

入力の次元内挿配列 IPts の有効な次元ブロックによる入力への IPts の適用方法出力の次元 (フレーム ベース)

M x N x K の行列

方向性を持たないベクトルまたは長さ P の列ベクトル

IPts を入力の最初の次元に適用します。

P x N x K の配列

P x N x K の行列

IPts の各列 (IPts の各要素) を入力行列の対応する列に適用

P x N x K の配列

M 行 N 列の行列

1 行 N 列の行

IPts の各列 (IPts の各要素) を入力行列の対応する列に適用

1 行 N 列の行

P 行 1 列の列

IPts を各入力列に適用

P 行 N 列の行列

P 行 N 列の行列

IPts の列を対応する入力行列の列に適用

M 行 1 列の列

1 行 P 列の行

IPts を入力列に適用

P 行 1 列の列

P 行 1 列の列

1 行 N 列の行

(非推奨)

1 行 N 列の行

該当なし。ブロックは入力ベクトルをコピー

1 行 N 列、入力ベクトルのコピー

P 行 1 列の列

各行が入力ベクトルのコピーである P 行 N 列の行列

P 行 N 列の行列

範囲外の内挿点の処理

内挿配列 IPts の有効な値の範囲は、1 ~入力の各チャネルのサンプル数です。たとえば、長さ 5 の入力ベクトル D では、IPts のすべてのエントリの範囲は 1 ~ 5 でなければなりません。IPts には 7 や -9 などのエントリを含めることはできません。なぜなら D には 7 番目または -9 番目のエントリはないためです。

[Out of range interpolation points] パラメーターは、ブロックが有効な範囲外にある内挿点を処理する方法を設定します。これには以下の設定があります。

  • Clip — ブロックは IPts の範囲外の値を有効な範囲 (1 ~ 入力サンプル数の範囲) 内で最も近い値に置き換えて、IPts のクリップされた値を使用して計算を続行します。

  • Clip and warn[Clip] に加えて、ブロックでは、クリッピングが発生するたびに MATLAB® コマンド ラインで警告が出力されます。

  • Error — ブロックで IPts の値が範囲外になると、シミュレーションは停止し、ブロックは MATLAB コマンド ラインでエラーを発行します。

クリッピングの例

ブロックは、範囲外の内挿点をクリップするよう設定されており、次の入力ベクトルと内挿点を取得すると仮定します。

  • D = [11 22 33 44]'

  • IPts = [10 2.6 -3]'

D には 4 つのサンプルがあるため、有効な内挿点の範囲は 1 ~ 4 です。ブロックは内挿点 10 ~ 4 と -3 ~ 1 をクリップし、結果としてクリップされた内挿ベクトル IPtsClipped = [4 2.6 1]' が作成されます。

線形内挿モード

[Interpolation Mode]Linear に設定されていると、ブロックは、データが隣接するサンプル時間に取得したサンプル間を線形に変化すると想定して、データ値を内挿します。

たとえば、入力信号が D = [1 2 1.5 3 0.25]' の場合、以下の左側のプロットは D のサンプルを示し、右側のプロットは D のサンプル間で線形に内挿された値を示します。

次の図は、範囲外の内挿点をクリップするように設定された線形内挿モードのブロックの場合を示しています。次のようにベクトル D は入力データを提供し、ベクトル IPts は内挿点を提供します。

  • D = [1 2 1.5 3 0.25]'

  • IPts = [-4 2.7 4.3 10]'

ブロックは無効な内挿点をクリップして、線形に内挿された値をベクトル [1 1.65 2.175 0.25]' で出力します。

FIR 内挿モード

[Interpolation Mode][FIR] に設定されると、ブロックは、さまざまなブロック パラメーターによって指定される FIR 内挿フィルターを使用してデータ値を内挿します。詳細については、Variable Fractional Delay ブロック リファレンスのFIR Interpolation Modeを参照してください。

パラメーター

Source of interpolation points

内挿点の指定方法を選択します。[Specify via dialog] を選択すると、[Interpolation points] パラメーターは利用可能になります。静的内挿点にこのオプションを使用します。[Input port] を選択すると、ブロックに Pts 端子が表示されます。ブロックはこの端子への入力を内挿点として使用します。時変内挿点にこのオプションを使用します。詳細は、静的内挿点の指定時変内挿点の指定を参照してください。

Interpolation points

入力信号を内挿する時点の配列 (IPts)。IPts に 1 を入力すると入力の最初のサンプルを参照し、同様に 2.5 を入力すると 2 番目と 3 番目の入力サンプルの間の中央のサンプルを参照します。ブロックによる内挿配列の入力への適用方法を参照してください。これは調整可能 (Simulink)です。

Interpolation mode

線形または FIR 内挿のいずれかの内挿にブロックを設定します。詳細は、線形内挿モードFIR 内挿モードを参照してください。

Interpolation filter half-length

FIR 内挿フィルターの半分の長さを指定します (P)。FIR モードで内挿を実行するには、ブロックは最も近い 2*P 低レート サンプルを使用します。ほとんどの場合、P 低レート サンプルは各内挿点の下または上に表示されなければなりません。ただし、低レート サンプル点で内挿する場合、ブロックでは、必要な 2*P サンプルにその低レート サンプルが含まれ、2*P–1 の隣接する低レート サンプルのみが必要です。内挿点に必要な数の隣接する低レート サンプルがない場合、ブロックは線形内挿を使用してその点を内挿します。

このパラメーターが利用可能になるのは、[Interpolation mode][FIR] に設定されている場合のみです。詳細は、FIR 内挿モードを参照してください。

Interpolation points per input sample

このパラメーターは、"アップサンプリング ファクター" とも呼ばれており、ブロックが一意な FIR 内挿フィルターを計算する、入力サンプル (L) あたりの点の数を定義します。FIR 内挿を実行するには、ブロックは、長さ 2*PL 本のフィルター アームをもつポリフェーズ構造を使用します。

たとえば、L=4 の場合、ブロックは 4 本のアームをもつポリフェーズ フィルターを作成します。次にブロックは、1 +i/L、2 +i/L、3 +i/L... に対応する点で内挿します。ここで整数 1、2、3 は低レート サンプルを表し、i=0,1,2,3 です。ポリフェーズ フィルターのアームに直接対応しない点で内挿するには、追加の計算が必要です。ブロックは、最初にポリフェーズ フィルターのアームに対応する最も近い値に切り下げます。次に、2.2 で内挿するには、ブロックは 2.2 を 2 に切り下げ、ポリフェーズ フィルター構造の最初のアームを使用して FIR 内挿を計算します。同様に、点 2.65 を内挿するには、ブロックはこの値を 2.5 に切り下げ、ポリフェーズ フィルター構造の 3 番目のアームを使用します。

このパラメーターが利用可能になるのは、[Interpolation mode][FIR] に設定されている場合のみです。詳細は、FIR 内挿モードを参照してください。

Normalized input bandwidth

Fs/2 (入力サンプル周波数の半分) で除算した入力の帯域幅。

このパラメーターが利用可能なのは、[Interpolation mode][FIR] に設定されている場合のみです。詳細は、FIR 内挿モードを参照してください。

Out of range interpolation points

内挿点が範囲外の場合、このパラメーターは、内挿点をクリップするか、値をクリップして警告メッセージを MATLAB コマンド ラインで発行するか、シミュレーションを停止してエラーを MATLAB コマンド ラインで発行するかをブロックに設定します。詳細は、範囲外の内挿点の処理を参照してください。

サポートされているデータ型

端子サポートされているデータ型

In

  • 倍精度浮動小数点

  • 単精度浮動小数点

Pts

  • 倍精度浮動小数点

  • 単精度浮動小数点

Out

  • 倍精度浮動小数点

  • 単精度浮動小数点

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

R2006a より前に導入