# Why do we discard imaginary part of the phase spectrum?

Suppose I compute phase spectrum from the fftn function in MATLAB as

image1=imread('cameraman.tif');
figure,imshow(image1);

fourier_transform=fft2(image1);%take fourier transform of gray scale image

phase_spectrum=exp(1j*angle(fourier_transform));
imshow(phase_spectrum, [])


Here, by using imshow(phase_spectrum,[]) we first discard the imaginary part and then normalize.

But why do we discard the imaginary part of the phase spectrum ? Whether it's spectrum is same as real part with 90 degree phase shift ?

Is it not useful ? Also,what should be done to get whole phase spectrum not just real part of it?

• We don't discard the phase spectrum if we need to reconstruct the signal from it. Only thing is much of the play about frequency is visible mostly from the magnitude spectrum. No doubt there will also be rich information from phase spectrum. Jun 27, 2015 at 12:18
• @Dipan sorry sir but you are talking about discarding of phase spectrum and my question is about discarding of imaginary part from the phase spectrum :-) Jun 27, 2015 at 12:27
• This: exp(1j*angle(fourier_transform)) gives normalised phase spectrum which is complex. Use imagesc(real(phase_spectrum)) to see real part and imagesc(imag(phase_spectrum)) to see imaginary part. Jun 27, 2015 at 12:50
• @geometrikal could you tell me whether phase spectrum is real function or complex function? Jun 27, 2015 at 12:59
• Phase is an angle. It represents a shift of the corresponding sinusoid. It can be represented as a real number, the angle value. However, angles are periodic. E.g. 370 degrees equals 10 degrees. This can be problematic sometimes. People often prefer to work with the complex exponential form of an angle - exp(i * angle) - as this makes the algebra easier. So phase spectrum can either be real or complex. With the Fourier transform is comes out complex but is easily converted in Matlab using the angle function. Jun 27, 2015 at 13:21

Phase spectrum is a real function. Whatever methods/functions (correct or not) you use to obtain it does not and shall not change this fact. $H(e^{j\omega}) = |H(e^{j\omega})| e^{j\phi(w)}$ where the $\phi(w)$ contains the phase spectrum and the absolute value part is the magnitude spectrum. Both are real. You shall use a proper function and method in your environment to obtain those signals from $H(e^{j\omega})$