信息處理課群綜合訓(xùn)練與設(shè)計(jì)_第1頁
信息處理課群綜合訓(xùn)練與設(shè)計(jì)_第2頁
信息處理課群綜合訓(xùn)練與設(shè)計(jì)_第3頁
信息處理課群綜合訓(xùn)練與設(shè)計(jì)_第4頁
信息處理課群綜合訓(xùn)練與設(shè)計(jì)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

IIAbstractUnderstandingtheconceptofblindsignalprocessing(BlindSignalProcessing,BSP),andmasterthevoiceofblindseparationtechnologyandtheuseofMatlab.Thispaperfocusesonthebackgroundtothespeechsignalblindapproach,mixedwiththenoisefromthespeechsignalaliasingisolatedindividualvoicesourcesignal,tomimicthehumanvoiceseparationability.The3-waydesignwithmatlabvoicesignalacquisition,selecttheappropriatemixingmatrixtogenerateanumberofmixedsignals.ICAtechnologycombinedwithindependentcomponentanalysistoselectthemixingmatrixforthreevoicesignalsaremixedandseparatedfromthemixedsignalsoutoftheoriginalspeechsignal,draweachseparatedsignaltime-domainwaveformandfrequencyspectrumandcomparetheoriginalsignal.Inaddition,theuseofPCAalgorithmtoachievetheseparationofmixedspeechsignals,andultimatelythetwoalgorithmswerecompared.Keywords:blindsignalprocessingspeechsignalsblindsourceseparationBSSindependentcomponentanalysisICAtechnologyPAGEPAGE261緒論近年來,盲信號處理逐漸成為當(dāng)今信息處理領(lǐng)域中熱門的課題之一,并且已經(jīng)在尤其在、地震探測、移動通信、語音處理、陣列信號處理及生物醫(yī)學(xué)工程領(lǐng)域展現(xiàn)出誘人的應(yīng)用前景。盲處理應(yīng)用中的三個主要方面:語音處理,圖片處理,生物醫(yī)信號處理。本文主要學(xué)習(xí)的是語音的處理。語音信號分離、語音識別是盲處理應(yīng)用的一個重要領(lǐng)域。也是本文學(xué)習(xí)研究的重點(diǎn)。最典型的應(yīng)用就是聲控計(jì)機(jī),計(jì)算機(jī)所接受到的語音指令肯定是帶有各種環(huán)境噪聲的,還可能存在其他的語音信號(如有其他人說話),而且這些信號源與接收器的相對位置也未知,計(jì)算機(jī)需要在這種情況下識別出正確的語音命令。此次實(shí)踐主要目的在掌握matlab對語音的采集,了解盲處理的相關(guān)知識,掌握盲分離的原理,從而確定盲分離的方法,根據(jù)盲信號分離原理,用matlab采集兩路以上的語音信號,選擇合適的混合矩陣生成若干混合信號。選取合適的盲信號分離算法(如獨(dú)立成分分析ICA等)進(jìn)行訓(xùn)練學(xué)習(xí),求出分離矩陣和分離后的語音信號。為達(dá)到良好的學(xué)習(xí)效果,此次實(shí)踐有如下要求:(1)用matlab做出采樣之后語音信號的時域和頻域波形圖(2)選擇合適的混合矩陣,得到混合信號,并做出其時域波形和頻譜圖(3)采用混合聲音信號進(jìn)行訓(xùn)練學(xué)習(xí),求出分離矩陣,編寫出相應(yīng)的matlab代碼。(4)用求出的分離矩陣從混合信號中分離出原語音信號,并畫出各分離信號的時域波形和頻譜圖。(5)對結(jié)果進(jìn)行對比分析。通過此次實(shí)踐,加深的對Matlab功能的認(rèn)識,掌握了Matlab對語音信號的采集及處理,了解了盲分離的原理及運(yùn)用,運(yùn)用了合適的矩陣得到了混合信號,減少了計(jì)算量,同時達(dá)到了將得到的混合信號分離的目的,將前后信號進(jìn)行對比,了解了Matlab的處理效率。2盲信號處理BSP2.1盲信號處理盲信號處理作為計(jì)算機(jī)智能學(xué)的核心研究的內(nèi)容,在生物醫(yī)學(xué)、醫(yī)療圖像、圖像增強(qiáng)、遠(yuǎn)程傳感、雷達(dá)與通信系統(tǒng)、地震勘測等方面均具有突出的作用。盲處理的工作原理框圖如圖1-1所示:圖2-1盲處理的工作原理框圖其中,s(k)是未知源的信號向量,x(k)是混合信號向量(或觀測信號、傳感器檢測信號),n(k)是噪聲信號向量,混合信號向量經(jīng)過分離系統(tǒng)可以得到分離的信號,可與原信號比較。2.2盲分離處理盲分離的算法比較多,此次選擇較為簡單的瞬時線性混疊盲分離,瞬時線性混疊數(shù)學(xué)模型如下:x(t)=As(t)(公式1-1)y(t)=Wx(t)(公式1-2)其中(1)式為混疊模型,(2)式為分離模型;s(t)=(s1(t),s2(t),…,Sn(t))T為源信號未知的m×n的混疊矩陣,源信號s(t)也是未知的,W為分離矩陣。瞬時線性混疊盲分離的目的就是通過調(diào)節(jié)分離矩陣W(或混疊矩陣A),使得分離信號與對應(yīng)的源信號的波形保持一致,即:y(t)=PDs(t)(公式1-3)其中P為置換矩陣,D為對角矩陣。y(t)是對源信號s(t)的估計(jì),瞬時線性混疊盲分離問題允許存在兩個方面的不確定性:(1)排列順序的不確定性,無法了解所抽取的信號應(yīng)是源信號s(t)為哪一個分量.(2)信號幅度的不確定性,即無法知道源信號的真實(shí)幅值。瞬時線性盲分離實(shí)現(xiàn)的數(shù)學(xué)模型如圖1-2所示,其中LA表示學(xué)習(xí)算法(LearningAlgorithm)。圖2-2瞬時線性盲分離實(shí)現(xiàn)的數(shù)學(xué)模型圖2.3Matlab語音信號的采集2.3.1語音信號的采集方法 在Matlab環(huán)境中,主要可以通過以下幾種方法驅(qū)動聲卡,采集語音信號:1.將聲卡作為對象處理采集語音信號Matlab將聲卡作為對象處理,其后的一切操作都不與硬件直接相關(guān),而是通過對該對象的操作來作用于硬件設(shè)備(聲卡)。操作時首先要對聲卡產(chǎn)生一個模擬輸入對象,給對象添加一個通道設(shè)置采樣頻率后,就可以啟動設(shè)備對象,開始采集數(shù)據(jù),采集完成后停止對象并刪除對象。2.調(diào)用wavrecord功能函數(shù)采集語音信號。wavrecord功能函數(shù)只適用windows95/98/N平臺,它使用windows聲音輸入設(shè)備錄制聲音。函數(shù)調(diào)用方式:wavrecord(N,fs,ch,nbits),其中N采集的樣本數(shù)據(jù)量,fs是樣本采集頻率有8000Hz、11025Hz、22050Hz和44100Hz幾個選項(xiàng),默認(rèn)值為11025Hz;ch是樣本采集通道,1為單聲道,2為雙聲道,默認(rèn)值為單聲道;nbits是每個樣本的位數(shù)(或稱解析度),double、single或int16、uint8。運(yùn)用audiorecorder對象采集語音信號audiorecorder(fs,nbits,ch)可以創(chuàng)設(shè)一個audiorecorder對象。fs是樣本采集頻率,為8000Hz、11025Hz、22050Hz和44100Hz之一,默認(rèn)值為8000Hz;nbits是每個樣本的位數(shù),8位或16位,默認(rèn)值為8位;ch:樣本采集通道,1為單聲道,2為雙聲道,默認(rèn)值為1(單聲道);audiorecorder對象創(chuàng)設(shè)后,就可以進(jìn)行相應(yīng)的錄音、暫停、停止、播放以及數(shù)據(jù)讀取等操作。2.3.2三路語音信號的采集這次設(shè)計(jì)用Matlab程序采集三路語音信號,基本步驟如下:創(chuàng)建工程文件-編寫程序-調(diào)試-運(yùn)行-錄音,程序如下。在干擾噪聲很小的環(huán)境下用麥克風(fēng)錄制進(jìn)行3段不同的語音文件,保存成*.wav文件。為了便于語音信號的盲分離要將這3段語音用軟件進(jìn)行處理使其文件大小一樣,仿真時所用的3段語音是gequ1gequ2,gequ3,時間是5秒,單通道。clc;fs=8000;channel=1;t=5;fprintf('按任意鍵后開始%d秒錄音:',t);Pause;fprintf('錄音中...');%文字提示y=wavrecord(t*fs,fs,channel,'double');%錄制語音信號fprintf('錄音結(jié)束\n');%文字提示wavwrite(y,fs,'D:\Documents\Desktop\gequ3.wav');%存儲錄音信號,先創(chuàng)建文件在matlab中對上述語音信號進(jìn)行分析,接下來對3段語音信號進(jìn)行的時域分析、頻譜分析。2.4盲信號分離的兩種算法介紹盲源分離在許多領(lǐng)域中都有成功的應(yīng)用,近十幾年來,受到了越來越多的重視,已經(jīng)有大量的算法不斷地提出。其算法可以大致的分為基于高階累積量的盲源分離、基于信息理論的盲源分離和基于神經(jīng)網(wǎng)絡(luò)的盲源分離三種類型。這三類也包含很多不同類型的算法,下面主要介紹本次設(shè)計(jì)要用到的ICA算法和PCA算法。2.4.1PCA算法原理令x為表示環(huán)境的m維隨機(jī)向量。假設(shè)x均值為零,即:E[x]=O。令w表示為m維單位向量,x在其上投影。這個投影被定義為向量x和w的內(nèi)積,表示為:而主成分分析的目的就是尋找一個權(quán)值向量w使得表達(dá)式E[y2]的值最大化:根據(jù)線性代數(shù)的理論,可以知道滿足式子值最大化的訓(xùn)應(yīng)該滿足下式:即使得上述式子最大化的w是矩陣Cx的最大特征值所對應(yīng)的特征向量。特征向量的選擇取決于協(xié)方差矩陣的特征值的大小。經(jīng)過PCA分析,一個多變量的復(fù)雜問題被簡化為低維空間的簡單問題??梢岳眠@種簡化方法進(jìn)行作圖,形象地表示和分析復(fù)雜問題。2.4.2獨(dú)立分量分析ICA對于盲源分離問題,獨(dú)立分量分析(IndependentComponentAnaly2sis,ICA)是指在只知道混合信號,而不知道源信號、噪聲以及混合機(jī)制的情況下,分離或近似地分離出源信號的一種分析過程。假設(shè)源信號若干個統(tǒng)計(jì)上相互獨(dú)立的信號組成的,它們在空間中形成交疊,獨(dú)立分量分析(IndependentComponentAnalysis,ICA)是借助于多個信道同步觀察交疊信號,將觀察信號經(jīng)過解混分解成若干獨(dú)立成分,作為對源信號的一組估計(jì),如圖2-3所示:圖2-3獨(dú)立分量分析法可以假設(shè):A是線性系統(tǒng)可用矩陣表示,實(shí)際仿真時是隨機(jī)陣。且信道對信號無影響,觀察信道數(shù)與信號數(shù)相同(A,B方陣)。獨(dú)立分量分析ICA有多種算法,如基于代數(shù)結(jié)構(gòu)的AMUSE,SOBI,JADE以及基于信息論的Fast-ICA和Info-max。其中,F(xiàn)ast-ICA的收斂速度快,且有一定的精度保證。Fast-ICA算法能夠更科學(xué)的去除元素組合之間的相關(guān)性,得到的元素組合比傳統(tǒng)方法更具有說服力。3語音信號的分離方案設(shè)計(jì)3.1FAST-ICA算法分離Fast-ICA算法是一種快速而數(shù)值穩(wěn)定的方法,采用擬牛頓算法實(shí)現(xiàn)尋優(yōu),具有超線性收斂速度,通常收斂速度較梯度下降尋優(yōu)算法快得多;矩陣特征值分解盲分離方法通過對矩陣進(jìn)行特征分解或者廣義特征分解估計(jì)分離矩陣,是一種解析方法,可直接找到閉形式解,沒有迭代尋優(yōu)過程,因此運(yùn)行速度很快。快速ICA算法,由于采用了定點(diǎn)迭代的思想,所以又稱固定點(diǎn)(Fixed-Point)算法或定點(diǎn)算法,是一種快速尋優(yōu)神經(jīng)網(wǎng)絡(luò)算法。FastICA算法的優(yōu)點(diǎn)如下:1.收斂速度快,F(xiàn)astICA收斂速度為2次以上,普通的ICA算法收斂僅為1次。2.能利用任何的非線性函數(shù)直接找出任何非高斯分布的獨(dú)立分量,而對于其他的算法來說,概率密度函數(shù)的估計(jì)不得不首先進(jìn)行。3.獨(dú)立分量可被逐個估計(jì)出來,類似于做投影追蹤,這在僅需要估計(jì)幾個(不是全部)獨(dú)立分量的情況下,能減小計(jì)算量。4.Fast-ICA算法有許多神經(jīng)算法的優(yōu)點(diǎn),它是并行、分布式的且計(jì)算簡單,內(nèi)存要求很少,它的性能能夠通過選擇適當(dāng)?shù)姆蔷€性函數(shù)來最佳化。3.1.1基于負(fù)熵最大的快速ICAFast-ICA算法有基于峭度、基于似然最大、基于負(fù)熵最大等形式,這里,我們介紹基于負(fù)熵最大的FastICA算法。它以負(fù)熵最大作為一個搜尋方向,可以實(shí)現(xiàn)順序地提取獨(dú)立源,充分體現(xiàn)了投影追蹤(ProjectionPursuit)這種傳統(tǒng)線性變換的思想,由信息論理論可知:在所有等方差的隨機(jī)變量中,高斯變量的熵最大,因而我們可以利用熵來度量非高斯性,常用熵的修正形式,即負(fù)熵。根據(jù)中心極限定理,若一隨機(jī)變量由許多相互獨(dú)立的隨機(jī)變量之和組成,只要具有有限的均值和方差,則不論其為何種分布,隨機(jī)變量較更接近高斯分布。換言之,較的非高斯性更強(qiáng)。因此,在分離過程中,可通過對分離結(jié)果的非高斯性度量來表示分離結(jié)果間的相互獨(dú)立性,當(dāng)非高斯性度量達(dá)到最大時,則表明已完成對各獨(dú)立分量的分離。負(fù)熵的定義:(公式3-1)式中,是一與具有相同方差的高斯隨機(jī)變量,為隨機(jī)變量的微分熵(公式3-2)根據(jù)信息理論,在具有相同方差的隨機(jī)變量中,高斯分布的隨機(jī)變量具有最大的微分熵。當(dāng)具有高斯分布時,;的非高斯性越強(qiáng),其微分熵越小,值越大,所以可以作為隨機(jī)變量非高斯性的測度。由于根據(jù)式(3.6)計(jì)算微分熵需要知道的概率密度分布函數(shù),這顯然不切實(shí)際,于是采用如下近似公式:(公式3-3)其中,為均值運(yùn)算;為非線性函數(shù),可取,或或等非線性函數(shù),這里,,通常我們?nèi)???焖買CA學(xué)習(xí)規(guī)則是找一個方向以便具有最大的非高斯性。這里,非高斯性給出的負(fù)熵的近似值來度量,的方差約束為1,對于白化數(shù)據(jù)而言,這等于約束的范數(shù)為1。FastICA算法的推導(dǎo)如下。首先,的負(fù)熵的最大近似值能通過對進(jìn)行優(yōu)化來獲得。根據(jù)Kuhn-Tucker條件,在的約束下,的最優(yōu)值能在滿足下式的點(diǎn)上獲得。(公式3-4)這里,是一個恒定值,,是優(yōu)化后的值。下面我們利用牛頓迭代法解方程(3.4)。用表示式(3.4)左邊的函數(shù),可得的雅可比矩陣如下:(公式3-5)為了簡化矩陣的求逆,可以近似為(3.5)式的第一項(xiàng)。由于數(shù)據(jù)被球化,,所以,。因而雅可比矩陣變成了對角陣,并且能比較容易地求逆。簡化后就可以得到FastICA算法的迭代公式:實(shí)踐中,F(xiàn)astICA算法中用的期望必須用它們的估計(jì)值代替。最好的估計(jì)是相應(yīng)的樣本平均。對于Fast-ICA算法,數(shù)據(jù)預(yù)處理是一個最基本、最必要的過程。該過程包括去均值和白化(或球化)。去均值過程起到了簡化ICA算法的作用,白化也是信號源盲分離算法中一個經(jīng)常用到的預(yù)處理方法,對于某些盲分離算法,白化還是一個必須的預(yù)處理過程。對混合信號的白化實(shí)際上就是去除信號各個分量之間的相關(guān)性。從圖3-1是Fast-ICA算法流程圖可以看出,通常先對數(shù)據(jù)進(jìn)行初步的白化或球化處理,白化處理可去除各觀測信號之間的相關(guān)性,從而簡化了后續(xù)獨(dú)立分量的提取過程。這是由于一般情況下,所獲得的數(shù)據(jù)都具有相關(guān)性。通過去均值和白化等預(yù)處理在對其進(jìn)行真正的算法分離。通常情況下,數(shù)據(jù)進(jìn)行白化處理與不對數(shù)據(jù)進(jìn)行白化處理相比,算法的收斂性比較好,快速ICA算法一般的步驟如下:1.對觀測數(shù)據(jù)進(jìn)行中心化,使它的均值為0;2.對數(shù)據(jù)進(jìn)行白化,;3.選擇需要估計(jì)的分量的個數(shù),設(shè)迭代次數(shù);4.選擇一個初始權(quán)矢量(隨機(jī)的); 5.令,非線性函數(shù)的選取見前文;6.;7.令。8.假如不收斂的話,返回第5步;9.令,如果,返回第4步。 圖3-1Fast-ICA算法流程圖概括來說,F(xiàn)ast-ICA算法主要包含兩部分:預(yù)處理部分和核心算法部分。預(yù)處理部分主要包括去均值化和白化處理;核心算法部分是基于擬牛頓算法,具體的實(shí)現(xiàn)見附錄程序。 3.2主分量分析PCA3.2.1主成分分析原理主成分分析(PrincipalComponentAnalysis,PCA)是一種掌握事物主要矛盾的統(tǒng)計(jì)分析方法,它可以從多元事物中解析出主要影響因素,揭示事物的本質(zhì),簡化復(fù)雜的問題。計(jì)算主成分的目的是將高緯數(shù)據(jù)投影到較低維空間。給定n個變量的m個觀察值,形成一個n*m的數(shù)據(jù)矩陣,n通常比較大。對于一個由多個變量描述的復(fù)雜事物,認(rèn)識難度會很大,于是我們可以抓住事物主要方面進(jìn)行重點(diǎn)分析,如果事物的主要方面剛好體現(xiàn)在幾個主要變量上,那么我們只需要將體現(xiàn)事物主要方面的較少的幾個主要變量分離出來,對此進(jìn)行詳細(xì)分析。但是,在一般情況下,并不能直接找出這樣的關(guān)鍵變量。這時我們可以用原有變量的線性組合來表示事物的主要方面,PCA就是這樣一種分析方法。PCA主要用于數(shù)據(jù)降維,對于由一系列特征組成的多維向量,其中某些元素本身沒有區(qū)分性,比如某個元素在所有的樣本中都相等,或者彼此差距不大,那么這個元素本身就沒有區(qū)分性,如果用它做特征來區(qū)分,貢獻(xiàn)會非常小。所以我們的目的是找那些變化大的元素,即方差大的那些維,而去除掉那些變化不大的維,從而使特征留下的都是“精品”,使得計(jì)算量也相應(yīng)變小。對于一個k維的特征來說,相當(dāng)于它的每一維特征與其他維都是正交的(相當(dāng)于在多維坐標(biāo)系中,坐標(biāo)軸都是垂直的),那么我們可以變化這些維的坐標(biāo)系,從而使這個特征在某些維上方差大,而在某些維上方差很小。所以我們的做法就是求得一個k維特征的投影矩陣,這個投影矩陣可以將特征從高維降到低維。投影矩陣也可以叫做變換矩陣。新的低維特征必須每個維都正交,特征向量都是正交的。通過求樣本矩陣的協(xié)方差矩陣,然后求出協(xié)方差矩陣的特征向量,這些特征向量就可以構(gòu)成這個投影矩陣了。3.2.2PCA算法原理令x為表示環(huán)境的m維隨機(jī)向量。假設(shè)x均值為零,即:E[x]=O。令w表示為m維單位向量,x在其上投影。這個投影被定義為向量x和w的內(nèi)積,表示為:而主成分分析的目的就是尋找一個權(quán)值向量w使得表達(dá)式E[y2]的值最大化:根據(jù)線性代數(shù)的理論,可以知道滿足式子值最大化的訓(xùn)應(yīng)該滿足下式:即使得上述式子最大化的w是矩陣Cx的最大特征值所對應(yīng)的特征向量。特征向量的選擇取決于協(xié)方差矩陣的特征值的大小。經(jīng)過PCA分析,一個多變量的復(fù)雜問題被簡化為低維空間的簡單問題??梢岳眠@種簡化方法進(jìn)行作圖,形象地表示和分析復(fù)雜問題。3.3主分量分析PCA和ICA比較主分量分析(ICA)的目的在于降低向量的維數(shù),取出隨機(jī)信號間的線性相關(guān)性,找出原始信號中隱含的內(nèi)在能量較大的信號。但是由于PCA方法在實(shí)際的計(jì)算式只涉及到輸入數(shù)據(jù)概率分布函數(shù)的二階統(tǒng)計(jì)特性(僅利用到信號的協(xié)方差矩陣),所以分解出的各分量相互正交,主分量之間并不一定不相關(guān),所以并不滿足ICA方法對輸入信號的獨(dú)立要求。從數(shù)理統(tǒng)計(jì)的角度來說,實(shí)際信號的大部分重要的信息往往包含在高階的統(tǒng)計(jì)特性中,因此只有當(dāng)多變量觀測數(shù)據(jù)是由高斯分布的源信號構(gòu)成時,PCA方法才能用來實(shí)現(xiàn)信號的分離,這是由于服從正態(tài)分布的隨機(jī)過程的不相關(guān)性和統(tǒng)計(jì)獨(dú)立是等價(jià)的,用一階、二階統(tǒng)計(jì)特性就可以完全描述信號。然而,在實(shí)際的問題中,真正滿足正態(tài)分布的隨機(jī)信號很少,絕大部分的隨機(jī)信號(如自然景物圖像、語音信號和腦電波等等)都不是高斯的。此外,ICA方法往往需要高階量,也就是在學(xué)習(xí)階段需要使用一定的非線性,然而非線性的使用并不影響輸入和輸出的線性映射關(guān)系。許多情況下ICA能夠提供比PCA更有意義的數(shù)據(jù),而PCA僅在源信號為高斯分布時才能實(shí)現(xiàn)ICA。盡管如此,在信號的預(yù)處理階段,PCA方法可以實(shí)現(xiàn)數(shù)據(jù)的預(yù)白化,為后續(xù)的工作提供了方便。4語音信號的分離方案實(shí)現(xiàn)本設(shè)計(jì)用matlab采集3路語音信號,選擇合適的混合矩陣生成若干混合信號。然后合語音信號的分離算法對混合信號進(jìn)行分離出原始信號。具體實(shí)現(xiàn)主要結(jié)合獨(dú)立分量分析ICA技術(shù),選取混合矩陣對3個語音信號進(jìn)行混合,并從混合信號中分離出原語音信號,最后畫出各分離信號的時域波形和頻譜圖和原來的信號進(jìn)行比較。此外還運(yùn)用PCA算法進(jìn)行了混合語音信號的分離實(shí)現(xiàn),最終對兩種算法進(jìn)行比較。4.1語音信號的混合有題目要求根據(jù)盲信號分離原理,用matlab采集三路語音信號,其語音信號及頻譜如圖4-1、4-2、4-3所示。選擇合適的混合矩陣生成若干混合信號,接下來在MATLAB中實(shí)現(xiàn)gequ1.wav、gequ2.wav、gequ3.wav的混合,具體的程序先進(jìn)行初始化、然后去均值,白化,用隨機(jī)矩陣對這三路語音信號進(jìn)行混合,具體的程序代碼見附錄1,運(yùn)行的結(jié)果如圖4-4所示:4-1原始語音信號和頻譜圖4-2語音混合信號和頻譜4.2語音信號的分離實(shí)現(xiàn)4.2.1FAST-ICA算法分離 獨(dú)立分量分析的含義是把信號分解成若干個互相獨(dú)立的成分,它是為了解決盲信號分離的問題而發(fā)展起來的。如果信號本來就是由若干獨(dú)立信源混合而成的,ICA就能恰好把這些信源分解開來。故在一般的文獻(xiàn)中通常把ICA等同于BSS,ICA不同于主分量分析把目光投注于信號的二階統(tǒng)計(jì)量,研究信號間的相關(guān)關(guān)系,而是基于信號的高階統(tǒng)計(jì)量,研究信號間的獨(dú)立關(guān)系。獨(dú)立分量分析中Fast-ICA算法是一種快速而數(shù)值穩(wěn)定的方法,采用擬牛頓算法實(shí)現(xiàn)尋優(yōu),具有超線性收斂速度,通常收斂速度較梯度下降尋優(yōu)算法快得多用FAST-ICA快速主成分分析算法實(shí)現(xiàn)混合信號的分離,我們可以借鑒下面的波形,原始的語言信號如圖4-3中的信號,用FAST-ICA算法分離的語音信號圖形如圖4-4所示:圖4-3三路原始語音信號圖4-4fastICA三路分離信號將原始3路語音信號與分離出來的語音信號作對比,發(fā)現(xiàn)分離出來的語音信號和原來的信號的形狀一樣,不同的是順序不一樣,信號的幅度也減少了,這恰好說明了盲分離算法中允許存在兩個方面的不確定性:(1)排列順序的不確定性,無法了解所抽取的信號應(yīng)是源信號s(t)為哪一個分量.(2)信號幅度的不確定性,即無法知道源信號的真實(shí)幅值。4.2.2主分量分析算法分離當(dāng)多變量觀測數(shù)據(jù)是由高斯分布的源信號構(gòu)成時,PCA方法也可以用來實(shí)現(xiàn)信號的分離,同樣用FAST-ICA快速主成分分析算法實(shí)現(xiàn)混合信號的分離,我們可以借鑒下面的波形,原始的語言信號是圖4-3中的信號,用FAST-ICA算法分離的語音信號圖如圖4-5示:圖4-5PCA分離語音信號同樣,將原始3路語音信號與分離出來的語音信號作對比,發(fā)現(xiàn)分離出來的語音信號和原來的信號的形狀基本一樣,不同的是順序不一樣,信號的幅度也減少了,這恰好說明了盲分離算法中允許存在兩個方面的不確定性:排列順序的不確定性和信號幅度的不確定性,還有一點(diǎn)可以看到,gequ1、gequ2、gequ3的恢復(fù)波形有些失真,但總體上達(dá)到分離效果。4.2.3分離語音頻譜分析及比較在MATLAB中畫出gequ1.wav、gequ2.wav、gequ3.wav這三段語音信號原始信號的時域和頻域圖,經(jīng)過混合,并對FAST-ICA、PCA快速主成分分析算法成功實(shí)現(xiàn)混合信號的分離的信號進(jìn)行頻域分析,其時域波形和頻譜如圖4-6所示,具體程序見附錄2。以上對3路語音信號gequ1.wav、gequ2.wav、gequ3.wav,選取混合矩陣對語音信號進(jìn)行混合,并從混合信號中分離出原語音信號,分別使用了FAST-ICA和PCA分離算法,最后畫出各分離信號的時域波形和頻譜圖和原來的信號進(jìn)行比較。此外還運(yùn)用PCA算法進(jìn)行了混合語音信號的分離實(shí)現(xiàn),下面對兩種算法進(jìn)行比較。圖4-10原始信號、fastICA分離語音信號、PCA分離語音信號和頻譜分析:對比可以發(fā)現(xiàn),不管是從時域波形來看還是頻譜來看,F(xiàn)AST-ICA算法分離的效果很好,PCA算法分離頻域分析和FAST-ICA算法分離類似。由上面的分離效果可以看出兩種算法都能夠?qū)旌闲盘栠M(jìn)行分離,發(fā)現(xiàn)分離出來的語音信號和原來的信號的形狀大體一樣,順序和原來的都不一樣,信號的幅度有的增大了,有的減少了。這些情況都比較符合盲分離算法中允許存在的排列順序的不確定性和信號幅度的不確定性值這兩種不確定性。從波形分離效果來說,在這次語音盲分離中FAST-ICA算法比PCA分離算法分離效果好。

