# Hilbert transform in the frequency domain

As I know, the Hilbert transform $$H(x(t))=\frac{1}{\pi t}\star x(t)$$ in time domain is equal to $$-j \operatorname{sgn}(f) \cdot X(f)$$ in frequency domain. so I tried simple example using MATLAB as below,

x=[1,2,7,3];
y1=imag(hilbert(x));
f=[0,1,2,-1];
y2=ifft(-1i*sign(f).*fft(x));


but the result of y1 and y2 are different as below

y1 =
0.5000   -3.0000   -0.5000    3.0000
y2 =
0.5000 - 0.7500i  -3.0000 + 0.7500i  -0.5000 - 0.7500i   3.0000 + 0.7500i


just only the real part of y2 is same with y1.

Any one who knows why please explain.

• FFT = DFT != continuous Fourier transform. – Marcus Müller Nov 8 '20 at 10:07

The discrete-time Fourier transform (DTFT) is always periodic. This is also the case for the frequency response of the discrete-time Hilbert transformer. For this reason, the ideal frequency response is not only zero at DC but also at Nyquist, which corresponds to index $$2$$ for a signal of length $$4$$. Consequently, the correct way to do what you're trying to do is:

x = [1,2,7,3];
X = fft(x);
hil = [0,-1i,0,1i];
Y = hil .* X;
y = ifft(Y);
y =

0.5  -3  -0.5  3

• Thank you so much, it's nice to understand. – Junghak Ahn Nov 9 '20 at 1:46