unwrap
位相角のシフト
説明
Q = unwrap(
は、ベクトル P
)P
内のラジアン位相角をアンラップします。連続する角度の間の跳びが π ラジアン以上の場合、unwrap
は跳びが π 未満になるまで ±2π の倍数を加算することによって角度をシフトします。P
が行列の場合、unwrap
は列方向に演算します。P
が多次元配列の場合、unwrap
はサイズが 1 より大きい最初の次元に作用します。
例
らせんの位相角の補正
位相角 0 ~ を使用して、らせんの 座標と 座標を定義します。らせんをプロットします。
t = linspace(0,6*pi,201); x = t/pi.*cos(t); y = t/pi.*sin(t); plot(x,y)
関数 atan2
を使用して、 座標と 座標から、らせんの位相角を求めます。関数 atan2
は、 ~ の閉区間にある角度値を返します。
P = atan2(y,x); plot(t,P)
このプロットには不連続点のあることがわかります。unwrap
を使用して不連続性を排除します。unwrap
は、P
の連続する要素間の位相差が跳びのしきい値である ラジアン以上の場合に、 の倍数を加算します。シフト後の位相角 Q
は、区間 0 ~ にあります。
Q = unwrap(P); plot(t,Q)
異なるしきい値を使用した位相角のシフト
周波数応答の位相角をシフトします。この位相曲線には 2 つの跳びがあります。最初の跳びは W = 3
と W = 3.4
の間の 3.4250
ラジアンで、2 番目の跳びは W = 5
と W = 5.4
の間の 6.3420
ラジアンです。位相曲線をプロットします。
clear; close all; W = [0:0.4:3, 3.4:0.4:5, 5.4:0.4:7]; P = [-1.5723 -1.5747 -1.5790 -1.5852 -1.5922 -1.6044 -1.6269 -1.6998 1.7252 1.5989 1.5916 1.5708 1.5582 -4.7838 -4.8143 -4.8456 -4.8764 -4.9002]; plot(W,P,'bo-')
unwrap
で既定の跳びのしきい値 ラジアンを使用して、位相角をシフトします。シフト後の位相曲線をプロットします。両方の跳びは、跳びのしきい値 ラジアンより大きいため、シフトされます。
plot(W,unwrap(P),'ro-')
次に、跳びのしきい値に 5
ラジアンを使用して位相角をシフトします。シフト後の位相曲線をプロットします。最初の跳びは、跳びのしきい値 5
ラジアンより小さいため、シフトされません。
plot(W,unwrap(P,5),'ro-')
行列への位相シフトの適用
位相角を含む 2 列の行列 P
を定義します。
P = [0 7.07; 0.19 0.98; 6.67 1.18; 0.59 1.37; 0.78 1.56]
P = 5×2
0 7.0700
0.1900 0.9800
6.6700 1.1800
0.5900 1.3700
0.7800 1.5600
位相角 P(1,2) = 7.07
および P(3,1) = 6.67
には、残りのデータと比較して、 より大きい位相差があります。
まず、要素を列単位で比較して、位相角をアンラップします。引数 dim
を 1 に指定します。2 番目の引数を []
に指定することで、既定の跳びのしきい値 を使用します。
dim = 1; P1 = unwrap(P,[],dim)
P1 = 5×2
0 7.0700
0.1900 7.2632
0.3868 7.4632
0.5900 7.6532
0.7800 7.8432
列単位ではなく行単位で位相角をシフトするには、dim
を 1 ではなく 2 に指定します。
dim = 2; P2 = unwrap(P1,[],dim)
P2 = 5×2
0 0.7868
0.1900 0.9800
0.3868 1.1800
0.5900 1.3700
0.7800 1.5600
入力引数
P
— 入力配列
ベクトル | 行列 | 多次元配列
入力配列。ベクトル、行列または多次元配列として指定します。
データ型: single
| double
tol
— 位相シフトを適用するための跳びのしきい値
pi
(既定値) | スカラー
位相シフトを適用するための跳びのしきい値。スカラーとして指定します。π 未満の跳びしきい値は、既定のしきい値 π と同じ効果になります。
データ型: single
| double
dim
— 演算の対象の次元
正の整数スカラー
演算の対象の次元。正の整数のスカラーとして指定します。値を指定しない場合、既定値は、サイズが 1 ではない最初の配列の次元です。
unwrap(P,[],1)
はP
の列に沿って演算し、各列のシフト後の位相角を返します。unwrap(P,[],2)
はP
の行に沿って演算し、各行のシフト後の位相角を返します。
dim
が ndims(P)
より大きい場合、unwrap(P,[],dim)
は P
を返します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力引数
Q
— シフト後の位相角
ベクトル | 行列 | 多次元配列
シフト後の位相角。ベクトル、行列または多次元配列として返されます。出力 Q
のサイズは、常に入力 P
のサイズと同じになります。
データ型: single
| double
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
行ベクトルの入力は、最初の 2 つの入力がベクトルで非スカラーの場合にのみサポートされています。
出力クラスで演算を実行します。そのため、異なる丸め誤差により、結果が MATLAB® と一致しない場合があります。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
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)