Unwrap
信号位相のアンラップ
ライブラリ:
DSP System Toolbox /
Signal Operations
説明
Unwrap ブロックは、各チャネル要素に適切な 2π の倍数を加算または減算することで、入力の各チャネルをします。このブロックでは、[許容誤差] パラメーターの値よりも大きな位相の不連続が認識されます。位相のアンラップの詳細については、位相のアンラップの定義を参照してください。
例
端子
入力
アンラップする信号入力。スカラー、ベクトルまたは行列として指定します。入力にはラジアン位相のエントリがなければなりません。
データ型: single | double
出力
アンラップされた信号出力。スカラー、ベクトルまたは行列として返されます。
このブロックでは入力のサイズと次元が保持され、出力端子のレートは入力端子のレートと等しくなります。
データ型: single | double
パラメーター
ブロックが真の位相の不連続として認識するジャンプ サイズ。適正な信号機能の変更を避けるために、既定値は (小さな値ではなく) π に設定されています。このブロックの感度を高めるには、[許容誤差] を π よりわずかに小さい値に設定します。
データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
ブロックで入力を処理する方法を指定します。これらのパラメーターは、以下のいずれかのオプションに設定することができます。
チャネルとしての列 (フレーム ベース)(既定の設定) — このオプションを選択すると、ブロックは入力の各列を別々のチャネルとして扱います。チャネルとしての要素 (サンプル ベース)— このオプションを選択する場合、ブロックは入力の各要素を別々のチャネルとして扱います。
このパラメーターをオフにすると、ブロックは入力フレーム間の境界を無視し、新しい入力が受信されるたびに初期位相値を 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 にリセットしません。次の図は、サンプル ベースの処理でブロックがデータをアンラップする方法を示しています。

拡張機能
生成されたコードは特定の条件下で関数 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)
