尚影,陳曙光
(1.阜陽(yáng)幼兒師范專(zhuān)科學(xué)校 小學(xué)教育學(xué)院,安徽 阜陽(yáng) 236000;2.阜陽(yáng)師范大學(xué) 電學(xué)院,安徽 阜陽(yáng) 236000)
抽樣定理在我們的生活中有著廣泛的應(yīng)用,你看不見(jiàn)它但它卻是處處存在。我們打的電話(huà)通過(guò)聲波產(chǎn)生模擬信號(hào),再通過(guò)抽樣把模擬信號(hào)轉(zhuǎn)成數(shù)字信號(hào),通過(guò)線(xiàn)路或無(wú)線(xiàn)電的傳輸在接收端把數(shù)字信號(hào)恢復(fù)成模擬信號(hào),這里面就有著對(duì)信號(hào)抽樣與恢復(fù)的處理。連續(xù)時(shí)間的模擬信號(hào)的抽樣,雖然在理論上不是必須按照等時(shí)間間隔抽樣進(jìn)行的,但是實(shí)際上多是如此。模擬信號(hào)抽樣后成為抽樣信號(hào),它在時(shí)間上是離散的,在取值上卻是連續(xù)地形成離散模擬信號(hào),其在經(jīng)過(guò)量化形成數(shù)字信號(hào)后編碼調(diào)制變成二進(jìn)制碼元在通信系統(tǒng)中進(jìn)行傳輸[1]。當(dāng)今是信息高速發(fā)展的時(shí)代,信息無(wú)處不在,它伴隨在人們生活的方方面面,人們需要了解接收它并加以傳遞。而在傳輸信息的過(guò)程中,例如我們看電視、聽(tīng)收音機(jī)、上網(wǎng)等等,都要用到抽樣定理智能化算法。
MATLAB是一個(gè)集成的系統(tǒng),集成的有科學(xué)計(jì)算、圖像和聲音的處理等功能,它有友好的用戶(hù)界面與使用幫助功能[2]。
作圖功能是MATLAB的主要功能,要對(duì)抽樣定理智能化算法實(shí)現(xiàn)仿真就要有一個(gè)原始的模擬信號(hào),對(duì)模擬信號(hào)進(jìn)行抽樣形成抽樣信號(hào)以及對(duì)抽樣信號(hào)恢復(fù)成原始的信號(hào),這一過(guò)程中的信號(hào)都可在MATLAB中很容易地制作出來(lái)。我們?cè)诜抡嬷?,?duì)抽樣定理智能化算法進(jìn)行實(shí)現(xiàn)就可以用MATLAB軟件,它可以很容易使實(shí)驗(yàn)的進(jìn)行很少受實(shí)驗(yàn)室硬件的影響,達(dá)到比較理想的結(jié)論,并且能減少實(shí)驗(yàn)過(guò)程中的人力與財(cái)力的浪費(fèi),縮短實(shí)驗(yàn)的時(shí)間與計(jì)算量[3]。
抽樣定理智能化算法的定義:對(duì)一個(gè)頻帶限制在(0,fh)內(nèi)的時(shí)間連續(xù)信號(hào)f(t),如果以小于等于1/(2fh)的時(shí)間間隔對(duì)它進(jìn)行抽樣,那么根據(jù)這些抽樣值就能無(wú)失真的恢復(fù)原信號(hào)。設(shè)連續(xù)信號(hào)的最高頻率為Fmax,若抽樣頻率Fs≥2Fmax,則抽樣信號(hào)能做到無(wú)失真的恢復(fù)出原始的連續(xù)信號(hào);否則Fs<2Fmax會(huì)使抽樣信號(hào)中的頻譜出現(xiàn)混疊現(xiàn)象,致使抽樣信號(hào)不能恢復(fù)原連續(xù)信號(hào)而產(chǎn)生失真[4]。
抽樣過(guò)程原理圖如下[6]:
在理想抽樣的情形下對(duì)一個(gè)連續(xù)信號(hào)fa(t)進(jìn)行抽樣,其抽樣信號(hào)就是這個(gè)信號(hào)和周期性脈沖信號(hào)的乘積,即:
(1)
(2)
(3)
將上面的(2)式代入(1)式,并進(jìn)行傅里葉變換,得出下式:
式中的fa(nT)就是抽樣后的序列f(n),即:f(n)=fa(nT),而f(n)的傅里葉變換為
(5)
(6)
從中可看出兩者之間只在頻率上差一個(gè)常數(shù)因子T。為了便于觀察分析各種序列的頻域特性,通常對(duì)F(ejω)在[0,2π]上選擇M點(diǎn)抽樣進(jìn)行觀察分析。對(duì)長(zhǎng)度為N的有限長(zhǎng)序列f(n),有
(7)
通常M取值應(yīng)大一些,以便能觀察到譜的細(xì)節(jié)變化。取模|F(ejωk)|就可以制作出幅頻特性曲線(xiàn)[7]。
設(shè)信號(hào)f(t)被抽樣后形成的抽樣信號(hào)為fs(t),信號(hào)的重構(gòu)是指由抽樣信號(hào)fs(t)利用時(shí)域卷積關(guān)系求得輸出信號(hào),即恢復(fù)出原連續(xù)信號(hào)f(t)。又稱(chēng)為信號(hào)恢復(fù)。
信號(hào)恢復(fù)的時(shí)域表達(dá)式為:
f(t)=h(t)*fs(t)
(8)
將h(t)及fs(t)代入式(8)得:
(9)
式(9)表明連續(xù)信號(hào)f(t)可以展開(kāi)成Sa函數(shù)的無(wú)窮級(jí)數(shù),級(jí)數(shù)的系數(shù)等于抽樣值f(nTs)。也可以說(shuō)在抽樣信號(hào)fs(t)的每個(gè)抽樣值上畫(huà)一個(gè)峰值為f(nTs)的Sa函數(shù)的波形,由此合成的信號(hào)就是f(t)。式(9)即為用f(nTs)求解f(t)的表達(dá)式,利用時(shí)域卷積關(guān)系得出,是完成由抽樣信號(hào)恢復(fù)原來(lái)信號(hào)的MATLAB基本關(guān)系式[8]。
內(nèi)插公式(9)表明模擬信號(hào)f(t)等于各抽樣點(diǎn)函數(shù)f(nTs)乘以相對(duì)應(yīng)內(nèi)插函數(shù)的總和,所以只要抽樣頻率大于兩倍模擬信號(hào)最高頻率,則它的抽樣信號(hào)便可以完全用來(lái)代表整個(gè)連續(xù)模擬信號(hào),而不會(huì)丟失模擬信號(hào)的信息,這就是抽樣定理智能化算法的意義[9]。
利用MATLAB來(lái)對(duì)模擬信號(hào)進(jìn)行仿真實(shí)現(xiàn),它是通過(guò)MATLAB語(yǔ)言的編程在MATLAB界面上作出連續(xù)信號(hào)的圖像和其對(duì)應(yīng)的頻譜,然后利用MATLAB對(duì)模擬信號(hào)進(jìn)行抽樣操作,得到抽樣后的信號(hào)圖像和其對(duì)應(yīng)的頻譜,再利用抽樣信號(hào)恢復(fù)原信號(hào)并與原模擬信號(hào)對(duì)比得出結(jié)論。
其抽樣頻率選擇分三種情況進(jìn)行:①模擬信號(hào)最高頻率的2倍大于抽樣頻率時(shí)的結(jié)果;②模擬信號(hào)最高頻率的2倍與抽樣頻率相等時(shí)的結(jié)果;③模擬信號(hào)最高頻率的2倍小于抽樣頻率時(shí)的結(jié)果。然后觀察比較其分別對(duì)應(yīng)的頻譜得出結(jié)論。
設(shè)連續(xù)信號(hào)為:
f(x)=sin(2π*60*t)+cos(2π*25*t)+cos(2π*30*t);
可知Fmax=60Hz
利用MATLAB作出連續(xù)信號(hào)f(x)的波形和其對(duì)應(yīng)的頻譜,然后作出抽樣后的信號(hào)和抽樣信號(hào)的頻譜。
MATLAB編程代碼如下:
%首先輸入的變量是原連續(xù)信號(hào)函數(shù)Fy用字符串格式輸入
%第二個(gè)輸入的變量是抽樣頻率
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]; %設(shè)置頻率數(shù)組
W=[-2*Pi*K2/M2,2*Pi*K1/M1];
Fx1=eval(Fy);
FX1=Fx1*exP(-j*[1:lengTh(Fx1)]'*W);
%求原信號(hào)的傅里葉變換
Figure
% 畫(huà)原信號(hào)的波形圖
subPloT(2,1,1),PloT(T,Fx1,'r')
TiTle('原信號(hào)'), xlabel('時(shí)間T (s)')
axis([Min(T),Max(T),Min(Fx1),Max(Fx1)]) % 畫(huà)原信號(hào)幅度頻譜圖
subPloT(2,1,2),PloT(F,abs(FX1),'r')
TiTle('原信號(hào)幅度頻譜') , xlabel('頻率F (Hz)')
axis([-100,100,0,Max(abs(FX1))+5]) % 對(duì)原信號(hào)進(jìn)行抽樣
Ts=1/Fs; %信號(hào)的抽樣周期
T1=-TP:Ts:TP; %抽樣的時(shí)間序列
F1=[Fs*K2/M2,Fs*K1/M1]; %設(shè)置抽樣信號(hào)的頻率數(shù)組
T=T1; %變量的替換
Fz=eval(Fy); %獲取抽樣序列
FZ=Fz*exP(-j*[1:lengTh(Fz)]'*W);
%抽樣信號(hào)的傅里葉變換
Figure
% 畫(huà)抽樣序列波形圖
subPloT(2,1,1),sTeM(T,Fz,'.'),
TiTle('抽樣信號(hào)') , xlabel('時(shí)間T (s)')
line([Min(T),Max(T)],[0,0])
% 畫(huà)頻譜圖
subPloT(2,1,2),PloT(F1,abs(FZ),'M')
TiTle('抽樣信號(hào)幅度頻譜') , xlabel('頻率F (Hz)')
利用MATLAB對(duì)抽樣信號(hào)進(jìn)行恢復(fù),得到恢復(fù)信號(hào)波形和恢復(fù)信號(hào)頻譜。 MATLAB編程代碼如下(子函數(shù)Ⅱ):
%信號(hào)的恢復(fù)以及頻譜函數(shù)
FuncTion Fh=huiFu(Fz,Fs)
%從抽樣信號(hào)得到原信號(hào)
%首先輸入是抽樣序列變量
%然后輸入得到抽樣序列所用的抽樣頻率變量
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); % 由抽樣信號(hào)恢復(fù)原信號(hào)
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);
%信號(hào)的傅里葉變換
Figure
% 畫(huà)恢復(fù)后的信號(hào)的波形圖
subPloT(2,1,1),PloT(T,Fh,'g'),
sT1=sPrinTF('由抽樣頻率Fs=%D',Fs);
sT2='恢復(fù)后的信號(hào)';
sT=[sT1,sT2]; TiTle(sT) , xlabel('時(shí)間T (s)')
axis([Min(T),Max(T),Min(Fh),Max(Fh)])
line([Min(T),Max(T)],[0,0]) % 畫(huà)重構(gòu)信號(hào)的幅度頻譜圖
F=[10*Fs*K2/M2,10*Fs*K1/M1]; %設(shè)置頻率數(shù)組
subPloT(2,1,2),PloT(F,abs(FH),'g')
TiTle('恢復(fù)后信號(hào)的頻譜') , xlabel('頻率F (Hz)')
axis([-100,100,0,Max(abs(FH))+2]);
%主函數(shù)
F1='sin(2*Pi*60*T)+cos(2*Pi*25*T)+cos(2*Pi*30*T)';%輸入一個(gè)信號(hào)
Fs0=chouyang(F1,80); %頻率,即欠頻率抽樣
Fr0=huiFu(Fs0,80);
Fs1=chouyang(F1,120);%頻率,臨界頻率抽樣
Fr1=huiFu(Fs1,120);
Fs2=chouyang(F1,150);%頻率,即過(guò)頻率抽樣
Fr2=huiFu(Fs2,150);
原信號(hào)的波形及幅度頻譜圖形如圖2:
(1)抽樣頻率為等于80 Hz時(shí),抽樣信號(hào)和恢復(fù)的信號(hào)圖形如圖3、圖4。
比較圖4與圖2就可看出,恢復(fù)后信號(hào)與原信號(hào)差別較大,信號(hào)失真,頻譜發(fā)生重疊。這是因?yàn)槌闃娱g頻率過(guò)小致使抽樣信號(hào)的頻譜混疊,不能夠從抽樣信號(hào)中得出原信號(hào)所表示的信息,原信號(hào)不能夠恢復(fù)。
(2)抽樣頻率等于120Hz時(shí),抽樣信號(hào)和恢復(fù)的信號(hào)圖形如圖5、圖6。
由圖6與圖2相比較就可看出,恢復(fù)后信號(hào)與原信號(hào)差別較小,但與原信號(hào)相比存在失真,頻譜中高頻信號(hào)未恢復(fù)。由于抽樣頻率比原信號(hào)中的低頻信號(hào)的兩倍要高,所以低頻信號(hào)能夠得到恢復(fù);而高頻信號(hào)頻率的兩倍等于或大于抽樣頻率致使高頻段信號(hào)發(fā)生頻譜混疊,而不能完全地從抽樣信號(hào)中得到恢復(fù)致使信息缺失。
(3)抽樣頻率等于150Hz時(shí),抽樣信號(hào)和恢復(fù)的信號(hào)圖形如圖7、圖8。
由圖8與圖2相比較可以看出,信號(hào)恢復(fù)成功,頻域中也沒(méi)出現(xiàn)頻譜的交疊。由于原模擬信號(hào)中的低頻、高頻信號(hào)的頻率的兩倍都低于抽樣頻率,抽樣信號(hào)的頻譜沒(méi)有混疊,所以能夠完整地表達(dá)原信號(hào)中信息,從中可以恢復(fù)出原信號(hào)。
通過(guò)本次設(shè)計(jì)過(guò)程可得出:從第一種情況中可以看出,抽樣信號(hào)不能完整地表達(dá)原始信號(hào),致使原信號(hào)中的信息在恢復(fù)時(shí)出現(xiàn)錯(cuò)誤;從第二種情況中可以看出,抽樣信號(hào)只能表達(dá)原信號(hào)中的低頻信號(hào),造成原信號(hào)中高頻信號(hào)的缺失,信息表達(dá)不完整,是不可取的;而從第三種情況中可以看出抽樣信號(hào)可以完全地表達(dá)原信號(hào),其信息也能完整地表示,能達(dá)到理想的狀態(tài)。所以能得出這樣一個(gè)結(jié)論:一個(gè)連續(xù)模擬信號(hào)f(t)中的最高頻率
信陽(yáng)農(nóng)林學(xué)院學(xué)報(bào)2021年2期