5總結(jié)這次的設(shè)計(jì)主要對是忙語音分離,這方面在課程學(xué)習(xí)中均沒有涉及,但是在圖像處理以及Matlab使用基礎(chǔ)上是這一次的學(xué)習(xí)更加有意義,在查找資料到進(jìn)入語音信號分離課題的設(shè)計(jì)過程中對相關(guān)的領(lǐng)域有新的認(rèn)識,掌握了簡單的語音分離方法。在設(shè)計(jì)過程中,感受到算法在類似“雞尾酒會”語音信號中起到的作用,尤其是獨(dú)立分量分析方法,大量的算法均是在ICA算法的基礎(chǔ)上發(fā)展改進(jìn)而來的,這次的設(shè)計(jì)是一個入門,盲信號分離是一個廣闊的領(lǐng)域,不僅包括語音信號,還有確定信號方面,圖像處理方面等等,在這些領(lǐng)域以后可以進(jìn)一步了解。語音信號是一種非平穩(wěn)信號,本文研究了快速定點(diǎn)(FastICA)算法以及主分量分析算法(PCA),利用這兩種算法能夠有效地實(shí)現(xiàn)3路語音信號中的分離問題,設(shè)計(jì)的Matlab實(shí)現(xiàn)得到良好的分離效果。這次設(shè)計(jì)中也遇到一些問題,這些問題的解決很好的使我對盲信號處理有更全面的認(rèn)識。比如,在用電腦自帶的錄音機(jī)錄制語音信號的過程中,當(dāng)時錄制了三首歌的時間大概都在5秒左右,用matlab進(jìn)行仿真時,軟件一直都處于運(yùn)行階段,后來才意識到,語音信號太大,軟件的處理需要耗費(fèi)大量的時間。后來用Matlab錄制三段語音,又遇到了新的問題,根據(jù)matlab的錯誤提示得知,三段語音信號矩陣的大小要一樣,時間仍然是5s,大小設(shè)定一樣才成功。同樣,在圖像處理方面也要注意同樣的問題。語音信號的盲分離中涉及大量的概率論、高數(shù)等數(shù)學(xué)基礎(chǔ),是各科知識的一個綜合,在接下來的學(xué)習(xí)中,希望在復(fù)習(xí)舊的知識點(diǎn),學(xué)習(xí)新的知識點(diǎn),繼續(xù)了解學(xué)習(xí)盲信號處理BSP這個領(lǐng)域。

