基于MATLAB的回聲信號產(chǎn)生器_第1頁
基于MATLAB的回聲信號產(chǎn)生器_第2頁
基于MATLAB的回聲信號產(chǎn)生器_第3頁
基于MATLAB的回聲信號產(chǎn)生器_第4頁
基于MATLAB的回聲信號產(chǎn)生器_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

./完美WORD格式編輯電子信息工程學(xué)院《DSP技術(shù)及應(yīng)用》課程設(shè)計報告題目:基于MATLAB的回聲信號產(chǎn)生器專業(yè)班級:通信工程專業(yè)二〇一三年六月十六日目錄一、設(shè)計目的…………1二、設(shè)計要求…………1三、設(shè)計原理及方案…………………1四、設(shè)計流程…………5五、調(diào)試分析…………5六、GUI界面…………17七、設(shè)計總結(jié).………..20.完美WORD格式編輯設(shè)計目的綜合運用我們掌握的數(shù)字信號處理知識,利用matlab語言編程進行回聲信號產(chǎn)生器的設(shè)計再對其進行頻譜分析,實現(xiàn)回聲的產(chǎn)生,消除和隱藏。1、首先熟練掌握對聲音采集、處理、衰減、延時等過程的理論知識。2、根據(jù)設(shè)計思路,學(xué)習(xí)資料的搜集與整理。3、通過理論與實際的結(jié)合,在理論的基礎(chǔ)結(jié)合實際情況完成課程的設(shè)計。關(guān)于MATLAB軟件:MATLAB語言具備高效、可及推理能力強等特點,是目前工程界流行最廣泛的科學(xué)計算語言。MATLAB強大的運算和圖形顯示功能,可使信號與系統(tǒng)上機實驗效率大大提高。特別是它的頻譜分析和濾波器分析與設(shè)計功能很強,使數(shù)字信號處理工作變得十分簡單,直觀。關(guān)于GUI界面:圖形用戶界面GUI<GraphicsUserInterface>是由各種圖形對象,如圖形窗口、圖軸、菜單、按鈕、文本框等構(gòu)建的用戶界面,是人機交流信息的工具和方法。GUI設(shè)計即可以基本的MATLAB程序設(shè)計為主,也可以鼠標為主利用GUIDE工具進行設(shè)計。設(shè)計要求首先,自己錄取一個合適的原聲信號,并對其進行頻譜分析;然后通過數(shù)字信號處理對已錄制好的原聲信號進行延時,衰減,產(chǎn)生出回聲信號,通過圖形與原聲信號進行比較;再把信息轉(zhuǎn)換成二進制信號將其疊加在回聲中,通過數(shù)字信號處理實現(xiàn)信息的隱藏;最后,通過設(shè)計GUI界面將結(jié)果展示出來。1、通過計算機中的y=fft〔x傅里葉變換,對原聲信號和回聲信號進行頻譜分析。2、通過設(shè)計FIR、IIR濾波器對原聲信號進行衰減、延時產(chǎn)生一次、三次、六次無限次回聲。3、學(xué)習(xí)并掌握MATLAB的使用方法,用MATLAB編程和會使用MATLAB中的GUI界面設(shè)計。設(shè)計原理及方案1、設(shè)計原理〔1回聲的定義:當(dāng)聲投射到距離聲源有一段距離的大面積上時,聲能的一部分被吸收,而另一部分聲能要反射回來,如果聽者聽到由聲源直接發(fā)來的聲和由反射回來的聲的時間間隔超過十分之一秒,它就能分辨出兩個聲音這種反射回來的聲叫"回聲"。〔2回聲信號產(chǎn)生:根據(jù)回聲的定義,回聲信號可以是原始信號通過延時、衰減來生成?!?回聲信號消除:數(shù)字濾波器的作用是濾除信號中某一部分頻率分量??梢詫⒒芈曅盘栂?。〔4回聲信號隱藏:回聲隱藏利用了人耳的聽覺掩蔽效應(yīng),是一種有效的音頻信息隱藏方法。〔5處理單元原理:假設(shè)x<n>為原始信號,y<n>為經(jīng)過延時、衰減迭加后產(chǎn)生的"回聲信號",聲音信號和經(jīng)延遲R個周期,衰減系數(shù)α〔α<1的單個回聲的差分方程有如下表示:y<n>=x<n>+α·x<n-R>上述差分方程可用系統(tǒng)函數(shù)表示為:H<z>=1+α·z-R此濾波器為FIR濾波器,其結(jié)構(gòu)圖如下:在實際生活中,往往不止存在一重回聲,因此,需要實現(xiàn)多重回聲的設(shè)計,關(guān)于均勻間隔的多重回聲的實現(xiàn),是將每一級回聲相對于上一級回聲依次衰減和延時R個周期,此時不能再用FIR濾波器來實現(xiàn),應(yīng)該用IIR濾波器設(shè)計。IIR濾波器設(shè)計的系統(tǒng)函數(shù)如下:當(dāng)回聲次數(shù)很多時多重回聲的系統(tǒng)函數(shù)如下:IIR濾波器結(jié)構(gòu)圖:IIR濾波器結(jié)構(gòu)隱藏目的是以添加回聲的方式在原有音頻信息中嵌入新信息,實現(xiàn)信息隱藏。它的數(shù)學(xué)模型可以表示為:典型的回聲核脈沖嵌入回聲的聲音可表示為和的卷積,和,分別為原始聲音信號和回聲核的單位脈沖響應(yīng)?;芈曅盘栍梢氲皆悸曇舢?dāng)中,其中,d為延遲時間,為衰減系數(shù)。嵌入回聲后的聲音信號可以表示為2、設(shè)計方案〔1讀取語音信號與回放錄制一段合適的原聲信號,用"[x,fs,bits]=wavread<'y',[140000]>"來讀取錄制好的語音信號,這是以采樣頻率fs、采樣位數(shù)bits從[140000]來讀取語音,并將采樣值放在x中。用sound<5*x,fs,bits>對聲音信號進行回放,乘以5以加強信號,便于聽取。〔2傅里葉變換FFT傅里葉變換調(diào)用格式:y=-fft<x>其中,x是序列,y是序列的FFT,,x可以為一向量或矩陣,若x為一向量,y是x的FFT。且和x相同長度。若x為一矩陣,則y是對矩陣的每一列向量進行FFT。如果x長度是2的冪次方,函數(shù)fft執(zhí)行高速基-2FFT算法;否則fft執(zhí)行一種混合基離散傅里葉變換算法,計算速度較慢?!?函數(shù)filter函數(shù)filter的調(diào)用格式為:y=filter<b,a,x>該格式采用數(shù)字濾波器對數(shù)據(jù)進行濾波,既可以用于IIR濾波器,也可以用于FIR濾波器。其中向量b和a分別表示系統(tǒng)函數(shù)的分子、分母多項式的系數(shù),若a=1,此時表示FIR濾波器,否則就是IIR濾波器。該函數(shù)是利用給出的向量b和a,對x中的數(shù)據(jù)進行濾波,結(jié)果放入向量y?!?函數(shù)zearos函數(shù)的一種調(diào)用格式為:B

