語音信號處理GUI工具箱設(shè)計.doc_第1頁
語音信號處理GUI工具箱設(shè)計.doc_第2頁
語音信號處理GUI工具箱設(shè)計.doc_第3頁
語音信號處理GUI工具箱設(shè)計.doc_第4頁
語音信號處理GUI工具箱設(shè)計.doc_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

吉林工程技術(shù)師范學(xué)院DSP語音信號處理課程設(shè)計報告書設(shè)計內(nèi)容: 語音信號處理GUI工具箱設(shè)計 專 業(yè): 電子信息 班級: 0742 學(xué)生姓名: 陳陽 學(xué)號: 29 指導(dǎo)教師: 李悅 劉銀輝 信息工程學(xué)院摘要語音信號處理是研究數(shù)字信號要處理技術(shù)和語音信號進(jìn)行處理的一門學(xué)科,是一門新型的學(xué)科,是在多們學(xué)科基礎(chǔ)上發(fā)展起來的綜合性技術(shù),它設(shè)計到數(shù)字信號處理、模式識別、語言學(xué)、語音信號處理是研究用數(shù)字信號處理技術(shù)對語音信號進(jìn)行處理的一門學(xué)科。處理的目的是要得到一些語音參一以便高效地傳輸或儲存;或者是通過處理的某種運算以達(dá)到某種用途的要求。語音信號處理又是一門新興的邊緣學(xué)科。如上所述,它是“語言語音學(xué)”與“數(shù)字信號處理”兩個學(xué)科相結(jié)合的產(chǎn)物。語音信號處理屬于信息科學(xué)的一個重要分支,大規(guī)模集成技術(shù)的高度發(fā)展和計算機(jī)技術(shù)的飛速前進(jìn),推動了這一技術(shù)的發(fā)展。在數(shù)字音頻技術(shù)和多媒體技術(shù)迅速發(fā)展的今天,傳統(tǒng)的磁帶語音錄放系統(tǒng)因體積大、使用不便、放音不清晰而受到了巨大挑戰(zhàn)。本課題組提出的體積小巧,功耗低的數(shù)字化語音存儲與回放系統(tǒng),可以有效的解決傳統(tǒng)的語音錄放系統(tǒng)在電子與信息處理的使用中受到的限制。 本文提出了語音信號處理課程建設(shè)的實驗環(huán)節(jié)中的一些考慮,作為專業(yè)課程的學(xué)習(xí),實驗內(nèi)容不能僅僅停留在驗證性實驗上,還應(yīng)增加實驗延伸的設(shè)計要求,使學(xué)生加深對理論分析認(rèn)識的同時,強(qiáng)調(diào)培養(yǎng)學(xué)生的實際動手能力和知識綜合運用能力。從而提高語音信號的教學(xué)和實驗的質(zhì)量。實驗內(nèi)容采用MATLAB編程實現(xiàn),不僅易于語音信號處理的實現(xiàn),更易引導(dǎo)學(xué)生完成實驗延伸的設(shè)計。關(guān)鍵字:MATLAB軟件 語音信號處理 實驗設(shè)計目 錄摘 要 第一章 緒論11.1 選題背景11.2 課題任務(wù)11.3 課題意義1第二章 理論基礎(chǔ)及系統(tǒng)要求22.1 引言22.2 課程設(shè)計基本要求22.3 系統(tǒng)基本原理2第三章 設(shè)計方案論證33.1設(shè)計理論依據(jù)3第四章 圖形用戶界面設(shè)計4 4.1圖形用戶界面概念4 4.2用戶界面設(shè)計4第五章 課程設(shè)計的軟件實現(xiàn)8 5.1部分函數(shù)語法格8 5.2語音信號處理的相關(guān)函數(shù)8 5.3 GUI實驗箱操作界面設(shè)計14第六章 心得體會15附錄源代碼13參考文獻(xiàn)1第一章 緒論1.1 選題背景 在我們的現(xiàn)實生活中從磁帶、錄像帶到CD、VCD、DVD;從黑白電視機(jī)、彩色電視機(jī)、高清晰度電視機(jī)(HDTV)到具有數(shù)字信號處理功能的電視機(jī);從留聲機(jī)、錄音機(jī)到語音信箱;現(xiàn)在正處在模擬信息到數(shù)字信息的變革之中,傳統(tǒng)的磁帶語音錄放系統(tǒng)因其體積大,使用不便,在電子與信息處理的使用中受到許多限制。 雖然,目前廣播電視系統(tǒng)尚未實現(xiàn)真正的數(shù)字化,相信在不久的將來,真正的數(shù)字電視機(jī)、數(shù)字收音機(jī)、數(shù)字收錄機(jī)將進(jìn)入家庭。所以,研究音頻信號的數(shù)字化存儲、處理和回放系統(tǒng)有著很重要的現(xiàn)實意義。通過設(shè)計語音信號實驗箱可以對語音信號實現(xiàn)各種形式的變換,因此學(xué)會對語音信號的處理,也可自行研究將此語音處理技術(shù)應(yīng)用到現(xiàn)實生活中。1.2 課題任務(wù) 本實驗任務(wù)所提出的語音信號處理實驗箱系統(tǒng),其基本原理是對語音的錄音和放音進(jìn)行數(shù)字化控制.其中,關(guān)鍵技術(shù)在于:為了增加語音存儲時間,提高存儲器的利用率,采用了非失真壓縮算法對語音信號進(jìn)行壓縮后再存儲,而在回放是再進(jìn)行解壓縮;同時,對輸入語音信號進(jìn)行數(shù)字濾波以抑制雜音和干擾,從而確保了語音回放的可靠質(zhì)量. 通過設(shè)計一個GUI實驗箱,并添加相應(yīng)的控制控件,添加一個聲音文件,通過MATLAB編程,使其通過各種按鈕實現(xiàn)語音信號處理的各種功能,最后做成一個完整的語音信號處理實驗箱。1.3 課題意義:語音信號處理是一門比較實用的電子工程的專業(yè)課程,語音是人類獲取信息的重要來源和利用信息的重要手段,通過語言相互傳遞信息是人類最重要的基本功能之一,語言是人類特有的功能,它是創(chuàng)造和記載幾千年來人類文明史的根本手段,沒有語言就沒有今天的人類文明,語音是語言的聲學(xué)表現(xiàn),是相互傳遞信息的重要的手段,是人類最重要、最有效、最常用和最方便的交換信息的形式。語音信號處理是研究用數(shù)字信號處理技術(shù)對語音信號進(jìn)行處理的一門學(xué)科,它是一門新興的學(xué)科,同時又是綜合性的多學(xué)科領(lǐng)域行業(yè)涉及面很廣的交叉學(xué)科。第二章 理論基礎(chǔ)及系統(tǒng)要求2.1 引言目前,隨著數(shù)字化信號處理技術(shù)的不斷提高,單片機(jī),數(shù)字信號處理器以及語音處理大規(guī)模集成電路的進(jìn)步,語音合成,語音識別,語音存儲和回放技術(shù)的應(yīng)用越來越廣泛.本文提出的體積小巧,功耗低的數(shù)字化語音存儲與回放系統(tǒng)將完全可以替代傳統(tǒng)的語音錄放系統(tǒng).2.2 課程設(shè)計基本要求(1)學(xué)會MATLAB的使用,掌握MATLAB的程序設(shè)計方法;(2)掌握在windows 環(huán)境下語音信號采集的方法;(3)掌握數(shù)字信號處理的基本概念,基本理論和基本方法;(4)掌握MATLAB設(shè)計的方法;(5)學(xué)會用MATLAB對信號進(jìn)行分析和處理。2.3 系統(tǒng)基本原理語音采集原理是,人耳能聽到的聲音是一種頻率范圍為20Hz20kHz,而一般語音頻率最高為3.4kHz.語音的采集是指語音聲波信號經(jīng)麥克風(fēng)和高頻放大器轉(zhuǎn)換成有一定幅度的模擬量電信號,然后再轉(zhuǎn)換成數(shù)字量的全過程.本次設(shè)計的基本原理是對語音的錄音和放音進(jìn)行數(shù)字化控制.其中,關(guān)鍵技術(shù)在于:為了增加語音存儲時間,提高存儲器的利用率,采用了非失真壓縮算法對語音信號進(jìn)行壓縮后再存儲,而在回放是再進(jìn)行解壓縮;同時,對輸入語音信號進(jìn)行數(shù)字濾波以抑制雜音和干擾,從而確保了語音回放的可靠質(zhì)量. 通過設(shè)計一個GUI實驗箱,并添加相應(yīng)的控制控件,添加一個聲音文件,通過MATLAB編程,使其通過各種按鈕實現(xiàn)語音信號處理的各種功能,最后做成一個完整的語音信號處理實驗箱。第三章 設(shè)計方案論證3.1 設(shè)計理論依據(jù)3.1.1采樣定理:在進(jìn)行模擬/數(shù)字信號的轉(zhuǎn)換過程中,當(dāng)采樣頻率fs.max大于信號中,最高頻率fmax的2倍時,則采樣之后的數(shù)字信號完整地保留了原始信號中的信息,一般實際應(yīng)用中保證采樣頻率為信號最高頻率的5-10倍;采樣定理又稱乃奎斯特定理。3.1.2 采樣頻率: 采樣頻率是指計算機(jī)每秒鐘采集多少個聲音樣本,是描述聲音文件的音質(zhì)、音調(diào)、衡量聲卡、聲音文件的質(zhì)量標(biāo)準(zhǔn)。采樣頻率越高,即采樣的間隔時間越短,則在單位時間內(nèi)計算機(jī)得到的聲音樣本數(shù)據(jù)就越多,對聲音波形的表示也就越精確,采樣頻率與聲音頻率之間有一定的關(guān)系,根據(jù)奈奎斯特理論,只有采樣頻率高于聲音信號最高頻率的2倍的時候,才能把數(shù)字信號表示的聲音還原成為原來的聲音,這就是說采樣頻率是衡量聲卡采集、記錄和還原聲音文件的質(zhì)量標(biāo)準(zhǔn)。3.1.3 采樣位數(shù)與采樣頻率采樣位數(shù)即采樣值或取樣值,用來衡量聲音波動變化的參數(shù),是指聲卡在采集和播放聲音文件時候使用數(shù)字聲音信號的二進(jìn)制為數(shù)。采樣頻率是指錄音設(shè)備在一秒鐘內(nèi)對聲音信號的采樣次數(shù),采樣頻率越高聲音的還原就越真實越自然。采樣位數(shù)和采樣頻率對于音頻接口來說是最為重要的兩個基本指標(biāo),也是選擇音頻接口的兩個重要標(biāo)準(zhǔn)。無論采樣頻率如何,理論上來說采樣的位數(shù)決定了音頻數(shù)據(jù)最大的力度范圍。每增加一個采樣位數(shù)相當(dāng)于力度范圍增加了6dB。采樣位數(shù)越多則捕捉到的信號越精確。對于采樣率來說你可以想象它類似一個照相機(jī)。顯然采樣率越高,計算機(jī)提取的圖片越多,對于原始 的還原也越加精確。第四章 圖形用戶界面設(shè)計4.1圖形用戶界面概念圖形用戶界面或圖形用戶接口是指采用圖形方式顯示的計算機(jī)操作環(huán)境用戶接口。與早期計算機(jī)使用的命令行界面相比,圖形界面對于用戶來說更為簡便易用。GUI是MATLAB提供的圖形用戶界面開發(fā)環(huán)境,提供了一系列用于創(chuàng)建圖形用戶界面的工具,從而簡化界面布局和編程工作。4.2用戶界面設(shè)計4.2.1 GUI設(shè)計模板在MATLAB主窗口中,選擇File菜單中的New菜單項,再選擇其中的GUI命令,就會顯示圖形用戶界面的設(shè)計模板。MATLAB為GUI設(shè)計一共準(zhǔn)備了四個模板,分別是Blank GUI、GUI with Uicontrols、GUI with Axes and Menu、Modal Question Dialog。當(dāng)用戶選擇不同的模板時,在GUI設(shè)計模板界面的右邊就會現(xiàn)實出與該模板對應(yīng)的GUI圖形。4.2.2 GUI設(shè)計窗口在GUI設(shè)計模板中選中一個模板,然后單擊OK按鈕,就會現(xiàn)實GUI設(shè)計窗口,選擇不同的GUI設(shè)計模式時,在GUI設(shè)計窗口中顯示的結(jié)果是不一樣的。GUI設(shè)計窗口由菜單欄、工具欄、控件工具欄以及圖形對象設(shè)計區(qū)等部分組成。GUI設(shè)計窗口的菜單欄有File、Edit、View、Layout、Tools和Help六個菜單項,使用其中的命令可以完成圖形用戶界面的設(shè)計操作。 4.2.3 GUI設(shè)計窗口的基本操作(1)前面板的設(shè)計:在GUI設(shè)計窗口創(chuàng)建圖形對象后,通過雙擊該對象,就會顯示該對象的屬性編輯器。如下圖所示。例如,創(chuàng)建一個Push Button對象,并設(shè)計該對象的屬性值。 圖4-1 按鈕屬性編輯器通過以上的按鈕屬性編輯器可以根據(jù)個人情況對按鈕的名稱、顏色、大小等方面的屬性進(jìn)行修改,使按鈕在視覺上變的更加完美。(2)按鈕功能的實現(xiàn):在GUI設(shè)計窗口創(chuàng)建按鈕后,通過右鍵單擊按鈕,選擇view callbacks 下的callback對相應(yīng)的按鈕進(jìn)行編程,使按鈕實現(xiàn)相應(yīng)的功能,如下圖所示對按鈕的相應(yīng)功能進(jìn)行設(shè)置。 圖4-2 按鈕功能編輯器進(jìn)入到按鈕程序編輯窗口,通過編程即可實現(xiàn)按鈕的相應(yīng)功能,如下圖: 圖4-3 按鈕的編程實現(xiàn)界面通過對各個按鈕控件的修改,和對m文件程序的添加就完成對GUI窗口的設(shè)計,最后得到的圖形化操作界面如下圖所示: 圖4-4 圖形化操作界面4.2.4 語音的錄入與打開 在MATLAB中,y,fs,bits=wavread(Blip,N1 N2);用于讀取語音,采樣值放在向y中,fs表示采樣頻率,bits表示采樣位數(shù)。N1 N2表示讀取從N1點到N2點的值。 Sound(x,fs,bits);用于對聲音的回放,向量y則就代表了一個信號也就是說可以像處理一個信號表達(dá)式一樣處理這個聲音信號。第五章 課程設(shè)計的軟件實現(xiàn)5.1部分函數(shù)語法格式讀wav文件: x=wavread(filename) 數(shù)組a及b中元素相乘: a.*b創(chuàng)建圖形窗口命令: figure繪圖函數(shù): plot(x) 坐標(biāo)軸: axis(xmin xmax ymin ymax)坐標(biāo)軸注解: xlabel() ylabel() 圖例注解: legend()一階高通濾波器: y=filter(1-0.09375,1,x)分幀函數(shù): f=enframe(x,len,inc) x為輸入語音信號,len指定了幀長,inc指定幀移,函數(shù)返回為nlen的一個矩陣,每一行都是一幀數(shù)據(jù)。5.2 語音信號處理的相關(guān)函數(shù)5.2.1語音信號的短時譜:周期性聲門波可表示為: (5-1)其中, gn是聲門波的單周期的波形,pn是間隔為 P 的周期采樣序列。當(dāng) un通過線性非時變聲道,且該聲道的單位沖擊響應(yīng)為 hn時,聲道輸出為: (5-2)為了觀察一段語音,需要將聲道輸出乘以一個以時刻為中心的窗函數(shù) wn,即得到: (5-3)這段語音信號的頻域表達(dá)式為 : (5-4)即語音信號的譜包絡(luò)為 語譜圖就是顯示時變頻譜幅度特征的圖形表達(dá)式為 (5-5)將語音信號短時譜程序?qū)懭氲組ATLAB中得到單色語譜圖的波形如下:圖 5-1 語音信號單色語譜圖5.2.2 自相關(guān)方法估計語音信號的聲道參數(shù):由均方預(yù)測誤差最小的得到正則方程 (5-6)其中, (5-7)在最佳解時的誤差為 (5-8)在自相關(guān)法中式5-6,式5-8變?yōu)?(5-9) (5-10)由式5-9和式5-10可列出方程組式5-11 (5-11)解方程組 式5-9 求出線性預(yù)測系數(shù),通過誤差式5-11可求出增益G (5-12)加窗后信號頻譜圖如下:圖5-2 加窗后信號頻譜圖通過以上的方法,改變參數(shù)分別求得4極點模型頻率響應(yīng)和6極點模型頻率響應(yīng),六極點波形如下圖所示: 圖5-3 六極點波形圖最后通過以上方法用一個函數(shù)分別實現(xiàn)以上三個功能,三個波形顯示在一個界面,通過觀察圖形,查看它們之間的分別。三者比較所得到的波形如下:圖 5-4 三者比較波形圖5.2.3 基音周期檢測:數(shù)據(jù)為濁音語音信號speech1_10k(10000 樣點/秒)用 25ms 的漢明窗對語音信號 speech1_10k 進(jìn)行加窗處理,并畫出所得到的加窗信號的自相關(guān)函數(shù),再用根據(jù)中心消波法及三電平中心消波法原理改進(jìn)程序,最后對比中方法基音檢測的效果并分析結(jié)果。實驗原理及方法(1)自相關(guān)檢測原理:對于離散的數(shù)字語音信號序列x(n),如果周期N,則自相關(guān)函數(shù)也是同周期的周期函數(shù)。即:x(n)=x(n+N).清音信號沒有周期性,它的自相關(guān)函數(shù)也沒有周期。濁音信號具有準(zhǔn)周期性。自相關(guān)基因檢測正是利用這一性質(zhì)對語音信號進(jìn)行基因檢測的。(2)中心消波法檢測原理:中心消波處理是使用如下圖所示的中心消波函數(shù)進(jìn)行處理的: 圖5-5 中心消波檢測圖(3)三電平消波法原理:為了減少自相關(guān)計算中的乘法運算,可以把上述中心消波以后的信號y(n)的自相關(guān)用兩個信號的互相關(guān)代替,其中一個信號是y(n)另一個信號是對y(n)進(jìn)行三電平量化產(chǎn)生的結(jié)果。且這個信號有三種可能的取值,因而這里的互相關(guān)計算只需要做加減法,而這個互相關(guān)序列的周期性與y(n)的自相關(guān)序列是近似相同的。三電平法對語音信號處理得到的波形如下: 圖5-6 三電平法波形圖中心消波法得到的波形如下圖: 圖5-7 中心消波法波形圖5.3 GUI實驗箱操作界面設(shè)計 通過對各個控件的編程和對參數(shù)的設(shè)計,最后得到的GUI實驗箱操作界面如下圖所示,通過界面上的各個按鈕即可實現(xiàn)相應(yīng)的功能。 圖 5-8 GUI實驗箱操作界面 第六章 心得體會通過本次課程設(shè)計完成了對語音信號的讀取與打開,與課題的要求十分相符;初略的完成了界面的設(shè)計,但也存在相當(dāng)?shù)牟蛔?,達(dá)到了打開語音文件,顯示已定波形。語音信號處理時語音學(xué)與數(shù)字信號處理技術(shù)相結(jié)合的交叉學(xué)科,將語音當(dāng)做一種特殊的信號,即一種“復(fù)雜向量”來看待。也就是說,體現(xiàn)了數(shù)字信號處理技術(shù)。本次課程設(shè)計時希望將數(shù)字信號處理技術(shù)應(yīng)用于某一實際領(lǐng)域,這里就是指對語音的處理。作為存儲于計算機(jī)中的語音信號,其本身就是離散化了的向量,我們只需要將這些離散的量提取出來,就可以對其進(jìn)行處理了。本次課設(shè),用到了處理數(shù)字信號的強(qiáng)有力工具M(jìn)ATLAB,通過MATLAB里幾個命令函數(shù)的調(diào)用,很輕易的在實際化語音與數(shù)字信號的理論之間搭了一座橋。最后,還利用了MATLAB的另一強(qiáng)大功能GUI界面設(shè)計。設(shè)計出了一個簡易的用戶應(yīng)用界面,可以讓人實現(xiàn)界面操作。通過本次課程設(shè)計讓我更加了解了語音信號處理在現(xiàn)實中的強(qiáng)大的應(yīng)用空間,同時查閱了很多相關(guān)的資料,應(yīng)用MATLAB軟件來完成,熟練掌握了MATLAB軟件,本次課程設(shè)計要求用GUI設(shè)計模塊,查閱了很多資料,更加深刻的了解了這方面知識。本次課程設(shè)計,我明白了理論的學(xué)習(xí)需要在實踐中才能得到鞏固。在課程設(shè)計中,只有動手慢慢研究,才能真正了解MATLAB的運用以及各個基本函數(shù)的調(diào)用方法,掌握GUI實驗箱的設(shè)計方法及在MATLAB軟件平臺中可以直接設(shè)計數(shù)字濾波器的各個函數(shù)的調(diào)用,對設(shè)計GUI實驗箱的所有函數(shù)的運用有了比較好的認(rèn)識。通過這個課程設(shè)計,我學(xué)到了很多MATLAB和語音信號的知識,提高了自己在語音信號設(shè)計方面的知識能力,動手能力和思維能力都得到了一定的提升,希望自己以后可以更多的繼續(xù)學(xué)習(xí)這一門課程設(shè)計方面的知識。附錄1.源程序代碼:function varargout = Likunpeng(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, Likunpeng_OpeningFcn, . gui_OutputFcn, Likunpeng_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction Likunpeng_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject; guidata(hObject, handles);function varargout = Likunpeng_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; function pushbutton1_Callback(hObject, eventdata, handles)global file;x=wavread(file);sampling_rate = 44100; lfft = 1024; lfft2 = lfft/2;winlgh = 1024; frmlgh = 100; noverlap = winlgh - frmlgh;x = 2.0*x/max(abs(x);etime = length(x)/sampling_rate;spec = abs(specgram(x, lfft, sampling_rate, winlgh, noverlap);axes(handles.axes1);plot(1:length(x)/sampling_rate,x) function pushbutton2_Callback(hObject, eventdata, handles)global file;x=wavread(file);sampling_rate = 44100; lfft = 1024; lfft2 = lfft/2;winlgh = 1024; frmlgh = 100; noverlap = winlgh - frmlgh;x = 2.0*x/max(abs(x);etime = length(x)/sampling_rate;spec = abs(specgram(x, lfft, sampling_rate, winlgh, noverlap);axis(0 etime -2.5 2.5);axes(handles.axes1);imagesc(0:.010:etime, 0:1000:(sampling_rate/2), log10(abs(spec);axis(xy) function pushbutton7_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);r=real(log(fft(fw,L);axes(handles.axes1);plot(r); function pushbutton8_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);axes(handles.axes1);plot(fw);function pushbutton5_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);r=real(log(fft(fw,L)pfw=cceps(fw);rpfw=rceps(fw);axes(handles.axes1);plot(rpfw);function pushbutton6_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);pfw=cceps(fw);rpfw=rceps(fw);z=rpfw(1:30);logz=real(exp(fft(z,L);axes(handles.axes1);plot(logz);function pushbutton4_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);r=real(log(fft(fw,L)pfw=cceps(fw);axes(handles.axes1);plot(pfw); function pushbutton3_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); axes(handles.axes1);plot(y); function pushbutton9_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);%250sw=speech1_10k.*hamming(250);%a Rsw=xcorr(sw);%a t=0.1:0.1:25;axes(handles.axes1);plot(t,sw); function pushbutton10_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); t=0.1:0.1:length(Rsw)/10; axes(handles.axes1); plot(t,Rsw); function pushbutton11_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); w=pi/512:pi/512:pi; FW2=fft(sw,1024); FW3=FW2(1:512); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1);plot(w,log(abs(FW3);function pushbutton12_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); Rsw4=Rsw(250:253);Rsw(249:252);Rsw(248:251);Rsw(247:250); rea4=inv(Rsw4)*Rsw(251:254); A4=sqrt(Rsw(250)-Rsw(251:254)*rea4); w=pi/512:pi/512:pi; j=sqrt(-1); FW4=rea4*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4); HW4=A4./(1-FW4); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1);plot(w,log(abs(HW4),g); function pushbutton13_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); Rsw6=Rsw(250:255);Rsw(249:254);Rsw(248:253);Rsw(247:252);Rsw(246:251);Rsw(245:250); rea6=inv(Rsw6)*Rsw(251:256); A6=sqrt(Rsw(250)-Rsw(251:256)*rea6); w=pi/512:pi/512:pi; j=sqrt(-1); FW6=rea6*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4);exp(-j*w*5);exp(-j*w*6); HW6=A6./(1-FW6); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1); plot(w,log(abs(HW6),r); function pushbutton14_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); Rsw4=Rsw(250:253);Rsw(249:252);Rsw(248:251);Rsw(247:250); Rsw6=Rsw(250:255);Rsw(249:254);Rsw(248:253);Rsw(247:252);Rsw(246:251);Rsw(245:250); rea4=inv(Rsw4)*Rsw(251:254); rea6=inv(Rsw6)*Rsw(251:256); A4=sqrt(Rsw(250)-Rsw(251:254)*rea4);A6=sqrt(Rsw(250)-Rsw(251:256)*rea6); w=pi/512:pi/512:pi; j=sqrt(-1); FW4=rea4*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4); FW6=rea6*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4);exp(-j*w*5);exp(-j*w*6); HW4=A4./(1-FW4); HW6=A6./(1-FW6); FW2=fft(sw,1024); FW3=FW2(1:512); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1);plot(w,log(abs(FW3),w,log(abs(HW4),w,log(abs(HW6); function pushbutton21_Callback(hObject, eventdata, handles)global file;Y=wavread(file,1 1800);x1=Y(271:510);x2=Y(271:510);x3=Y(271:510);r=zeros(1,240);for k1=1:1:240 if x2(k1)0 x2(k1)=1; else if x2(k1)=0 x2(k1)=0; else if x2(k1)tc x3(k1)=x3(k1)-tc; else if x3(k1)-tc x3(k1)=x3(k1)+tc; else x3(k1)=0; end endendj=1:240;axes(handles.axes1);plot(j,x3); function pushbutton20_Callback(hObject, eventdata, handles)global file;Y=wavread(file,1 1800);x1=Y(271:510);x2=Y(271:510);x3=Y(271:510);r=zeros(1,240);for k=1:240 for n=1:240-k r(k)=r(k)+x1(n)*x1(n+k); endend j=1:240;axes(handles.axes1);plot(j,x1); function pushbutton19_Callback(hObject, eventdata, handles)global file;Y=wavread(file,1 1800);x1=Y(271:510);x2=Y(271:510);x3=Y(271:510);r=zeros(1,240);for k=1:240 for n=1:240-k r(k)=r(k)+x1(n)*x1(n+k); endend j=1:240;axes(handles.axes1);plot(j,r); function pushbutton23_Callback(hObject, eventdata, handles)close function pushbutton24_Callback(hObject, eventdata, handles)global file;H=*.wav;filename,pathname=uigetfile(H,);file=strcat(pathname,filename);function pushbutton1_ButtonDownFcn(hObject, eventdata, handles)function pushbutton29_Callback(hObject, eventdata, handles)global file;x=wavread(file);axes(handles.axes1);plot(x);function f=enframe(x,win,inc)nx=length(x(:);nwin=length(win);if (nwin = 1)len = win;elselen = nwin;endif (nargin 1)w = win(:);f = f .* w(ones(nf,1),:);endfunction pushbutton28_Callback(hObject, eventdata, handles)global file;x=wavread(file);enhance=filter(1-0.9375,1,x);FrameLen=240; FrameInc=80;yframe=enframe(x,FrameLen,FrameInc);amp1=sum(abs(yframe),2);axes(handles.axes1);plot(amp1);function pushbutton27_Callback(hObject, eventdata, handles)global file;x=wavread(file);enhance=filter(1-0.9375,1,x);FrameLen=240; FrameInc=80;yframe=enframe(x,FrameLen,FrameInc);amp2=sum(abs(yframe.*yframe),2);axes(handles.axes1);plot(amp2);function pushbutton26_Callback(hObject, eventdata, handles)global file;x=wavread(file);enhance=filter(1-0.9375,1,x);FrameLen=240; FrameInc=80;yframe=enframe(x,FrameLen,FrameInc);tmp1=enframe(x(1:end-1),FrameLen,FrameInc);tmp2=enframe(x(2:end),FrameLen,FrameInc);signs=(tmp1.*tmp2)0.02;zcr=sum(signs.*diffs,2);axes(handles.axes1);plot(zcr);參考文獻(xiàn)1 劉慶華 陳紫強(qiáng).基于MATLAB和DSP的語音信號處理課程的建設(shè).電氣電子教學(xué)學(xué)報.2006,10(3):124-128 2 張力.MATLAB在語音信號處理輔助教學(xué)中的應(yīng)用.電氣電子教學(xué)學(xué)報.2005,27卷2 期:96-99 3 鄧立新 楊震.信息技術(shù)融入“語音信號處理”課程的教學(xué)實踐.電氣電子教學(xué)學(xué)報.2005,27卷5期:13-16 4 胡航.語音信號處理.哈爾濱工業(yè)大學(xué)出版社.2005年2月,第二版:96-1015 張平.matlab基礎(chǔ)與應(yīng)用.北京航空航天大學(xué)出版社.2007,第二版:135-1376 謝德芳.數(shù)字信號處理.北京科學(xué)出版社.2005, 第一版:85-927 陳后金 薛健.數(shù)字信號處理.北京高等教育出版社.2004, 第一版:65-698 維納K英格爾 劉樹堂.數(shù)字信號處理(MATLAB版).西安交通大學(xué)出版社.2008, 第二版:204-2089 張小虹.信號系統(tǒng)與數(shù)字信號處理.西安電子科技出版社.2002, 第一版:32-3910 蔡啟忠.控制系統(tǒng)計算機(jī)輔助設(shè)計(MATLAB版).重慶大學(xué)出版社.2003, 第一版:61-6811 趙力.語音信號處理.機(jī)械工業(yè)出版社.2003,第二版:168-17212 李昌立 吳善培.數(shù)字語音-語音編碼實用教材.人民郵電出版社.2004,142-149 13 易克初.語音信號處理.國防工業(yè)出版社.2000,第一版:146-150 14 朱民雄.計算機(jī)語音技術(shù)(修訂版).北京航空航天大學(xué)出版社.2002,第一版:152-16815 張建平.數(shù)字信號處理實驗教程.清華大學(xué)出版社.2010,第二版:205-213 16 張雄偉.現(xiàn)代語音處理技術(shù)及應(yīng)用機(jī)械工業(yè)出版社.2003,第二版:168-17517 吳家安.語音編碼技術(shù)及應(yīng)用.機(jī)械工業(yè)出版社.2006,第一版:258-26218 劉幺和 宋庭新.語音識別與控制應(yīng)用技術(shù).科學(xué)出版社.2008,第二版:162-16519 李昌立 吳善培.數(shù)字語音語音編碼實用教程.人民郵電出版社.2004,第一版:167-171 20 姚天任.數(shù)字語音處理.華中科技大學(xué)出版社.1992,第二版:235-238 21 王炳錫.語音編碼.西安電子科技大學(xué)出版社.2002, 第一版:185-192袁節(jié)膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈羋膁蚈羀肁蒀蚇蝕襖莆蚇螂肀莂蚆羅袂羋蚅蚄膈膄蚄螇羈蒂蚃衿膆莈螞羈罿芄螁蟻膄膀螁螃羇葿螀裊膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃螞肂莈蒂螄羋芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羈莀蒈羃膇芆蕆蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃蠆羆艿薃袁節(jié)膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈羋膁蚈羀肁蒀蚇蝕襖莆蚇螂肀莂蚆羅袂羋蚅蚄膈膄蚄螇羈蒂蚃衿膆莈螞羈罿芄螁蟻膄膀螁螃羇葿螀裊膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃螞肂莈蒂螄羋芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羈莀蒈羃膇芆蕆蚃羀膂蒆螅膅蒁薅袇羈莇襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論