在 MATLAB 中找到大于 2*pi 的相位

信息处理 matlab 离散信号 阶段 复杂的
2022-02-07 11:17:58

我正在努力在 MATLAB 中提取给定信号中的相位信息。我有以下向量;

signal = [exp(1i*10) exp(1i*100) exp(1i*1000) exp(1i*10000)];

当我在 MATLAB 中使用角度函数计算相位值时,它返回以下结果。

angle(signal) = -2.5664   -0.5310    0.9735   -2.8310

我想计算原始相位值,如下所示,

  [10 100 1000 10000];
  1. 如何在MATLAB中找到区间[-π,π]以上的原始相位值?
2个回答

如果您足够缓慢地增加样本之间的相位,您可以使用unwrap(angle(signal)). “足够慢”表示相位跳跃不超过2π; unwrap通过跟踪“总阶段”来工作。此处的Python 等效实现(请注意,您可以在此处配置discont大于π(或TOL),但它没有意义,angle因为它在[π,π])。

否则,不能,正如其他人所描述的那样。对于无限数量的输入,你会得到相同的输出,比如问“什么是NN % 2=0"(除以 2 余数)。

你不能。

y=eix,xR是多对一的关系,这意味着它不是唯一可逆的。角度是周期性的2π所以没有理由这样做。1000010000+2pi是相同的。