频域中的希尔伯特变换

信息处理 matlab fft 卷积 IFFT 希尔伯特变换
2022-02-17 00:40:57

据我所知,希尔伯特变换

H(x(t))=1πtx(t)
在时域中等于
jsgn(f)X(f)
在频域。所以我尝试了使用 MATLAB 的简单示例,如下所示,

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

但 和 的结果y1不同y2如下

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

只是只有实部与y2相同y1

哪位知道原因的请解释一下。

1个回答

离散时间傅里叶变换 (DTFT) 始终是周期性的。离散时间希尔伯特变换器的频率响应也是如此。因此,理想的频率响应不仅在 DC 处为零,而且在 Nyquist 处也为零,这对应于指数2对于长度的信号4. 因此,做你想做的事情的正确方法是:

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