=

zeros<n>返回一個n*n的矩陣,其元素都為零,如果參數(shù)n不是一個標量就會報錯。函數(shù)的另一種調(diào)用格式為:B

=

zeros<m,n>

或B

=

zeros<[m

n]>返回一個m*n的零矩陣。函數(shù)的另一種調(diào)用格式為:B

=

zeros<m,n,p,…>或B

=

zeros<[m

n

p

…]>返回一個m*n*p*…的零矩陣。注意:參數(shù)m,n,p都是非負整數(shù),負整數(shù)都會看成零。四、設(shè)計流程五、調(diào)試與分析1、原始信號分析讀取一段語音信號,畫出其時域波形,用fft對讀取的語音信號進行傅里葉變換,并畫出其相位與幅值。[x,fs,bits]=wavread<'y',[140000]>;%讀取語音信號n1=0:2000;figure<1>subplot<2,1,1>;plot<x>;%原始信號時域波形title<'原始信號時域波形'>;X=fft<x>;%對原始信號做FFT變換subplot<2,1,2>;plot<n1<1:1000>,X<1:1000>>;%原始信號頻譜圖title<'原始信號頻譜圖'>;figure<2>subplot<2,1,1>;plot<abs<X>>;%經(jīng)傅里葉變換之后的信號的幅值title<'幅值'>;subplot<2,1,2>;plot<angle<X>>;%經(jīng)傅里葉變換之后的信號的相位title<'相位'>;sound<5*x,fs,bits>;%原始語音信號,乘以5是為了加強信號2、回聲信號的產(chǎn)生對原始信號取出單聲道信號,并用filter函數(shù)對其進行衰減和延時,得到回聲信號?!?FIR濾波器產(chǎn)生一次回聲[x,fs,bits]=wavread<'y',[140000]>;%讀取語音信號n1=0:2000;b=x<:,1>;%取單聲道信號yy1=filter<[1,zeros<1,12000>,0.7],1,[b',zeros<1,30000>]>;%FIR濾波器進行濾波figure<1>subplot<2,1,1>;plot<yy1>;%單回聲濾波器時域波形title<'單回聲濾波器時域波形'>;YY1=fft<yy1>;%對單回聲信號做2001點的FFT變換subplot<2,1,2>;plot<n1<1:1000>,YY1<1:1000>>;%單回聲濾波器頻譜圖title<'單回聲濾波器頻譜圖'>;figure<2>subplot<2,1,1>;plot<abs<YY1>>;%經(jīng)傅里葉變換之后的信號的幅值title<'幅值'>;subplot<2,1,2>;plot<angle<YY1>>;%經(jīng)傅里葉變換之后的信號的相位title<'相位'>;sound<5*yy1,fs,bits>;%經(jīng)單次回聲濾波器后的語音信號,乘以5是為了加強信號〔2IIR濾波器產(chǎn)生多次回聲:yy2=filter<1,[1,zeros<1,80000/<N+1>>,0.7],[b',zeros<1,40000>]>;通過改變式中N的數(shù)值可設(shè)置回聲的次數(shù),三次回聲:[x,fs,bits]=wavread<'y',[140000]>;%讀取語音信號n1=0:2000;b=x<:,1>;%產(chǎn)生單聲道信號N=3;yy2=filter<1,[1,zeros<1,80000/<N+1>>,0.7],[b',zeros<1,40000>]>;%IIR濾波器進行濾波figure<3>subplot<2,1,1>;plot<yy2>;%三次回聲濾波器時域波形title<'三次回聲濾波器時域波形'>;YY2=fft<yy2>;%對三次回聲信號做FFT變換subplot<2,1,2>;plot<n1<1:1000>,YY2<1:1000>>;%三次回聲濾波器頻譜圖title<'三次回聲濾波器頻譜圖'>;figure<4>subplot<2,1,1>;plot<abs<YY2>>;%經(jīng)傅里葉變換之后的信號的幅值title<'幅值'>;subplot<2,1,2>;plot<angle<YY2>>;%經(jīng)傅里葉變換之后的信號的相位title<'相位'>;sound<5*yy2,fs,bits>;%經(jīng)三次回聲濾波器后的語音信號,乘以5是為了加強信號使用疊加法產(chǎn)生三次回波:[x,fs]=wavread<‘ding.wav’>;x1=x<1:40000>;%產(chǎn)生40000行1列矩陣x2=x<1:40000>;x3=x<1:40000>;x4=x<1:40000>;x1=[x1’,zeros<1,18000>];%x1’為x1的轉(zhuǎn)置,zero是〔1,18000產(chǎn)生1行18000列全零矩陣并加到x1’的后面x2=[zeros<1,6000>,0.7*x2’,zeros<1,12000>];x3=[zeros<1,12000>,0.4*x3’,zeros<1,6000>];x4=[zeros<1,18000>,0.2*x4’];yy1=x1+x2+x3+x4;figure<3>subplot<2,1,1>;plot<yy1>;%三次回聲時域波形title<‘三次回聲濾波器時域波形’>;YY1=fft<yy1>;%三次回聲信號做FFT變換subplot<2,1,2>;plot<n1<1:1000>,YY1<1:1000>>;%三次回聲頻譜圖title<‘三次回聲濾波器頻譜圖‘>;figure<4>subplot<2,1,1>;plot<abs<YY1>>;%經(jīng)傅里葉變換之后的信號的幅值title<‘幅值’>;subplot<2,1,2>;plot<angle<YY1>>;%經(jīng)傅里葉變換之后的信號的相位title<‘相位'>;sound<5*yy1,fs>;六次回聲:[x,fs,bits]=wavread<'y',[140000]>;%讀取語音信號n1=0:2000;b=x<:,1>;%產(chǎn)生單聲道信號N=6;yy2=filter<1,[1,zeros<1,70000/<N+1>>,0.7],[b',zeros<1,40000>]>;%IIR濾波器進行濾波figure<3>subplot<2,1,1>;plot<yy2>;%六次回聲濾波器時域波形title<'六次回聲濾波器時域波形'>;YY2=fft<yy2>;%對六次回聲信號做FFT變換subplot<2,1,2>;plot<n1<1:1000>,YY2<1:1000>>;%三次回聲濾波器頻譜圖title<'六次回聲濾波器頻譜圖'>;figure<4>subplot<2,1,1>;plot<abs<YY2>>;%經(jīng)傅里葉變換之后的信號的幅值title<'幅值'>;subplot<2,1,2>;plot<angle<YY2>>;%經(jīng)傅里葉變換之后的信號的相位title<'相位'>;sound<5*yy2,fs,bits>;%經(jīng)六次回聲濾波器后的語音信號,乘以5是為了加強信號〔3IIR濾波器產(chǎn)生無限次回聲函數(shù)yy1=filter〔B,A,x利用給出的向量b和a,對x中的數(shù)據(jù)進行濾波,結(jié)果放入向量yy1。[x,fs,bits]=wavread<'y',[140000]>;%讀取語音信號n1=0:2000;a=0.7;%a取小于等于1B=[1,a];%分子的系數(shù)A=1;%分母的系數(shù)yy1=filter<B,A,x>;%IIR濾波器進行濾波figure<11>subplot<2,1,1>;plot<yy1>;%無限回聲濾波器時域波形title<'無限個回聲濾波器時域波形'>;YY1=fft<yy1>;%經(jīng)無限回聲濾波器后的信號做FFT變換subplot<2,1,2>;plot<n1<1:1000>,YY1<1:1000>>;%無限回聲濾波器頻譜圖title<'無限個回聲濾波器頻譜圖'>;figure<12>subplot<2,1,1>;plot<abs<YY1>>;title<'幅值'>;subplot<2,1,2>;plot<angle<YY1>>;title<'相位'>;sound<5*yy1,fs,bits>;%回放經(jīng)無限回聲濾波器后的語音信號3、回聲信號的濾除數(shù)字信號濾波器的作用是濾除一部分頻率分量,利用y=filter<B,A,x>函數(shù),設(shè)計出回聲信號消除濾波器。y=x?〔1單回聲消除:產(chǎn)生回聲過程:yy1=filter<[1,zeros<1,12000>,0.7],1,[b',zeros<1,30000>]>;回聲濾除過程:z=filter<1,[1,zeros<1,12000>,0.7],yy1>;[x,fs,bits]=wavread<'y',[140000]>;%讀取語音信號n1=0:2000;b=x<:,1>;%取單聲道信號yy1=filter<[1,zeros<1,12000>,0.7],1,[b',zeros<1,30000>]>;subplot<3,1,1>;plot<yy1>;%單回聲濾波器時域波形title<'單回聲濾波器時域波形'>;YY1=fft<yy1>;%對單回聲信號做2001點的FFT變換subplot<3,1,2>;plot<n1<1:1000>,YY1<1:1000>>;%單回聲濾波器頻譜圖title<'單回聲濾波器頻譜圖'>;z=filter<1,[1,zeros<1,12000>,0.7],yy1>;subplot<3,1,3>;plot<z>;title<'濾波后信號波形'>;sound<z,fs>;〔2多重回聲消除產(chǎn)生回聲:yy2=filter<1,[1,zeros<1,80000/<N+1>>,0.7],[b',zeros<1,40000>]>;回聲消除:z=filter<[1,zeros<1,80000/<N+1>>,0.7],1,yy2>;通過改變N的數(shù)值,實現(xiàn)多次回聲的消除。三次回聲消除:[x,fs,bits]=wavread<'y',[140000]>;%讀取語音信號n1=0:2000;N=3;b=x<:,1>;yy2=filter<1,[1,zeros<1,80000/<N+1>>,0.7],[b',zeros<1,40000>]>;%IIR濾波器進行濾波subplot<3,1,1>;plot<yy2>;%三次回聲濾波器時域波形title<'三次回聲濾波器時域波形'>;YY2=fft<yy2>;%對三次回聲信號做FFT變換subplot<3,1,2>;plot<n1<1:1000>,YY2<1:1000>>;%三次回聲濾波器頻譜圖title<'三次回聲濾波器頻譜圖'>;z=filter<[1,zeros<1,80000/<N+1>>,0.7],1,yy2>;subplot<3,1,3>;plot<z>;title<'濾波后信號波形'>;sound<z,fs>;六次回聲消除:[x,fs,bits]=wavread<'y',[140000]>;%讀取語音信號n1=0:2000;N=6;b=x<:,1>;yy2=filter<1,[1,zeros<1,70000/<N+1>>,0.7],[b',zeros<1,40000>]>;%IIR濾波器進行濾波subplot<3,1,1>;plot<yy2>;%六次回聲濾波器時域波形title<'六次回聲濾波器時域波形'>;YY2=fft<yy2>;%對六次回聲信號做FFT變換subplot<3,1,2>;plot<n1<1:1000>,YY2<1:1000>>;%六次回聲濾波器頻譜圖title<'六次回聲濾波器頻譜圖'>;z=filter<[1,zeros<1,70000/<N+1>>,0.7],1,yy2>;subplot<3,1,3>;plot<z>;title<'濾波后信號波形'>;sound<z,fs>;〔3無限次回聲濾波器函數(shù)yy1=filter<B,A,x>利用分子B,分母A的設(shè)置對回聲信號進行濾除。產(chǎn)生回聲:yy1=filter<B,A,x>;濾除回聲:z=filter<B,A,yy1>;[x,fs,bits]=wavread<'y',[140000]>;%讀取語音信號n1=0:2000;a=0.7;%a取小于等于1B=[1,a];%分子的系數(shù)A=1;%分母的系數(shù)yy1=filter<B,A,x>;%IIR濾波器進行濾波subplot<3,1,1>;plot<yy1>;%無限回聲濾波器時域波形title<'無限個回聲濾波器時域波形'>;YY1=fft<yy1>;%經(jīng)無限回聲濾波器后的信號做FFT變換subplot<3,1,2>;plot<n1<1:1000>,YY1<1:1000>>;%無限回聲濾波器頻譜圖title<'無限個回聲濾波器頻譜圖'>;z=filter<B,A,yy1>;subplot<3,1,3>;plot<z>;title<'濾波后信號波形'>;sound<z,fs>;%回放經(jīng)無限回聲濾波器后的語音信號4、回聲隱藏[s,fs,bits]=wavread<'goinghome3.wav'>;[row,col]=size<s>;if<row>col>s=s';end;%把矩陣轉(zhuǎn)換msgfid=fopen<'hidden.txt','r'>;[msg,count]=fread<msgfid>;msg=str2mat<msg>;msg=uint8<msg>';len=length<s>;i=0;fragment=56;N=floor<len/fragment>;lend=length<msg>;atten=0.9;d0=100;d1=200;s0=atten*[zeros<1,d0>,s<1:len-d0>];%backwardechowithdelay0s1=atten*[zeros<1,d1>,s<1:len-d1>];%backwardechowithdela

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論