Hilbert变换的性质:
1.
序列x(n)通过Hilbert变换器后,信号频谱的幅度不发生变化。这是因为Hilbert变换器是全通滤波器,引起频谱变化的只是其相位。
2.
序列x(n)与其Hilbert变换^x(n)是正交的。
下面通过例子说明两条性质:
已知序列x(n)=cos(0.2*pi*n) 0<=n<20
(1) 计算序列x(n)的Hilbert变换^x(n),并比较两序列频谱的变化。
(2) 验证x(n)与^x(n)是正交的。
(3)
余弦序列的Hilbert变换是正弦序列,则序列的Hilbert变换为^x(n)=sin(0.2*pi*n),试比较扩展函数yhilbert.m与函数hilbert.m对序列x(n)进行Hilbert变换的结果。
MATLAB的实现程序如下:
N=20;
n=0:N-1;
xn=cos(0.2*pi*n);
hxn=hilbert(xn);
%part
1
%compare
FFT[x(n)] and FFT[Hilbert[x(n)]]
Xk=fft(xn);
hXk=fft(hxn);
aXk=abs(Xk);
ahXk=abs(hXk);
pXk=phase(Xk);
phXk=phase(hXk);
k=0:N-1;
subplot(2,2,1),stem(k,aXk)
xlabel('k');
title('amplitude of
FFT[x(n)]');
subplot(2,2,2),stem(k,pXk)
xlabel('k');
title('phase of
FFT[x(n)]');
subplot(2,2,3),stem(k,ahXk)
xlabel('k');
title('amplitude of
Hilbert[x(n)]');
subplot(2,2,4),stem(k,phXk)
xlabel('k');
title('phase of
FFT[Hilbertx(n)]');
%part
2
%method:if
sum(xn.*hxn) is closely 0
add=sum(xn.*hxn)
%part 3:compare
expansion function yhilbert.m and hilbert.m
y=hilbert(xn);
hxn
sn=sin(0.2*pi*n)
yn=imag(y)