




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)字信號(hào)處理B課程項(xiàng)目實(shí)施報(bào)告題 目: 數(shù)字音效處理器 . 目錄一、設(shè)計(jì)要求:3二、盲信號(hào)處理3(1)Fast ICA算法簡(jiǎn)介3(2)遇到問題5三、去噪5(1)遇到問題5(2)維納濾波器6四、性能與結(jié)果分析71維納濾波7(1)去噪時(shí)域圖7(2) 去噪頻域圖8(3) 頻域瀑布圖82盲信號(hào)分離9(1)分離男聲9(2) 分離女聲93用戶界面10五、源程序代碼11(1)FastICA盲信號(hào)分離代碼:11(2)維納濾波去噪:13(3) 瀑布圖代碼:15(4) 主界面代碼:16七、小組分工17一、設(shè)計(jì)要求:設(shè)計(jì)一個(gè)基于MATLAB的數(shù)字音頻分析與處理系統(tǒng),能夠?qū)崿F(xiàn)對(duì)數(shù)字音頻的測(cè)試分析與處理。要求:(1)
2、輸入語音信號(hào)源為實(shí)際環(huán)境采集語音;(2) 至少實(shí)現(xiàn)1種音效測(cè)試分析功能(頻率響應(yīng),瀑布頻譜圖,相位響應(yīng)曲線,抗阻曲線,諧波失真曲線,互調(diào)失真曲線,音壓曲線等);并至少實(shí)現(xiàn)1中語音處理功能(聲紋識(shí)別,關(guān)鍵詞識(shí)別,語音去噪,聲源分離等);并分別對(duì)其進(jìn)行實(shí)際運(yùn)用。(3) 用人機(jī)交互界面操控、揚(yáng)聲器/耳機(jī)輸出音效。二、盲信號(hào)處理(1)Fast ICA算法簡(jiǎn)介快速ICA算法,由于采用了定點(diǎn)迭代的思想,所以又稱固定點(diǎn)(Fixed-Point)算法或定點(diǎn)算法,是一種快速尋優(yōu)神經(jīng)網(wǎng)絡(luò)算法。與普通的神經(jīng)網(wǎng)絡(luò)算法不同的是這種算法采用了牛頓迭代的思想對(duì)采樣點(diǎn)采用批處理的方式,在每一步迭代中有大量的樣本數(shù)據(jù)參與運(yùn)算。
3、基于目標(biāo)函數(shù)的選擇不同,從而產(chǎn)生了FastICA算法的基于負(fù)熵最大、峭度、互信息最小、最大似然估計(jì)等的多種形式。FastICA算法的優(yōu)點(diǎn)如下:1.收斂速度快,F(xiàn)astICA收斂速度為2次以上,普通的ICA算法收斂?jī)H為1次。2.能利用任何的非線性函數(shù)直接找出任何非高斯分布的獨(dú)立分量,而對(duì)于其他的算法來說,概率密度函數(shù)的估計(jì)不得不首先進(jìn)行。3.獨(dú)立分量可被逐個(gè)估計(jì)出來,類似于做投影追蹤,這在僅需要估計(jì)幾個(gè)(不是全部)獨(dú)立分量的情況下,能減小計(jì)算量。4.Fast-ICA算法有許多神經(jīng)算法的優(yōu)點(diǎn),它是并行、分布式的且計(jì)算簡(jiǎn)單,內(nèi)存要求很少,它的性能能夠通過選擇適當(dāng)?shù)姆蔷€性函數(shù)來最佳化。從Fast-IC
4、A算法流程圖可以看出,通常先對(duì)數(shù)據(jù)進(jìn)行初步的白化或球化處理,白化處理可去除各觀測(cè)信號(hào)之間的相關(guān)性,從而簡(jiǎn)化了后續(xù)獨(dú)立分量的提取過程。這是由于一般情況下,所獲得的數(shù)據(jù)都具有相關(guān)性。通過去均值和白化等預(yù)處理在對(duì)其進(jìn)行真正的算法分離。通常情況下,數(shù)據(jù)進(jìn)行白化處理與不對(duì)數(shù)據(jù)進(jìn)行白化處理相比,算法的收斂性比較好。概括來說,F(xiàn)ast-ICA算法主要包含兩部分:預(yù)處理部分和核心算法部分。預(yù)處理部分主要包括去均值化和白化處理;核心算法部分是基于擬牛頓算法,具體的實(shí)現(xiàn)見附錄程序。 Fast-ICA算法流程圖:觀測(cè)信號(hào)x去均值對(duì)去均值后的觀測(cè)信號(hào)x進(jìn)行白化基于負(fù)熵最大化理論確定目標(biāo)函數(shù)應(yīng)用牛頓迭代算法求
5、目標(biāo)函數(shù)的最大值,即分離矩陣w收斂?由獲得信號(hào)源是否在所有等方差的隨機(jī)變量中,高斯變量的熵最大,因而我們可以利用熵來度量非高斯性,常用熵的修正形式,即負(fù)熵。在分離過程中,可通過對(duì)分離結(jié)果的非高斯性度量來表示分離結(jié)果間的相互獨(dú)立性,當(dāng)非高斯性度量達(dá)到最大時(shí),則表明已完成對(duì)各獨(dú)立分量的分離。負(fù)熵的定義: ,H為隨機(jī)變量的微分熵當(dāng)Y具有高斯分布時(shí)Ng(Y)=0,Y的非高斯性越強(qiáng),其微分熵越小,所以Ng(Y)可以作為隨機(jī)變量Y非高斯性的測(cè)度。快速ICA學(xué)習(xí)規(guī)則是找一個(gè)方向以便具有最大的非高斯性。FastICA算法的迭代公式:(2)遇到問題對(duì)于聲源分離的理解一開始我們將其理解為經(jīng)典的“雞尾酒會(huì)效應(yīng)”,經(jīng)
6、過大量的數(shù)據(jù)查詢和整理,我們發(fā)現(xiàn)目前情況下,我們只能用機(jī)器實(shí)現(xiàn)分離簡(jiǎn)單疊加的盲信號(hào),或者說是以特定形式混合在一起的信號(hào),不能分離一些復(fù)雜的盲信號(hào)。在近幾年的有效方法中,F(xiàn)astICA算法可以有效的分離簡(jiǎn)單疊加的盲信號(hào),并且可以用matlab編程的方式得以實(shí)現(xiàn)。于是,我們使用matlab中的FastICA算法進(jìn)行了簡(jiǎn)單疊加的盲信號(hào)分離。三、去噪(1)遇到問題在本次課程項(xiàng)目中,我們一開始選用了最基礎(chǔ)的低通濾波器,并花了一些時(shí)間做出了巴特沃斯低通濾波器進(jìn)行測(cè)試。但是除了語音變得更沉悶一些了對(duì)噪音并沒有什么實(shí)質(zhì)性的消除效果。因?yàn)槲覀兘M要消除的噪音是雪花噪音。我們嘗試了維納濾波器,維納濾波器可以將大部分
7、噪音都濾除,只留下需要的人聲信號(hào)以及幾乎聽不見的混在人聲特定地方的噪音。(2)維納濾波器維納(Wiener)是用來解決從噪聲中提取信號(hào)的一種過濾(或?yàn)V波)方法。這種線性濾波問題,可以看作是一種估計(jì)問題或一種線性估計(jì)問題。 一個(gè)線性系統(tǒng),如果它的單位樣本響應(yīng)為,當(dāng)輸入一個(gè)隨機(jī)信號(hào),且 (1)其中表示信號(hào),)表示噪聲,則輸出為 (2)我們希望通過線性系統(tǒng)后得到的盡量接近于,因此稱為的估計(jì)值,用表示,即 (3) 則維納濾波器的輸入輸出關(guān)系可用下面圖1表示。圖1實(shí)際上,式(2)所示的卷積形式可以理解為從當(dāng)前和過去的觀察值,來估計(jì)信號(hào)的當(dāng)前值。因此,用進(jìn)行過濾問題實(shí)際上是一種統(tǒng)計(jì)估計(jì)問題。一般地,從當(dāng)前
8、的和過去的觀察值,估計(jì)當(dāng)前的信號(hào)值成為過濾或?yàn)V波;從過去的觀察值,估計(jì)當(dāng)前的或者將來的信號(hào)值稱為外推或預(yù)測(cè);從過去的觀察值,估計(jì)過去的信號(hào)值稱為平滑或內(nèi)插。因此維納濾波器又常常被稱為最佳線性過濾與預(yù)測(cè)或線性最優(yōu)估計(jì)。這里所謂的最佳與最優(yōu)是以最小均方誤差為準(zhǔn)則的。如果我們分別以與表示信號(hào)的真實(shí)值與估計(jì)值,而用表示他們之間的誤差,即 (4)顯然可能是正值,也可能是負(fù)值,并且它是一個(gè)隨機(jī)變量。因此,用它的均方誤差來表達(dá)誤差是合理的,所謂均方誤差最小即它的平方的統(tǒng)計(jì)期望最?。?(5)四、性能與結(jié)果分析1維納濾波(1)去噪時(shí)域圖從無語音段提取出的噪聲波形維納濾波后波形 信噪比=14.8306dB帶噪語音
9、 信噪比=4.8483dB(2) 去噪頻域圖帶噪語音頻譜噪聲頻譜處理后的語音頻譜(3) 頻域瀑布圖2盲信號(hào)分離(1)分離男聲時(shí)域圖頻域圖(2) 分離女聲時(shí)域圖頻域圖3用戶界面五、源程序代碼(1)FastICA盲信號(hào)分離代碼:x,fs=audioread('D:shuzixinhaogongchengXMhunhe1.wav');y,fs=audioread('D:shuzixinhaogongchengXMhunhe2.wav');%sound(x,fs); % /播放原語音信號(hào)N1=length(x); %
10、 /求出語音信號(hào)的長(zhǎng)度N2=length(y);t1=(0:N1-1)/fs; % /語音信號(hào)的長(zhǎng)度除以采樣頻率t2=(0:N2-1)/fs;w1=fs*linspace(0,1,N1); w2=fs*linspace(0,1,N2); x1=abs(fft(x,N1); y1=abs(fft(y,N2); x=x(:,1);y=y(:,1);x=x'y=y'MixedS = x;y;MixedS_bak=MixedS;
11、; % 將混合后的數(shù)據(jù)備份,以便在恢復(fù)時(shí)直接調(diào)用% 中心化 %MixedS_mean=zeros(2,1);for i=1:2 MixedS_mean(i)=mean(MixedS(i,:);endfor i=1:2 for j=1:size(MixedS,2) MixedS(i,j)=MixedS(i,j
12、)-MixedS_mean(i); endend% 白化 %MixedS_cov=cov(MixedS'); % cov為求協(xié)方差的函數(shù)E,D=eig(MixedS_cov); % 對(duì)信號(hào)矩陣的協(xié)方差函數(shù)進(jìn)行特
13、征值分解Q=inv(sqrt(D)*(E)' % Q為白化矩陣MixedS_white=Q*MixedS; % MixedS_white為白化后的信號(hào)矩陣IsI=cov(MixedS_white'); % IsI應(yīng)為單位陣 %FASTICA算法 %X=MixedS_white;
14、; % 以下算法將對(duì)X進(jìn)行操作VariableNum,SampleNum=size(X);numofIC=VariableNum; % 在此應(yīng)用中,獨(dú)立元個(gè)數(shù)等于變量個(gè)數(shù)B=zeros(numofIC,VariableNum); % 初始化列向量w的寄存矩陣,B=b1 b2 . bdfor r=1:numofIC &
15、#160;i=1;maxIterationsNum=100; % 設(shè)置最大迭代次數(shù)(即對(duì)于每個(gè)獨(dú)立分量而言迭代均不超過此次數(shù)) b=rand(numofIC,1)-.5; &
16、#160; % 隨機(jī)設(shè)置b初值 b=b/norm(b); % 對(duì)b標(biāo)準(zhǔn)化 norm(b):向量元素平方和開根號(hào) while i<
17、=maxIterationsNum+1 bOld=b; t=X'*b;
18、; g=t.*exp(-t.2/2); dg=(1-t.2).*exp(-t.2/2); b=X*g/SampleNum-mean(dg)*b; b=b-B*B'*b;
19、 % 對(duì)b正交化 b=b/norm(b); if abs(abs(b'*bOld)-1)<1e-9 % 如果收斂,則
20、160; B(:,r)=b; % 保存所得向量b break; end
21、 i=i+1; endendif i = maxIterationsNum+1 % 循環(huán)結(jié)束處理 fprintf('n第%d分量在%d次迭代內(nèi)并不收斂。', r,maxI
22、terationsNum); return;end% ICA計(jì)算的數(shù)據(jù)復(fù)原并構(gòu)圖 %ICAedS=B'*Q*MixedS_bak; % 計(jì)算ICA后的矩陣% 將混合矩陣重新排列并輸出sound(ICAedS(1,:),fs);Ws=sum(ICAedS(1,:).2);%計(jì)算信噪比Wn=sum(ICAedS(2,:).2);A=B'
23、;*Q;a11=A(1,1);a12=A(1,2);a21=A(2,1);a22=A(2,2);SNRy1=10*(a112*Ws)/(a122*Wn)(2)維納濾波去噪:if (nargin<3 | isstruct(IS) % 如果輸入?yún)?shù)小于3個(gè)或IS是結(jié)構(gòu)數(shù)據(jù) IS=.25; endW=fix(.025*fs);
24、; % 幀長(zhǎng)為25msSP=.4; % 幀移比例取40%(10ms) wnd=hamming(
25、W); % 設(shè)置窗函數(shù)% 如果輸入?yún)?shù)大于或等于3個(gè)并IS是結(jié)構(gòu)數(shù)據(jù)(為了兼容其他程序)if (nargin>=3 && isstruct(IS) SP=IS.shiftsize/W; nfft=IS.nfft;
26、; wnd=IS.window; if isfield(IS,'IS') IS=IS.IS else IS=.25; endendpre_emph=0;signal=filter(1 -pre_emph,1,sign
27、al); % 預(yù)加重NIS=fix(IS*fs-W)/(SP*W) +1); % 計(jì)算無話段幀數(shù)y=segment(signal,W,SP,wnd); % 分幀 Y=fft(y);
28、; % FFTYPhase=angle(Y(1:fix(end/2)+1,:); % 帶噪語音的相位角 Y=abs(
29、Y(1:fix(end/2)+1,:); % 取正頻率譜值numberOfFrames=size(Y,2); % 計(jì)算總幀數(shù)FreqResol=size(Y,1);
30、 % 計(jì)算頻譜中的譜線數(shù)N=mean(Y(:,1:NIS)')' % 計(jì)算無話段噪聲平均譜值 LambdaD=mean(Y(:,1:NIS)').2)' % 初始噪聲功率譜方差alpha=.99;
31、60; % 設(shè)置平滑系數(shù)fn=numberOfFrames;miniL=5;
32、; % 設(shè)置miniLvoiceseg,vosl,SF,Ef=pitch_vad1(y,fn,T1,miniL); %端點(diǎn)檢測(cè) NoiseCounter=0; % 初始化NoiseCounterNoiseLength
33、=9; % 設(shè)置噪聲平滑區(qū)間長(zhǎng)度G=ones(size(N); % 初始化譜估計(jì)器Gamma=G;X=zeros(size(Y);
34、; % 初始化Xh=waitbar(0,'Wait.'); % 設(shè)置運(yùn)行進(jìn)度條圖 for i=1:numberOfFrames SpeechFlag=SF(i); if
35、 i<=NIS % 若i<=NIS在前導(dǎo)無聲(噪聲)段 SpeechFlag=0;
36、; NoiseCounter=100; %else % i>NIS判斷是否為有話幀 %NoiseFlag, SpeechFlag,
37、0;NoiseCounter, Dist=vad(Y(:,i),N,NoiseCounter); end if SpeechFlag=0 % 在無話段中平滑更新噪聲譜值 N=(NoiseLength*N+Y
38、(:,i)/(NoiseLength+1); LambdaD=(NoiseLength*LambdaD+(Y(:,i).2)./(1+NoiseLength);%更新和平滑噪聲方差 end gammaNew=(Y(:,i).2)./LambdaD; % 計(jì)算后驗(yàn)
39、信噪比 xi=alpha*(G.2).*Gamma+(1-alpha).*max(gammaNew-1,0); % 計(jì)算先驗(yàn)信噪比 Gamma=gammaNew; G=(xi./(xi+1); % 計(jì)算維納濾波器的譜估計(jì)器 X(:,i)=G.*Y(:,i);
40、0; % 維納濾波后的幅值%顯示運(yùn)行進(jìn)度條圖 waitbar(i/numberOfFrames,h,num2str(fix(100*i/numberOfFrames);endclose(h);
41、160; % 關(guān)閉運(yùn)行進(jìn)度條圖output=OverlapAdd2(X,YPhase,W,SP*W); % 語音合成output=filter(1,1 -pre_emph,output); % 消除預(yù)加重影響output=output/max(abs(output)
42、; (3) 瀑布圖代碼:b,Fs=audioread('D:shuzixinhaogongchengXMxuehua.wav');b=b(:,1);t=size(b)/44100;f=0:1:22049;R=1;G=0;B=0.5;figurefor i=1:0.2:t/2; z=b(i*44100-44099):(i*44100); z=abs(fft(z,44100)/22050; z=z' f,i=meshgrid(f,i); plot3(f,i,z(1:22050),'color',R G B); hold on; G=G+0.035;endR=0.5;G=1;B=0;for i=t/2:0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【PLC交通信號(hào)系統(tǒng)軟件和組態(tài)設(shè)計(jì)案例1300字】
- 【基于單片機(jī)的液體流量控制系統(tǒng)的軟件設(shè)計(jì)和仿真案例分析1700字】
- 土地承包經(jīng)營(yíng)的合同
- 安全生產(chǎn)管理制度不包括
- 安全管理制度中明確
- 高三溫州一模數(shù)學(xué)試卷
- 洞口縣考編初中數(shù)學(xué)試卷
- 廣安市試卷高一數(shù)學(xué)試卷
- 2025年保定市稅務(wù)系統(tǒng)遴選面試真題回憶版含答案
- 2025年光伏行業(yè)投資策略分析報(bào)告:基本面觸底反彈電算一體化場(chǎng)景儲(chǔ)能
- 網(wǎng)絡(luò)安全產(chǎn)業(yè)學(xué)院建設(shè)規(guī)劃方案
- 2023年全國(guó)職業(yè)院校技能大賽-聲樂、器樂表演大賽賽項(xiàng)規(guī)程
- 英文繪本故事Brown.Bear.Brown.Bear.What.Do.You.See
- 光伏扶貧項(xiàng)目實(shí)施方案
- 2024年社區(qū)工作者考試必背1000題題庫(kù)必背(典型題)
- 大學(xué)英語四級(jí)考試高頻詞匯1500
- 領(lǐng)導(dǎo)干部防震知識(shí)講座
- 《義務(wù)教育學(xué)校校長(zhǎng)專業(yè)標(biāo)準(zhǔn)》解讀
- 員工能力矩陣管理與培訓(xùn)總結(jié)
- 四年級(jí)下冊(cè)數(shù)學(xué)運(yùn)算定律簡(jiǎn)便計(jì)算400題及答案
- 合同期限和提前終止條件
評(píng)論
0/150
提交評(píng)論