參考文獻(xiàn)[1]馬建倉,牛奕龍,陳海洋.盲信號處理.國防工業(yè)出版社,2006.6[2]趙艷.盲源分離與盲信號提取問題研究.西安:西安理工大學(xué).2004.3[3]馬建芬.語音信號分離與增強(qiáng)算法的研究.電子工業(yè)出版社.2012.3[4]楊福生,洪波.獨(dú)立分量分析的原理與應(yīng)用嗍.北京:清華大學(xué)出版社,2003.[5]楊行峻,鄭君里.人工神經(jīng)網(wǎng)絡(luò)與盲信號處理.清華大學(xué)出版社,2003.5附錄1原始語音Matlab信號頻譜程序fs=52050;%語音信號采樣頻率為52050s1=wavread('gequ1.wav');%讀取語音信號的數(shù)據(jù),賦給變量s1s2=wavread('gequ2.wav');s3=wavread('gequ3.wav');sound(s1,8000);%播放語音信號gequ1%sound(s2,8000);%播放語音信號gequ2%sound(s3,8000);%播放語音信號gequ3y1=fft(s1,1024);%對信號做1024點(diǎn)FFT變換y2=fft(s2,1024);y3=fft(s3,1024);f=fs*(0:511)/1024;figure(1)subplot(3,1,1);plot(s1)%畫出原始語音信號gequ的時域圖形title('gequ1原始語音信號');subplot(3,1,2);plot(s2)%畫出原始語音信號gequ2的時域圖形title('gequ2原始語音信號');subplot(3,1,3);plot(s3)%畫出原始語音信號gequ3的時域圖形title('gequ3原始語音信號');figure(2)subplot(2,1,1);plot(s1)title('gequ1原始語音信號');subplot(2,1,2);plot(abs(y1))title('gequ1原始語音信號FFT頻譜');figure(3)subplot(2,1,1);plot(s2)title('gequ2原始語音信號');subplot(2,1,2);plot(abs(y2))title('gequ2原始語音信號FFT頻譜');figure(4)subplot(2,1,1);plot(s3)title('gequ3原始語音信號');subplot(2,1,2);plot(abs(y3))title('gequ3原始語音信號FFT頻譜');附錄2預(yù)處理部分matlab程序混合、算法分離部分matlab的代碼:%(1)預(yù)處理clc;clearall;closeall;%讀入混合前的原始語音信號S1=wavread('gequ1.wav')';S2=wavread('gequ2.wav')';S3=wavread('gequ3.wav')';S=[S1;S2;S3];%3x176401矩陣Sweight=rand(size(S,1));%取一隨機(jī)3*3矩陣,作為信號混合的權(quán)矩陣MixedS=Sweight*S;%得到三個信號的混合信號3x176401矩陣fs=52050;%語音信號采樣頻率為52050y1=fft(S1,1024);%對信號做1024點(diǎn)FFT變換y2=fft(S2,1024);y3=fft(S3,1024);f=fs*(0:511)/1024;figure(1)subplot(4,3,1),plot(S1),title('原始語音信號gequ1')subplot(4,3,2),plot(S2),title('原始語音信號gequ2')subplot(4,3,3),plot(S3),title('原始語音信號gequ3')%將混合矩陣重新排列并輸出subplot(4,3,4),plot(MixedS(1,:)),title('混合語音信號1'),subplot(4,3,5),plot(MixedS(2,:)),title('混合語音信號2'),subplot(4,3,6),plot(MixedS(3,:)),title('混合語音信號3'),MixedS_bak=MixedS;%將混合后的數(shù)據(jù)備份,以便在恢復(fù)時直接調(diào)用fs=52050;%語音信號采樣頻率為52050y1=fft(MixedS(1,:),1024);%對信號做1024點(diǎn)FFT變換y2=fft(MixedS(2,:),1024);y3=fft(MixedS(3,:),1024);f=fs*(0:512)/1024;subplot(4,3,7),plot(abs(y1)),title('混合語音信號1FFT頻譜'),subplot(4,3,8),plot(abs(y2)),title('混合語音信號2FFT頻譜'),subplot(4,3,9),plot(abs(y3)),title('混合語音信號3FFT頻譜'),%(2)歸一化處理MixedS_mean=zeros(3,1);%3*1矩陣fori=1:3MixedS_mean(i)=mean(MixedS(i,:));end%計(jì)算MixedS的均值fori=1:3forj=1:size(MixedS,2)%返回矩陣的列數(shù)MixedS(i,j)=MixedS(i,j)-MixedS_mean(i);endend%(3)白化處理MixedS_cov=cov(MixedS');%cov為求協(xié)方差的函數(shù)[E,D]=eig(MixedS_cov);%對矩陣的協(xié)方差函數(shù)進(jìn)行特征值分解Q=inv(sqrt(D))*(E)';%Q為白化矩陣MixedS_white=Q*MixedS;%MixedS_white為白化后的矩陣IsI=cov(MixedS_white');%IsI應(yīng)為單位陣 附錄3算法的matlab程序(1)FAST-ICA算法X=MixedS_white;%以下算法將對X進(jìn)行操作[VariableNum,SampleNum]=size(X);numofIC=VariableNum;%在此應(yīng)用中,獨(dú)立元個數(shù)等于變量個數(shù)B=zeros(numofIC,VariableNum)%初始化列向量w的寄存矩陣,B=[b1b2...bd]forr=1:numofICi=1;maxIterationsNum=100;%設(shè)置最大迭代次數(shù)(即對于每個獨(dú)立分量而言迭代均不超過此次數(shù))IterationsNum=0;b=rand(numofIC,1)-.5;%隨機(jī)設(shè)置b初值b=b/norm(b);%對b標(biāo)準(zhǔn)化norm(b):向量元素平方和開根號whilei<=maxIterationsNum+1ifi==maxIterationsNum%循環(huán)結(jié)束處理fprintf('\n第%d分量在%d次迭代內(nèi)并不收斂。',r,maxIterationsNum);break;endbOld=b;a2=1;u=1;t=X'*b;g=t.*exp(-a2*t.^2/2);dg=(1-a2*t.^2).*exp(-a2*t.^2/2);b=((1-u)*t'*g*b+u*X*g)/SampleNum-mean(dg)*b;%核心公式b=b-B*B'*b;%對b正交化b=b/norm(b);ifabs(abs(b'*bOld)-1)<1e-9%如果收斂,則B(:,r)=b;%保存所得向量bbreak;endi=i+1;endB(:,r)=b;%保存所得向量bend%fastICA算法語音分離ICAedS=B'*Q*MixedS_bak%計(jì)算ICA后的矩陣%fastICA分離語音

溫馨提示

  • 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

提交評論