基于FIR濾波的語(yǔ)音信號(hào)處理系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于FIR濾波的語(yǔ)音信號(hào)處理系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于FIR濾波的語(yǔ)音信號(hào)處理系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于FIR濾波的語(yǔ)音信號(hào)處理系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于FIR濾波的語(yǔ)音信號(hào)處理系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、信號(hào)與系統(tǒng)課程設(shè)計(jì)報(bào)告課題五 基于FIR濾波的語(yǔ)音信號(hào)處理系統(tǒng)設(shè)計(jì)課題五 基于FIR濾波的語(yǔ)音信號(hào)處理系統(tǒng)設(shè)計(jì)摘要: 本課題研究數(shù)字語(yǔ)音信號(hào)的初步分析方法、FIR數(shù)字濾波器的設(shè)計(jì)及應(yīng)用。Matlab中實(shí)現(xiàn)對(duì)語(yǔ)音信號(hào)進(jìn)行采集(讀取),播放以及重采樣的功能。對(duì)于加入噪聲的語(yǔ)音信號(hào)設(shè)計(jì)合適的FIR數(shù)字濾波器進(jìn)行濾波處理,并通過(guò)FFT變換對(duì)語(yǔ)音信號(hào)的頻譜進(jìn)行分析。還通過(guò)enframe函數(shù)實(shí)現(xiàn)對(duì)語(yǔ)音信號(hào)的分幀,計(jì)算出短時(shí)能量和短時(shí)平均過(guò)零率等參數(shù),通過(guò)時(shí)域波形和自相關(guān)的處理可以看到清音幀和濁音幀的區(qū)別。本次設(shè)計(jì)中還采用LabVIEW進(jìn)行仿真設(shè)計(jì),實(shí)現(xiàn)了包括語(yǔ)音文件的讀取及播放、濾波前后語(yǔ)音信號(hào)時(shí)域波形及

2、頻譜的顯示、濾波器設(shè)計(jì)、濾波器幅頻特性的顯示等功能。最后,通過(guò)Express聲音采集VI實(shí)現(xiàn)采集語(yǔ)音信號(hào)的功能,并對(duì)采集的語(yǔ)音信號(hào)進(jìn)行后續(xù)分析。本設(shè)計(jì)很好的完成了設(shè)計(jì)課題的要求,并在一定程度上進(jìn)行了延伸。關(guān)鍵詞:語(yǔ)音信號(hào)采樣 FFT FIR濾波器 頻譜分析 LabVIEW仿真Abstract:This paper researches the initial analysis of the digital voice signal and the design and application of the digital filter.We use Matlab to achieve the

3、function,such as the acquisition of voice,play the voice and the resample of voice signal.We design the proper FIR digital filter to obtain the pure signal and analyze the voice spectrum by FFT transformation.We also use “enframe” to achieve the framing of voice signal and calculate the short-time e

4、nergy.We can see the distinguish between unvoiced speech frame and the voice frame through the voice transaction.Also,the paper introduce the LabVIEW simulation design.The design realize the functions such as read and play the audio files,display of the time domain waveform and the spectrum, filter

5、design,display of the filter amplitude-frequency characteristic.Finally,we use VI named sound acquisition to collect sound signal and analyze.The research completes the requirement of the task well and make more further study.Keywords: Voice signal sampling FFT FIR filter spectral analysis LabVIEW s

6、imulation1課程設(shè)計(jì)介紹 1.1 課程設(shè)計(jì)目的 本設(shè)計(jì)課題主要研究數(shù)字語(yǔ)音信號(hào)的初步分析方法、FIR數(shù)字濾波器的設(shè)計(jì)及應(yīng)用。通過(guò)完成本課題的設(shè)計(jì),擬主要達(dá)到以下幾個(gè)目的: (1)熟悉Matlab軟件的特點(diǎn)和使用方法。 (2)熟悉LabVIEW虛擬儀器的特點(diǎn)以及采用LabVIEW進(jìn)行仿真的方法。 (3)掌握信號(hào)和系統(tǒng)時(shí)域、頻域特性分析方法。 (4)掌握FIR數(shù)字濾波器的設(shè)計(jì)方法(窗函數(shù)設(shè)計(jì)法、頻率采樣設(shè)計(jì)法)及應(yīng)用。 (5)了解語(yǔ)音信號(hào)的特性及分析方法。 (6)通過(guò)本課題的設(shè)計(jì),培養(yǎng)學(xué)生運(yùn)用所學(xué)知識(shí)分析和解決實(shí)際問(wèn)題的能力。1.2 課程設(shè)計(jì)任務(wù)1.2.1 簡(jiǎn)單數(shù)字語(yǔ)音信號(hào)處理系統(tǒng)的Mat

7、lab設(shè)計(jì)。 使用GUI進(jìn)行系統(tǒng)的圖形用戶界面設(shè)計(jì),在該界面中包括對(duì)語(yǔ)音信號(hào)的讀取,對(duì)信號(hào)的時(shí)域,頻域分析,添加噪聲,設(shè)計(jì)FIR數(shù)字濾波器(利用窗函數(shù)設(shè)計(jì)法、頻率采樣設(shè)計(jì)法任選)實(shí)現(xiàn)噪聲濾除。具體任務(wù)如下: (1)對(duì)語(yǔ)音信號(hào)進(jìn)行采集(讀取),對(duì)數(shù)字語(yǔ)音信號(hào)加入干擾噪聲,畫(huà)出原始信號(hào)及帶噪信號(hào)的時(shí)域波形,利用FFT進(jìn)行頻域分析,畫(huà)出相應(yīng)波形,并對(duì)語(yǔ)音進(jìn)行播放。 (2)根據(jù)對(duì)語(yǔ)音信號(hào)及噪聲的實(shí)際情況分析,選擇適當(dāng)?shù)腇IR數(shù)字濾波器進(jìn)行設(shè)計(jì),并對(duì)噪聲進(jìn)行濾除。 (3)分析、對(duì)比噪聲濾除前后的語(yǔ)音時(shí)域、頻域特性,并對(duì)噪聲濾除前后語(yǔ)音進(jìn)行播放比較。 (4)利用GUI設(shè)計(jì)圖形用戶界面(包含以上功能)。1.

