1

我在 Matlab 中处理复数,但它们的角度存在一些问题。

我有一个角度向量,Ph。然后我想构造一个复数向量 C:

C=exp(j*Ph). 

问题是 Ph 包含负相位,因为它具有奇数对称性,因此可以进一步用于使用 IFFT 合成信号。这个负相位在向量 C 中被包裹到 0-2pi,失去了它们的奇数对称性。

有什么办法可以防止 Matlab 包裹角度?

这样做可能是不可能的,因为我们知道 -30º 的相位在数学上与 330º 的相位相同。但我想知道包裹相位是否会破坏它们所需的奇数对称性。

我附上一张图片来说明我的问题,谢谢!

在此处输入图像描述

4

1 回答 1

1

如果您有 Mapping Toolbox,则有一个wrapToPi函数可以满足您的需求。

没有它,您将需要实现自己的:

function [ lambdaWrapped ] = myWrapToPi( lambda )
   lambdaWrapped = lambda - floor(lambda / (2*pi)) * 2*pi;
   lambdaWrapped(lambdaWrapped > pi) = lambdaWrapped(lambdaWrapped > pi) - 2*pi;
end

第一行包含从 0-2pi 的所有内容,下一行取大于 pi 的值并将它们移动到 -pi 到 0 的范围内。

phase = linspace(0, 2*pi, 100);
plot(phase);
plot(myWrapToPi(phase));

原始情节 包裹情节

于 2015-03-03T13:54:51.010 回答