【正文】
同時我認(rèn)識到數(shù)字信號處理的理論知識是非常重要的,是本次課程設(shè)計的基石,所以在此要特別謝謝張老師在平時教學(xué)過程中對我們嚴(yán)格要求,使我們有一個比較扎實的理論基礎(chǔ),Matlab語言是一種廣泛應(yīng)用于工程計算及數(shù)值分析,領(lǐng)域的新型高級語言,Matlab功能強(qiáng)大、編程效率高。% Outputs from this function are returned to the mand line.function varargout = DSP_OutputF(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT)。else gui_mainf(gui_State, varargin{:})。, [])。, DSP_OutputF, ... 39。, gui_Singleton, ... 39。gui_State = struct(39。,39。%播放經(jīng)過海明窗濾波器濾波后的語音信號附錄二:界面設(shè)計的程序function varargout = DSP(varargin)% DSP Mfile for % DSP, by itself, creates a new DSP or raises the existing% singleton*.%% H = DSP returns the handle to a new DSP or the handle to% the existing singleton*.%% DSP(39。 %播放經(jīng)過巴特沃思濾波器濾波后的信號sound(f2,8000)。 %將采樣后的語音信號賦給變量ysound(y,fs,n)。)。%subplot(224)。plot(x)。Freqz(b,a,512,fs)。wp=2*fp/fs。as=100。頻譜圖39。)。subplot(211)。)。圖8海明窗濾波器圖9濾波前后時域波形圖圖10濾波前后頻譜圖(5).用sound函數(shù)播放語音信號程序在Matlab中,函數(shù)sound可以對聲音進(jìn)行回放。)。title(39。ylabel(39。濾波前的頻譜39。figure(3)y2=fft(x2,2048)。濾波后的時域波形39。濾波前的時域波形39。 ws=*pi。 %將所加噪聲信號的點(diǎn)數(shù)調(diào)整到與原始信號相同Au=。D:\My Documents\MATLAB\39。ylabel(39。濾波后的頻譜39。 subplot(2,1,2)F1=plot(f,abs(F0(1:512)))。)。 %畫出濾波前的頻譜圖title(39。f=fs*(0:511)/2048。 %畫出濾波后的時域圖title(39。%畫出濾波前的時域圖title(39。Butterworth39。頻率/Hz39。 %選擇濾波器的最小階數(shù)[Z,P,K]=buttap(N)。s39。Ts=1/Fs。ws=*pi。 %將所加噪聲信號的點(diǎn)數(shù)調(diào)整到與原始信號相同Au=。D:\My Documents\MATLAB\39。ylabel(39。)。subplot(2,1,2)。)。原始語音信號頻譜39。)。時間n39。 %對加入噪聲以后的語音信號做2048點(diǎn)FFT變換 figure(1)plot(t,x2)title(39。 %噪聲幅值d=[Au*cos(2*pi*1800*t)]39。)。幅值n39。xlabel(39。plot(f,abs(y2(1:512)))。ylabel(39。)。 %噪聲為1KHz的余弦信號y2=fft(d,2048)。 f=fs*(0:511)/2048。)。Hz39。 %采樣后語音信號的頻譜 title(39。幅值n39。xlabel(39。plot(y)。D:\My Documents\MATLAB\39??偟膩碚f,這次課程設(shè)計幫助我鞏固了平常所學(xué)習(xí)的理論知識,使我對所學(xué)的理論知識有了一個更深層次的理解和掌握,同時加強(qiáng)了我對MATLAB的運(yùn)用能力,從而能夠借助軟件來更好的分析,處理信號和設(shè)計濾波器。 “看花容易,繡花難”,我剛開始以為題目比較簡單,所以就開始進(jìn)行設(shè)計,但出現(xiàn)了許多未預(yù)料到的問題,首先便是語音信號的選取,這不僅僅是通過電腦中Windows下的錄音機(jī)錄制一段信號便可,好的語音能使設(shè)計更加清晰簡單,在該錄制中要求錄制的語音必須為8位單聲道的,且語音的清晰度越高越好,錄制時間不應(yīng)過長,光這一項便花費(fèi)了很長一段時間。在平時的理論學(xué)習(xí)中我們學(xué)習(xí)了數(shù)字濾波器的基本結(jié)構(gòu),無限長單位沖激響應(yīng)數(shù)字濾波器的設(shè)計方法和有限長單位沖激響應(yīng)數(shù)字濾波器的設(shè)計方法,著重學(xué)習(xí)了利用模擬濾波器設(shè)計IIR數(shù)字濾波器,從理論知識可知利用模擬濾波器設(shè)計數(shù)字濾波器就是要把s平面映射到z平面,使模擬系統(tǒng)函數(shù)H(s)變換成所需的數(shù)字濾波器的系統(tǒng)函數(shù)H(z),一般是利用沖激響應(yīng)不變法、階躍響應(yīng)不變法、雙線性變換法來實現(xiàn)模擬濾波器到數(shù)字濾波器的映射。課程設(shè)計題目是MATLAB語言實現(xiàn)對模擬信號的處理課程設(shè)計,需要對語音信號進(jìn)行采樣、分析并濾波。)。helpdlg(39。作者:****班 *** 學(xué)號:*****39。在所設(shè)計的系統(tǒng)界面上可以選擇濾波器的類型,輸入濾波器的參數(shù),顯示濾波器的頻率響應(yīng),選擇信號等。2.5 比較濾波前后語音信號的波形及頻譜要求我們在一個窗口同時畫出濾波前后的波形及頻譜。 因此我們用自已設(shè)計出來的濾波器對采集的語音信號進(jìn)行濾波,畫出濾波后信號的時域波形和頻譜,并對濾波前后的信號進(jìn)行對比。 b=fir1(N,wn/pi,hamming(N+1))。 本次課程設(shè)計用到類似語句為:N=ceil(*pi/wdelta)。Rp=1。式中b,a分別是模擬低通原型濾波器G(p)的分子、分母多項式的系數(shù)向量,B,A分別是轉(zhuǎn)換后的H(s)的分子、分母多項式的系;在(4)中,Wo是低通或高通濾波器的截至頻率;在(5)中,Wo是帶通或帶阻濾波器的中心頻率,Bw是其帶寬。N是求出的相應(yīng)低通濾波器的階次,Wn是求出的3dB頻率,它和Wp稍有不同。本人采用了巴特沃思濾波器和海明窗來進(jìn)行濾波器的設(shè)計。根據(jù)本次課程設(shè)計的要求采用雙線性變換法和窗函數(shù)法來設(shè)計濾波器。 %將所加噪聲信號的點(diǎn)數(shù)調(diào)整到與原始信號相同則噪聲信號表達(dá)式為d=[Au*cos(2*pi*1800*t)]39。如圖要求我們首先畫出語音信號的時域波形;然后對語音信號進(jìn)行頻譜分析,在Matlab中.可以利用函數(shù)fft對信號進(jìn)行快速傅里葉變換,得到信號的頻譜特性,加深我們對頻譜特性的理解。聲音信號及屬性如下所示: 錄制的一段語音 語音的屬性錄制的語音信號音頻格式PCM,平均數(shù)據(jù)速率 352kbps,采樣級別 22khz,音頻采樣大小為16位,頻道為單聲道,從音頻參數(shù)可以得出對錄制的信號采樣的頻率為8000Kz,本人錄制的語音信號命名為 ,其路徑為D:\My Documents\MATLAB\.1.2 語音信號的頻譜分析然后利用Matlab語句wavread進(jìn)行采樣:[y,fs,n]=wavread(39。通過wavread函數(shù)的使用.學(xué)生很快理解了采樣頻率、采樣位數(shù)等概念。其中,線性頻譜分析的理論基礎(chǔ)為傅立葉變換,因此所使用的MATLAB函數(shù)主要為fft,ifft,此外,工具箱中還給出了各種窗函數(shù)。MATLAB數(shù)據(jù)庫中提供了與之相對應(yīng)的函數(shù),如Filter、Fftfilt、 Freqz 。在命令窗口(matlab mand window)鍵入simulink,就出現(xiàn)(SIMULINK) 窗口。工具箱除去提供了用于信號處理的命令函數(shù)外,還提供了一組基于CPU開發(fā)的借口工具。由于MATLAB不需定義數(shù)組的維數(shù),并給出矩陣函數(shù)、特殊矩陣專門的庫函數(shù),使之在求解諸如信號處理、建模、系統(tǒng)識別、控制、優(yōu)化等領(lǐng)域的問題時,顯得大為簡捷、高效、方便,這是其它高級語言所不能比擬的。5)參考文獻(xiàn): 〔1〕胡廣書 數(shù)字信號處理-理論、算法與實現(xiàn)(第二版) 清華出版社 〔2〕陳桂明 應(yīng)用MATLAB語言處理數(shù)字信