8、2.2 利用LabVIEW進(jìn)行仿真設(shè)計(jì)。 采用LabVIEW進(jìn)行仿真設(shè)計(jì),實(shí)現(xiàn)系統(tǒng)的功能,包括語(yǔ)音文件的讀取及播放、濾波前后語(yǔ)音信號(hào)時(shí)域波形及頻譜的顯示、濾波器設(shè)計(jì)、濾波器幅頻特性的顯示等功能,要求給出系統(tǒng)的前面板和程序框圖,并記錄仿真結(jié)果。1.2.3 選作部分。(1) 語(yǔ)音信號(hào)部分時(shí)域參數(shù)計(jì)算。對(duì)語(yǔ)音信號(hào)進(jìn)行分幀(enframe函數(shù)),分別取濁音幀和清音幀計(jì)算短時(shí)能量和短時(shí)平均過(guò)零率等參數(shù),并對(duì)結(jié)果進(jìn)行比較分析。(2) 利用LabVIEW錄制語(yǔ)音利用Labview實(shí)現(xiàn)采集語(yǔ)音信號(hào)的功能,可以錄音,播放等。2 設(shè)計(jì)原理2.1語(yǔ)音信號(hào)的采樣與恢復(fù) 對(duì)模擬語(yǔ)音信號(hào)進(jìn)行采集,需要遵循時(shí)域信號(hào)的采樣定

9、理。采樣定理敘述如下:時(shí)域連續(xù)信號(hào)進(jìn)行等間隔采樣,時(shí)域信號(hào)的最高頻率是,采樣間隔為,采樣頻率為,采樣信號(hào)的頻譜是原模擬信號(hào)頻譜沿頻率軸以為周期延拓而成的,并且要不失真地還原出模擬信號(hào)時(shí),要滿足,即只有當(dāng)時(shí),采樣的時(shí)域離散信號(hào)才能正確地反映原始語(yǔ)音信號(hào)。對(duì)采樣語(yǔ)音信號(hào)進(jìn)行恢復(fù)為模擬語(yǔ)音信號(hào)實(shí)際上就是內(nèi)插的過(guò)程,在任意兩點(diǎn)之間,根據(jù)端點(diǎn)值估計(jì)中間任意點(diǎn)的數(shù)值,采用的方法包括一階線性插值法,非線性差值法等。對(duì)16000hz采樣信號(hào)進(jìn)行重采樣,重新采樣的頻率分別為2000hz,4000hz和8000hz,采樣間隔與原采樣間隔相比,相當(dāng)于, ,。采樣得到的序列,,相當(dāng)于對(duì)序列做尺度變換。2.2 FFT快

10、速傅里葉變換離散傅里葉變換(Discrete Fourier Transform,縮寫(xiě)為DFT),是傅里葉變換在時(shí)域和頻域上都呈離散的形式,將信號(hào)的時(shí)域采樣變換為其DTFT的頻域采樣。在形式上,變換兩端(時(shí)域和頻域上)的序列是有限長(zhǎng)的,而實(shí)際上這兩組序列都應(yīng)當(dāng)被認(rèn)為是離散周期信號(hào)的主值序列。設(shè)是一個(gè)長(zhǎng)度為M的有限長(zhǎng)序列,則定義的N點(diǎn)離散傅里葉變換為 式中,稱為DFT的變換區(qū)間長(zhǎng)度,。2.3語(yǔ)音信號(hào)特征參數(shù)提取2.3.1短時(shí)能量及短時(shí)平均幅度(1)定義 短時(shí)能量函數(shù)和短時(shí)平均幅度函數(shù)是基于語(yǔ)音信號(hào)幅度的變化。清音段幅度小,其能量集中于高頻段;濁音段幅度較大,其能量集中于低頻段。短時(shí)能量函數(shù)對(duì)信號(hào)

11、電平值過(guò)于敏感。由于需要計(jì)算信號(hào)樣值的平方和,在實(shí)際應(yīng)用中(如定點(diǎn)設(shè)備)很容易溢出,所以可以用平均幅度函數(shù)來(lái)代替短時(shí)能量函數(shù)。短時(shí)能量函數(shù)定義: (2-1)短時(shí)平均幅度函數(shù)定義: (2-2)(2)作用(a) 區(qū)分清/濁音:En、Mn大,對(duì)應(yīng)濁音; En、Mn小,對(duì)應(yīng)清音。(b) 在信噪比高的情況下,能進(jìn)行有聲/無(wú)聲判決:無(wú)聲時(shí),背景噪聲的En、Mn??;有聲時(shí),En、Mn顯著增大。判決時(shí)可設(shè)置一個(gè)門限。2.3.2短時(shí)平均過(guò)零率(1)過(guò)零率定義:信號(hào)跨越橫軸的情況。對(duì)于連續(xù)信號(hào),觀察語(yǔ)音時(shí)域波形通過(guò)橫軸的情況;對(duì)于離散信號(hào),相鄰的采樣值具有不同的代數(shù)符號(hào),也就是樣點(diǎn)改變符號(hào)的次數(shù)。 (2)短時(shí)平均

