一、混叠
定义:在信号处理领域中,混叠是指采样信号还原成连续信号时产生彼此交叠而出现信号失真的现象。
危害:信号发生混叠时,无法从采样信号中还原原始信号。
混叠可能发生在时域,叫做时域混叠;也可能发生在频域,叫做空间混叠。
1. 从时域信号重构理解混叠
如下图,图中信号是一个单频的正弦信号,信号频率为 fs。
(1)当用 fs 的采样频率采样时,得到的信号是一条直流的曲线/直线;
(2)当用 2fs 的采样频率采样时,得到的信号是一个三角波信号;
(3)当用 4/3fs 的采样频率采样时,得到的是一个更低频的三角波信号。
以上的几种采样频率均不能重构原信号,从而出现信号混叠,即采样信号不能保持原信号的频谱特性。因此,要想不发生信号混叠,采样率必须高于信号最高频率的两倍,也就是说,在信号的一个周期内,至少出现两个以上的采样点!
(参考:混叠)
(参考:奈奎斯特采样定理(Nyquist))
2. 从频域角度理解混叠
已知一个合成信号是由两个单频正弦信号组成,频率分别是 20Hz 和 40Hz,我用 60Hz 的采样率对信号进行采样后进行傅里叶变换,如果只画正频部分(也就是说只画 0~30Hz 部分),发现无法观察到 40Hz 的频率能量尖峰,这时才想到发生了频谱混叠~只有采样频率大于信号最大频率的 2 倍时才能在正频部分看到所有频率的能量尖峰~(从 Matlab 仿真的角度理解奈奎斯特采样定理的合理性)
二、奈奎斯特采样定理
采样定理,又称奈奎斯特采样定理。采样定理是连续时间信号(通常称为”模拟信号“)和离散时间信号(通常称为”数字信号“)之间的基本桥梁。该定理说明了采样频率和信号频谱之间的关系,是连续信号离散化的基本依据。
定义:时域上的采样等价于频域的周期延拓,采样频率 fs 要大于信号最高频率的 fmax 的 2 倍,采样后的信号才能完整的保留原始信号中的信息,才不会发生频谱混叠。
奈奎斯特频率:为防止信号混叠需要的最小采样频率;
奈奎斯特间隔:为防止信号混叠最大允许的采样间隔。
(参考:采样定理)
(参考:奈奎斯特采样定理)
(参考:奈奎斯特频率)
三、如何防止频谱混叠?
前文提到了频谱混叠的原因:采样频率过低。所以要想解决这个问题,有两种途径:
(1)提高采样频率;
(2)在采样之前加一个抗混叠低通滤波器。(把信号中超过 fs/2 的频率成分过滤掉,剩下的信号就满足了奈奎斯特采样定理的条件)
(参考:混叠)
(参考:明晰频谱混叠、泄露和栅栏效应(上篇))
(参考:频谱混叠)
四、举个栗子~
求一个合成信号的频谱,合成信号由两个单频正弦信号相加得到,频率分别为:20Hz 和 40Hz。
(1)采样频率设置为 90Hz(满足奈奎斯特采样定理)
% 频谱混叠仿真(奈奎斯特采样定理)
%% 参数设置
fs = 90; % 采样频率(满足奈奎斯特采样定理:要大于信号最大频率的两倍!!!)
L = 10; % 时间长度
t = 0 : 1/fs : L; % 时间坐标
%% 生成信号
f1 = 20; % 信号1频率
f2 = 40; % 信号2频率
s1 = 5 * sin(2 * pi * f1 * t);
s2 = 2 * sin(2 * pi * f2 * t);
s = s1 + s2; % 合成信号
%% FFT
numfft = 512;
s_fft = fft(s, numfft);
p = pow2db(abs(s_fft) .^ 2); % 功率
f = (0 : numfft-1) / numfft * fs; % 频率
magnitude = abs(s_fft) ./ numfft; % 幅度谱
phase = angle(s_fft); % 相位谱
%% 作图
figure(1);
subplot(3, 1, 1);
plot(f, p, 'linewidth', 1.5); axis('tight'); title([num2str(numfft), '点傅里叶变换']);
subplot(3, 1, 2);
plot(f, magnitude, 'linewidth', 1.5); axis('tight'); title('幅度谱');
subplot(3, 1, 3);
plot(f, phase, 'linewidth', 1.5); axis('tight'); title('相位谱');
运行结果:
(2)将采样频率设置为 200Hz(满足奈奎斯特采样定理)
(3)将采样频率设置为 80Hz(不满足奈奎斯特采样定理)
(4)将采样频率设置为 80Hz(不满足奈奎斯特采样定理)
结论:从上面三个图可以看出,当满足奈奎斯特采样定理时,从频谱上能够分析到两个频率能量尖峰,对应的就是原始 20Hz 和 40Hz 的两个频率信号(只看正频部分的一半),即没发生混叠。而当不满足奈奎斯特采样定理时,频谱上无法观察到两个能量尖峰,也就是说发生了频谱混叠,无法根据傅里叶逆变换还原原始信号。