Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

unwrap

平移相位角

说明

示例

Q = unwrap(P) 展开向量 P 中的弧度相位角。每当连续相位角之间的跳跃大于或等于 π 弧度时,unwrap 就会通过增加 ±2π 的整数倍来平移相位角,直到跳跃小于 π。如果 P 是矩阵,unwrap 将按列运算。如果 P 是多维数组,unwrap 将对大小大于 1 的第一个维度进行运算。

示例

Q = unwrap(P,tol)P 元素之间的跳跃与跳跃阈值 tol 进行比较,而不是与默认值 π 弧度进行比较。如果您指定的跳跃阈值小于 π,unwrap 将使用默认的跳跃阈值 π。

示例

Q = unwrap(P,[],dim) 沿维度 dim 展开。

Q = unwrap(P,tol,dim) 使用跳跃阈值 tol 沿维度 dim 展开。

示例

全部折叠

定义相位角为 0 至 6π 的螺旋线的 x 坐标和 y 坐标。绘制螺旋线。

t = linspace(0,6*pi,201);
x = t/pi.*cos(t);
y = t/pi.*sin(t);
plot(x,y)

Figure contains an axes object. The axes object contains an object of type line.

使用 atan2 函数基于螺旋线的 xy 坐标求其相位角。atan2 函数返回范围在 -ππ 的闭区间内的角度值。

P = atan2(y,x);
plot(t,P)

Figure contains an axes object. The axes object contains an object of type line.

请注意,该图有不连续性。使用 unwrap 消除不连续性。当 P 的连续元素之间的相位差大于或等于跳跃阈值 π 弧度时,unwrap 会将角度增加 ±2π 的倍数。平移后的相位角 Q 位于从 0 到 6π 的区间内。

Q = unwrap(P);
plot(t,Q)

Figure contains an axes object. The axes object contains an object of type line.

移动频率响应的相位角。相位曲线有两次跳跃。第一次跳跃发生在 W = 3W = 3.4 之间,跳跃幅度为 3.4250 弧度,第二次跳跃发生在 W = 5W = 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-')

Figure contains an axes object. The axes object contains an object of type line.

使用 unwrap 按默认跳跃阈值 π 弧度来平移相位角。绘制平移后的相位曲线。两次跳跃都发生了平移,因为它们大于跳跃阈值 π 弧度。

plot(W,unwrap(P),'ro-')

Figure contains an axes object. The axes object contains an object of type line.

现在使用 5 弧度的跳跃阈值平移相位角。绘制平移后的相位曲线。第一次跳跃不会平移,因为它小于跳跃阈值 5 弧度。

plot(W,unwrap(P,5),'ro-')

Figure contains an axes object. The axes object contains an object of type line.

定义包含相位角的两列矩阵 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.07P(3,1) = 6.67 的相位差大于 π

首先按列比较元素以展开相位角。将 dim 参数指定为 1。通过将第二个参数指定为 [],使用默认跳转阈值 π

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 指定为 2 而不是 1。

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

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。

数据类型: single | double

要应用相移的跳转阈值,指定为标量。低于 π 的跳转阈值与默认阈值 π 具有相同的效果。

数据类型: single | double

沿其运算的维度,指定为正整数标量。如果未指定值,则默认值是大小不等于 1 的第一个数组维度。

  • unwrap(P,[],1) 沿 P 的各列进行运算,并返回每列平移后的相位角。

    unwrap(P,[],1) column-wise operation

  • unwrap(P,[],2) 沿 P 的各行进行运算,并返回每行平移后的相位角。

    unwrap(P,[],2) row-wise operation

如果 dim 大于 ndims(P),则 unwrap(P,[],dim) 返回 P

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

输出参数

全部折叠

平移后的相位角,以向量、矩阵或多维数组形式返回。输出 Q 的大小始终与输入 P 的大小相同。

数据类型: single | double

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | |