Unwrap
R2026b信号位相のアンラップ
Unwrap block
To add a block to a model, double-click the canvas and start typing the block name. Then, select the block from the list.
ライブラリ:
DSP System Toolbox /
Signal Operations
説明
Unwrap ブロックは、各チャネル要素に適切な 2π の倍数を加算または減算することで、入力の各チャネルをします。このブロックでは、[許容誤差] パラメーターの値よりも大きな位相の不連続が認識されます。位相のアンラップの詳細については、位相のアンラップの定義を参照してください。
例
端子
入力
アンラップする信号入力。スカラー、ベクトルまたは行列として指定します。入力にはラジアン位相のエントリがなければなりません。
データ型: single | double
出力
アンラップされた信号出力。スカラー、ベクトルまたは行列として返されます。
このブロックでは入力のサイズと次元が保持され、出力端子のレートは入力端子のレートと等しくなります。
データ型: single | double
パラメーター
ブロックが真の位相の不連続として認識するジャンプ サイズ。適正な信号機能の変更を避けるために、既定値は (小さな値ではなく) π に設定されています。このブロックの感度を高めるには、[許容誤差] を π よりわずかに小さい値に設定します。
データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
ブロックで入力を処理する方法を指定します。これらのパラメーターは、以下のいずれかのオプションに設定することができます。
チャネルとしての列 (フレーム ベース)(既定の設定) — このオプションを選択すると、ブロックは入力の各列を別々のチャネルとして扱います。チャネルとしての要素 (サンプル ベース)— このオプションを選択する場合、ブロックは入力の各要素を別々のチャネルとして扱います。
このパラメーターをオフにすると、ブロックは入力フレーム間の境界を無視し、新しい入力が受信されるたびに初期位相値を 0 にリセットしません。このモードでは、ブロックは入力の各列のデータを継続的にアンラップします。
次の図は、このパラメーターをオフにした場合にブロックがデータをアンラップする方法を示しています。
![Frame-based unwrap across frame boundaries showing two-channel input with phase values [0, 2pi/3, -2pi/3] per frame and tolerance pi, where the Unwrap block continuously adds 2pi*k across Frame 1, 2, and 3 to produce monotonically increasing output values [0, 2pi/3, 4pi/3, 6pi/3, 8pi/3, 10pi/3, 12pi/3, 14pi/3, 16pi/3]](unwrap_frame_based_default.png)
このパラメーターをオンにすると、ブロックは入力データの各フレームを別々に扱い、新しい各入力フレームの初期位相値をリセットします。
次の図は、このパラメーターをオンにした場合にブロックがデータをアンラップする方法を示しています。
![Frame-based unwrap with phase reset showing input matrices with phase discontinuities and tolerance pi, where the Unwrap block resets the initial phase to zero for each new input frame, producing output [0, 2pi/3, 4pi/3] repeated independently for Input 1, 2, and 3](unwrap_frame_based_reset.png)
詳細については、フレームベースの処理を参照してください。
依存関係
このパラメーターを有効にするには、[入力処理] パラメーターを [チャネルとしての列 (フレーム ベース)] に設定します。サンプル ベース処理モードでは、ブロックは新しい各入力の初期位相値を 0 にリセットしません。詳細については、サンプルベースの処理を参照してください。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
詳細
位相のアンラップまたはアンラップは、多くの場合、信号の元の位相を再構成するために使用されるプロセスです。アンラップ アルゴリズムでは、図で示しているように、適切な 2π の倍数を各位相の入力に追加して元の位相値を復元します。このブロックによって使用されるアンラップ アルゴリズムの詳細については、アンラップ方法を参照してください。
多くの場合、信号の位相を計算するアルゴリズムは、–π と π の間の位相を出力するだけです。たとえば、こうしたアルゴリズムは sin(2π + 3) の位相を 3 と計算します。これは、sin(3) = sin(2π + 3) であり、実際の位相 2π + 3 は –π と π の間ではないためです。こうしたアルゴリズムは、sin(–4π + 3) および sin(16π + 3) の位相も 3 と計算します。

![Two unit circles comparing restricted phase data in (−π, π] with a large phase jump versus unwrapped phase data showing continuous values beyond 2π](ch_block_ref_o_to_u105.gif)
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] パラメーターをオフにします。次の図は、このモードでブロックがデータをアンラップする方法を示しています。
![Frame-based unwrap across frame boundaries showing two-channel input with phase values [0, 2pi/3, -2pi/3] per frame and tolerance pi, where the Unwrap block continuously adds 2pi*k across Frame 1, 2, and 3 to produce monotonically increasing output values [0, 2pi/3, 4pi/3, 6pi/3, 8pi/3, 10pi/3, 12pi/3, 14pi/3, 16pi/3]](unwrap_frame_based_default.png)
フレーム内でのアンラップ
[Reset initial phase to zero for each input frame] パラメーターをオンにすると、ブロックは入力データの各フレームを別々に扱います。このモードでは、ブロックは、新しい入力フレームが受信されるたびに初期位相値を 0 にリセットします。次の図は、このモードでブロックがデータをアンラップする方法を示しています。
![Frame-based unwrap with phase reset showing input matrices with phase discontinuities and tolerance pi, where the Unwrap block resets the initial phase to zero for each new input frame, producing output [0, 2pi/3, 4pi/3] repeated independently for Input 1, 2, and 3](unwrap_frame_based_reset.png)
[入力処理] パラメーターを [チャネルとしての要素 (サンプル ベース)] に設定して、サンプル ベースの処理を実行するようにブロックを構成すると、ブロックは入力の各要素を個別のチャネルとして扱います。ブロックは入力の各チャネル内のデータをアンラップし、新しい入力が受信されるたびに初期位相を 0 にリセットしません。次の図は、サンプル ベースの処理でブロックがデータをアンラップする方法を示しています。
![Sample-based unwrap mode showing four channels (Ch 1-4) processing individual elements across Sample 1 through Sample 5, with tolerance pi, where phase discontinuities trigger adding 2pi*k to maintain continuity, producing incrementing output values [0, 0; 2pi/3, 0; 4pi/3, 0; 6pi/3, 0; 8pi/3, 0]](unwrap_sample_based.png)
拡張機能
生成されたコードは特定の条件下で関数 memcpy または関数 memset (string.h) に依存します。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)
