Interpolation
実数入力サンプルの値の内挿
ライブラリ:
DSP System Toolbox /
Signal Operations
説明
Interpolation ブロックは、線形または FIR 内挿を使用して離散実数入力を内挿します。ブロックは、ベクトル、行列または N 次元配列を受け入れます。ブロックは、内挿された値のスカラー、ベクトル、行列または N 次元配列を出力します。
内挿点、つまり、値を内挿するタイミングを 1 ベースの内挿配列 IPts に指定しなければなりません。IPts に 1 を入力すると入力データの最初のサンプルを参照し、同様に 2.5 を入力すると 2 番目と 3 番目の入力サンプルの間の中央のサンプルを参照します。入力データの次元に応じて、IPts にはスカラー、長さ P の行または列ベクトル、P 行 N 列の行列または P が N 次元配列の最初の次元のサイズである N 次元の配列を指定できます。ほとんどの場合、P は正の整数です。有効な内挿配列の詳細については、Ptsおよび内挿点の表を参照してください。
ほとんどの場合、ブロックは IPts を N 次元の入力配列の最初の次元または各入力ベクトルに適用します。ブロックを設定して、すべての入力データ、つまり、ブロック マスクに入力される静的内挿点に同じ内挿配列を適用するか、各 N 次元配列、行列またはベクトル入力、つまり、Pts
入力端子を介して受信する時変内挿点に異なる内挿配列を使用するようにできます。
端子
入力
In — 入力信号
スカラー | ベクトル | 行列 | N 次元配列
入力信号。スカラー、ベクトル、行列または N 次元配列として指定します。
この端子は Source of interpolation points
を [入力端子]
に設定するまで、名前は付きません。
データ型: single
| double
Pts — Interpolation points
スカラー | ベクトル | 行列 | N 次元配列
内挿点。スカラー、ベクトル、行列または N 次元配列として指定します。
Source of interpolation points
パラメーターが [入力端子]
に設定された場合のブロックの動作に関する詳細については、ブロックによる内挿配列の入力への適用方法を参照してください。
依存関係
この端子は Source of interpolation points
を [入力端子]
に設定するまで使用できません。
データ型: single
| double
出力
Out — 出力信号
スカラー | ベクトル | 行列 | N 次元配列
出力信号。ベクトル、行列、または N 次元配列として指定します。
この端子は Source of interpolation points
を [入力端子]
に設定するまで、名前は付きません。
データ型: single
| double
パラメーター
内挿点のソース — Interpolation point input method
ダイアログにより指定
(既定値) | 入力端子
内挿点の指定方法を次から選択します。
ダイアログにより指定
––Interpolation points
パラメーターが利用可能になります。静的内挿点にこのオプションを使用します。入力端子
––Pts
端子がブロックに表示されます。ブロックはこの端子への入力を内挿点として使用します。時変内挿点にこのオプションを使用します。
内挿点 — Interpolation points
[1.1 4.8 2.67 1.6 3.2]'
(既定値) | スカラー | ベクトル | 行列 | N 次元配列
入力信号を内挿する時点の配列 (IPts)。IPts に 1 を入力すると入力の最初のサンプルを参照し、同様に 2.5 を入力すると 2 番目と 3 番目の入力サンプルの間の中央のサンプルを参照します。ブロックによる内挿配列の入力への適用方法を参照してください。
調整可能: Yes
依存関係
このパラメーターが利用可能になるのは、Source of interpolation points
が [ダイアログにより指定]
に設定されている場合のみです。詳細については、静的内挿点の指定を参照してください。
内挿フィルターの半分の長さ — FIR 内挿フィルターの半分の長さ
3
(既定値) | 正の整数
FIR 内挿フィルターの半分の長さを指定します (P
)。FIR
モードで内挿を実行するには、ブロックは最も近い 2×P
低レート サンプルを使用します。ほとんどの場合、P
低レート サンプルは各内挿点の下または上に表示されなければなりません。低レート サンプル点で内挿する場合、ブロックでは、必要な 2*P
サンプルにその低レート サンプルが含まれ、2*P
–1 の隣接する低レート サンプルのみが必要です。内挿点に必要な数の隣接する低レート サンプルがない場合、ブロックは線形内挿を使用してその点を内挿します。
依存関係
このパラメーターが利用可能になるのは、Interpolation mode
が [FIR]
に設定されている場合のみです。詳細については、FIR 内挿モードを参照してください。
入力サンプルごとの内挿点 — サンプルあたりの内挿点
3
(既定値)
"アップサンプリング係数" (L
)。一意な FIR 内挿フィルターをブロックが計算する、入力サンプルあたりの点の数。FIR 内挿を実行するには、ブロックは、長さ 2*P
の L
本のフィルター アームをもつポリフェーズ構造を使用します。
たとえば、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 内挿モードを参照してください。
正規化された入力帯域幅 — 正規化された入力帯域幅
0.5
(既定値) | (0, 1] 内のスカラー
Fs/2 (入力サンプル周波数の半分) で除算した入力の帯域幅。範囲 (0, 1] 内のスカラーとして指定します。
依存関係
このパラメーターが利用可能になるのは、Interpolation mode
が [FIR]
に設定されている場合のみです。詳細については、FIR 内挿モードを参照してください。
Out of range interpolation points — 範囲外の点に対するエラー処理
クリップ
(既定値) | クリップおよび警告
| エラー
内挿配列 IPts の有効な値の範囲は、1 ~入力の各チャネルのサンプル数です。たとえば、長さ 5 の入力ベクトル D
では、IPts のすべてのエントリの範囲は 1 ~ 5 でなければなりません。IPts には 7 や -9 などのエントリを含めることはできません。なぜなら D
には 7 番目または -9 番目のエントリはないためです。
[Out of range interpolation points] パラメーターは、ブロックが有効な範囲外にある内挿点を処理する方法を設定します。このパラメーターには以下の設定があります。
クリップ
— ブロックは IPts の範囲外の値を有効な範囲 (1 ~ 入力サンプル数の範囲) 内で最も近い値に置き換えて、IPts のクリップされた値を使用して計算を続行します。クリップおよび警告
—[クリップ]
に加えて、ブロックでは、クリッピングが発生するたびに MATLAB® コマンド ラインで警告が出力されます。エラー
— ブロックで 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]'
が作成されます。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
詳細
静的内挿点の指定
ブロックに静的内挿配列 (入力データのすべてのベクトルまたは N 次元配列に適用される内挿配列) を提供するには、次の手順を実行します。
Source of interpolation points
パラメーターを[ダイアログにより指定]
に設定します。内挿配列を
Interpolation points
パラメーターに入力します。内挿配列の詳細については、ブロックによる内挿配列の入力への適用方法を参照してください。
時変内挿点の指定
ブロックに時変内挿配列を提供する場合、つまり、ブロックが各ベクトルまたは N 次元配列入力に異なる内挿配列を使用する場合は、次の手順を実行します。
Source of interpolation points
パラメーターを[入力端子]
に設定します。Pts
端子がブロックに表示されます。内挿配列の信号を生成して、それを [Pts] 端子に提供します。ブロックはこの端子への入力を内挿点として使用します。内挿配列の詳細については、ブロックによる内挿配列の入力への適用方法を参照してください。
ブロックによる内挿配列の入力への適用方法
内挿配列 IPts は、入力信号の値を内挿する時点を表します。IPts に 1 を入力すると入力の最初のサンプルを参照し、同様に 2.5 を入力すると 2 番目と 3 番目の入力サンプルの間の中央のサンプルを参照します。ほとんどの場合、IPts がベクトルである場合は、任意の長さを指定できます。
内挿配列 IPts の有効な値の範囲は、1 ~入力の各チャネルのサンプル数です。ブロックによる範囲外の内挿値の処理方法の詳細については、Out of range interpolation points
を参照してください。
入力の次元と IPts の次元に応じて、ブロックは通常、次のいずれかの方法で IPts を入力に適用します。
IPts 配列を N 次元配列の最初の次元に適用し、N 次元配列を出力します。
ベクトル IPts を各入力ベクトルに (入力ベクトルが単一チャネルのように) 適用することで、入力と同じ方向 (列方向または行方向) のベクトルを出力します。
次の表は、ブロックが内挿配列 IPts をすべての可能な入力のタイプに適用する方法の概要および結果の出力次元を示します。
最初の表では、Source of interpolation points
が [ダイアログにより指定]
である場合のブロックの動作について説明します。
ダイアログ ボックスで内挿点を指定する
入力の次元 | 内挿配列 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 列の列 | P 行 1 列の列 | IPts を入力列に適用 | P 行 1 列の列 |
1 行 N 列の行 (非推奨) | 1 行 N 列の行 | 該当なし。ブロックは入力ベクトルをコピー | 1 行 N 列、入力ベクトルのコピー |
P 行 1 列の列 | 各行が入力ベクトルのコピーである P 行 N 列の行列 | ||
P 行 N 列の行列 |
次の表では、[内挿点のソース] が [入力端子]
である場合のブロックの動作について説明します。
入力端子で内挿点を指定する
入力の次元 | 内挿配列 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 列の列 | P 行 1 列の列 | IPts を入力列に適用 | P 行 1 列の列 |
1 行 N 列の行 (非推奨) | 1 行 N 列の行 | 該当なし。ブロックは入力ベクトルをコピー | 1 行 N 列、入力ベクトルのコピー |
P 行 1 列の列 | 各行が入力ベクトルのコピーである P 行 N 列の行列 | ||
P 行 N 列の行列 |
アルゴリズム
線形内挿モード
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を参照してください。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)