吳順喜 李坤 趙聰 黃文晉 鄧文博 嚴(yán)東
【摘 要】取樣定理是把模擬信號變成數(shù)字信號取樣頻率選取的一條重要準(zhǔn)則。對連續(xù)信號進行等間隔采樣形成采樣信號,采樣信號的頻譜是原連續(xù)信號的頻譜以采樣頻率為周期進行周期性延拓形成的。本文選取一模擬信號, 在 Matlab平臺上用不同的取樣頻率對其采樣,利用MATLAB實現(xiàn)連續(xù)信號采樣、頻譜分析和采樣信號恢復(fù),計算在臨界采樣、過采樣、欠采樣三種不同條件下恢復(fù)信號的誤差,從而驗證時域采樣定理。
【關(guān)鍵詞】時域采樣定理 連續(xù)信號 頻譜分析儀 MATLAB
從模擬信號到數(shù)字信號,即從連續(xù)信號到離散信號的轉(zhuǎn)換都是通過離散采樣完成的,采樣頻率就是每秒鐘采樣的個數(shù)。根據(jù)香農(nóng)采樣定理,要保證信號不失真,采樣頻率要大于信號最高頻率的兩倍。
1 采樣定理介紹
假設(shè)離散時間信號 是通過對連續(xù)時間信號 取樣獲得
取樣定理的敘述為: 如果 在 > 時 , = 0, 則連續(xù)時間信號 完全可以由離散時間信號重建恢復(fù) , 其充要條件是:取樣頻率 ≥2 ; = 2被稱為連續(xù)時間信 號的奈奎斯特 (Nyquist) 頻率。當(dāng) <2時 , 則會在進行 頻譜復(fù)制時產(chǎn)生重疊 , 通常稱為混疊 (Aliasing), 則連續(xù)時間信
號不能由它的取樣信號重建恢復(fù)。
2 運用MATLAB舉例分析
下面選定一個連續(xù)信號,計算在臨界采樣、過采樣、欠采樣三種不同條件下恢復(fù)信號的誤差,從而驗證時域采樣定理。
f1 = 'sin(2*pi*60*t)'
fs0 = caiyang(f1,40); %頻率fs<2fmax,欠采樣
fr0 = huifu(fs0,40);
Fs1 = caiyang(f1,120); %頻率 fs=2fmax, 臨界采樣
fr1 = huifu(fs1,120);
fs2 = caiyang(f1,160); %頻率 fs>2fmax, 過采樣
fr2 = huifu(fs2,160);
2.1創(chuàng)建一個caiyang.m文件
function fz = caiyang(fy,fs)
fs0 = 10000; tp = 0.1;
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,2,1),plot(t,fx1,'r')
title('原信號'),xlabel('時間t(s)')
axis([min(t),max(t),min(fx1),max(fx1)])
subplot(2,2,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);
subplot(2,2,3),stem(t,fz,'.'),
title('取樣信號'),xlabel('時間t(s)')
line([min(t),max(t)],[0,0])
subplot(2,2,4),plot(f1,abs(FZ),'m')
title('取樣信號幅度頻譜'),xlabel('頻率f(Hz)')
2.2創(chuàng)建一個huifu.m文件
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 = '恢復(fù)后的信號';
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('恢復(fù)后信號的頻譜'),xlabel('頻率f(Hz)')
axis([-100,100,0,max(abs(FH))+2]);
下面是利用MATLAB分析的圖1-圖6:
從圖1、圖3、圖5的連續(xù)傅里葉變換可以看出,信號f1的頻率為60Hz、,如果采樣頻率f≥120Hz就可滿足時域采樣定理。圖2、圖4、圖6分別為當(dāng)采樣頻率為40Hz、120Hz、160Hz時采樣恢復(fù)后的信號頻譜,當(dāng)f≥120Hz時,信號無明顯失真;而f<120Hz時,不滿足取樣定理,恢復(fù)后的信號頻譜失真。
3 結(jié)語
取樣定理表明,在一定條件下,一個連續(xù)時間信號完全可以用該信號在等時間間隔上的采樣值來表示,并且可以用這些采樣值把信號完全恢復(fù)過來。這樣,采樣定理為連續(xù)時間信號與離散時間信號的相互提供了理論依據(jù)。在數(shù)字信號處理技術(shù)廣泛應(yīng)用的今天,連續(xù)時間信號的離散處理顯得日益重要。
參考文獻:
[1]吳兆雄.數(shù)字信號處理[M].北京:國防工業(yè)出版社,1985 .
[2]樓順天,李博菡.基于 MATLAB 的系統(tǒng)分析與設(shè)計 ———信號處理[ M] .西安:西安電子科技大學(xué)出版社,1999.
[3]伯曉晨,李濤,劉路.MATLAB 工具箱應(yīng)用指南[M].北京:電子工業(yè)出版社,2000.
[4]范影樂,楊勝天,李軼.MATLAB 仿真應(yīng)用詳解[M].北京:人民郵電出版社 ,2001.