《數(shù)字信號處理實(shí)驗(yàn)報(bào)告》由會員分享,可在線閱讀,更多相關(guān)《數(shù)字信號處理實(shí)驗(yàn)報(bào)告(8頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、數(shù)字信號處理實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)一:混疊現(xiàn)象的時(shí)域與頻域表現(xiàn)
實(shí)驗(yàn)原理:當(dāng)采樣頻率Fs不滿足采樣定理,會在0.5Fs附近引起頻譜混疊,造成頻譜分析誤差。
實(shí)驗(yàn)過程:考慮頻率分別為3Hz,7Hz,13Hz 的三個(gè)余弦信號,即:g1(t)=cos(6πt), g2(t)=cos(14πt), g3(t)=cos(26πt),當(dāng)采樣頻率為10Hz 時(shí),即采樣間隔為0.1秒,則產(chǎn)生的序列分別為:g1[n]=cos(0.6πn), g2[n]=cos(1.4πn), g3[n]=cos(2.6πn)
對g2[n],g3[n] 稍加變換可得:
g2[n]=cos(1.4πn)=cos((2π
2、-0.6π)n)= cos(0.6πn)
g3[n]=cos(2.6πn)= cos((2π+0.6π)n)=cos(0.6πn)
利用Matlab進(jìn)行編程:
n=1:300;
t=(n-1)*1/300;
g1=cos(6*pi*t);
g2=cos(14*pi*t);
g3=cos(26*pi*t);
plot(t,g1,t,g2,t,g3);
k=1:100;
s=k*0.1;
q1=cos(6*pi*s);
q2=cos(14*pi*s);
q3=cos(26*pi*s);
hold on; plot(s(1:10),q1(1:10),bd);
fig
3、ure
subplot(2,2,1);plot(k/10,abs(fft(q1)))
subplot(2,2,2);plot(k/10,abs(fft(q2)))
subplot(2,2,3);plot(k/10,abs(fft(q3)))
通過Matlab軟件的圖像如圖所示:
如果將采樣頻率改為30Hz,則三信號采樣后不會發(fā)生頻率混疊,可運(yùn)行以下的程序,觀察序列的頻譜。
程序編程改動(dòng)如下:
k=1:300;
q=cos(6*pi*k/30);
q1=cos(14*pi*k/30);
q2=cos(26*pi*k/30
4、);
subplot(2,2,1);plot(k/10,abs(fft(q)))
subplot(2,2,2);plot(k/10,abs(fft(q1)))
subplot(2,2,3);plot(k/10,abs(fft(q2)))
得圖像:
問題討論:保證采樣后的信號不發(fā)生混疊的條件是什么?若信號的最高頻率為17Hz,采樣頻率為30Hz,問是否會發(fā)生頻率混疊?混疊成頻率為多少Hz的信號?編程驗(yàn)證你的想法。
解答:若采樣頻率大于等于2倍的最高頻率,則不會發(fā)生頻譜混疊。
編程如下:n=1:300;
t=(n-1)*1/300;
g1=cos(6*pi*t);
g2=c
5、os(14*pi*t);
g3=cos(34*pi*t);
plot(t,g1,t,g2,t,g3);
k=1:300;
s=k/30;
q1=cos(6*pi*s);
q2=cos(14*pi*s);
q3=cos(34*pi*s);
hold on; plot(s(1:10),q1(1:10),bd);
figure
subplot(2,2,1);plot(k/10,abs(fft(q1)))
subplot(2,2,2);plot(k/10,abs(fft(q2)))
subplot(2,2,3);plot(k/10,abs(fft(q3)))
6、
在頻譜分析的圖像上可以看出,發(fā)生了頻率混疊,混疊后的頻率分別是17Hz和13Hz。
實(shí)驗(yàn)二 泄漏效應(yīng)
實(shí)驗(yàn)原理:由于模擬信號的傅里葉變換是在∞區(qū)間上的一種積分運(yùn)算,實(shí)際上觀察到的模擬信號一般是有限長的,沒有觀察到的部分只能認(rèn)為是零,這相當(dāng)于將模擬信號截取一部分進(jìn)行分析。使得原來的離散譜線向兩邊展寬,而展寬的寬度和矩形窗的長度有關(guān),矩形窗的長度越長,展寬就越窄。這種將譜線展寬的現(xiàn)象稱為頻譜泄露。
實(shí)驗(yàn)過程:由于泄漏效應(yīng)的復(fù)雜性,下面的實(shí)驗(yàn)演示單一頻率正弦信號由于截?cái)嘁鸬男孤J紫瓤疾祛l率為10Hz的正弦信號,采樣頻率為64Hz,對32點(diǎn)的采樣序列進(jìn)行DFT(FFT),由于是整
7、周期截取,所以不會產(chǎn)生泄漏,程序和運(yùn)行結(jié)果如下(圖9-34):
N=input(type in the length of dft=);%采樣點(diǎn)數(shù)
t=input(type in the sampling period=);%采樣時(shí)間間隔
freq=input(type in the sinusoid frequency =);%信號頻率
k=0:N-1;
f=sin(2*pi*freq*k*(1/t));
F=fft(f);
stem(k,abs(F));grid;
xlabel(k);ylabel(|x(k)|);
如果采樣頻率仍為64Hz,采樣點(diǎn)數(shù)仍為32點(diǎn),將信號
8、頻率改為11Hz,由于非整周期截取,發(fā)生了明顯的泄漏,如圖所示:
問題討論:如何選取采樣點(diǎn)數(shù)、采樣頻率,才能保證頻率為11Hz 的正弦信號不會發(fā)生泄漏現(xiàn)象?選取采樣點(diǎn)數(shù)為30,采樣頻率為66Hz,運(yùn)行程序看一看是否有泄漏發(fā)生。
解答:(1)、不會產(chǎn)生泄漏的條件是:對信號進(jìn)行整周期截取。
根據(jù)條件知:N=(采樣點(diǎn)數(shù)/采樣頻率)* 信號頻率,
要使泄漏不發(fā)生,需使N為正整數(shù),在這一條件下進(jìn)行采樣點(diǎn)數(shù)及采樣頻率。
(2)、將信號頻率11Hz、采樣點(diǎn)數(shù)30、采樣頻率66Hz代入公式:
N=(采樣點(diǎn)數(shù)/采樣頻率)* 信號
9、頻率
中,得 N=5, 整周期截取,故不發(fā)生泄漏。
圖像如下:
實(shí)驗(yàn)三 FFT(DFT)參數(shù)的選取
實(shí)驗(yàn)原理:本實(shí)驗(yàn)考察有不同頻率的兩個(gè)正弦信號加上隨機(jī)信號組成的信號的傅立葉變換,通過改變序列的采樣點(diǎn)數(shù)、DFT長度以及信號的頻率,觀察譜分辨率以及泄漏對譜估計(jì)的影響。
實(shí)驗(yàn)過程:編程如下:
N=input(signal length=);%采樣點(diǎn)數(shù)
R=input(DFT length=);%DFT的變換長度
fr=input(type in the sinusoid frequences=);%輸入正弦信號的頻率
y=hamming(N);%可采用其他的窗函
10、數(shù),進(jìn)行比較
n=0:N-1;
x=cos(2*pi*n*fr(1))+cos(2*pi*n*fr(2))+randn(1,N)/5;
x1=x.*y;
Fx=fft(x1,R);
k=0:R-1;
subplot(2,1,1)
stem(k/R,abs(Fx));grid
當(dāng)fr=[0.22 0.34],N=16時(shí),分別取R=16,32,64,128,256,可以看出隨R的增大,明顯地可看出兩個(gè)峰值,但還有其他的一些峰值,無法確定是否還有其他的正弦信號。
當(dāng)N=16, R=128, fr(2)=0.34, fr(1)分別取0.28 ,0.29, 0.30,0.31時(shí),可以
11、看出當(dāng) fr(1)=0.28,0.29時(shí),兩譜峰是可分辨的,但fr(1)=0.30,0.31時(shí),兩譜峰不可分辨,此時(shí)取N=32,64時(shí),兩譜峰又可分辨。
如圖是fr=[0.22 0.34],N=16,R分別等于16,64時(shí)的程序運(yùn)行結(jié)果。
(R=16)
(R=64)
圖是fr=[0.22 0.34],N=32,R=64時(shí)的程序運(yùn)行結(jié)果:
(N=32)
實(shí)驗(yàn)四 量化效應(yīng)
實(shí)驗(yàn)原理:本實(shí)驗(yàn)對信號x(t)=sin(2πt)進(jìn)行采樣,得到從t=0開始的1000采樣值,采樣周期為0.001s,采樣取得的信號是舍入的,用四位量化器得到量化后的信號,最后畫出原始波形和量化后的波形,并
12、畫出量化誤差的直方圖,且輸出信噪比??梢钥闯?,量化誤差具有均勻分布的特性。
實(shí)驗(yàn)過程:編程如下:
N=1000;t=(0:N-1)*0.001;x=sin(2*pi*t);
d=max(x)-min(x);
b=4;L=2^b;
s=d/L;
y=s*round(x/s);
subplot(2,1,1);plot(t,x);hold on
plot(t,y);hold off
subplot(2,1,2);e=x-y,hist(e);
snra=10*log10(sum(x.*x))/sum(e.*e)
問題討論: 改變量化器的位數(shù)和信號的動(dòng)態(tài)范圍等參數(shù),
13、重新運(yùn)行上面的程序,總結(jié)信號的動(dòng)態(tài)范圍和量化階數(shù)對信噪比的影響。
解答:A=0.25時(shí): N=1000;t=(0:N-1)*0.001;x=0.25*sin(2*pi*t);
d=max(x)-min(x);
b=4;L=2^b;
s=d/L;
y=s*round(x/s);
subplot(2,1,1);plot(t,x);hold on
plot(t,y);hold off
subplot(2,1,2);e=x-y,hist(e);
snra=10*log10(sum(x.*x)/sum(e.*e))
A=0.75時(shí): N=1000;t=(0:N-1
14、)*0.001;x=0.75*sin(2*pi*t);
d=max(x)-min(x);
b=4;L=2^b;
s=d/L;
y=s*round(x/s);
subplot(2,1,1);plot(t,x);hold on
plot(t,y);hold off
subplot(2,1,2);e=x-y,hist(e);
snra=10*log10(sum(x.*x)/sum(e.*e))
b=2時(shí): N=1000;t=(0:N-1)*0.001;x=sin(2*pi*t);
d=max(x)-min(x);
b=2;L=2^b;
s=d/L;
y=s*roun
15、d(x/s);
subplot(2,1,1);plot(t,x);hold on
plot(t,y);hold off
subplot(2,1,2);e=x-y,hist(e);
snra=10*log10(sum(x.*x) /sum(e.*e) )
b=6時(shí): N=1000;t=(0:N-1)*0.001;x=sin(2*pi*t);
d=max(x)-min(x);
b=6;L=2^b;
s=d/L;y=s*round(x/s);
subplot(2,1,1);plot(t,x);hold on
plot(t,y);hold off
subplot(2,1,2);e=x-y,hist(e);
snra=10*log10(sum(x.*x) /sum(e.*e) )
有實(shí)驗(yàn)圖像可知:(1)、隨著量化階數(shù)b越大,信噪比越大。
(2)、隨著信號幅值越小,信噪比越大。