0%

因果系统的实部自满性

这是信号系统考试的一道题,当时考场上有点感觉,但是没写出来,遂乱写一通交卷,好歹留点字在上面让老师捞一捞。现在回来看,卷子上写的内容简直是一坨答辩

当时考场上不知道为什么它要考这么一个奇怪的题,信号系统又不是数学系学的;然后后来在 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
%main function
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); %去除t=0时的nan值
modusig = cos(omega*t+phi); %载波信号采样序列

rec = gen_modu(org, modusig); %调幅
dem = de_modu(rec, modusig); %解调
ploter(org, rec, dem, modusig, t, fs, N); %画图函数(未显示)
end

%demodulate function
function dem = de_modu(rec, modusig)
%求接收到的被调制后的信号序列的Hilbert变换,hilbert()是MATLAB的toolbox中自带函数,返回复解析信号
hil = imag(hilbert(rec));
mag = sqrt(rec.^2 + hil.^2); %求幅值
ang = [rec./mag; hil./mag]; %求被调制后的信号序列的相角的cos和sin值
ang_modu = [modusig; imag(hilbert(modusig))]; %求载波信号序列相角的cos和sin值
dem = mag.*(ang(1,:).*ang_modu(1,:) + ang(2,:).*ang_modu(2,:)); %计算相位差并修正幅值
end

%modulate function
function rec = gen_modu(org, modusig)
rec = org.*modusig;
end

被调制的信号和载波信号分别如下图,其中被调制信号选择了 sinc 波,在频域表现为带宽为 的低通滤波器;而载波选择了频率为带宽 4 倍的余弦波

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

而调制后的信号则如

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

可以看到基本又回到了原信号,说明解调是有效的

1. 是单位阶跃函数,好像有的书上会写成别的符号