hilbert的过程可以理论上解释如下
step 1: x(n)--->X(k) FFT计算;
step 2:
X(k) 正频率部分全部旋转-90度,等效于multiplied by -j;
X(k) 负频率部分全部旋转90度,等效于multiplied by j; ------ideal hilbert 变换的定义;我觉得这里的0频率其实没有单独处理,有点问题;
最终相当于 Y(k)=X(k)*H(k), H(k)就是hilbert transform的频率相应;
step 3: Y(k)----y(n), IFFT计算,原理上就是x(n)的hilbert 变换;
至于step 4, real 操作,是因为FFT计算或者你使用的计算系统平台的计算精度所致,
例如cos(wo*t)信号作FFT计算,理论上你得到的FFT应该是一个实数vector(虚部都为0),但实际上你很可能得到仍然是个复数,只是虚部都是很小的数而已,例如1e-16数量级,比如通常matlab的设置环境计算就是如此; |