相位和展开相位

相位 (Phase)

相位是一个周期信号在一个周期内的位置,通常以角度(度或弧度)表示。在许多应用中,相位被限制在一个周期内。例如,相位通常被限定在 −180∘到 +180∘ 或 0∘ 到 360∘ 之间。

示例

−90∘ 表示信号在周期的三分之一处。
180∘ 表示信号在周期的一半处。

展开相位 (Unwrapped Phase)

展开相位是指将相位角连续累加,消除相位跳变,使其成为线性变化的相位。这在处理跨越多个周期的信号时尤为重要,因为它避免了相位在 −180∘和 +180∘之间的跳变。这种处理方式可以更准确地反映信号的相位变化趋势。

示例

如果信号的相位从 170∘跳变到 −170∘,展开相位会将其处理为 170∘到 190∘。

相位和展开相位的区别

  • 相位:受限于一个周期范围内的相位角,通常在 −180∘ 到 +180∘之间。
  • 展开相位:累积的相位角,不受周期限制,线性变化。

计算展开相位的步骤

  • 读取相位数据:从信号中读取初始相位数据。
  • 检测相位跳变:在相位跨越 −180∘和 +180∘时检测相位跳变。

一般来说,可以通过计算相邻两个相位值的差值来检测相位跳变。如果相邻两个相位值的差值超过某个阈值(例如 180∘),则认为发生了相位跳变。为了使相位连续,可以在发生相位跳变时,对后续的相位值进行调整。

  • 累加相位差:消除相位跳变,将其转换为连续变化的相位角。

示例

import numpy as np
import matplotlib.pyplot as plt

# 示例数据,10个频率点的实部和虚部
real = [1, 0.707, 0, -0.707, -1, -0.707, 0, 0.707, 1, 0.5]
imag = [0, 0.707, 1, 0.707, 0, -0.707, -1, -0.707, 0, -0.866]

# 计算相位
phase = np.arctan2(imag, real)  # np.arctan2返回值在[-pi, pi]之间
phase_deg = np.degrees(phase)  # 转换为角度

# 手动计算展开相位
unwrapped_phase_deg = np.zeros_like(phase_deg)
unwrapped_phase_deg[0] = phase_deg[0]

for i in range(1, len(phase_deg)):
    delta = phase_deg[i] - phase_deg[i - 1]
    if delta > 180:
        unwrapped_phase_deg[i] = unwrapped_phase_deg[i - 1] + delta - 360
    elif delta < -180:
        unwrapped_phase_deg[i] = unwrapped_phase_deg[i - 1] + delta + 360
    else:
        unwrapped_phase_deg[i] = unwrapped_phase_deg[i - 1] + delta

# 打印相位和展开相位
print("实部: ", real)
print("虚部: ", imag)
print("相位: ", phase_deg)
print("展开相位: ", unwrapped_phase_deg)

# 绘制相位和展开相位
plt.figure(figsize=(12, 6))
plt.plot(phase_deg, label="相位")
plt.plot(unwrapped_phase_deg, label="展开相位")
plt.xlabel("频率点")
plt.ylabel("相位 (度)")
plt.legend()
plt.title("相位和展开相位")
plt.show()

实部:  [1, 0.707, 0, -0.707, -1, -0.707, 0, 0.707, 1, 0.5]
虚部:  [0, 0.707, 1, 0.707, 0, -0.707, -1, -0.707, 0, -0.866]

相位:  [   0.           45.           90.          135.          180.
 -135.          -90.          -45.            0.          -59.99927222]
 
展开相位:  [  0.          45.          90.         135.         180.
 225.         270.         315.         360.         300.00072778]

在这里插入图片描述

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI1.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值