12、過(guò)零率對(duì)于語(yǔ)音信號(hào),是寬帶非平穩(wěn)信號(hào),考察其短時(shí)平均過(guò)零率。 (2-3)其中sgn.為符號(hào)函數(shù), (2-4)(3)作用(a) 區(qū)分清/濁音:濁音平均過(guò)零率低,集中在低頻端;清音平均過(guò)零率高,集中在高頻端。(b) 從背景噪聲中找出是否有語(yǔ)音,以及語(yǔ)音的起點(diǎn)。2.3.3短時(shí)自相關(guān)函數(shù)相關(guān)函數(shù)用于確定兩個(gè)信號(hào)在時(shí)域內(nèi)的相似性。常用的物理量為自相關(guān)函數(shù)和互相關(guān)函數(shù)。當(dāng)兩個(gè)信號(hào)的互相關(guān)函數(shù)大時(shí),則說(shuō)明一個(gè)信號(hào)可能是另一個(gè)信號(hào)的時(shí)間滯后或提前;當(dāng)互相關(guān)函數(shù)為0時(shí),則兩個(gè)信號(hào)完全不同。自相關(guān)函數(shù)用于研究信號(hào)本身,如波形的同步性和周期性。(1)自相關(guān)函數(shù)定義 (2-5)(2)自相關(guān)函數(shù)特點(diǎn)(a) 當(dāng)時(shí)域信號(hào)為

13、周期信號(hào)時(shí),自相關(guān)函數(shù)也是周期性函數(shù),兩者具有同樣的周期。(b)為偶函數(shù), 。(c)最大,,,對(duì)于確定信號(hào),是信號(hào)能量;對(duì)于隨機(jī)信號(hào)或周期信號(hào), 是平均功率。(3)作用(a) 區(qū)分清/濁音。濁音語(yǔ)音的自相關(guān)函數(shù)具有一定的周期性。清音語(yǔ)音的自相關(guān)函數(shù)不具有周期性,類似噪聲。(b) 估計(jì)濁音語(yǔ)音信號(hào)的周期,即估計(jì)基音周期。3 設(shè)計(jì)方案及論證3.1 利用Matlab設(shè)計(jì)基于FIR濾波的數(shù)字語(yǔ)音信號(hào)處理系統(tǒng)3.1.1 總體設(shè)計(jì)結(jié)構(gòu)對(duì)語(yǔ)音信號(hào)進(jìn)行錄制播放 內(nèi)插回復(fù)加入噪聲重采樣分幀濾波濾波器的設(shè)計(jì)圖設(shè)計(jì)框圖3.1.2 對(duì)語(yǔ)音信號(hào)進(jìn)行采樣 使用matlab中自帶的函數(shù)audiorecorder函數(shù)可以實(shí)現(xiàn)

14、不同采樣頻率進(jìn)行語(yǔ)音信號(hào)的采集,這里我們使用的語(yǔ)音信號(hào)的采樣頻率為16000hz。 采樣得到的語(yǔ)音信號(hào)的時(shí)域波形以及頻譜圖:圖采集語(yǔ)音信號(hào)的時(shí)域波形和頻譜圖 分析:對(duì)語(yǔ)音信號(hào)以16000hz的采樣頻率進(jìn)行信號(hào)采集,并對(duì)其做快速傅立葉變換FFT,得到的時(shí)域波形圖和頻譜圖,由頻譜圖可以看到語(yǔ)音信號(hào)的頻率多集中在低頻區(qū),高頻成分很少。3.1.3 對(duì)語(yǔ)音信號(hào)進(jìn)行內(nèi)插恢復(fù)對(duì)采樣得到的語(yǔ)音信號(hào)進(jìn)行內(nèi)插恢復(fù),得到恢復(fù)之后的連續(xù)信號(hào),使用matlab工具箱中的interp1函數(shù)。 內(nèi)插恢復(fù)的語(yǔ)音信號(hào)的時(shí)域波形和頻譜圖:圖內(nèi)插恢復(fù)信號(hào)的時(shí)域波形和頻譜圖 分析:對(duì)語(yǔ)音信號(hào)進(jìn)行內(nèi)插恢復(fù),時(shí)域波形基本沒(méi)有變換,但是對(duì)

15、恢復(fù)后的信號(hào)做快速傅里葉變換可以看到頻率成分中的高頻成分更少了,多集中在低頻區(qū),而且低頻成分的幅度值更大了,內(nèi)插恢復(fù)后所得的信號(hào)更接近于連續(xù)信號(hào),所以高頻成分更少了。3.1.4 對(duì)采樣信號(hào)重采樣對(duì)16000hz采樣得到的時(shí)域離散信號(hào)進(jìn)行重采樣,重采樣的頻率分別為2000hz,4000hz和8000hz。相當(dāng)于對(duì)于得到的離散信號(hào)的序列做尺度變換,這里使用的for循環(huán)實(shí)現(xiàn)的重采樣處理。重采樣得到的時(shí)域離散信號(hào)波形和頻譜圖:圖重采樣信號(hào) 分析:對(duì)16000Hz的采樣信號(hào)進(jìn)行重采樣,重采樣的頻率分別為2000Hz,4000Hz,8000Hz。有重采樣得到的語(yǔ)音信號(hào)的頻譜圖可以看出采樣頻率越大,語(yǔ)音信號(hào)

16、的頻譜圖越接近于最初的采樣語(yǔ)音信號(hào)。通過(guò)播放語(yǔ)音也可以聽(tīng)出來(lái)2000Hz所得的采樣信號(hào)的失真程度較大,4000Hz重采樣得到的語(yǔ)音信號(hào)的失真程度較小,8000Hz沖采樣的語(yǔ)音信號(hào)的失真程度更小。3.1.5 對(duì)采樣信號(hào)加入噪聲對(duì)采樣信號(hào)加入噪聲,即對(duì)在得到的信號(hào)的序列上,疊加一個(gè)噪聲信號(hào),在這里給語(yǔ)音信號(hào)加入的噪聲為。加入噪聲后的語(yǔ)音信號(hào)的時(shí)域波形以及頻譜圖:圖加噪信號(hào)的時(shí)域波形和頻譜圖 分析:加入噪聲之后,對(duì)所得的序列做快速傅里葉變換得到加噪信號(hào)的頻譜圖,如上圖所以,可以看到在低頻部分基本沒(méi)什么變換,只是在頻譜圖的高頻成分增多。加入噪聲之后,為了出去該噪聲,根據(jù)頻譜圖可以得出我們可以設(shè)計(jì)合適的

17、數(shù)字低通濾波器,濾出高頻處的成分,保留低頻區(qū)的信號(hào),就可以濾出噪聲信號(hào)。3.1.6 濾波器的設(shè)計(jì)對(duì)加入的噪聲的語(yǔ)音信號(hào)設(shè)計(jì)合適的濾波器并進(jìn)行語(yǔ)音信號(hào)的濾波處理,這里我們選擇的是凱塞窗,設(shè)計(jì)的,.設(shè)計(jì)的FIR數(shù)字濾波器的窗函數(shù) 和頻譜圖為:圖濾波器窗函數(shù)()和幅度特性 分析:由設(shè)計(jì)結(jié)果可以看到所設(shè)計(jì)的FIR數(shù)字低通濾波器的階數(shù)為:。 對(duì)語(yǔ)音信號(hào)進(jìn)行濾波處理所得到的語(yǔ)音信號(hào)的時(shí)域波形和頻譜圖為: 圖濾波之后的信號(hào)時(shí)域波形和頻譜圖 分析:通過(guò)FIR數(shù)字低通濾波器的濾波之后,由頻譜圖我們也可以看出原語(yǔ)音信號(hào)中的高頻成分已經(jīng)被濾出。通過(guò)播放濾波之后的語(yǔ)音序列也已經(jīng)聽(tīng)不到所加入的噪聲信號(hào)了,也說(shuō)明了噪聲已

18、經(jīng)被濾出。3.1.7 語(yǔ)音信號(hào)部分時(shí)域參數(shù)的計(jì)算 對(duì)語(yǔ)音信號(hào)進(jìn)行分幀處理,并計(jì)算出每一幀的短時(shí)能量和短時(shí)平均過(guò)零率。這里分幀用到的是enframe函數(shù),設(shè)置的幀長(zhǎng)為400點(diǎn),偏移為100點(diǎn),總共分為157幀。根據(jù)短時(shí)能量和平均過(guò)零率區(qū)分出清音幀和濁音幀,清音幀的短時(shí)能量較濁音幀的短時(shí)能量低,但清音幀的平均過(guò)零率較濁音幀的平均過(guò)零率高。對(duì)清音幀和濁音幀分別做作自相關(guān)分析。 每一幀的短時(shí)能量和平均過(guò)零率波形圖: 圖濾波之后的信號(hào)時(shí)域波形和頻譜圖 分析:對(duì)原始語(yǔ)音序列進(jìn)行分幀之后計(jì)算每一幀的短時(shí)能量和短時(shí)平均過(guò)零率所得結(jié)果由波形圖的形式顯示為圖6,我們可以看到每一幀的短時(shí)能量和平均過(guò)零率,可以看到第

19、60幀的短時(shí)能量較小但是確由很大的短時(shí)平均過(guò)零率,第80的短時(shí)能量較大但是短時(shí)平均過(guò)零率卻比較小。由此可以判斷第60幀為清音幀,第80幀為濁音幀。根據(jù)清音幀和濁音幀短時(shí)能量和平均過(guò)零率的區(qū)別可以判斷第60幀為清音幀,第80幀為濁音幀。并分別畫(huà)出他們的時(shí)域波形圖:圖清音幀和濁音幀的時(shí)域波形 分析:由兩幀的時(shí)域波形圖我們可以看出清音幀的時(shí)域波形類似于白噪聲,沒(méi)什么規(guī)律。但是濁音幀的時(shí)域波形呈現(xiàn)有周期的震蕩,類似于周期信號(hào)。 對(duì)清音幀和濁音幀分別做自相關(guān)分析所得結(jié)果:圖對(duì)清音幀和濁音幀分別做自相關(guān)處理結(jié)果 分析:分別對(duì)濁音幀和清音幀做自相關(guān)處理,可以看到對(duì)濁音幀做自相關(guān)處理后的結(jié)果同濁音幀的時(shí)域波形

20、具有相同的周期,周期均為100點(diǎn)。該性質(zhì)符合濁音具備的性質(zhì)。但清音幀并不具有該性質(zhì)。3.1.8 GUI界面的設(shè)計(jì) 利用matlab中GUI設(shè)計(jì)友好的圖形界面。在這次的語(yǔ)音信號(hào)處理系統(tǒng)設(shè)計(jì)過(guò)程中,界面工分為四部分內(nèi)容:時(shí)域語(yǔ)音信號(hào)的采集、恢復(fù)、重采樣處理,對(duì)加入噪聲之后的語(yǔ)音信號(hào)設(shè)計(jì)合適的濾波器指標(biāo)并進(jìn)行濾波,時(shí)域語(yǔ)音信號(hào)部分時(shí)域參數(shù)(短時(shí)能量、短時(shí)平均過(guò)零率),圖形窗口的顯示等。本次GUI實(shí)現(xiàn)的功能有,對(duì)語(yǔ)音信號(hào)的錄制,語(yǔ)音信號(hào)時(shí)域波形以及頻譜圖的顯示,對(duì)語(yǔ)音信號(hào)重新播放,對(duì)語(yǔ)音信號(hào)進(jìn)行恢復(fù),采樣語(yǔ)音信號(hào)的重新采樣之后的時(shí)域波形和頻譜圖的顯示,對(duì)語(yǔ)音信號(hào)進(jìn)行加噪處理,所得信號(hào)的時(shí)域波形和頻譜圖

21、的顯示。設(shè)計(jì)不同指標(biāo)的數(shù)字濾波器,可以選擇的濾波器類型有四種,哈明窗、凱塞窗、布萊克曼窗以及頻率采樣設(shè)計(jì)法,對(duì)語(yǔ)音信號(hào)進(jìn)行濾波處理,可以顯示所設(shè)計(jì)的濾波器的窗函數(shù)、濾波器的幅度特性、濾波之后語(yǔ)音信號(hào)的時(shí)域波形以及頻譜圖。還可以實(shí)現(xiàn)語(yǔ)音信號(hào)的分幀處理,計(jì)算語(yǔ)音信號(hào)的時(shí)域參數(shù),包括短時(shí)能量和短時(shí)平均過(guò)零率,可以顯示清音幀和濁音幀的時(shí)域波形。同時(shí)也設(shè)置了GUI界面的關(guān)閉選項(xiàng),包含在file中。圖清音幀和濁音幀的時(shí)域波形3.2 LibVIEW仿真設(shè)計(jì) 播放及FFT變換讀?。ú杉┱Z(yǔ)音信號(hào)3.2.1 總體設(shè)計(jì)結(jié)構(gòu) 播放及FFT變換和功率譜分析 加入噪聲語(yǔ)音信號(hào)播放及FFT變換 濾波后語(yǔ)音信號(hào)圖9 設(shè)計(jì)流

22、程圖 整個(gè)系統(tǒng)分為兩大模塊:采集并播放實(shí)時(shí)語(yǔ)音信號(hào),讀取歷史語(yǔ)音信號(hào)。兩模塊功能分時(shí)實(shí)現(xiàn),獨(dú)立控制其運(yùn)行、停止,同時(shí)由下拉選擇菜單控制切換。系統(tǒng)的兩功能模塊的切換,是通過(guò)條件選擇結(jié)構(gòu)來(lái)實(shí)現(xiàn)的。運(yùn)行程序后選擇相應(yīng)的功能選項(xiàng),條件結(jié)構(gòu)做出判斷,進(jìn)入讀取語(yǔ)音信號(hào)程序或采集語(yǔ)音信號(hào)程序,從而進(jìn)行后續(xù)的信號(hào)處理與分析。 語(yǔ)音信號(hào)讀取或采集后,通過(guò)條件選擇結(jié)構(gòu)顯示FFT變換后幅度和相位特性,同時(shí)對(duì)讀取或采集的語(yǔ)音信號(hào)加入幅值為0.1,頻率為40000Hz的正弦噪聲信號(hào),同樣進(jìn)行FFT變換以及功率譜分析,并通過(guò)條件選擇結(jié)構(gòu)在一張波形圖上進(jìn)行顯示。在對(duì)加入噪聲的語(yǔ)音信號(hào)進(jìn)行濾波處理后即可得到去噪的信號(hào)。濾波器

23、使用數(shù)字FIR濾波器,通過(guò)創(chuàng)建FIR濾波器規(guī)范和可選FIR濾波器規(guī)范對(duì)濾波器的參數(shù)進(jìn)行設(shè)置以得到符合要求的濾波器。 程序的前面板主要由濾波器的參數(shù)控件、波形顯示控件、功能切換控件、確認(rèn)(讀取、采集)控件、語(yǔ)音播放控件等組成。圖10 前面板設(shè)計(jì) 分析:前面板左上角部分為濾波器信息,下面分別為FIR濾波器規(guī)范和可選FIR濾波器規(guī)范,可在運(yùn)行時(shí)實(shí)時(shí)對(duì)濾波器的參數(shù)進(jìn)行改變,通過(guò)濾波器幅度和相位特性的波形顯示可觀察濾波器的信息,而最后的兩幅圖用來(lái)顯示濾波后語(yǔ)音的時(shí)域頻譜和FFT變換波形。3.2.2 讀取語(yǔ)音信號(hào) 選擇讀取語(yǔ)音信號(hào)功能時(shí),在處理語(yǔ)音信號(hào)之前,需要在路徑控件輸入讀取語(yǔ)音文件的路徑,濾波器參數(shù)

24、則在FIR濾波器規(guī)范控件里設(shè)置。 圖 11 讀取語(yǔ)音信號(hào)程序框圖 運(yùn)行程序后,修改濾波器參數(shù),觀察得到的濾除噪音后的語(yǔ)音信號(hào),可判斷出濾除噪音效果較好的低通濾波器參數(shù)為最低通帶2000Hz,最高通帶2100Hz,阻帶增益為-40dB,窗函數(shù)的選擇差別不是很大,可以通過(guò)觀察不同窗函數(shù)濾波器的幅度相位特性和濾波后信號(hào)的FFT變換圖來(lái)進(jìn)行對(duì)比觀察,下面的程序中選擇的是Kaiser-Bessel窗。因?yàn)樗x擇的語(yǔ)音信號(hào)為自己錄制的,其中夾雜一些錄制時(shí)比較接近語(yǔ)音信號(hào)的頻率的信號(hào),選擇Kaiser-Bessel窗是為了更好的濾除噪聲。如果所讀取的聲音信號(hào)比較純凈,則可選用成本比較低的Hanning窗。圖

