尚影,陈曙光
(1.阜阳幼儿师范专科学校 小学教育学院,安徽 阜阳 236000;2.阜阳师范大学 电学院,安徽 阜阳 236000)
抽样定理在我们的生活中有着广泛的应用,你看不见它但它却是处处存在。我们打的电话通过声波产生模拟信号,再通过抽样把模拟信号转成数字信号,通过线路或无线电的传输在接收端把数字信号恢复成模拟信号,这里面就有着对信号抽样与恢复的处理。连续时间的模拟信号的抽样,虽然在理论上不是必须按照等时间间隔抽样进行的,但是实际上多是如此。模拟信号抽样后成为抽样信号,它在时间上是离散的,在取值上却是连续地形成离散模拟信号,其在经过量化形成数字信号后编码调制变成二进制码元在通信系统中进行传输[1]。当今是信息高速发展的时代,信息无处不在,它伴随在人们生活的方方面面,人们需要了解接收它并加以传递。而在传输信息的过程中,例如我们看电视、听收音机、上网等等,都要用到抽样定理智能化算法。
MATLAB是一个集成的系统,集成的有科学计算、图像和声音的处理等功能,它有友好的用户界面与使用帮助功能[2]。
作图功能是MATLAB的主要功能,要对抽样定理智能化算法实现仿真就要有一个原始的模拟信号,对模拟信号进行抽样形成抽样信号以及对抽样信号恢复成原始的信号,这一过程中的信号都可在MATLAB中很容易地制作出来。我们在仿真中,对抽样定理智能化算法进行实现就可以用MATLAB软件,它可以很容易使实验的进行很少受实验室硬件的影响,达到比较理想的结论,并且能减少实验过程中的人力与财力的浪费,缩短实验的时间与计算量[3]。
抽样定理智能化算法的定义:对一个频带限制在(0,fh)内的时间连续信号f(t),如果以小于等于1/(2fh)的时间间隔对它进行抽样,那么根据这些抽样值就能无失真的恢复原信号。设连续信号的最高频率为Fmax,若抽样频率Fs≥2Fmax,则抽样信号能做到无失真的恢复出原始的连续信号;否则Fs<2Fmax会使抽样信号中的频谱出现混叠现象,致使抽样信号不能恢复原连续信号而产生失真[4]。
抽样过程原理图如下[6]:
在理想抽样的情形下对一个连续信号fa(t)进行抽样,其抽样信号就是这个信号和周期性脉冲信号的乘积,即:
(1)
(2)
(3)
将上面的(2)式代入(1)式,并进行傅里叶变换,得出下式:
式中的fa(nT)就是抽样后的序列f(n),即:f(n)=fa(nT),而f(n)的傅里叶变换为
(5)
(6)
从中可看出两者之间只在频率上差一个常数因子T。为了便于观察分析各种序列的频域特性,通常对F(ejω)在[0,2π]上选择M点抽样进行观察分析。对长度为N的有限长序列f(n),有
(7)
通常M取值应大一些,以便能观察到谱的细节变化。取模|F(ejωk)|就可以制作出幅频特性曲线[7]。
设信号f(t)被抽样后形成的抽样信号为fs(t),信号的重构是指由抽样信号fs(t)利用时域卷积关系求得输出信号,即恢复出原连续信号f(t)。又称为信号恢复。
信号恢复的时域表达式为:
f(t)=h(t)*fs(t)
(8)
将h(t)及fs(t)代入式(8)得:
(9)
式(9)表明连续信号f(t)可以展开成Sa函数的无穷级数,级数的系数等于抽样值f(nTs)。也可以说在抽样信号fs(t)的每个抽样值上画一个峰值为f(nTs)的Sa函数的波形,由此合成的信号就是f(t)。式(9)即为用f(nTs)求解f(t)的表达式,利用时域卷积关系得出,是完成由抽样信号恢复原来信号的MATLAB基本关系式[8]。
内插公式(9)表明模拟信号f(t)等于各抽样点函数f(nTs)乘以相对应内插函数的总和,所以只要抽样频率大于两倍模拟信号最高频率,则它的抽样信号便可以完全用来代表整个连续模拟信号,而不会丢失模拟信号的信息,这就是抽样定理智能化算法的意义[9]。
利用MATLAB来对模拟信号进行仿真实现,它是通过MATLAB语言的编程在MATLAB界面上作出连续信号的图像和其对应的频谱,然后利用MATLAB对模拟信号进行抽样操作,得到抽样后的信号图像和其对应的频谱,再利用抽样信号恢复原信号并与原模拟信号对比得出结论。
其抽样频率选择分三种情况进行:①模拟信号最高频率的2倍大于抽样频率时的结果;②模拟信号最高频率的2倍与抽样频率相等时的结果;③模拟信号最高频率的2倍小于抽样频率时的结果。然后观察比较其分别对应的频谱得出结论。
设连续信号为:
f(x)=sin(2π*60*t)+cos(2π*25*t)+cos(2π*30*t);
可知Fmax=60Hz
利用MATLAB作出连续信号f(x)的波形和其对应的频谱,然后作出抽样后的信号和抽样信号的频谱。
MATLAB编程代码如下:
%首先输入的变量是原连续信号函数Fy用字符串格式输入
%第二个输入的变量是抽样频率
TP=0.1;Fs0=10000;
T=[-TP:1/Fs0:TP];
K1=0:999; K2=-999:-1;
M1=lengTh(K1); M2=lengTh(K2);
F=[Fs0*K2/M2,Fs0*K1/M1]; %设置频率数组
W=[-2*Pi*K2/M2,2*Pi*K1/M1];
Fx1=eval(Fy);
FX1=Fx1*exP(-j*[1:lengTh(Fx1)]'*W);
%求原信号的傅里叶变换
Figure
% 画原信号的波形图
subPloT(2,1,1),PloT(T,Fx1,'r')
TiTle('原信号'), xlabel('时间T (s)')
axis([Min(T),Max(T),Min(Fx1),Max(Fx1)]) % 画原信号幅度频谱图
subPloT(2,1,2),PloT(F,abs(FX1),'r')
TiTle('原信号幅度频谱') , xlabel('频率F (Hz)')
axis([-100,100,0,Max(abs(FX1))+5]) % 对原信号进行抽样
Ts=1/Fs; %信号的抽样周期
T1=-TP:Ts:TP; %抽样的时间序列
F1=[Fs*K2/M2,Fs*K1/M1]; %设置抽样信号的频率数组
T=T1; %变量的替换
Fz=eval(Fy); %获取抽样序列
FZ=Fz*exP(-j*[1:lengTh(Fz)]'*W);
%抽样信号的傅里叶变换
Figure
% 画抽样序列波形图
subPloT(2,1,1),sTeM(T,Fz,'.'),
TiTle('抽样信号') , xlabel('时间T (s)')
line([Min(T),Max(T)],[0,0])
% 画频谱图
subPloT(2,1,2),PloT(F1,abs(FZ),'M')
TiTle('抽样信号幅度频谱') , xlabel('频率F (Hz)')
利用MATLAB对抽样信号进行恢复,得到恢复信号波形和恢复信号频谱。 MATLAB编程代码如下(子函数Ⅱ):
%信号的恢复以及频谱函数
FuncTion Fh=huiFu(Fz,Fs)
%从抽样信号得到原信号
%首先输入是抽样序列变量
%然后输入得到抽样序列所用的抽样频率变量
T=1/Fs; DT=T/10; TP=0.1;
T=-TP:DT:TP; n=-TP/T:TP/T;
TMN=ones(lengTh(n),1)*T-n'*T*ones(1,lengTh(T));
Fh=Fz*sinc(Fs*TMN); % 由抽样信号恢复原信号
K1=0:999; K2=-999:-1;
M1=lengTh(K1); M2=lengTh(K2);
W=[-2*Pi*K2/M2,2*Pi*K1/M1];
FH=Fh*exP(-j*[1:lengTh(Fh)]'*W);
%信号的傅里叶变换
Figure
% 画恢复后的信号的波形图
subPloT(2,1,1),PloT(T,Fh,'g'),
sT1=sPrinTF('由抽样频率Fs=%D',Fs);
sT2='恢复后的信号';
sT=[sT1,sT2]; TiTle(sT) , xlabel('时间T (s)')
axis([Min(T),Max(T),Min(Fh),Max(Fh)])
line([Min(T),Max(T)],[0,0]) % 画重构信号的幅度频谱图
F=[10*Fs*K2/M2,10*Fs*K1/M1]; %设置频率数组
subPloT(2,1,2),PloT(F,abs(FH),'g')
TiTle('恢复后信号的频谱') , xlabel('频率F (Hz)')
axis([-100,100,0,Max(abs(FH))+2]);
%主函数
F1='sin(2*Pi*60*T)+cos(2*Pi*25*T)+cos(2*Pi*30*T)';%输入一个信号
Fs0=chouyang(F1,80); %频率,即欠频率抽样
Fr0=huiFu(Fs0,80);
Fs1=chouyang(F1,120);%频率,临界频率抽样
Fr1=huiFu(Fs1,120);
Fs2=chouyang(F1,150);%频率,即过频率抽样
Fr2=huiFu(Fs2,150);
原信号的波形及幅度频谱图形如图2:
(1)抽样频率为等于80 Hz时,抽样信号和恢复的信号图形如图3、图4。
比较图4与图2就可看出,恢复后信号与原信号差别较大,信号失真,频谱发生重叠。这是因为抽样间频率过小致使抽样信号的频谱混叠,不能够从抽样信号中得出原信号所表示的信息,原信号不能够恢复。
(2)抽样频率等于120Hz时,抽样信号和恢复的信号图形如图5、图6。
由图6与图2相比较就可看出,恢复后信号与原信号差别较小,但与原信号相比存在失真,频谱中高频信号未恢复。由于抽样频率比原信号中的低频信号的两倍要高,所以低频信号能够得到恢复;而高频信号频率的两倍等于或大于抽样频率致使高频段信号发生频谱混叠,而不能完全地从抽样信号中得到恢复致使信息缺失。
(3)抽样频率等于150Hz时,抽样信号和恢复的信号图形如图7、图8。
由图8与图2相比较可以看出,信号恢复成功,频域中也没出现频谱的交叠。由于原模拟信号中的低频、高频信号的频率的两倍都低于抽样频率,抽样信号的频谱没有混叠,所以能够完整地表达原信号中信息,从中可以恢复出原信号。
通过本次设计过程可得出:从第一种情况中可以看出,抽样信号不能完整地表达原始信号,致使原信号中的信息在恢复时出现错误;从第二种情况中可以看出,抽样信号只能表达原信号中的低频信号,造成原信号中高频信号的缺失,信息表达不完整,是不可取的;而从第三种情况中可以看出抽样信号可以完全地表达原信号,其信息也能完整地表示,能达到理想的状态。所以能得出这样一个结论:一个连续模拟信号f(t)中的最高频率