这是信号系统考试的一道题,当时考场上有点感觉,但是没写出来,遂乱写一通交卷,好歹留点字在上面让老师捞一捞。现在回来看,卷子上写的内容简直是一坨答辩
当时考场上不知道为什么它要考这么一个奇怪的题,信号系统又不是数学系学的;然后后来在 Oppenheim 的信号与系统第二版的第四章习题 4.47 和 4.48 看到了习题里确实有因果系统的实部自满特性,不过老师没布置这个习题,所以也就没看过。在了解了一些相关内容后发现确实是自己才疏学浅了
考题是这样的
是一个因果系统的单位脉冲响应且为实的, 是它的 Fourier 变换,记 是 的实部, 是 的虚部,求证:
实部自满性
因果系统(前提是单位脉冲响应在原点没有奇异性)有所谓的实部自满性,就是其 Fourier 变换的实部能包含该信号全部信息
关于这一点,课本内容表明对于任何实信号都有
而因果信号 的偶部是没有信号重叠的,所以只要将 反变换回时域,然后把 的部分剪掉,再乘以 2 就能得到原信号 ,也就是 已经包含了原信号 的全部信息
也可以从另一个角度来看,先将 写为 ,这是因为 是因果的1,所以 的部分恒为零,然后由于
以及 Fourier 变换的相乘性质 ,所以
将 移到左边就是
现在将 写为 ,上式成为
令实部虚部分别相等就得到考题要求证明的结果。这表明因果系统 Fourier 变换的实部和虚部是通过一个卷积关系互相关联的,也就是给定其实部也能求出虚部,同样说明了其具有实部自满性
Hilbert 变换
上面过程中出现的式子
称为 的 Hilbert 变换
复解析信号
这个变换作用在时域上时将会有
利用 Fourier 变换的对偶性,即已知 的 Fourier 变换是 ,那么应该有
而又因为 ,所以
这实际是一个符号函数
然后再以 为实部,以它的 Hilbert 变换为虚部构造一个新信号,将会有
这将 的频谱进行了翻折并相加,称 为原信号 的复解析信号
Hilbert 变换与解调
Hilbert 变换的一个用法是用来解调,设 是调制完的信号,以调幅为例也就是 , ,这里 是被调制的信号
这里利用了
如果被调制信号的带宽低于载波频率,即如果 时 且 ,那么 将全部在 的区域,而 将全部在 的区域,所以
这里则利用了
所以 ,这样只要将接收到的 和其 Hilbert 变换平方相加再开方就有
而为了消去绝对值,则可以将 写为
这里当 为负值时 ,那么在接收到被调制的信号后,以及在已知载波信号的情况下,就可以有
而 则可以通过 来得到, 前面已经得出来了。最后 ,这样就完成了对调幅信号解调的任务,下面是用 matlab 进行的试验
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| function hilbertdemod() fs = 1000; t_0 = -8; N = 16000; t = (0:N-1)*(1/fs)+t_0; omega = 2*pi; phi = 0; org = sin(pi*t/2)./(pi*t); org(N/2+1) = org(N/2); modusig = cos(omega*t+phi);
rec = gen_modu(org, modusig); dem = de_modu(rec, modusig); ploter(org, rec, dem, modusig, t, fs, N); end
function dem = de_modu(rec, modusig) hil = imag(hilbert(rec)); mag = sqrt(rec.^2 + hil.^2); ang = [rec./mag; hil./mag]; ang_modu = [modusig; imag(hilbert(modusig))]; dem = mag.*(ang(1,:).*ang_modu(1,:) + ang(2,:).*ang_modu(2,:)); end
function rec = gen_modu(org, modusig) rec = org.*modusig; end
|
被调制的信号和载波信号分别如下图,其中被调制信号选择了 sinc 波,在频域表现为带宽为 的低通滤波器;而载波选择了频率为带宽 4 倍的余弦波

通过 FFT 可以看出被调制信号和载波信号的频率分量

而调制后的信号则如

通过 Hilbert 变换解调后的信号则是

可以看到基本又回到了原信号,说明解调是有效的
1. 是单位阶跃函数,好像有的书上会写成别的符号 ↩