25、12 讀取語(yǔ)音信號(hào)前面板 點(diǎn)擊下拉菜單可觀察到語(yǔ)音信號(hào)及加噪語(yǔ)音信號(hào)的FFT變換的相位特性。圖13 語(yǔ)音信號(hào)及加噪語(yǔ)音信號(hào)的FFT變換的相位特性 分析:前面板的波形圖中,可以很清晰的看到加入高頻噪聲的時(shí)域波形和頻譜圖。通過(guò)觀察濾波器的幅度和相位顯示波形圖,可以看到所設(shè)計(jì)濾波器的特點(diǎn)。通帶增益為-3dB,阻帶增益為-40dB,抽頭數(shù)N為50。濾波器符合第一類線性相位。濾波后的語(yǔ)音信號(hào)也和原信號(hào)基本相同。播放時(shí)會(huì)發(fā)現(xiàn)只有聲音大小的差別,說(shuō)明噪聲濾除效果比較好。3.2.2 采集語(yǔ)音信號(hào) 采集語(yǔ)音信號(hào)時(shí),將下拉菜單選擇“采集語(yǔ)音信號(hào)”,即可開(kāi)始錄制語(yǔ)音。 圖14 語(yǔ)音采集部分框圖錄制“你好”,前面板結(jié)

26、果如圖:圖15 錄制語(yǔ)音前面板 分析:從圖中我們可以看到,由于錄制語(yǔ)音的存儲(chǔ)格式與“FFT”的格式不一致,所以錄制語(yǔ)音信號(hào)的時(shí)域顯示還可以,但是語(yǔ)音信號(hào)FFT和加噪語(yǔ)音FFT的波形顯示出現(xiàn)問(wèn)題,為了更好的展示出采集語(yǔ)音特點(diǎn),將程序框圖加以改變,得出合理的結(jié)果。圖16 采集語(yǔ)音程序框圖 經(jīng)過(guò)分析,我在語(yǔ)音采集模塊改用了FFT頻譜VI,得出了符合要求的設(shè)計(jì)圖。圖17 改進(jìn)后錄制語(yǔ)音前面板 因?yàn)殇浿频臑檎5恼Z(yǔ)音信號(hào),加入的是幅值為0.1,頻率40000Hz的噪聲信號(hào),所以濾波器參數(shù)設(shè)計(jì)和讀取語(yǔ)音時(shí)一致即可。設(shè)計(jì)的第一類線性相位FIR濾波器濾除噪音效果很好。4 結(jié)論 在基于FIR數(shù)字濾波器的語(yǔ)音信號(hào)

27、處理系統(tǒng)設(shè)計(jì)的matlab設(shè)計(jì)模塊,該系統(tǒng)實(shí)現(xiàn)了對(duì)語(yǔ)音信號(hào)的錄制和語(yǔ)音信號(hào)的播放,以及對(duì)錄制所得的原始信號(hào)的重采樣,加入噪聲等功能。在對(duì)于噪聲信號(hào),可以實(shí)現(xiàn)設(shè)置不同的濾波器指標(biāo),設(shè)計(jì)合適的FIR數(shù)字濾波器,并對(duì)含有噪聲的語(yǔ)音信號(hào)進(jìn)行濾波處理,除去語(yǔ)音中的噪聲。本次系統(tǒng)的設(shè)計(jì)缺陷也有很多。比如不同設(shè)置語(yǔ)音信號(hào)的錄音時(shí)間,只要在GUI界面設(shè)置一個(gè)參數(shù)調(diào)用即可,還可以設(shè)置一個(gè)窗口選擇不同的語(yǔ)音文件進(jìn)行播放。還可以在做時(shí)域語(yǔ)音信號(hào)的分幀時(shí),可以設(shè)定提取出的哪一幀信號(hào)進(jìn)行分析。采用LabVIEW進(jìn)行仿真設(shè)計(jì)模塊,很好的實(shí)現(xiàn)了系統(tǒng)的功能,前面板中包括語(yǔ)音文件的讀取及播放、濾波前后語(yǔ)音信號(hào)時(shí)域波形及頻譜的顯

28、示、濾波器設(shè)計(jì)、濾波器幅頻特性的顯示等功能。另外,利用條件選擇結(jié)構(gòu)可以實(shí)現(xiàn)語(yǔ)音信號(hào)的采集。通過(guò)前面板的FIR濾波器規(guī)范和可選FIR濾波器規(guī)范可是設(shè)計(jì)不同類型的濾波器,在濾波器幅度和相位特性波形圖中可觀察濾波器特性以選擇合適的濾波器。但是,本設(shè)計(jì)中也存在一些不足,錄制語(yǔ)音時(shí),并沒(méi)有將語(yǔ)音存儲(chǔ)到固定的路徑以備以后的利用,而是只能進(jìn)行語(yǔ)音的實(shí)時(shí)處理,這將是改進(jìn)的一個(gè)方向。同時(shí),前面板的設(shè)計(jì)距離實(shí)際儀表還有一定距離,也可進(jìn)行更好的設(shè)計(jì)。總得來(lái)說(shuō),設(shè)計(jì)任務(wù)中要求的所有功能,該系統(tǒng)基本都可以實(shí)現(xiàn)。后續(xù)的完善可以做到更好。六、參考文獻(xiàn)1 章佳榮 王璨 張國(guó)宇.精通LabVIEW虛擬儀器程序設(shè)計(jì)與案例實(shí)現(xiàn).人

