Unwrap
信号位相のアンラップ
ライブラリ:
DSP System Toolbox /
Signal Operations
説明
Unwrap ブロックは、各チャネル要素に適切な 2π の倍数を加算または減算することで、入力の各チャネルをします。このブロックでは、[許容誤差] パラメーターの値よりも大きな位相の不連続が認識されます。位相のアンラップの詳細については、位相のアンラップの定義を参照してください。
端子
入力
Port_1 — 信号入力
スカラー | ベクトル | 行列
アンラップする信号入力。スカラー、ベクトルまたは行列として指定します。入力にはラジアン位相のエントリがなければなりません。
データ型: single
| double
出力
Port_1 — 信号出力
スカラー | ベクトル | 行列
アンラップされた信号出力。スカラー、ベクトルまたは行列として返されます。
このブロックでは入力のサイズと次元が保持され、出力端子のレートは入力端子のレートと等しくなります。
データ型: single
| double
パラメーター
許容誤差 (ラジアン) — ジャンプ サイズ
pi
(既定値) | スカラー値
ブロックが真の位相の不連続として認識するジャンプ サイズ。適正な信号機能の変更を避けるために、既定値は (小さな値ではなく) π に設定されています。このブロックの感度を高めるには、[許容誤差] を π よりわずかに小さい値に設定します。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
入力処理 — 入力を処理する方法
チャネルとしての列 (フレーム ベース)
(既定値) | チャネルとしての要素 (サンプル ベース)
ブロックで入力を処理する方法を指定します。これらのパラメーターは、以下のいずれかのオプションに設定することができます。
チャネルとしての列 (フレーム ベース)
(既定の設定) — このオプションを選択すると、ブロックは入力の各列を別々のチャネルとして扱います。チャネルとしての要素 (サンプル ベース)
— このオプションを選択する場合、ブロックは入力の各要素を別々のチャネルとして扱います。
Reset initial phase to zero for each input frame — 連続するフレームのチェック
off
(既定値) | on
このパラメーターをオフにすると、ブロックは入力フレーム間の境界を無視し、新しい入力が受信されるたびに初期位相値を 0 にリセットしません。このモードでは、ブロックは入力の各列のデータを継続的にアンラップします。
次の図は、このパラメーターをオフにした場合にブロックがデータをアンラップする方法を示しています。
このパラメーターをオンにすると、ブロックは入力データの各フレームを別々に扱い、新しい各入力フレームの初期位相値をリセットします。
次の図は、このパラメーターをオンにした場合にブロックがデータをアンラップする方法を示しています。
詳細については、フレームベースの処理を参照してください。
依存関係
このパラメーターを有効にするには、[入力処理] パラメーターを [チャネルとしての列 (フレーム ベース)]
に設定します。サンプル ベース処理モードでは、ブロックは新しい各入力の初期位相値を 0 にリセットしません。詳細については、サンプルベースの処理を参照してください。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
詳細
位相のアンラップの定義
位相のアンラップまたはアンラップは、多くの場合、信号の元の位相を再構成するために使用されるプロセスです。アンラップ アルゴリズムでは、図で示しているように、適切な 2π の倍数を各位相の入力に追加して元の位相値を復元します。このブロックによって使用されるアンラップ アルゴリズムの詳細については、アンラップ方法を参照してください。
多くの場合、信号の位相を計算するアルゴリズムは、–π と π の間の位相を出力するだけです。たとえば、こうしたアルゴリズムは sin(2π + 3) の位相を 3 と計算します。これは、sin(3) = sin(2π + 3) であり、実際の位相 2π + 3 は –π と π の間ではないためです。こうしたアルゴリズムは、sin(–4π + 3) および sin(16π + 3) の位相も 3 と計算します。
アンラップ方法
Unwrap ブロックでは、連続する各チャネル要素に 2πk を加算し、各 "位相ジャンプ" で k を更新することで、入力行列または入力ベクトルの各チャネルをアンラップします。位相ジャンプは、2 つの隣接する位相値のエントリの差分が [許容誤差] パラメーターの値を超えた場合に発生します。
次のコードは、ブロックが特定の入力チャネル u のデータをアンラップする方法を示しています。
k=0; % initialize k to 0 i=1; % initialize the counter to 1 alpha=pi; % set alpha to the desired Tolerance. In this case, pi for i = 1:(size(u)-1) yout(i,:)=u(i)+(2*pi*k); % add 2*pi*k to ui if((abs(u(i+1)-u(i)))>(abs(alpha))) %if diff is greater than alpha, increment or decrement k if u(i+1)<u(i) % if the phase jump is negative, increment k k=k+1; else % if the phase jump is positive, decrement k k=k-1; end end end yout((i+1),:)=u(i+1)+(2*pi*k); % add 2*pi*k to the last element of the input
フレームベースの処理
[入力処理] パラメーターを [チャネルとしての列 (フレーム ベース)]
に設定して、フレームベース処理を実行するようにブロックを構成した場合、ブロックは 2 つの異なるアンラップ モードをサポートします。どちらのモードでも、ブロックは各入力チャネルの要素に 2πk を加算し、位相の不連続ごとに k を更新します。2 つのモード間の差異は、ブロックが初期位相値 (k) を 0 にリセットする頻度です。フレームの境界を越えてデータをアンラップすること (既定の設定)、あるいは新しい入力フレームを受信するたびに初期位相値をリセットすることで入力フレーム内でのみアンラップすることを選択できます。
フレームの境界を越えたアンラップ
既定のモードでは、ブロックは入力フレーム間の境界を無視し、初期位相値を 0 にリセットすることなく各チャネル内のデータをアンラップし続けます。このモードを指定するには、[Reset initial phase to zero for each input frame] パラメーターをオフにします。次の図は、このモードでブロックがデータをアンラップする方法を示しています。
フレーム内でのアンラップ
[Reset initial phase to zero for each input frame] パラメーターをオンにすると、ブロックは入力データの各フレームを別々に扱います。このモードでは、ブロックは、新しい入力フレームが受信されるたびに初期位相値を 0 にリセットします。次の図は、このモードでブロックがデータをアンラップする方法を示しています。
サンプルベースの処理
[入力処理] パラメーターを [チャネルとしての要素 (サンプル ベース)]
に設定して、サンプル ベースの処理を実行するようにブロックを構成すると、ブロックは入力の各要素を個別のチャネルとして扱います。ブロックは入力の各チャネル内のデータをアンラップし、新しい入力が受信されるたびに初期位相を 0 にリセットしません。次の図は、サンプル ベースの処理でブロックがデータをアンラップする方法を示しています。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
生成されたコードは特定の条件下で関数 memcpy
または関数 memset
(string.h
) に依存します。
バージョン履歴
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)