第一篇:Matlab的數字信號處理課程實驗設計的論文
摘要:本文設計了一個基于Matlab的“數字信號處理”課程綜合性實驗。該實驗把“數字信號處理”課程中的許多離散的知識點串接了起來,包括采樣、量化、濾波器設計、濾波器實現、DFT/FFT和濾波器的有限字長效應等。教學實踐表明該實驗有利于鞏固學生課堂上學到的理論知識,提高學生的理論聯系實際的能力和動手解決問題的能力。
關鍵詞:數字信號處理;綜合性實驗;Matlab
0引言
“數字信號處理”課程的主要內容包括z變換、離散傅里葉變換(DFT)、快速傅里葉變換(FFT)、數字濾波器設計和實現以及數字信號處理中的有限字長效應等等[1]。在學習理論知識的同時或之后,引入實驗將有助于學生更好地理解和掌握課程內容[2-3]。筆者在教學過程中,設計了Matlab綜合性實驗。該實驗在不失趣味性的同時,能把該課程中許多分散的知識點串接起來。教學實踐表明,該實驗可以幫助學生更深入地理解本門課程,取得了較好的教學效果。
1綜合實驗內容設計
筆者所設計的Matlab實驗如下:對下式所示的輸入信號進行濾波。x=sin(100πt)+sin(480πt)(1)具體步驟為(1)將輸入的模擬信號x進行采樣和量化,得到12位精度的數字信號;(2)設計一個低通無限沖激響應(IIR)濾波器,將輸入信號中的240Hz的干擾濾除,要求濾波器的輸出信號中240Hz處的噪聲功率比50Hz處的信號功率低60dB。(3)設計一個高通有限沖激響應(FIR)濾波器,將輸入信號中的50Hz的干擾濾除,要求濾波器的輸出信號中50Hz處的噪聲功率比240Hz處的信號功率低60dB。(4)對于上述兩個濾波器,要求:給出理想濾波器的傳輸函數及頻率響應;給出系數量化后所得的新的濾波器的傳輸函數及頻率響應;確定濾波器實現所采用的結構,并給出該結構中所用加法器和乘法器的位數;將輸入的數字信號通過前一步實現的濾波器,畫出輸出信號的頻譜,確保濾波器性能滿足設計要求。順利完成上述Matlab實驗,需要解決以下問題:(1)采樣頻率和FFT點數的選取:根據采樣定理,采樣頻率只要不低于信號中所包含的最高頻率的兩倍,就可以從采樣后的離散時間信號中恢復出原始的模擬信號。根據式(1),采樣頻率只要不小于480Hz即可。但是當需要使用FFT對信號進行頻譜分析時,在確定采樣頻率時,除了要滿足采樣定理外,還需要考慮其他條件。例如:在做FFT時,信號頻率應為頻率分辨率的整數倍,這樣才能準確地從頻譜中看到該頻率信號的功率,避免譜泄漏,即下式中的k應為整數:k=ffs=N(2)其中f,fs和N分別為信號頻率、采樣頻率和FFT的點數。fs/N為頻率分辨率,N一般為2的冪次方。在k不為整數時,為了減小譜泄漏的影響,可以在做FFT之前對采樣所得的信號進行加窗處理[1]。(2)模數轉換器的實現:實驗中要求對輸入信號進行量化,得到12位精度的數字信號。在將輸入信號進行量化時,涉及到如何確定模數轉換器的滿量程范圍、結構、量化方式(舍入還是截斷)以及如何進行有符號數的量化等。(3)IIR濾波器類型的選擇和設計:雙線性變換是設計數字IIR濾波器的常用方法。它首先要將所要設計的數字濾波器的歸一化邊界角頻率進行預畸變,然后再設計出滿足性能要求的模擬濾波器。模擬濾波器有四種類型,分別為巴特沃斯濾波器,切比雪夫I型濾波器、切比雪夫II型濾波器以及橢圓濾波器。只有了解了這四種濾波器的特性,才能根據實際需求來選擇合適的濾波器類型。在選擇好濾波器類型后,將濾波器的性能指標輸入相應的Matlab函數,就可以得到濾波器的傳輸函數,完成濾波器的設計。以橢圓濾波器為例,可以依次調用函數elli-pord(),函數ellipap()和函數zp2tf()來獲得濾波器的階數、零極點、增益和s域傳輸函數;也可以直接調用函數ellip()來得到濾波器的s域傳輸函數。最后再通過調用函數bilinear()得到相應數字濾波器的傳輸函數。(4)FIR濾波器的設計:在用窗函數法來設計FIR濾波器時,首先要根據濾波器的性能參數(如過渡帶寬度、阻帶衰減等)選取合適的窗函數以及確定窗函數的長度,之后將得到的窗函數與理想濾波器的單位脈沖響應序列相乘得到FIR濾波器的單位脈沖響應序列。以Kaiser窗為例,在Matlab中,函數kaiserord()用于預估FIR濾波器的階數,函數kaiser()用于產生相應長度的Kaiser窗函數,函數fir1()用于實現采用該Kaiser窗設計的FIR濾波器,輸出為濾波器的單位脈沖響應序列。(5)濾波器的實現:在用硬件實現濾波器時,必須考慮濾波器的有限字長效應,即濾波器系數的量化、濾波器中加法器和乘法器的有限字長效應以及運算結果的有限字長等等。濾波器的實現結構有直接型、級聯型和并聯型等。由于IIR濾波器存在量化噪聲的積累,所以在選擇結構時,需要考慮各種結構對有限字長效應的靈敏度。高階IIR濾波器通常采用級聯型或并聯型結構來實現。Matlab中的函數residuez(B,A)用于計算傳輸函數B(z)/A(z)的留數、極點和直接項,從而得到有理式的部分分式展開;利用傳輸函數的部分分式展開,并通過適當的合并,可以得到濾波器的并聯型結構。函數tf2sos()則可用于將傳輸函數轉換成二階節,得到濾波器的級聯型結構。圖3給出了系數量化前后高通濾波器的頻率響應。為了能夠判斷所設計和實現的濾波器的性能是否達到設計指標,需要對濾波器的輸出序列做N點的FFT。這時需要注意兩點:一要能正確地區分輸出序列中的暫態響應部分和穩態響應部分;二要從穩態響應部分選取連續的N個輸出值做N點的FFT。
2教學反饋
根據學生上交的實驗報告,從他們所寫的實驗收獲和實驗心得可以看出這個實驗對他們學好這門功課所起的作用。總結如下:(1)本次實驗是FIR濾波器與IIR濾波器的設計,綜合使用了大量數字濾波器的設計方法,比如雙線性變換法,窗函數法等,加深了對課堂學習的理論知識的理解,如IIR和FIR濾波器的優缺點、濾波器的暫態響應和穩態響應、各種模擬濾波器的性能比較以及各種窗函數之間的差異等。(2)學生對采樣定理和FFT有了更深的認識,明白了采樣頻率、FFT點數等對頻譜分析結果的影響,并通過不斷的摸索與嘗試,總結出了使用FFT時的一些注意事項。(3)對數字信號處理中的有限字長效應有了更加直觀的體會,認識到在設計濾波器的傳輸函數時,需要考慮量化對濾波器性能的影響,設計指標需要留出一定的裕量。(4)提高了用Matlab實現數字信號處理功能的能力,包括:熟悉了使用Matlab設計FIR和IIR濾波器的流程;學會使用Matlab中的一些函數,如fft,cheb1ord,cheby,bilinear,fir1等;學會了用Matlab編寫程序來實現指定結構的濾波器;學會了從時域和頻域觀察濾波器的輸出是否正確以及是否達到性能要求等。總而言之,通過這次實驗,使學生真正了解了如何利用Matlab來進行濾波器的設計,感覺受益匪淺,對他們學好“數字信號處理”課程很有幫助。
3結語
筆者所設計的基于Matlab的綜合性實驗涵蓋了“數字信號處理”課程中的主要知識點。從學生反饋的意見可以看出,本實驗取得了良好的教學效果,這有利于提高學生學習興趣以及增強他們解決實際問題的能力。
參考文獻:
[1]程佩青,數字信號處理教程[M],北京:清華大學出版社,2007.
[2]曹建玲,劉煥淋,雷宏江.基于MATLAB的“數字信號處理”仿真實驗[J].北京:中國電力教育,2012(32):88-89.
[3]易婷.“數字信號處理”課程課內配套實驗的設計[J].南京:電氣電子教學學報,2013,35(4):89-90.
第二篇:MATLAB實現數字信號處理
數字信號處理
說 明 書
目錄
一.摘要…………………………………3 二.課程設計目的………………………3 三.設計內容……………………………3 四.設計原理……………………………4 4.1.語音信號的采集…………………………….4 4.2.濾波器……………………………………….4 4.21.IIR濾波器原理…………………………………….4 4.22.FIR濾波器原理………………………………………5 五.設計步驟……………………………6 5.1錄制女音………………………………………6 5.2采樣語音信號并畫出時域波形和頻譜圖……7 5.3采用雙線性變換法設計IIR濾波器…………10 5.4窗函數法設計FFR濾波器………………......12 5.5用IIR濾波器對信號進行濾波………………14 5.6用FIR濾波器對信號進行濾波………………16 5.7男女聲語音信號頻譜特點分析………………19 5.8有背景噪聲的信號分析………………………20 六.心得體會…………………………….22 七.參考文獻…………………………….23
一.摘要:
這次課程設計的主要目的是綜合運用本課程的理論知識進行頻譜分析以及濾波器設計,通過理論推導得出相應結論,并利用MATLAB或者DSP開發系統作為工具進行實現,從而復習鞏固課堂所學的理論知識,提高對所學知識的綜合應用能力,并從實踐上初步實現對數字信號的處理。通過對聲音的采樣,將聲音采樣后的頻譜與濾波。
MATLAB全稱是Matrix Laboratory,是一種功能強大、效率高、交互性好的數值和可視化計算機高級語言,它將數值分析、矩陣運算、信號處理和圖形顯示有機地融合為一體,形成了一個極其方便、用戶界面友好的操作環境。經過多年的發展,已經發展成為一種功能全面的軟件,幾乎可以解決科學計算中所有問題。MATLAB軟件還提供了非常廣泛和靈活的用于處理數據集的數組運算功能。
在本次課程設計中,主要通過MATLAB來編程對語音信號處理與濾波,設計濾波器來處理數字信號并對其進行分析。
二.課程設計目的:
綜合運用本課程的理論知識進行頻譜分析以及濾波器設計,通過理論推導得出相應結論,并利用MATLAB作為工具進行實現,從而復習鞏固課堂所學的理論知識,提高對所學知識的綜合應用能力,并從實踐上初步實現對數字信號的處理。
三.設計內容:
內容:錄制一段個人自己的語音信號,并對錄制的信號進行采樣;畫出采樣后語音信號的時域波形和頻譜圖;給定濾波器的性能指標,采用窗函數 法和雙線性變換法設計濾波器,并畫出濾波器的頻率響應;然后用自己設計的濾波器對采集的信號進行濾波,畫出濾波后信號的時域波形和頻譜,并對濾波前后的信號進行對比,分析信號的變化;回放語音信號;換一個與你性別相異的人錄制同樣一段語音內容,分析兩段內容相同的語音信號頻譜之間有什么特點;再錄制一段同樣長時間的背景噪聲疊加到你的語音信號中,分析疊加前后信號頻譜的變化,設計一個合適的濾波器,能夠把該噪聲濾除。
四.設計原理:
4.1.語音信號的采集
熟悉并掌握MATLAB中有關聲音(wave)錄制、播放、存儲和讀取的函數,在MATLAB環境中,有關聲音的函數有:
a:y=wavrecord(N,fs,Dtype);利用系統音頻輸入設備錄音,以fs為采樣頻率,默認值為11025,即以11025HZ進行采樣。Dtype為采樣數據的存儲格式,用字符串指定,可以是:‘double’、‘single’、’int16’、‘int8’其中只有int8是采用8位精度進行采樣,其它三種都是16位采樣結果轉換為指定的MATLAB數據;
b:wavplay(y,fs);利用系統音頻輸出設備播放,以fs為播放頻率,播放語音信號y;
c:wavwrite((y,fs,wavfile);創建音頻文件; d:y=wavread(file);讀取音頻文件;
關于聲音的函數還有sound();soundsc();等。4.2濾波器: 4.21.IIR濾波器原理
沖激響應不變法是使數字濾波器在時域上模擬濾波器,但是它們的缺點是產生頻率響應的混疊失真,這是由于從s平面到z平面是多值的映射關系所造成的。
雙線性變換法是使數字濾波器的頻率響應與模擬濾波器的頻率響應相似的一種變換方法。為了克服多值映射這一缺點,我們首先把整個s平面壓縮變換到某一中介的s1平面的一條橫帶里,再通過變換關系將此橫帶變換到整個z平面上去,這樣就使得s平面與z平面是一一對應的關系,消除了多值變換性,也 就消除了頻譜混疊現象。
雙線性法設計IIR數字濾波器的步驟:
1)將數字濾波器的頻率指標{ ?k}由Wk=(2/T)*tan(wk),轉換為模擬濾波器的頻率指標{?k}.2)由模擬濾波器的指標設計H(s).3)由H(s)轉換為H(z)21?z?1H(z)?H(s)s?T1?z?1
4.22.FIR濾波器原理
FIR濾波器與IIR濾波器特點不同,IIR濾波器的相位是非線性的,若需線性相位則要采用全通網絡進行相位校正。而有限長單位沖激響應(FIR)數字濾波器就可以做成具有嚴格的線性相位,同時又可以具有任意的幅度特性。
由于FIR系統的沖激響應就是其系統函數各次項的系數,所以設計FIR濾波器的方法之一可以從時域出發,截取有限長的一段沖激響應作為H(z)的系數,沖激響應長度N就是系統函數H(z)的階數。只要N足夠長,截取的方法合理,總能滿足頻域的要求。這種時域設計、頻域檢驗的方法一般要反復幾個回合,不像IIR DF設計靠解析公式一次計算成功。給出的理想濾波器頻率響應是,它是w的周期函數,周期
由傅立葉反變換導出,即
hd(n)?1Hd(ejw)ejwndw?2?,再將hd(n)與窗函數,因此可展開成傅氏級數w(n)相乘就可以得到h(n)。、的計算可采用傅氏變換的現成公式和程序,窗函數也是現成的。但整個設計過程不能一次完成,因為窗口類型和大小的選擇沒有解析公式可一次算,整個設計可用計算機編程來做。
窗函數的傅式變換W(ejω)的主瓣決定了H(ejω)過渡帶寬。W(ejω)的旁瓣大小和多少決定了H(ejω)在通帶和阻帶范圍內波動幅度,常用的幾種窗函數有:
矩形窗
w(n)=RN(n);
Hanning窗
;
Hamming窗
;
Blackmen窗
;
Kaiser窗。
式中Io(x)為零階貝塞爾函數。
五.設計步驟:
5.1錄制女音:
利用MATLAB中的函數錄制聲音。function nvyin()fs=11025;
%采樣頻率
str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
開始錄音');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);y=wavrecord(3*fs,fs,'double');
%錄制聲音3秒
str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
錄音結束');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
播放錄音');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];5 disp(str);wavplay(y,fs);
%播放錄音
str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
播放錄音結束');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);wavwrite(y,fs,'原女音');
%聲音的存儲
5.2采樣語音信號并畫出時域波形和頻譜圖
讀取語音信號,畫出其時域波形和頻譜圖,與截取后的語音信號的時域波形和頻譜圖比較,觀察其變化。程序如下:
[x,fs,bits]=wavread('女音.wav');
%讀取聲音
N=length(x);
%計數讀取信號的點數 t=(1:N)/fs;
%信號的時域采樣點 f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半 figure(1);subplot(2,2,1);
%把畫圖區域劃分為2行2列,指定第一個圖 plot(t, x);
%畫出聲音采樣后的時域波形 title('原女音信號的時域波形');
%給圖形加注標簽說明 xlabel('時間/t');ylabel('振幅/A');grid;
%添加網格
y=fft(x);
%對信號做N點FFT變換 k=(n-1)*f0;
%頻域采樣點
subplot(2,2,3);
%把畫圖區域劃分為2行2列,指定第三個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應圖 title('FFT變換后聲音的頻譜特性');
%給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
%添加網格
subplot(2,2,4);
%把畫圖區域劃分為2行2列,指定第四個圖 if y~=0
%判斷指數是否為0
plot(k,20*log10(abs(y(n))));
%畫信號頻譜的分貝圖 end xlabel('Hz');ylabel('振幅/分貝');title('FFT變換后聲音的頻譜特性');grid;
%添加網格
%實際發出聲音落后錄制動作半拍的現象的解決 siz=wavread('女音.wav','size');x1=wavread('女音.wav',[3500 32076]);
%截取語音信號 N=length(x1);
%計數讀取信號的點數 t=(1:N)/fs;
%信號的時域采樣點 f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半
figure(2);subplot(2,2,1);
%把畫圖區域劃分為2行2列,指定第一個圖 plot(t,x1);
%畫出聲音采樣后的時域波形 title('截取后女音信號的時域波形');
%給圖形加注標簽說明 xlabel('時間/t');ylabel('振幅/A');grid;
%添加網格
y1=fft(x1);
%對信號做N點FFT變換
subplot(2,2,3);
%把畫圖區域劃分為2行2列,指定第三個圖 k=(n-1)*f0;
%頻域采樣點
plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應圖 title('FFT變換后聲音的頻譜特性');
%給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
%添加網格
subplot(2,2,4);
%把畫圖區域劃分為1行2列,指定第二個圖 if y1~=0
%判斷指數是否為0
plot(k,20*log10(abs(y1(n))));
%畫信號頻譜的分貝圖 end xlabel('Hz');ylabel('振幅/分貝');title('FFT變換后聲音的頻譜特性');grid;
%添加網格
原女音信號的時域波形10.5A/幅0振-0.5-10123時間/tFFT變換后聲音的頻譜特性FFT變換后聲音的頻譜特性30050A200貝/值分/幅0幅100振00200040006000-***頻率/HzHz 截取后女音信號的時域波形10.5振幅/A0-0.5-10123FFT變換后聲音的頻譜特性50時間/tFFT變換后聲音的頻譜特性300200振幅/分貝幅值/A01000020004000頻率/Hz6000-5002000Hz40006000
結果分析:
由原女音信號的時域波形可知錄取開始時實際發出聲音大概落后3500個采樣點,我們把前3500點去除即可解決實際發出聲音落后錄制動作半拍的現象。由原女音的的頻譜圖和截取后聲音的頻譜圖可看出,對聲音的截取并不會影響它們頻譜分布。
5.3采用雙線性變換法設計IIR濾波器:
人的聲音頻率一般在(1~~4)kHZ之間,則我們只需要設計一個帶通濾波器即可濾去聲音頻帶以外的無用噪聲,得到比較清晰的聲音。根據聲音的頻譜圖分析,設計一個帶通濾波器性能指標如下:
fp1=1000 Hz,fp2=3000 Hz,fsc1=500 Hz,fsc2=3500Hz,As=100dB,Ap=1dB,fs=10000 程序如下:
%iir帶通的代碼: %w=2*pi*f/fs Ap=1;
%通帶波紋系數
Az=100;
%最小阻帶衰減
wp=[0.2 0.6];
%歸一化通帶數字截止頻率 wz=[0.1 0.7];
%歸一化阻帶數字截止頻率 [N,wn]=cheb1ord(wp,wz,Ap,Az);
%估計契比雪夫I型濾波器階數 [b,a]=cheby1(N,Ap,wn);
%N指定濾波器階數,wn歸一化
截 %止頻率,Ap通帶波動
[h,w]=freqz(b,a);
%求數字濾波器的復頻率響應 figure(1);subplot(2,1,1);plot(w/pi,abs(h));
%繪制數字濾波器的頻譜圖 grid;xlabel('omega/pi');ylabel('振幅(幅值)');title('契比雪夫Ⅰ型帶通濾波器的幅頻響應');subplot(2,1,2);if abs(h)~=0
%判斷指數是否為0
plot(w/pi,20*log10(abs(h)));
%繪制數字濾波器頻譜的分貝圖 end grid;xlabel('omega/pi');ylabel('振幅(分貝)');title('契比雪夫Ⅰ型帶通濾波器的幅頻響應');契比雪夫Ⅰ型帶通濾波器的幅頻響應1振幅(幅值)0.5000.10.20.50.60.70.8?/?契比雪夫Ⅰ型帶通濾波器的幅頻響應0.30.40.910振幅(分貝)-200-400-60000.10.20.30.40.5?/?0.60.70.80.91
5.4窗函數法設計FFR濾波器
線性相位FIR濾波器通常采用窗函數法設計。窗函數法設計FIR濾波器的基本思想是:根據給定的濾波器技術指標,選擇濾波器長度N和窗函數ω(n),使其具有最窄寬度的主瓣和最小的旁瓣。其核心是從給定的頻率特性,通過加窗確定有限長單位脈沖響應序列h(n)。工程中常用的窗函數共有6種,即矩形窗、巴特利特(Bartlett)窗、漢寧(Hanning)窗、漢明(Hamming)窗、布萊克曼(Blackman)窗和凱澤(Kaiser)窗。
這次設計我采用的是布萊克曼來設計給定數字帶通濾波器的參數如下: wp1=0.3pi, wp2=0.6pi, wz1=0.2pi, wz2=0.7pi, Ap=1dB, Az=70dB 程序如下:
Ap=1;
%通帶波紋系數 Az=100;
%最小阻帶衰減 fs=10000;
%采樣頻率 wp1=0.3*pi;wp2=0.6*pi;wz1=0.2*pi;wz2=0.7*pi;wc1=(wz1+wp1)/2;wc2=(wz2+wp2)/2;deltaW=min((wp1-wz1),(wz2-wp2));
%---取兩個過渡帶中的小者 N0=ceil(2*5.5*pi/deltaW);
%---查表7-3(P342)布拉克曼窗 N=N0+mod(N0+1,2);
%---確保N為奇數 hdWindow=ideallp(wc2,N)-ideallp(wc1,N);%理想帶通濾波器 wdWindow=blackman(N);
%布拉克曼窗 hr=wdWindow.*hdWindow';
%點乘
n=0:N-1;
%階數 subplot(2,2,1);stem(n,wdWindow);
%繪制布拉克曼窗時域波形 xlabel('時間');ylabel('振幅');title('布拉克曼窗');[H,W]=freqz(hr,1);
%求濾波器頻率響應 subplot(2,2,3);plot(W/pi,abs(H))
%繪制濾波器頻域波形 xlabel('omega/pi');ylabel('振幅');title('FIR帶通濾波器幅頻特性');subplot(2,2,4);
if abs(H)~=0
%判斷指數是否為0
plot(W/pi,20*log10(abs(H)));
%畫濾波器頻譜的分貝圖 end xlabel('omega/');ylabel('振幅/分貝');title('FIR帶通濾波器幅頻特性');grid;
%添加網格 %---ideallp()函數(非系統自有函數)在系統安裝目錄的WORK子目錄ideallp.m function hd = ideallp(wc,N);% 理想低通濾波器的脈沖響應子程序 % hd = 點0 到 N-1之間的理想脈沖響應 % wc = 截止頻率(弧度)% N = 理想濾波器的長度
tao =(N-1)/2;
% 理想脈沖響應的對稱中心位置 n = [0:(N-1)];
% 設定脈沖響應長度 m = n-tao + eps;
% 加一個小數以避免零作除數
hd = sin(wc*m)./(pi*m);
% 理想脈沖響應
布拉克曼窗1振幅0.500406080時間FIR帶通濾波器幅頻特性500振幅/分貝20FIR帶通濾波器幅頻特性1.51振幅-50-100-15000.5?/10.5000.5?/?1
5.5用IIR濾波器對信號進行濾波
用自己設計的IIR濾波器分別對采集的信號進行濾波,在Matlab中,IIR濾波器利用函數filter對信號進行濾波。程序如下: [x,fs,bits]=wavread('女音.wav');N=length(x);
%計數讀取信號的點數 t=(1:N)/fs;
%信號的時域采樣點 f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半 y=fft(x);
%對信號做N點FFT變換 k=(n-1)*f0;
%頻域采樣點
subplot(2,1,1);
%把畫圖區域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應圖 title('濾波前女音的頻譜特性');
%給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
%iir帶通的代碼:
Ap=1;
%通帶波紋系數
Az=100;
%最小阻帶衰減
wp=[0.2 0.6];
%歸一化通帶數字截止頻率 wz=[0.1 0.7];
%歸一化阻帶數字截止頻率 [N,wn]=cheb1ord(wp,wz,Ap,Az);
%估計契比雪夫I型濾波器階數
[b,a]=cheby1(N,Ap,wn);
%N指定濾波器階數,wn歸一化截止頻率,Ap通帶波動 x1=filter(b,a,x);
%對聲音濾波 wavplay(x1)wavwrite(x1,'IIR濾波后女音.wav');N=length(x1);
%計數讀取信號的點數 t=(1:N)/fs;
%信號的時域采樣點 f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半
y=fft(x1);
%對信號做N點FFT變換 k=(n-1)*f0;
%頻域采樣點
subplot(2,1,2);
%把畫圖區域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應圖 title('l濾波后女音的頻譜特性');
%給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
濾波前女音的頻譜特性300幅值/A***030004000頻率/Hz濾波后女音的頻譜特性500060006040幅值/A***0頻率/Hz400050006000
結果分析:
由上面濾波前后的頻譜圖可看出,濾波器濾除了小于1000Hz和大于3400Hz的頻譜成分。回放語音信號,由于低頻和高頻成分被濾除,聲音變得較低沉。
5.6用FIR濾波器對信號進行濾波
用自己設計的FIR濾波器分別對采集的信號進行濾波,在Matlab中,FIR濾波器利用函數fftfilt對信號進行濾波 程序如下:
[x,fs,bits]=wavread('女音.wav');N=length(x);
%計數讀取信號的點數
t=(1:N)/fs;
%信號的時域采樣點 f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半
y=fft(x);
%對信號做N點FFT變換 k=(n-1)*f0;
%頻域采樣點
subplot(2,1,1);
%把畫圖區域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應圖 title('濾波前女音的頻譜特性');
%給圖形加注標簽說明 xlabel('頻率/omega');ylabel('幅值/A');grid;
%FIR帶通濾波器代碼 fs=10000;wp1=0.3*pi;wp2=0.6*pi;wz1=0.2*pi;wz2=0.7*pi;wc1=(wz1+wp1)/2;wc2=(wz2+wp2)/2;deltaW=min((wp1-wz1),(wz2-wp2));
%---取兩個過渡帶中的小者 N0=ceil(2*5.5*pi/deltaW);
%---查表7-3(P342)布拉克曼窗 N=N0+mod(N0+1,2);
%---確保N為奇數 hdWindow=ideallp(wc2,N)-ideallp(wc1,N);wdWindow=blackman(N);hr=wdWindow.*hdWindow';x1=fftfilt(hr,x);
%對聲音濾波 wavplay(x1)wavwrite(x1,'FIR濾波后女音.wav');N=length(x1);
%計數讀取信號的點數 t=(1:N)/fs;
%信號的時域采樣點 f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半
y=fft(x1);
%對信號做N點FFT變換 k=(n-1)*f0;
%頻域采樣點
subplot(2,1,2);
%把畫圖區域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應圖 title('l濾波后女音的頻譜特性');
%給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
濾波前女音的頻譜特性300200幅值/A***004000頻率/?l濾波后女音的頻譜特性500060006040幅值/A20005001000***03000頻率/Hz***0
結果分析:
由上面濾波前后的頻譜圖可看出,濾波器濾除了小于1000Hz和大于3500Hz的頻譜成分。和用IIR濾波器濾波一樣,回放語音信號,由于低頻和高頻成分被濾除,聲音變得較低沉。5.7男女聲語音信號頻譜特點分析
換一個男音錄制同樣一段語音內容,分析兩段內容相同的語音信號頻譜之間有什么特點。程序如下:
[x,fs,bits]=wavread('女音.wav');
%讀取聲音
N=length(x);
%計數讀取信號的點數 t=(1:N)/fs;
f0=fs/N;
n=1:N/2;
y=fft(x);
k=(n-1)*f0;
subplot(2,1,1);
plot(k,abs(y(n)));
title('FFT變換后女音的頻譜特性');xlabel('頻率/omega');ylabel('幅值/A');grid;
[x,fs,bits]=wavread('明明.wav');
N=length(x);
t=(1:N)/fs;
f0=fs/N;
n=1:N/2;
y=fft(x);
k=(n-1)*f0;
subplot(2,1,2);
plot(k,abs(y(n)));
title('FFT變換后男音的頻譜特性');xlabel('頻率/omega');ylabel('幅值/A');grid;
%信號的時域采樣點
%采樣間隔
%取信號的一半
%對信號做N點FFT變換
%頻域采樣點
%把畫圖區域劃分為2行1列,指定第一個圖%繪制原始語音信號的幅頻響應圖
%給圖形加注標簽說明
%添加網格
%讀取聲音
%計數讀取信號的點數
%信號的時域采樣點
%采樣間隔
%取信號的一半
%對信號做N點FFT變換
%頻域采樣點
%把畫圖區域劃分為2行1列,指定第二個圖%繪制原始語音信號的幅頻響應圖
%給圖形加注標簽說明
%添加網格
axis([0 6000 0 300]);
%改變橫縱坐標便于比較頻譜圖
FFT變換后女音的頻譜特性300200幅值/A***00頻率/?FFT變換后男音的頻譜特性***200幅值/A***00頻率/?400050006000
結果分析:
通過比較上面女音頻譜圖和男音頻譜圖可知,男音的頻譜集中在低頻部分,高頻成分底,譜線較平滑,聲音聽起來低沉。5.8有背景噪聲的信號分析
從硬盤中把一段噪聲(頻譜能量集中在某個小范圍內)疊加到語音信號中,分析疊加前后信號頻譜的變化,設計一個合適的濾波器,能夠把該噪聲濾除; 程序如下:
z=wavread('女音.wav',[1 24000]);
%讀取聲音在1-24000之間 f=wavread('noise.wav',[1 24000]);x=z+f;wavplay(x);fs=11025;N=length(x);f0=fs/N;
%采樣間隔
n=1:N;
%取信號的一半 y=fft(x,N);%對信號做N點FFT變換
k=(n-1)*f0;
%頻域采樣點
subplot(2,1,1);
%把畫圖區域劃分為1行2列,指定第二個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應圖 title('加噪聲后聲音的頻譜特性');
%給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;%添加網格
%iir帶通濾波器的代碼:
Ap=1;
%通帶波紋系數
Az=70;
%最小阻帶衰減
wp=[0.2 0.7];
%歸一化通帶數字截止頻率 wz=[0.1 0.8];
%歸一化阻帶數字截止頻率 [N,wn]=cheb1ord(wp,wz,Ap,Az);
%估計契比雪夫I型濾波器階數
[b,a]=cheby1(N,Ap,wn);
%N指定濾波器階數,wn歸一化截止頻率,Ap通帶波動 x1=filter(b,a,x);
%對聲音濾波 wavplay(x1);
wavwrite(x1,'濾除噪音后女音.wav');N=length(x1);f0=fs/N;
%采樣間隔 n=1:N;
%取信號的一半
y1=fft(x1,N);
%對信號做fs點FFT變換
subplot(2,1,2);
%把畫圖區域劃分為1行2列,指定第二個圖 k=(n-1)*f0;
%頻域采樣點
plot(k,abs(y1(n)));
%繪制原始語音信號的幅頻響應圖 title('濾除噪聲后聲音的頻譜特性');
%給圖形加注標簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;%添加網格
加噪聲后聲音的頻譜特性3000幅值/A***0008000頻率/Hz濾除噪聲后聲音的頻譜特性***030幅值/A***000頻率/Hz80001000012000
結果分析
觀察加噪聲后聲音的頻譜圖可知,噪音頻率主要在4000Hz處,只要我們設計一個,濾波器濾除大概在4000Hz的頻譜即可,回放濾波后的語音信號,可證噪音基本濾除。
六.心得體會:
通過這次課程設計,讓我對MATLAB的基本應用有了更深的了解,還有數字信號處理在MATLAB中的一些函數的用法。通過理論推導得出相應結論,并利用MATLAB作為工具進行實現,從而復習鞏固課堂所學的理論知識,提高對所學知識的綜合應用能力,并從實踐上初步實現對數字信號的處理。
在這次實驗中,也遇到了很多問題,比如畫信號頻譜的分貝圖時(20*log10(abs(y)))指數為零時的處理。濾波器的設計也花了好大的功夫,剛開始不會設計參數,一頭霧水,通過同學的指導和討論,得知通過觀察信號的頻譜圖,看噪音頻率集中在那一部分,設計濾波器把其濾除即可。可反復設置參數直到濾波后語音信號的效果好為止。
七.參考文獻:
(1)《MATLAB LabVIEW SystemView》翁劍楓 葉志前 編著, 機械工業出版社;
(2)《MATLAB及在電子信息課程中的應用》陳懷琛 吳大正 高西全編著,電子工業出版社;
(3)《MATLAB在數字信號處理中的應用》(弟2版)薛年喜 編著,清華大學出版社;
(4)《MATLAB擴展編程》何強 何英
編著,清華大學出版社;(5)《MATLAB7簡明教程》吳清 曹輝林 編著,清華大學出版社;(6)MATLAB5.3精要.編程及高級應用》程衛國 馮峰 王雪梅 劉藝 編著,機械工程出版社。
第三篇:數字信號處理課后習題Matlab作業
數字信號處理MATLAB
第1頁
習題數字信號處理MATLAB習題
M1-1 已知g1(t)?cos(6?t),g2(t)?cos(14?t),g3(t)?cos(26?t),以抽樣頻率fsam?10Hz對上述三個信號進行抽樣。在同一張圖上畫出g1(t),g2(t)和g3(t)及抽樣點,對所得結果進行討論。
解:
第2頁
從以上兩幅圖中均可看出,三個余弦函數的周期雖然不同,但它們抽樣后相應抽樣點所對應的值都相同。那么這樣還原回原先的函數就變成相同的,實際上是不一樣的。這是抽樣頻率太小的原因,我們應該增大抽樣頻率才能真實還原。如下圖:f=50Hz
第3頁
程序代碼
f=10;
t=-0.2:0.001:0.2;g1=cos(6.*pi.*t);g2=cos(14.*pi.*t);g3=cos(26.*pi.*t);k=-0.2:1/f:0.2;h1=cos(6.*pi.*k);h2=cos(14.*pi.*k);h3=cos(26.*pi.*k);% subplot(3,1,1);
% plot(k,h1,'r.',t,g1,'r');% xlabel('t');% ylabel('g1(t)');% subplot(3,1,2);
% plot(k,h2,'g.',t,g2,'g');% xlabel('t');% ylabel('g2(t)');% subplot(3,1,3);
% plot(k,h3,'b.',t,g3,'b');% xlabel('t');% ylabel('g3(t)');
plot(t,g1,'r',t,g2,'g',t,g3,'b',k,h1,'r.',k,h2,'g.',k,h3,'b.')
第4頁
xlabel('t');ylabel('g(t)');
legend('g1(t)','g2(t)','g3(t)');
M2-1 利用DFT的性質,編寫一MATLAB程序,計算下列序列的循環卷積。
(1)g[k]={1,-3,4,2,0,-2,},h[k]={3,0,1,-1,2,1};(2)x[k]=cos(?k/2),y[k]=3k,k=0,1,2,3,4,5。解:(1)循環卷積結果
6.0000-3.0000 17.0000-2.0000 7.0000-13.0000
程序代碼
第5頁
g=[1-3 4 2 0-2];h=[3 0 1-1 2 1];l=length(g);L=2*l-1;GE=fft(g,L);HE=fft(h,L);y1=ifft(GE.*HE);for n=1:l
if n+l<=L
y2(n)=y1(n)+y1(n+l);else
y2(n)=y1(n);
end end y2
stem(0:l-1,y2)xlabel('k')ylabel('y(k)')title('循環卷積')
(2)循環卷積結果
-71.0000-213.0000 89.0000 267.0000 73.0000 219.0000
第6頁
程序代碼
k=0:5;
x=cos(pi.*k./2);y=3.^k;l=length(x);L=2*l-1;GE=fft(x,L);HE=fft(y,L);y1=ifft(GE.*HE);for n=1:l
if n+l<=L
y2(n)=y1(n)+y1(n+l);
else
y2(n)=y1(n);
end end y2
stem(0:l-1,y2)xlabel('k')ylabel('y’(k)')title('循環卷積')
第7頁
M2-2 已知序列x[k]???cos(k?/2N),|k|?N
0,其他?(1)計算序列DTFT的表達式X(ej?),并畫出N=10時,X(ej?)的曲線。
(2)編寫一MATLAB程序,利用fft函數,計算N=10時,序列x[k]的DTFT在?m?2?m/N的抽樣值。利用hold函數,將抽樣點畫在X(ej?)的曲線上。
解:
(1)X(e)?DTFT{x[k]}?j?k????x[k]e??j?k?k??N?cos(k?/2N)eN?j?k
程序代碼
N=10;k=-N:N;
x=cos(k.*pi./(2*N));W=linspace(-pi,pi,512);
第8頁
X=zeros(1,length(W));for k=-N:N
X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end
plot(W,abs(X))xlabel('W');ylabel('abs(X)');
(2)
程序代碼
N=10;k=-N:N;
x=cos(k.*pi./(2*N));X_21=fft(x,21);L=-10:10;
W=linspace(-pi,pi,1024);X=zeros(1,length(W));for k=-N:N
X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end
第9頁
plot(W,abs(X));hold on;
plot(2*pi*L/21,fftshift(abs(X_21)),'o');xlabel('W');ylabel('abs(X)');
M2-3 已知一離散序列為x[k]?Acos?0k?Bcos[(?0???)k]。用長度N=64的Hamming窗對信號截短后近似計算其頻譜。試用不同的A和B的取值,確定用Hamming窗能分辨的最小的譜峰間隔??w?c的值。
解:f1=100Hz f2=120Hz時
2?中cN
f2=140Hz時
第10頁
f2=160Hz時
第11頁
由以上三幅圖可見
f2=140Hz時,各譜峰可分辨。則?f又
??w?c2?N
?40Hz
且
??w???T?2??fT?2??40?1 800所以c=3.2(近似值)
程序代碼
N=64;L=1024;
f1=100;f2=160;;fs=800;
A=1;B1=1;B2=0.5;B3=0.25;B4=0.05;T=1/fs;ws=2*pi*fs;k=0:N-1;
x1=A*cos(2*pi*f1*T*k)+B1*cos(2*pi*f2*T*k);x2=A*cos(2*pi*f1*T*k)+B2*cos(2*pi*f2*T*k);x3=A*cos(2*pi*f1*T*k)+B3*cos(2*pi*f2*T*k);x4=A*cos(2*pi*f1*T*k)+B4*cos(2*pi*f2*T*k);hf=(hamming(N))';x1=x1.*hf;x2=x2.*hf;x3=x3.*hf;x4=x4.*hf;
X1=fftshift(fft(x1,L));X2=fftshift(fft(x2,L));X3=fftshift(fft(x3,L));X4=fftshift(fft(x4,L));
W=T*(-ws/2+(0:L-1)*ws/L)/(2*pi);subplot(2,2,1);plot(W,abs(X1));title('A=1,B=1');xlabel('W');ylabel('X1');subplot(2,2,2);
第12頁
plot(W,abs(X2));title('A=1,B=0.5');xlabel('W');ylabel('X2');subplot(2,2,3);plot(W,abs(X3));title('A=1,B=0.25');xlabel('W');ylabel('X3');subplot(2,2,4);plot(W,abs(X4));title('A=1,B=0.05');xlabel('W');ylabel('X4');
M2-4 已知一離散序列為x[k]?cos?0k?0.75cos?1k,0?k?63。其中, ?0?2?/15,?1?2.3?/15。
(1)對x[k]做64點FFT, 畫出此時信號的譜。
(2)如果(1)中顯示的譜不能分辨兩個譜峰,是否可對(1)中的64點信號補0而分辨出兩個譜峰。通過編程進行證實,并解釋其原因。
解:(1)
第13頁
程序代碼
W0=2*pi/15;W1=2.3*pi/15;N=64;k=0:N-1;
x=cos(W0*k)+0.75*cos(W1*k);X=fft(x);
plot(k/N,abs(X));grid on;
title('64點FFT');
(2)
第14頁
第15頁
由以上三幅圖看出:不能對(1)中的64點信號補零而分辨出兩個譜峰,這樣的方法只能改變屏幕分辨率,但可以通過加hamming窗來實現對譜峰的分辨。程序代碼
W0=2*pi/15;W1=2.3*pi/15;N=64;L=1024;k=0:N-1;
x=cos(W0*k)+0.75*cos(W1*k);X=fft(x,L);
plot((0:L-1)/N,abs(X));grid on;
title('1024點FFT');
M2-5 已知一連續信號為x(t)=exp(-3t)u(t),試利用DFT近似分析
第16頁
其頻譜。若要求頻率分辨率為1Hz,試確定抽樣頻率fsam、抽樣點數N以及持續時間Tp。
解:
本題使用矩形窗,則N?fsamfsam1??fsam,Tp??1 ?f1?f
第17頁
由以上三幅圖可以看出當fsam越來越大時,近似值越來越接近
第18頁
于實際值。即fsam越大擬合效果越好,造成的混疊也是在可以允許的范圍內。程序代碼
fs=100;ws=2*pi*fs;Ts=1/fs;N=fs;
x=exp(-3*Ts*(0:N-1));y=fft(x,N);l=length(y);
k=linspace(-ws/2,ws/2,l);
plot(k,Ts*fftshift(abs(y)),'b:');hold on;
w=linspace(-ws/2,ws/2,1024);y1=sqrt(1./(9+w.^2));plot(w,y1,'r')
title('fs=100Hz時的頻譜')legend('近似值','實際值);
M2-6 試用DFT近似計算高斯信號g(t)?exp(?dt2)的頻譜抽樣值。
π?2通過和頻譜的理論值G(j?)?exp(?)比較,討論如何根據時域的信
d4d號來恰當地選取截短長度和抽樣頻率使計算誤差能滿足精度要求。
解:
第19頁
第20頁
由以上三幅圖可以看出:
當時域截取長度相同時,抽樣間隔越小時誤差越小,當抽樣間隔一定時,時域截取長度越長,誤差越小。當取抽樣間隔為1S,時域截取長度為2S時,誤差較大,絕對誤差在0.5左右;當抽樣間隔為0,5S,時域截取長度為2S時,誤差比間隔為1S時小,絕對誤差不大于0.2;當抽樣間隔為0.5S時域截取長度為4S時,誤差更小,絕對誤差不大于0.04。因為時域截取長度越長,保留下來的原信號中的信息越多,抽樣間隔越小,頻譜越不容易發生混疊,所以所得頻譜與理論值相比,誤差更小。
程序代碼
Ts=0.5;N=4;N0=64;
k=(-N/2:(N/2))*Ts;
第21頁
x=exp(-pi*(k).^2);X=Ts*fftshift(fft(x,N0));
w=-pi/Ts:2*pi/N0/Ts:(pi-2*pi/N0)/Ts;XT=(pi/pi)^0.5*exp(-w.^2/4/pi);subplot(2,1,1)
plot(w/pi,abs(X),'-o',w/pi,XT);xlabel('omega/pi');ylabel('X(jomega)');
legend('試驗值','理論值');
title(['Ts=',num2str(Ts)subplot(2,1,2)plot(w/pi,abs(X)-XT)ylabel('實驗誤差')
xlabel('omega/pi');
'N=',num2str(N)]);第22頁
' '
第四篇:數字信號處理課程總結(全)
數字信號處理課程總結
以下圖為線索連接本門課程的內容:
xa(t)數字信號前置濾波器A/D變換器處理器D/A變換器AF(濾去高頻成分)ya(t)x(n)
一、時域分析
1. 信號
? 信號:模擬信號、離散信號、數字信號(各種信號的表示及關系)? 序列運算:加、減、乘、除、反褶、卷積 ? 序列的周期性:抓定義
njwna、e?(n)(可表征任何序列)cos(wn??)u(n)、? 典型序列:、、RN(n)、?x(n)??x(m)?(n?m)
m???特殊序列:h(n)2. 系統
? 系統的表示符號h(n)? 系統的分類:y(n)?T[x(n)]
線性:T[ax1(n)?bx2(n)]?aT[x1(n)]?bT[x2(n)] 移不變:若y(n)?T[x(n)],則y(n?m)?T[x(n?m)] 因果:y(n)與什么時刻的輸入有關 穩定:有界輸入產生有界輸出
? 常用系統:線性移不變因果穩定系統 ? 判斷系統的因果性、穩定性方法 ? 線性移不變系統的表征方法:
線性卷積:y(n)?x(n)*h(n)
NMk差分方程: y(n)??ak?1y(n?k)??bk?0kx(n?k)3. 序列信號如何得來?
xa(t)x(n)抽樣
? 抽樣定理:讓x(n)能代表xa(t)? 抽樣后頻譜發生的變化? ? 如何由x(n)恢復xa(t)?
?sin[xa(mT)?T(t?mT)]
xa(t)=?m????T
(t?mT)
二、復頻域分析(Z變換)
時域分析信號和系統都比較復雜,頻域可以將差分方程變換為代數方程而使分析簡化。A. 信號 1.求z變換
?定義:x(n)?X(z)??x(n)zn????n
收斂域:X(z)是z的函數,z是復變量,有模和幅角。要其解析,則z不能取讓X(z)無窮大的值,因此z的取值有限制,它與x(n)的種類一一對應。
? x(n)為有限長序列,則X(z)是z的多項式,所以X(z)在z=0或∞時可能會有∞,所以z的取值為:0?z??;
? x(n)為左邊序列,0?z?Rx?,z能否取0看具體情況;
? x(n)為右邊序列,Rx??z??,z能否取∞看具體情況(因果序列); ? x(n)為雙邊序列,Rx??z?Rx? 2.求z反變換:已知X(z)求x(n)
? 留數法
? 部分分式法(常用):記住常用序列的X(z),注意左右序列區別。? 長除法:注意左右序列 3.z變換的性質:
? 由x(n)得到X(z),則由x(n?m)?z?mX(z),移位性; ? 初值終值定理:求x(0)和x(?);
? 時域卷積和定理:y(n)?x(n)*h(n)?Y(z)?X(z)H(z); ? 復卷積定理:時域的乘積對應復頻域的卷積; ? 帕塞瓦定理:能量守恒
?
?n???x(n)2?12?????X(ejw)dw2
4.序列的傅里葉變換
?公式:X(ejw)??x(n)en????jwn
x(n)?12?????X(ej?)ej?nd?
注意:X(ejw)的特點:連續、周期性;X(ejw)與X(z)的關系 B. 系統
由h(n)?H(z),系統函數,可以用來表征系統。
? H(z)的求法:h(n)?H(z);H(z)=Y(z)/X(z); ? 利用H(z)判斷線性移不變系統的因果性和穩定性 ? 利用差分方程列出對應的代數方程
MNMy(n)??ak?1y(n?k)?k?bk?0x(n?k)?kY(z)X(z)?b?k?0Nkz?k
k1??ak?1z?k? 系統頻率響應H(ejw):以2?為周期的?的連續函數
?
H(e)?jw?h(n)en?????jwn
H(e?jw)??h(n)en???jwn,當h(n)為實序列時,則有H(ejw)=H*(e?jw)
三、頻域分析
根據時間域和頻域自變量的特征,有幾種不同的傅里葉變換對
? 時間連續,非周期?頻域連續(由時域的非周期造成),非周期(由時域的連續造成); ?X(j?)??x(t)e????j?tdt
x(t)?12????X(j?)ej?td?
? 時間連續,周期?頻域離散,非周期
X(jk?0)?1T0T0/2?x(t)e?jk?0tdt
?T0/2x(t)??X(jk?0)ejk?0t
? 時間離散,非周期?頻域連續,周期
?
X(e)?jw?x(n)en????jwn
x(n)?12?????X(ej?)ej?nd?,w??T(數字頻率與模擬頻率的關系式)
? 時間離散,周期?頻域離散,周期
~X(k)?N?1?n?0~x(n)e?j2?Nkn?~?x(n)W
knNn?0N?11~x(n)?NN?1?n?0~X(k)ej2?Nkn?1NN?1?n?0~?knX(k)WN
? 本章重點是第四種傅里葉變換-----DFS ? 注意:
x(n)和X(k)都是以N為周期的周期序列; 1)~x(n)和X(k)的定義域都為(??,?)
2)盡管只是對有限項進行求和,但~;
~~~例如:k?0時,X(0)?N?1?x(n)
n?0~~k?1時,X(1)?N?1?n?0~x(n)e?j2?Nn
2?NNnN?1~k?N時,X(N)?N?1?n?0?j~x(n)e??n?02?N~~x(n)=X(0)
~k?N?1時,X(N?1)?N?1?n?0~x(n)e?j(N?1)n~?X(1)
x(n)也有類似的結果。x(n)和X(k)一
同理也可看到~可見在一個周期內,~~一對應。
?? 比較X(e)?jw?x(n)en????jwn~和X(k)?N?1?n?0~x(n)e?j2?Nkn?~?x(n)W,當x(n)knNn?0N?1x(n)的一個周期內有定義時,即x(n)=~x(n),0?n?N?1,則在只在~??N?12?Nj2?Nk時,X(ejw)?X(k)。
?1,k?r?? 0,k?r?~? ?en?0(k?r)nx(n)和X(k)的每個周期值都只是其主值區間的周期延拓,所以求和? 因為~~在任一個周期內結果都一樣。
? DFT:有限長序列x(n)只有有限個值,若也想用頻域方法分析,它只屬于序列的傅里葉變換,但序列的傅氏變換為連續函數,所以為方便計算機處理,也希望能像DFS一樣,兩個域都離散。將x(n)想象成一個周期x(n)的一個周期,然后做DFS,即 序列~
~X(k)?N?1?n?0~x(n)e?j2?NknN?1??n?0x(n)e?j2?Nkn
x(n)只有x(n),不是真正的周期序列,但因為求和只需N注意:實際上~個獨立的值,所以可以用這個公式。同時,盡管x(n)只有N個值,但依上式求出的X(k)還是以N為周期的周期序列,其中也只有N個值獨立,這樣將~X(k)規定在一個周期內取值,成為一個有限長序列,則會引出
N?1?j2?Nkn~DFT X(k)??x(n)en?0RN(k)
x(n)?1NN?1?n?0X(k)ej2?NknRN(n)
比較:三種移位:線性移位、周期移位、圓周移位
三種卷積和:線性卷積、周期卷積、圓周卷積
重點:1)DFT的理論意義,在什么情況下線性卷積=圓周卷積 2)頻域采樣定理:掌握內容,了解恢復
3)用DFT計算模擬信號時可能出現的幾個問題,各種問題怎樣引起?
混疊失真、頻譜泄漏、柵欄效應
? FFT:為提高計算速度的一種算法
1)常用兩種方法:按時間抽取基2算法和按頻率抽取基2算法,各自的原理、特點是什么,能自行推導出N小于等于8的運算流圖。2)比較FFT和DFT的運算量; 3)比較DIT和DIF的區別。
四、數字濾波器(DF)
一個離散時間系統可以用h(n)、H(z)、差分方程和H(ejw)來表征。問題:
1、各種DF的結構
2、如何設計滿足要求指標的DF?
3、如何實現設計的DF?
A. 設計IIR DF,借助AF來設計,然后經S---Z的變換即可得到。
1)脈沖響應不變法:思路、特點 2)雙線性變換法:思路、特點、預畸變 3)模擬濾波器的幅度函數的設計 B. 設計FIR DF 1)線性相位如何得到?條件是什么?各種情況下的特點。2)窗函數設計法:步驟、特點 3)頻率抽樣法:步驟、特點 C. 實現DF
M?a
標準形式:H(z)?k?0Nkz?k
bkz?k1??k?1
第五篇:數字信號處理課程總結(推薦)
數字信號處理課程總結
信息09-1班 陳啟祥 金三山 趙大鵬 劉恒
進入大三,各種專業課程的學習陸續展開,我們也在本學期進行了數字信號處理這門課程的學習。
作為信心工程專業的核心課程之一,數字信號處理的重要性是顯而易見的。在近九周的學習過程中,我們學習了離散時間信號與系統的時域及頻域分析、離散傅里葉變換、快速傅里葉變換、IIR及FIR數字濾波器的設計及結構等相關知識,并且在實驗課上通過MATLAB進行了相關的探究與實踐。總體來說,通過這一系列的學習與實踐,我們對數字信號處理的有關知識和基礎理論已經有了初步的認知與了解,這對于我們今后進一步的學習深造或參加實際工作都是重要的基礎。
具體到這門課程的學習,應當說是有一定的難度的。課本所介紹的相關知識理論性很強,并且與差分方程、離散傅里葉級數、傅里葉變換、Z變換等數學工具聯系十分緊密,所以要真正理解課本上的相關理論,除了認真聆聽老師的講解,還必須要花費大量時間仔細研讀課本,并認真、獨立地完成課后習題。總之,理論性強、不好理解是許多同學對數字信號處理這門課程的學習感受。
另外,必須要說MATLAB實驗課程的開設是十分必要的。首先,MATLAB直觀、簡潔的操作界面對于我們真正理解課堂上學來的理論知識幫助很大;其次,運用MATLAB進行實踐探究,也使我們真正意識到,在信息化的今天,研究數字信號離不開計算機及相關專業軟件的幫助,計算機及軟件技術的發展,是今日推動信息技術發展的核心動力;最后,作為信息工程專業的學生,在許多學習與實踐領域需要運用MATLAB這樣一個強大工具,MATLAB實驗課程的開設,鍛煉了我們的實踐能力,也為我們今后在其他領域運用MATLAB打下了基礎。
課程的結束、考試的結束不代表學習的結束,數字信號處理作為我們專業的基礎之一,是不應當被我們拋之腦后的。
最后感謝老師這幾周來的教誨與指導,謝謝老師!
2012年5月7日