29、民郵電出版社,2013.42 鄭對(duì)元. 精通LabVIEW虛擬儀器程序設(shè)計(jì). 清華大學(xué)出版社,2012.53 陳垚光. 精通MATLAB GUI設(shè)計(jì)(第二版)電子工業(yè)出版社, 2011.14 高西全 丁玉美. 數(shù)字信號(hào)處理(第三版). 西安電子科技大學(xué)出版社,2008.85附錄:程序清單:%以16000hz頻率對(duì)語(yǔ)音信號(hào)采樣并保存為wav文件fs=16000;duration=1;fprintf('Press any key to start %g seconds of recording.n',duration);pause;disp('Recording.n'

30、;);rec=audiorecorder(fs,8,1);recordblocking(rec,duration);y=getaudiodata(rec);fprintf('Finished recording.n');audiowrite('myvoice.wav',y,fs);fprintf('Press any key to play the recording.n');pause;sound(y,fs);.%讀取保存的語(yǔ)音信號(hào)文件并畫(huà)出它的時(shí)域波形和頻譜圖y=wavread('myvoice.wav',16000);Y=f

31、ft(y);N=length(Y);w=0:2*pi/N:2*pi*(N-1)/N;t=1/16000:1/16000:1;subplot(2,1,1),plot(t,y),xlabel('t'),ylabel('y'),title('16000hz采樣得到的時(shí)域語(yǔ)音信號(hào)')subplot(2,1,2),plot(w/pi,abs(Y),xlabel('w'),ylabel('Y'),title('16000hz采樣信號(hào)的頻譜圖').%對(duì)采集的語(yǔ)音信號(hào)進(jìn)行內(nèi)插恢復(fù)m=1:0.1:16000;y1=i

32、nterp1(y,m);t1=m;Y1=fft(y1);N1=length(Y1);w1=0:2*pi/N1:2*pi*(N1-1)/N1;Y2=abs(Y1);subplot(2,1,1),plot(t1,y1),xlabel('t'),ylabel('y1'),title('內(nèi)插恢復(fù)的語(yǔ)音信號(hào)')subplot(2,1,2),plot(w1/pi,Y2),xlabel('w'),ylabel('Y1'),title('恢復(fù)信號(hào)的頻譜圖').%對(duì)采集的語(yǔ)音信號(hào)進(jìn)行重采樣,采樣頻率分別為2000hz

33、,4000hz,8000hz.for i=1:2000 x_2(i)=y(i*8);endX_2=fft(x_2);N3=length(X_2);w_2=0:2*pi/N3:2*pi*(N3-1)/N3;t_2=1/2000:1/2000:1;for i=1:4000 x_4(i)=y(i*4);endX_4=fft(x_4);N4=length(X_4);w_4=0:2*pi/N4:2*pi*(N4-1)/N4;t_4=1/4000:1/4000:1;for i=1:8000 x_8(i)=y(i*2);endX_8=fft(x_8);N5=length(X_8);w_8=0:2*pi/N5

34、:2*pi*(N5-1)/N5;t_8=1/8000:1/8000:1;subplot(2,3,1),plot(t_2,x_2),xlabel('t'),ylabel('x_2'),title('2000hz重采樣')subplot(2,3,4),plot(w_2,abs(X_2),xlabel('w'),ylabel('X_2'),title('2000hz重采樣頻譜圖')subplot(2,3,2),plot(t_4,x_4),xlabel('t'),ylabel('x_

35、4'),title('4000hz重采樣')subplot(2,3,5),plot(w_4,abs(X_4),xlabel('w'),ylabel('X_4'),title('4000hz重采樣頻譜圖')subplot(2,3,3),plot(t_8,x_8),xlabel('t'),ylabel('x_8'),title('8000hz重采樣')subplot(2,3,6),plot(w_8,abs(X_8),xlabel('w'),ylabel('

36、X_8'),title('8000hz重采樣頻譜圖').%對(duì)采集的語(yǔ)音信號(hào)加入噪聲t=1/16000:1/16000:1;z=0.02*cos(4*109*t);y_z=y'+z;Y_z=fft(y_z);N6=length(Y_z);w_z=0:2*pi/N6:2*pi*(N6-1)/N6;figuresubplot(2,1,1),plot(t,y_z),xlabel('t'),ylabel('y_z'),title('加入噪聲之后的信號(hào)時(shí)域波形')subplot(2,1,2),plot(w_z/pi,abs(Y

37、_z),xlabel('w/pi'),ylabel('Y_z'),title('加入噪聲之后信號(hào)的頻譜圖').%FIR濾波器的設(shè)計(jì),以及濾波信號(hào)的時(shí)域和頻譜分析wp=1.25;ws=1.5;rs=40;Bt=ws-wp;alph=0.5842*(rs-21)0.4+0.07886*(rs-21);M=ceil(rs-8)/2.285/Bt);wc=(wp+ws)/2/pi;hn=fir1(M,wc,kaiser(M+1,alph);n=0:length(hn)-1;H,w=freqz(hn,1);subplot(2,1,1),stem(n,hn,

38、'.'),title('h(n)')subplot(2,1,2),plot(w,abs(H),title('濾波器的幅度特性')ywt=fftfilt(hn,y_z);figureH1,w1=freqz(ywt,1);subplot(2,1,1),plot(t,ywt),title('濾波信號(hào)的時(shí)域波形')subplot(2,1,2),plot(w1/pi,H1),title('濾波信號(hào)的頻譜圖').%enframe函數(shù)定義function f=enframe(x,win,inc)nx=length(x(:);nw

39、in=length(win);if(nwin=1) len=win;else len=nwin;endif(nargin<3) inc=len;endnf=fix(nx-len+inc)/inc);f=zeros(nf,len);indf=inc*(0:(nf-1).'inds=(1:len);f(:)=x(indf(:,ones(1,len)+inds(ones(nf,1),:);if(nwin>1) w=win(:)' f=f.*w(ones(nf,1),:);end.%對(duì)原始語(yǔ)音信號(hào)進(jìn)行分幀y=wavread('myvoice.wav',160

40、00);t=1/16000:1/16000:1;f=enframe(y,400,100);subplot(2,1,1),plot(f(60,:);subplot(2,1,2),plot(f(80,:); %取出濁音幀和清音幀并作圖figureamp2=sum(f.*f,2); %計(jì)算每幀信號(hào)的短時(shí)能量subplot(2,1,1)plot(amp2),title('短時(shí)能量') zcr=zeros(size(f,1),1); delta=0.02; for i=1:size(f,1) x = f(i,:); for j = 1:length(x)-1 if x(j) *x(j+1

41、)<0 & abs(x(j)-x(j+1)>delta zcr(i) = zcr(i)+1; end endendsubplot(2,1,2)plot(zcr),title('平均過(guò)零率') %計(jì)算每幀信號(hào)的平均過(guò)零率并作圖an=f(60,:);bn=f(80,:);at=xcorr(an);bt=xcorr(bn);figuresubplot(2,1,1),plot(at),title('清音')subplot(2,1,2),plot(bt),title('濁音') %取出濁音幀和清音幀并做自相關(guān)處理.%GUI設(shè)置程序fun

42、ction varargout = GUI(varargin) gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', GUI_OpeningFcn, . 'gui_OutputFcn', GUI_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback', );if nargin &

43、& ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end function GUI_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); fu

44、nction varargout = GUI_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; %實(shí)現(xiàn)語(yǔ)音信號(hào)的錄制function pushbutton1_Callback(hObject, eventdata, handles)fs=16000;duration=1;fprintf('Press any key to start %g seconds of recording.n',duration);pause;rec=audiorecorder(fs,8,1);recordblocki

45、ng(rec,duration);y=getaudiodata(rec);audiowrite('myvoice.wav',y,fs);Y=fft(y);N=length(Y);w=0:2*pi/N:2*pi*(N-1)/N;t=1/16000:1/16000:1;axes(handles.axes1)plot(t,y),xlabel('t'),ylabel('y'),title('16000hz采樣得到的時(shí)域語(yǔ)音信號(hào)')axes(handles.axes2)plot(w,abs(Y),xlabel('w'),yl

46、abel('Y'),title('16000hz采樣信號(hào)的頻譜圖')%播放所錄制的原始語(yǔ)音信號(hào) function pushbutton2_Callback(hObject, eventdata, handles)y=wavread('myvoice.wav',16000);Y=fft(y);N=length(Y);w=0:2*pi/N:2*pi*(N-1)/N;t=1/16000:1/16000:1;axes(handles.axes1)plot(t,y),xlabel('t'),ylabel('y'),title

47、('16000hz采樣得到的時(shí)域語(yǔ)音信號(hào)')axes(handles.axes2)plot(w,abs(Y),xlabel('w'),ylabel('Y'),title('16000hz采樣信號(hào)的頻譜圖')sound(y,16000); %對(duì)原始信號(hào)加入高頻單音噪聲function pushbutton3_Callback(hObject, eventdata, handles)y=wavread('myvoice.wav',16000);Y=fft(y);N=length(Y);w=0:2*pi/N:2*pi*(

48、N-1)/N;t=1/16000:1/16000:1;axes(handles.axes1)plot(t,y),xlabel('t'),ylabel('y'),title('16000hz采樣得到的時(shí)域語(yǔ)音信號(hào)')axes(handles.axes2)plot(w,abs(Y),xlabel('w'),ylabel('Y'),title('16000hz采樣信號(hào)的頻譜圖')t=1/16000:1/16000:1;z=0.02*cos(4*109*t);y_z=y'+z;Y_z=fft(y_z

49、);N6=length(Y_z);w_z=0:2*pi/N6:2*pi*(N6-1)/N6;axes(handles.axes3)plot(t,y_z),xlabel('t'),ylabel('y_z'),title('加入噪聲之后的信號(hào)時(shí)域波形')axes(handles.axes5)plot(w_z/pi,abs(Y_z),xlabel('w/pi'),ylabel('Y_z'),title('加入噪聲之后信號(hào)的頻譜圖') %對(duì)原始語(yǔ)音信號(hào)重采樣function pushbutton4_Call

50、back(hObject, eventdata, handles)y=wavread('myvoice.wav',16000);f=str2double(get(handles.f_input,'String');for i=1:f x(i)=y(16000*i/f);endX=fft(x);N=length(X);w=0:2*pi/N:2*pi*(N-1)/N;t=1/f:1/f:1;axes(handles.axes4)plot(t,x),xlabel('t'),ylabel('x'),title('重采樣得到的時(shí)域語(yǔ)

51、音信號(hào)')axes(handles.axes6)plot(w/pi,abs(X),xlabel('w'),ylabel('X'),title('重采樣信號(hào)的頻譜圖') function f_input_Callback(hObject, eventdata, handles) %設(shè)置重采樣是的采樣頻率function f_input_CreateFcn(hObject, eventdata, handles)set(gcbo,'String','2000');if ispc && isequ

52、al(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');end %設(shè)計(jì)哈明窗函數(shù)法設(shè)計(jì)FIR數(shù)字低通濾波器并對(duì)含有噪聲的語(yǔ)音信號(hào)濾波處理function pushbutton5_Callback(hObject, eventdata, handles)wp=str2double(get(handles.wp_input,'String');ws=str2double(get(handles.ws_input,'String

溫馨提示

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

評(píng)論

0/150

提交評(píng)論