整数倍抽取

当信号的抽样数据量太大时,为了减少数据量以便于处理和计算,我们把抽样数据每隔(D-1)个取一个,这里D是一个整数。这样的抽取称为整数倍抽取,D称为抽取因子。

整数倍抽取只需要针对输入信号等间隔取出数据重新依次排序即可。由于数字信号的频谱是周期的,且周期等于数据的采样频率。整数倍抽取相当于降低了数据采样频率,也就是说,抽取后信号的频谱周期降低为原来的1/D。

假设模拟信号只在0~2KHz的频段内有信号,利用6KHz的频率进行A/D采样,则采样后的信号频谱没有混叠,频谱周期为6KHz,信号频谱如下图(a)所示。
在这里插入图片描述
如果直接对6KHz的信号进行2倍抽取,则抽取后的信号频谱周期降为3KHz,频谱形状没有发生变化,但是周期缩短了,导致信号频谱出现了混叠,如上图(b)所示。混叠的原因还可以从采样定理的角度来理解,抽取后的信号采样频率为3KHz,而原始模拟信号的最高频率为2KHz,显然不满足无混叠抽样条件,出现频率混叠也就理所当然了。

因此,只有在抽取之后的抽样率仍然符合抽样定理的要求时,才能无失真地恢复出原始的模拟信号,否则就必须采取措施。通常采取的措施是抗混叠滤波。所谓抗混叠滤波,就是在抽取之前,对信号进行低通滤波,把信号的频带限制在抽样后频率的一般以下,这样,整数倍抽样的问题其实变成了一个低通滤波的问题。

对于无线通信来说,输入信号通常是经过告诉A/D转换后的数字信号。告诉A/D采样可以降低前端模拟滤波器的设计难度,也能减小有效频段内量化噪声的功率,提高信噪比,这相当于增加A/D转换器的位宽。设b为A/D转换器的字长,\beta 为M倍采样下的等效位宽,则
在这里插入图片描述
过采样和A/D转换器信噪比增加量之间的关系为:
在这里插入图片描述
即采样率每增加一倍,分辨率约增加1.5倍。如果在有用信号频带外没有其他频率成分信号的话,直接抽取是可行的,只要在抽取后仍然满足抽样定理即可。实际上,对于类似A/D转换常用操作来说,转换后的噪声通常为分布于整个频带内的白噪声。因此,为了进一步抑制噪声,在抽取前增加抗混叠滤波器仍然是有必要的。

Matlab仿真整数倍抽取前后的信号频谱
原始信号频率为200Hz,信噪比为40dB/Hz,采样率为10KHz的正弦信号。分别直接进行8倍抽取,以及先低通滤波后在8倍抽取的频谱图如下,显然经过滤波处理后信号的信噪比更高。
在这里插入图片描述
源码:

%定义参数
Ps=10000;    %正弦信号功率为40dBW
Pn0=1;       %噪声信号功率谱密度为0dBW/Hz
f=100;       %信号频率为100Hz
Fs=10000;    %采样频率为10KHz
Pn=Pn0*Fs;   %噪声信号功率
D=8;         %抽取倍数

%产生信号
t=0:1/Fs:0.5;
c=2*pi*f*t;
si=sin(c);%产生正弦波

%产生随机序列信号
noise=randn(1,length(t));%产生高斯白噪声序列

%产生带有加性高斯白噪声的正弦信号序列
sin_noise=sqrt(2*Ps)*si+sqrt(Pn)*noise;
sin_noise=sin_noise/max(abs(sin_noise));%归一化处理
Spec_sin_noise=20*log10(abs(fft(sin_noise)));
Spec_sin_noise=Spec_sin_noise-max(Spec_sin_noise);

%直接抽进行D倍抽取后的信号
d2=zeros(1,ceil(length(t)/D));
d2=sin_noise(1:D:length(t));
Spec_d2=20*log10(abs(fft(d2)));
Spec_d2=Spec_d2-max(Spec_d2);

%经低通滤波器后抽取
b=fir1(80,1/D);
FilterS=filter(b,1,sin_noise);
Fd2=zeros(1,ceil(length(t)/D));
Fd2=FilterS(1:D:length(t));
Spec_Fd2=20*log10(abs(fft(Fd2)));
Spec_Fd2=Spec_Fd2-max(Spec_Fd2);

%画图
dt=zeros(1,ceil(length(t)/D));
dt=t(1:D:length(t));

x=0:length(Spec_sin_noise)-1;
x=x/length(x)*Fs;
subplot(311); plot(x,Spec_sin_noise); axis([0 Fs/2 -50 0]);
xlabel('频率(Hz)','fontsize',8); ylabel('功率','fontsize',8);
title('C/N0=40dB/Hz的正弦波信号频谱图','fontsize',8);grid;
x=0:length(Spec_d2)-1;
x=x/length(x)*Fs/D;
subplot(312); plot(x,Spec_d2); axis([0 Fs/2/D -50 0]);
xlabel('频率(Hz)','fontsize',8); ylabel('功率','fontsize',8);
title('直接进行8倍抽取后的信号频谱图','fontsize',8);grid;
x=0:length(Spec_Fd2)-1;
x=x/length(x)*Fs/D;
subplot(313); plot(x,Spec_Fd2); axis([0 Fs/2/D -50 0]);
xlabel('频率(Hz)','fontsize',8); ylabel('功率','fontsize',8);
title('低通滤波后进行8倍抽取后的信号频谱图','fontsize',8);
grid;

猜你喜欢

转载自blog.csdn.net/gemengxia/article/details/115174445