计算复数的相位
问题描述:
我有一个图像表示为复数矩阵,矩阵的大小为m×m
。计算复数的相位
哪一个是计算图像相位的正确方法?
-
angle
/atan2
Img_phase = angle(img);
或
Img_phase = atan2 (imag(img),real(img));
或两者都是正确的吗?
-
在计算相位之前是否需要执行傅里叶变换?
img_fft = fftshift (fft2 (img));
然后
Img_phase = angle(img_fft);
或
Img_phase = atan2 (imag(img_fft),real(img_fft));
如果我有一个以上的图像,还需要计算相位之前以归一化图像(由一个最大值除以) ?
For example these images which represent the outputs of a simulation。更多的信息可以在this link
我已经输出到matlab(作为复数矩阵)进行更多的处理。首先我要计算我之前提到的阶段。
答
angle
VS atan2
atan2(imag(img),real(img))
和angle(img)
之间的区别是很清楚的:是没有的。检查的angle
源代码:
function p = angle(h) p = atan2(imag(h), real(h));
所以,你做任何你想要的,但angle
可能比较容易理解。
我必须采取傅里叶变换吗?
这取决于图像的含义和你想要的。
我应该规范化图像吗?
没关系。该角度不取决于实际比例因子,即:
angle(1+3i) == angle(5*(1+3i))
可能出现[图像的阶段意味着什么?]的重复(https://stackoverflow.com/questions/9644708/what-does-phase图像手段) – Wolfie
图像的相位*没有意义。 –
@Wolfie提供的链接不回答我的问题。 – Shdotcom