我在 Simulink 中使用 CORDIC ATAN 模块。我正在使用这个块来计算相位差。
这是我正在使用的模型的一部分:
我将输入 a 和 b 设为 0,并且我期望 的值也Phase_Signal
为零。
但显然不是。我得到Phase_Signal
1.7277。
如果我没有正确配置 CORDIC 块,请告诉我。
ATAN 块参数:
谢谢
基兰
你的期望是错误的。点 (0,0) 没有唯一的相位。每个值都是正确的。为了帮助您理解,可视化具有从欧几里德表示 (a,b) 转换为极坐标 (r, phi) 的坐标的点。对于除 (0,0) 之外的每个点,您都会为 a 和 b 获得一个唯一的 r 和 phi。但是对于 (0,0),只有 r 唯一地标识为 r = 0。但是角度可以是每个可能的值。
因此,对于输入 (0,0),您可以获得任何相位 - 甚至不总是相同,而是一次 0、一次 1.7 和一次 0.5,或其他任何相位(但公平地说,Xilinx coregen cordic 内核是确定性和无状态的,所以结果应该使用它们时始终保持相同)。