资源描述
带通信号的采样与重建
一、带通采样定理的理论基础
基带采样定理只讨论了其频谱分布在(0,)的基带信号的采样问题。作为接收机的模数转换来说:接收信号大多为已调制的射频信号。射频信号相应的频率上限远高于基带信号的频率上限。这时如果想采用基带采样就需要非常高的采样速率!这是现实中的A/D难以实现的。这时,低通采样定理已经不能满足实际中的使用要求。
带通采样定理是适用于这样的带通信号的采样理论基础,下面给出定理。
带通采样定理:设一个频率带限信号其频带限制在内,如果其采样速率满足式:
= (2-1)
式中, 取能满足的最大整数(0,1,2…),则用进行等间隔采样所得到的信号采样值能准确的确定原信号。
带通采样定理使用的前提条件是:只允许在其中一个频带上存在信号,而不允许在不同的频带同时存在信号,否则将会引起信号混叠[1]。如图2.3所示,为满足这一条件的一种方案,采用跟踪滤波器的办法来解决,即在采样前先进行滤波[1] ,也就是当需要对位于某一个中心频率的带通信号进行采样时,就先把跟踪滤波器调到与之对应的中心频率上,滤出所感兴趣的带通信号,然后再进行采样,以防止信号混叠。这样的跟踪滤波器称之为抗混叠滤波器。
图2.3 带通信号采样
式(2-1)用带通信号的中心频率和频带宽度B也可用式(2-2)表示:
(2-2)
式中,,取能满足(B为频带宽度)的最大正
整数。
当频带宽带B一定时,为了能用最低采样速率即两倍频带宽度的采样速率(),带通信号的中心频率必须满足。也即信号的最高或最低频率是信号的整数倍。
带通采样理论的应用大大降低了所需的射频采样频率,为后面的实时处理奠定了基础。但是从软件无线电的要求来看,带通采样的带宽应是越宽越好,这样对不同基带带宽的信号会有更好的适应性,在相同的工作频率范围内所需要的“盲区”采样频率数量减少,有利于简化系统设计。另外,当对于一个频率很高的射频信号采样时,如果采样频率设的太低,对提高采样量化的信噪比是不利的。所以在可能的情况下,带通采样频率应该尽可能选的高一些,使瞬时采样带宽尽可能宽。但是随着采样速率的提高带来的一个问题是采样后的数据流速率很高。因此一个实际的无线电通信带宽一般为几千赫兹到几百赫兹。实际对单信号采样时采样率是不高的。所以对这种窄带信号的采样数据流降速是完全可能的。多速率信号处理技术为这种降速处理实现提供了理论依据。
二、带通采样过程
待采样信号为中频是100MHz,带宽为2MHz的带通信号:
fc0=100e6; //中频频率
fc1=99e6; //信号一的频率
fc2=101e6; //信号二的频率
fs1=3e6; //欠采样的采样频率
fs2=4e6; //临界采样采样频率
fs3=6e6; //大于2倍带宽的采样速率
f0=250e6 //用以模拟连续信号的离散信号采样速率(远大于nyquist率)
t=0:1/f0:1e-6;
xt0=2*cos(2*pi*fc1*t)+4*cos(2*pi*fc2*t);
待采样信号的波形和频谱如图所示:
图1 原信号波形及频谱
按照如上的三种采样频率对待采样信号进行采样,得到的三个信号及其幅度谱如图所示:
1) 欠采样条件下得到的采样信号:
图2 欠采样信号的波形及幅度谱
2) 临界采样:
图3 临界采样信号的波形及幅度谱
3) 满足采样条件的采样信号
图4 正常采样信号的波形及幅度谱
三、信号重建
1)
设计通带为99~101MHz的4阶巴特沃兹一型IIR滤波器来作为信号恢复的模拟滤波器,滤波器的设计过程及幅频响应特性如图所示:
fs=250e6;
N=4;
figure(6);
Wn = [0.792 0.808];
[b,a]=butter(N,Wn,'bandpass');
[h,w]=freqz(b,a);
plot(w/pi*fs/2,abs(h)); grid;
title('Amplitude Response');
xlabel('Frequency (Hz)'); ylabel('Amplitude');
图1 滤波器的幅度响应
2)
将三种采样信号的到的数据流通过信号恢复滤波器,即上述的巴特沃兹一型滤波器,得到的结果如下:
图2欠采样恢复
图3 临界采样恢复
图3 正常采样恢复
四、结果分析
从结果可见:欠采样信号进行恢复时,从信号完整角度进行观察便可以发现信号的不同,缺少了原信号的部分信息。而临界采样信号的恢复,在信号周期上有一定的变化,比原信号的信息有所丢失。正常采样下的信号可以恢复出原信号一个完整周期的频谱。但由于所选取信号长度的问题,没能恢复全部信号,但这已经能够证明带通采样定理的正确性,即采样后的信号没有丢失原信号的信息。
附:
%´øÍ¨²ÉÑù¶¨ÀíµÄÑéÖ¤%
%´øÍ¨ÖÐÐÄÆµÂÊΪfc=100MHz,ÐÅºÅÆµÂÊΪf1=99MHzºÍf2=101MHz%
%²ÉÑùËÙÂÊ·Ö±ðΪ3MHz¡¢4MHz¡¢6MHz%
%%%% B=2MHz,ÀíÂÛÉϵ±²ÉÑùƵÂÊ´ïµ½¶þ±¶´ø¿íʱ£ºÐÅºÅµÄÆµÆ×²»»á»ìµþ¡£%%%%
clear all; clc; close all;
fc0=100e6;
fc1=99e6; %ÐźÅ1µÄƵÂÊ
fc2=101e6; %ÐźÅ2µÄƵÂÊ
fs1=3e6; %µÍÓÚ¶þ±¶´ø¿íµÄ²ÉÑùƵÂÊ
fs2=4e6; %ÁÙ½ç²ÉÑùƵÂÊ
fs3=6e6; %´óÓÚ¶þ±¶´û¿îµÄ²ÉÑùƵÂÊ
f0=250e6;%±íʾÔÐźŵIJÉÑùƵÂÊ£¬±ÈÆä²ÉÑùƵÂʸßÒ»¸öÊýÁ¿¼¶
%%%µÍͨ²ÉÑù¶¨ÀíµÄ²ÉÑù×÷ΪÔÄ£ÄâÐźÅ%%%
t=0:1/f0:1e-6;
N=1e-6*f0;
xt0=2*cos(2*pi*fc1*t)+4*cos(2*pi*fc2*t);
figure(1);
subplot(2,1,1);
plot(t,xt0);
title('´ý²ÉÑùÐźŲ¨ÐÎ');
xlabel('x');ylabel('xt');
yjw0=fft(xt0,N);
absy0=abs(yjw0);
f=(0:N-1)*f0/N;
subplot(2,1,2);
plot(f,absy0);
title('´ý²ÉÑùÐÅºÅÆµÆ×')
xlabel('Êý×ÖÆµÂÊ');ylabel('·ù¶ÈÆ×')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%´øÍ¨²ÉÑù¶¨ÀíϵÄÇ·²ÉÑù²¨Ðμ°ÆµÆ×%%%
t=0:1/fs1:5e-5;
N=5e-5*fs1;
xts1=2*cos(2*pi*fc1*t)+4*cos(2*pi*fc2*t);
figure(2);
subplot(2,1,1);
plot(t,xts1);
title('Ç·²ÉÑùÐźŲ¨ÐÎ');
xlabel('x');ylabel('xt');
yjws1=fft(xts1,N);
absys1=abs(yjws1);
f=(0:N-1)*fs1/N;
subplot(2,1,2);
plot(f,absys1);
xlabel('Êý×ÖÆµÂÊ');ylabel('·ù¶ÈÆ×')
title('Ç·²ÉÑùÐÅºÅÆµÆ×')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%´øÍ¨²ÉÑù¶¨ÀíÏÂÁÙ½ç²ÉÑùµÄ²¨Ðμ°ÆµÆ×%%%
t=0:1/fs2:5e-5;
N=5e-5*fs2;
xts2=2*cos(2*pi*fc1*t)+4*cos(2*pi*fc2*t);
figure(3);
subplot(2,1,1);
plot(t,xts2);
title('ÁÙ½ç²ÉÑùÐźŲ¨ÐÎ');
xlabel('x');ylabel('xt');
yjws2=fft(xts2,N);
absys2=abs(yjws2);
f=(0:N-1)*fs2/N;
subplot(2,1,2);
plot(f,absys2);
xlabel('Êý×ÖÆµÂÊ');ylabel('·ù¶ÈÆ×')
title('ÁÙ½ç²ÉÑùÐÅºÅÆµÆ×');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%´óÓÚÁÙ½ç²ÉÑùƵÂʵĴøÍ¨²ÉÑùµÄ²¨Ðμ°ÆµÆ×%%%
t=0:1/fs3:5e-5;
N=5e-5*fs3;
xts3=2*cos(2*pi*fc1*t)+4*cos(2*pi*fc2*t);
figure(4);
subplot(2,1,1);
plot(t,xts3);
title('´óÓÚÁÙ½ç²ÉÑùÐźŲ¨ÐÎ');
xlabel('x');ylabel('xt');
yjws3=fft(xts3,N);
absys3=abs(yjws3);
f=(0:N-1)*fs3/N;
subplot(2,1,2);
plot(f,absys3);
xlabel('Êý×ÖÆµÂÊ');ylabel('·ù¶ÈÆ×')
title('´óÓÚÁÙ½ç²ÉÑùÐÅºÅÆµÆ×');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fs=250e6;
N=4;
figure(6);
Wn = [0.792 0.808];
[b,a]=butter(N,Wn,'bandpass');
[h,w]=freqz(b,a);
plot(w/pi*fs/2,abs(h)); grid;
title('Amplitude Response');
xlabel('Frequency (Hz)'); ylabel('Amplitude');
%%%Ç·²ÉÑùÐźŵĻָ´%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(7);
yrets1=filter(b,a,xts1);
plot(yrets1);
title('Ç·²ÉÑù»Ö¸´')
%%%%%ÁÙ½ç²ÉÑùÐźŵĻָ´%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(8);
yrets2=filter(b,a,xts2);
plot(yrets2);
xlabel('t');ylabel('xt_rebuild');
title('ÁÙ½ç²ÉÑù»Ö¸´')
%%%%%%Âú×ã²ÉÑù¶¨ÀíÐźŵĻָ´%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(9);
yrets3=filter(b,a,xts3);
plot(yrets3);
xlabel('t');ylabel('xt_rebuild');
title('Õý³£²ÉÑù»Ö¸´')
展开阅读全文