抗频谱混叠和抗周期延拓

本文讨论了在信号处理中上采样和下采样操作前后如何应用低通滤波器,以防止频谱混叠和周期延拓。重点强调了抗混叠滤波器在避免信号失真和满足奈奎斯特采样定理中的作用,以及在实际应用中的滤波策略选择。
摘要由CSDN通过智能技术生成

0、引言

本科期间,在《数字信号处理》中,有一章的主要内容是信号的抽取与插值,提到过上采样和低通滤波、下采样和低通滤波的顺序问题,读研期间再遇到还是有点不清楚,看来当时应该是没理解到位,所以再来回顾下。
在信号处理过程中,上采样和下采样是为了采用了高采样率的ADC和DAC,这能够降低模拟滤波器(模拟抗混叠滤波器和抗镜像滤波器)的成本。上采样提高信号的采样速率,采样速率上去了,那么模拟滤波器的过渡带宽就上去了,阶数就下来了,价格也就下来了。而经过ADC采样之后信号便可以采用数字滤波器进行处理,那采样完之后的信号为什么不直接进行处理?首先是没必要,因为我们索要进行处理的有用信号带宽不大(远远小于ADC采样率),其次则是直接处理代价也是很昂贵。

1、下采样

下采样的过程就是抽取的过程,最简单的下采样方式就是每隔sps(sps为下采样倍数)个点取一个。在MATLAB中使用代码:

y = downsample(signal, sps)

在下采样前需要通过低通滤波,目的是防止频谱混叠,所以这里的滤波器称为抗频谱混叠滤波器。可参考下例:
假设有一频率为1MHz的正弦波信号,采样率为100MHz,则为了满足低通采样定理,则此时最多理论上可以降采样50倍,假设进行10倍直接降采样(不进行抗混叠滤波),信号的信息依然完整保存,并没有丢失,只是采样率降了10倍。这种情况就是满足采样后依然满足奈奎斯特采样定理。
在这里插入图片描述
代码如下:

% 验证下采样前需要低通滤波,防止频谱混叠
clc
clear 
close all
Fs = 100e6;
N = 4096;
t = (0:N-1)/Fs; % 时间向量
f1 = 1e6;       % 第一个正弦信号频率为1MHz
f2 = 16e6;      % 第二个正弦信号频率为16MHz
% sig = 3*exp(1i*2*pi*f1*t)+5*exp(1i*2*pi*f2*t); 
sig = 3*sin(2*pi*f1*t); 
sigAfterFil = downsample(sig, 10);
figure(1);
subplot(211);
DrawComplexBilateralSpectrum(sig, Fs);
subplot(212);
DrawComplexBilateralSpectrum(sigAfterFil, Fs);

而如果此时假设原本在16MHz的地方还有一个正弦波,而依然采用10倍直接进行抽取,则16MHz正弦波信号则会混入到抽取之后的信号频谱中,如下图所示:
在这里插入图片描述
可知,原本应该出现在16MHz处的频谱以10MHz(100MHz通过10倍下采样后是10MHz)为对称轴发生了镜像混叠,出现在了4MHz处。

代码如下:

% 验证下采样前需要低通滤波,防止频谱混叠
clc
clear 
close all
Fs = 100e6;
N = 4096;
t = (0:N-1)/Fs; % 时间向量
f1 = 1e6;       % 第一个正弦信号频率为1MHz
f2 = 16e6;      % 第二个正弦信号频率为16MHz
% sig = 3*exp(1i*2*pi*f1*t)+5*exp(1i*2*pi*f2*t); 
sig = 3*sin(2*pi*f1*t)+5*sin(2*pi*f2*t); 
sigAfterFil = downsample(sig, 10);
figure(1);
subplot(211);
DrawComplexBilateralSpectrum(sig, Fs);
subplot(212);
DrawComplexBilateralSpectrum(sigAfterFil, Fs);

此时信号直接经过10倍降采样之后,16MHz信号混入到降采样后的频谱中,此时为了保证降采样之后信号只有1MHz的正弦波,则在抽取之前必须加个滤波器将16MHz信号滤除。因此可以知道,抗混叠滤波操作并不是必须的,只是为了要满足奈奎斯特采样定理要求。而实际采样过程中,首先在ADC采样之前的射频通路就首先会采用模拟滤波器滤波带外信号(因为电磁波信号布满整个频谱),否则ADC采样完就会发生频谱混叠。
再举个例子说明,假设采用240MHz的ADC采样短波全频段(30MHz 以下的信号),这时候信号的带宽为30MHz,这时发现数据率太高了,需要进行降采样,则如果要保存完整30Mhz带宽信号,则此时可以直接进行2倍降采样为120MHz的采样率(虽然理论上可以进行4倍抽取为60MHz,但一般尽量保持采样率为信号频率的4倍以上)而不需要提前进行任何滤波操作。但假设此时只要低通的5MHz的信号,其余的不需要,则理论上从240MHz下降到10MHz可以抽取24倍,保守点抽取12倍,此时如果不提前进行滤波,则5MHz到30MHz的信号就会混进到降采样后的频谱中。这就体现了降采样之前进行抗混叠滤波的必要性。
参考:在做降采样处理时,是先滤波,还是先降采样,二者有区别吗?作者:单琼信

2、上采样

上采样的过程就是插值的过程,最简单的上采样方式就是每隔sps(sps为上采样倍数)个点插一个零。在MATLAB中使用代码:

y = upsample(signal,sps);

在上采样后需要通过低通滤波,目的是防止周期延拓,所以这里的滤波器称为抗周期延拓滤波器(或者抗镜像滤波器)。这是因为直接进行插值后,采样率变大,原始的频谱的镜像会在其他地方(出现在K×fs处)。用MATLAB仿真一下就可以很容易看出镜像频谱,依然假设1MHz的正弦波信号,采用100MHz进行采样,而后直接进行10倍插值操作,得到插值前后的信号频谱如下:
在这里插入图片描述
代码如下:

% 验证上采样后需要低通滤波,防止周期延拓
clc
clear 
close all
Fs = 100e6;
N = 4096;
t = (0:N-1)/Fs; % 时间向量
f1 = 1e6;       % 第一个正弦信号频率为1MHz
sig = 3*sin(2*pi*f1*t); 
sigAfterFil = upsample(sig, 10);
figure(1);
subplot(211);
DrawComplexBilateralSpectrum(sig, Fs);
subplot(212);
DrawComplexBilateralSpectrum(sigAfterFil, Fs);

理论上的周期延拓频谱可以有具体公式去推导,而直观上解释出现高频信号:从原来的两点信号中插入若干0值,这样从实际信号间从有值到0值或者从0值到有值,信号发生突变,而信号的突变就意味着信号包含丰富的高频信息(如图像的边缘、孤立点,还有矩形波),这就出现了高频频谱。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值