
課程設計任務書
學生姓名 學生學號
學生專業 學生班級
指導教師 職 稱
發題日期 完成日期
設計題目
XXX XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX XXXXXXXXXXX
XXXXXXXXXXX XXXXXXXXXXXXXXXX
X 年X月X X年X月X 日
基于MATLAB的聲音信號處理
設計目的:
1、鞏固所學的數字信號處理理論知識。
2、理解信號的采集、處理、傳輸、顯示。加深學習Matlab軟件。
3、綜合應用專業及基礎知識,增強解決實際工程技術問題的能力。
4、學習資料的收集與整理,學會撰寫課程設計報告。
具體任務及要求:
1、選擇一個語音信號作為分析對象,或自我錄制一段語音,對其進行頻譜分析;
利用Matlab軟件產生一個隨機噪聲進行加噪聲后再對其分析;設計FIR或
IIR數字濾波器對語音進行濾波,再分析其時域和頻域。利用Matlab軟件編
寫語音信號處理程序,完成對話音信號時域和頻域的程序設計和分析。
2、利用課余時間去圖書館或者上網查閱相關課題資料,深入理解課題含義及設
計要求,認真整理。在5月10日前完成預設計,并請指導教師審查、定稿。
3、及時提交設計報告(紙質、電子稿),要求格式規范、內容完整、結論正確,
正文數不少于3000字。
課程設計進度安排:
序號 內容安排 時間
1 獲得題目后查閱資料并整理,完成預設計 3.25 -4.1
2 設計總體方案,繪制流程圖,編寫代碼并調試 4.2-4.16
3 總體測試,完善其功能 4.17-5.1
4 撰寫設計報告,后交指導老師初審 5.2-5.16
5 修改、完善設計報告,定稿、提交設計報告 5.17-5.25
課程設計參考文獻:
[1] 張德豐:MATLAB通信工程仿真,北京機械工業出版社,2010.1 [2] 王彬、
于丹、汪洋:MATLAB數字信號處理,北京機械工業出版社,2010.5,
[3] 孟志強、陳燕東、王同業、楊鈺:MATLAB輔助現代工程數字信號處理,西
安電子科技大學出版社,2010.7
指導教 院長審核
師簽字 簽字
I
基于MATLAB的聲音信號處理的初步實現
內容摘要:
數字濾波器是數字信號處理技術的基礎, 用來對信號進行過濾、檢
測、與參數估計等處理。任何檢測的信號都含有噪聲,而濾波是去除噪聲的基本
手段,因此濾波器在數字信號處理中占有極其重要的地位。FIR數字濾波器和IIR
數字濾波器是濾波器設計的重要組成部分。隨著MATLAB軟件及信號處理工具箱的
不斷完善,MATLAB很快成為應用學科等領域不可或缺的基礎軟件,它可以快速有
效地實現數字濾波器的設計、分析和仿真,極大地減輕了工作量,有利于濾波器設
計的最優化。本設計綜合運用了數字信號處理的各種基本知識,對不帶噪聲音信
號以及帶噪聲音信號進行頻譜分析,并利用MATLAB信號處理工具箱有效快捷地設
計IIR數字濾波器對帶噪聲音信號進行濾波處理。
關鍵詞
:
數字濾波器 MATLAB 濾波 仿真
The preliminary implementation of voice signal
processing bad on MATLAB
Abstract
:
Digital filter is the basis of digital signal processing
technology, which ud for signal filtering, detecting, and parameter
estimation. Any detection signal contains noi, and filtering is a basic
means to remove the noi, so filter occupies an extremely important
position in digital signal processing.FIR digital filter and IIR digital
filter is animportant part of the filter design. With MATLAB software and
the continuous improvement of the signal processing toolbox, MATLAB
application quickly became indispensable to areas such as basic software.
It can quickly and efficiently for digital filter design, analysis and
simulation, greatly reduce the workload, and it is advantageous to the
optimization of filter design. This design is integrated ud of all kinds
of basic knowledge of digital signal processing to complete the analysis
of frequency spectrum about speech noisy signal and speech signal, and it
u the MATLAB signal processing toolbox effective shortcut to design IIR
II
digital filter with noi speech signal filter processing.
Keywords
:
Digital Filter MATLAB Filtering Simulation
目 錄
前 言 ............................................................... 1
1 緒論 ............................................................. 1
1.1 研究的目的和意義 ............................................ 1
1.2 國內外研究的現狀 ............................................ 1
1.3 本課題研究的內容和方法 ...................................... 2
2 MATLAB軟件介紹 ................................................. 2
2.1 MATLAB發展歷程 ............................................ 2
2.2 MATLAB組成 ................................................ 3
2.2.1 MATLAB語言 ......................................... 3
2.2.2 MATLAB的工作環境 ................................... 3
2.2.3 MATLAB數據函數庫 ................................... 3
2.2.4 MATLAB應用程序接口 ................................. 3
2.2.5 圖形句柄系統 ........................................ 4
2.3 MATLAB的特點 .............................................. 4
3 數字濾波器的設計 ................................................. 5
3.1 數字濾波器概述 .............................................. 5
3.2 數字濾波器設計的基本原理 .................................... 6
3.3 設計IIR數字濾波器 .......................................... 6
3.3.1 IIR數字濾波器設計方法 .............................. 6
3.3.2 利用模擬濾波器設計IIR數字濾波器的步驟 .............. 6
3.3.3 用雙線性法設計IIR低通濾波器 ........................ 7
4 去噪和仿真的研究 ................................................. 7
4.1 語言信號在MATLAB平臺上的錄入與打開 ....................... 7
4.2 原始語言信號頻譜分析及仿真 .................................. 8
4.3 加噪語音信號頻譜分析及仿真 .................................. 9
4.4 去噪及仿真 ................................................. 10
4.5 回放語音信號 ............................................... 11
5 結束語 .......................................................... 11
IV
附 錄 .............................................................. 12
附錄1:IIR低通濾波器程序 ....................................... 12
附錄2:產生原始語音信號波形、頻譜、幅值、相位圖程序 ............ 12
附錄3:產生原始語音信號和加噪語音信號時域波形、頻譜圖程序 ...... 13
附錄4:產生IIR濾波前和濾波后波形及頻譜圖程序 .................. 14
參考文獻 ........................................................... 16
V
基于MATLAB的聲音信號處理的初步實現
前 言
聲音信號的采集與分析處理在工程應用中是經常需要解決的問題,如何實時
采集聲音信號并對其分析處理,找出聲音信號的特征在科學研究中是一項非常有
意義的工作。
1 緒論
語音是語言的聲學表現,是人類獲取信息的重要來源和利用信息的重要手段。
隨著社會的進步和科學技術的發展,人類進入了信息化時代,用現代手段研究語
音信號處理技術,是人們更加有效地產生、傳輸、存儲和獲取語音信息,者對促
進社會發展具有重要意義,因此,語音信號處理越來越受到人們的關注和研究。
1.1 研究的目的和意義
語言是人類交換信息最方便、最快捷的一種方式,在高度發達的信息社會中,
用數字化的方法進行語音的傳送、存儲、識別、合成和增強等是整個數字化通信
網中最重要、最基本的組成部分之一。語音信號處理作為一門涉及面很廣的交叉
學科,在數字電話通信、高音質的窄帶語音通信系統、語言學習機、聲控打字機、
自動翻譯機、智能機器人、新一代計算機語音智能終端及軍事上都有應用。隨著
人類步入信息社會步伐的加快,越來越多的地方需要用到語音信號處理知識。所
以語音信號研究無論是在科學領域上還是日常生活中都有其廣泛而重要的意義。
1.2 國內外研究的現狀
20世紀60年代中期形成的一系列數字信號處理的理論和算法,如數字濾波
器、快速傅里葉變換(FFT)等是語言數字信號處理的理論和技術基礎。20世紀
70年代初,由于電子計算機和數字信號處理的發展,人們發現:聲音信號,可以
通過模數轉換器(A/D)采樣和量化,它們轉換為數字信號后,能夠送進計算機。
這樣就可以用數字計算方法,對語音信號進行處理和加工。例如數字濾波器可以
用差分方程實現,頻譜分析可以用傅里葉變換或快速傅里葉變換(FFT)實現,80
年代初矢量量化技術(VQ)和隱馬爾可夫模型(HMM)應用于語音處理中,隱馬爾
可夫模型(HMM)用于描述語音信號產生過程。近年來語音信號處理這門新學科發
1
展很快,在各項領域都有應用,解決了很多用傳統方法難以解決的問題,在信息
科學中占有重要地位。
1.3 本課題研究的內容和方法
本設計主要介紹的是的語音信號的簡單處理。本設計運用數字信號學基本原
理實現語音信號的處理,在matlab7.14環境下綜合運用信號提取,幅頻變換以及
傅里葉變換、濾波等技術來進行語音信號處理。我所做的工作就是采集一個語音
信號作為分析對象,或自我錄制一段語音,在matlab7.14軟件上編寫一個語音信
號處理程序,對語音信號進行加噪去噪等處理,完成對語音信號時域和頻域的分
析和仿真,達到簡單語音信號處理的目的。
對語音信號的研究,本設計采用了設計IIR濾波器的基本研究方法來達到研
究語音信號去噪的目的,最終結合圖像以及對語音信號的回放,通過對比,得出
結論。
2 MATLAB軟件介紹
2.1 MATLAB發展歷程
MATLAB是由美國Mathwork公司開發的數值計算、符號計算和圖形可視化三
大基本功能于一體,功能強大、操作簡單的語言。是國際公認的優秀數學應用軟
件之一。
20世紀80年代初期,Cleve Moler與John Little等利用C語言開發了新一
代的MATLAB語言,此時的MATLAB語言已同時具備了數值計算功能和簡單的圖形
處理功能。1984年,Cleve Moler與John Little等正式成立了Mathwork公司,
把MATLAB語言推向市場,并開始了對MATLAB工具箱等的開發設計。1993年,
Mathwork公司推出了基于個人計算機的MATLAB4.0版本,到了1997年又推出了
MATLAB5.X版本,并在2000年推出了MATLAB 6.0版本,2004年正式推出了
MATLAB7.0版本,現在最新的版本是2012年推出的MATLAB7.14版本。
現在,MATLAB已經發展成為適合多學科的大型軟件,在世界各高校,MATLAB
已經成為線性代數、數值分析、數理統計、優化方法、自動控制、數字信號處理、
動態系統仿真等高級課程的基本教學工具。特別是最近幾年,MATLAB在我國大學
生數學建模競賽中的應用,為參賽者在有限的時間內準確、有效地解決問題提供
了有力的保證。
2
2.2 MATLAB組成
MATLAB作為Math Works產品家族的核心,它主要由5大部分組成,分別為
MATLAB語言(the MATLAB Language)、MATLAB工作環境(the MATLAB Working
Environment)、MATLAB數學函數庫(the MATLAB Math Library )、MATLAB應用
程序接口(the MATLAB Application Interface)和圖形句柄系統(Handle
Graphics)。下面對它們分別進行介紹。
2.2.1 MATLAB語言
MATLAB語言是一種以矩形(Matrix)和陣列(Array)為基本編程單元,擁
有完整的控制語句、數據結構、函數編寫與調用格式和輸出功能,具有面向對象
程序設計特征的高級程序語言。使用MATLAB語言不但可以方便快捷地完成小規模
的算法驗證、程序開發和調試工作,而且可以進行大規模、高效的復雜應用程序
設計。
2.2.2 MATLAB的工作環境
簡單來說,MATLAB工作環境就是一系列實用工具的集合,它不但包括了各種
操作工作空間中變量的工具盒管理數據輸入輸出的方法,而且包括了開發調試M
文件和MATLAB應用程序的集成環境,使用起來極為方便。
2.2.3 MATLAB數據函數庫
MATLAB數據函數庫是大量的各種形式的數學函數和算法的集合,它不僅包括
了最基本的初等函數,如sum、sine、cosine和復數運算等,而且包含了大量復
雜的高級函數和算法,如貝塞爾(Basl)函數,快速傅里葉變換和矩陣求逆等。
用戶在編寫自己的MATLAB程序時,可以輕松地調用這些函數和算法,從而極大地
方便了算法的開發。
2.2.4 MATLAB應用程序接口
MATLAB的外部接口使得MATLAB可以與外部設備和程序實現數據交互和程序
移植,可以擴充MATLAB強大的數值計算和圖形顯示功能,從而彌補了其執行效率
較低的缺點,同時增強了其他應用程序進行軟件開發的功能,提高了軟件開發效
率。MATLAB接口工具不僅使得MATLAB可以十分方便地與其他應用程序交換數據
和信息還實現了與其他程序函數和算法的交互。所以,通過MATLAB的接口編程,
可以充分利用現有資源,能更容易地編寫出功能強大、結構簡潔的應用程序。
MATLAB主要提供了MEX文件、MAT文件、MATLAB計算引擎、COM和DDE、Web服務、
3
硬件接口和Excel生成器、Java生成器和.NET生成器等形式的接口。
2.2.5 圖形句柄系統
Handle Graphics為Math Work公司的注冊商標,是MATLAB的圖形系統。它
在包含了大量高級的2D和3D數據可視化、圖形顯示、動畫生成和圖像處理命令
的同時,還提供了許多低級的圖形命令,允許用戶按照自己的需求顯示圖形和定
制應用程序圖形用戶接口,即方便又靈活。
2.3 MATLAB的特點
MATLAB是Math Work公司開發的跨平臺的,用于矩陣數值計算的簡單高效的
數學語言,與其他計算機高級語言如C、C++、Fortran、Basic、Pascal等相比,
MATLAB語言編程要簡潔得多,編程語句更是其他高級語言望塵莫及的。與其他高
級語言相比較,MATLAB具有以下獨特的優勢:
a. MATLAB是一種跨平臺的數學語言。采用MATLAB編寫的程序可以在目前所
有的操作系統上運行(只要這些系統上安裝了MATLAB平臺)。MATLAB程序不依賴
于計算機類型和操作系統類型。
b. MATLAB是一種超高級語言。MATLAB平臺本身是用C語言寫成的,其中匯
集了當前最新的數學算法庫,是許多專業數學家和工程學者多年的勞動結晶。使
用MATLAB就意味著站在巨人的肩膀上觀察和處理問題,所以在編程效率,程序的
可讀性、可靠性和可移植性上遠遠超過了常規的高級語言。
c. MATLAB語法簡單,編程風格接近數學語言描述,是數學算法開發和驗證
的最佳工具。MATLAB以復數矩陣運算為基礎,其基本編程單位是矩陣,使得編程
簡單,而功能極為強大。而且,MATLAB中的數值算法是經過千錘百煉的,比用戶
自己編程實現的算法的可信度和可靠性都要高。
d. MATLAB計算精度很高。MATLAB中的數據是以雙精度存儲的。一個實數采
用8字節存儲,而一個復數則采用16字節存儲。矩陣運算的精度很高,完全能夠
滿足一般工程和科學計算的需要。與其他語言相比,MATLAB對計算機內存、硬盤
空間的要求也是比較高的。
e. MATLAB具有強大的繪圖功能。利用MATLAB的繪圖功能,可以輕易地獲得
高質量的(印刷級)曲線圖。具有多種形式來表達二維、三維圖形,并具有強大
的動畫功能,可以非常直觀地表現抽象的數值結果。
f. MATLAB具有串口操作、聲音輸入/輸出等硬件操控能力,隨著版本的提高,
4
這種能力還會不斷加強,使得人們利用計算機和實際硬件相連接的半實物仿真的
夢想得以輕易實現。
g. MATLAB程序可以直接映射為DSP芯片可接受的代碼,大大提高了現代電
子通信設備的研發效率。
h. MATLAB程序的執行效率比其他語言低。MATLAB程序通常是解釋執行的,
在執行效率和速率上低于其他高級語言。事實上,MATLAB自帶的許多內部函數均
是用C語言編寫并編譯的,因此利用MATLAB內部函數程序部分的運行速度并不比
其他語言中的相應函數低。
3 數字濾波器的設計
3.1 數字濾波器概述
數字濾波器是數字信號處理的基礎部分,與模擬濾波器相比,數字濾波器具
有精度高、可靠性高、靈活性高、便于大規模集成和多維過濾等特點,已廣泛應
用于現代各類工程領域。
數字濾波器是具有一定傳輸特性的數字信號處理裝置,它的輸入和輸出都是
離散數字信號,它借助于數字器件和一定的數值計算方法,對輸入信號進行處理,
改變輸入信號,進而去掉信號中的無用成分而保留有用成分。如果在數字處理系
統前、后分別加上A/D轉換器和D/A轉換器,就可以處理模擬信號。數字濾波器
的輸入輸出是一個時間序列。設H(n)為數字濾波器的系統函數,h(n)為其相
應的脈沖序列,則在時域內有:
y(n)=x(n)*h(n) (3-1)
在z域內有:
Y(z)=H(z)X(z) (3-2)
式中X(z)和Y(z)分別為輸入x(n)和輸出y(n)的傅里葉變換。
在頻域內有:
Y(jw)=H(jw)X(jw) (3-3)
式中,H(jw)為數字濾波器的頻率特性,X(jw)和Y(jw)分別為輸入x(n)
和輸出y(n)的頻譜。
由此可見,一個合適的濾波器系統函H(z)數可以改變輸入x(n)的頻率特
性,經數字濾波器處理后得到的信號y(n)可保留信號x(n)的有用成分,而去
5
掉其中的無用成分。
3.2 數字濾波器設計的基本原理
數字濾波器是指完成信號濾波(根據有用信號和噪聲的不同特性,消除或減
弱噪聲,提取有用信號的過程)功能的、用有限精度算法實現的離散時間線性時
不變(LTI)系統。與模擬濾波器類似,數字濾波器也是一種選頻器件,它對有用
信號的頻率分量的衰減很小,使之比較順利通過,而對噪聲等干擾信號的頻率分
量給予較大幅度的衰減,盡可能阻止它們通過。相比于模擬濾波器,數字濾波器
穩定性高、精度高、靈活性強。
濾波器總體可以分為經典濾波器和現代濾波器:經典濾波器即一般的選頻濾
波器;現代濾波器以隨機信號處理的理論為基礎,利用隨機信號內部的統計特性
對信號進行濾波。按照濾波器的實現方式方式分類,數字濾波器則可以分為無限
沖激響應(IIR)和數字濾波器和有限沖激響應(FIR)數字濾波器。本設計采用
的是IIR數字濾波器對加噪語音信號進行濾波。
3.3 設計IIR數字濾波器
3.3.1 IIR數字濾波器設計方法
本設計在MATLAB平臺上,設計了IIR數字濾波器,用于對加噪的語音信號進
行濾波,對于IIR濾波器,它的極點可以在單位圓內的任何位置,實現IIR濾波
器的階次可以較低,所用的存儲單元較少,效率高,又由于IIR數字濾波器能夠
保留一些模擬濾波器的優良特性,因此得到廣泛應用。
在IIR數字濾波器的設計過程中,通常將數字濾波器的設計指標轉化為模擬
低通濾波器的設計指標,然后設計滿足這些指標的模擬低通濾波器的系統函數,
再將它變成所需要的數字濾波器系統函數。此方法具有如下優點:模擬逼近技術
非常成熟、通常能產生閉式解、模擬濾波器有大量的圖標可查,因此充分利用這
些已有的資源將會給數字濾波器設計帶來很大的方便。一般,當著眼于濾波器的
時域瞬態響應時,采用脈沖不變法較好,而其它情況下,對于IIR數字濾波器設
計,大多采用雙線性變換法。
3.3.2 利用模擬濾波器設計IIR數字濾波器的步驟
a.確定數字低通濾波器的技術指標:通帶邊界頻率、通帶最大衰減,阻帶截
止頻率、阻帶最小衰減。
b.將數字低通濾波器的技術指標轉換成相應的模擬低通濾波器的技術指標。
6
c.按照模擬低通濾波器的技術指標設計及過渡模擬低通濾波器。
d.用雙線性變換法,模擬濾波器系統函數轉換成數字低通濾波器系統函數。
3.3.3 用雙線性法設計IIR低通濾波器
MATLAB信號處理工具箱函數cheblap,cheblord和cheeby1是切比雪夫I型
濾波器設計函數。我們用到的是cheeby1函數。
函數butter,cheby1和ellip設計IIR濾波器時都是默認的雙線性變換法,
所以在設計濾波器時只需要代入相應的實現函數即可。
IIR低通濾波器程序見附錄1。
IIR低通濾波器圖像如圖3-1:
圖3-1 IIR低通濾波器
4 去噪和仿真的研究
4.1 語言信號在MATLAB平臺上的錄入與打開
利用電腦上的聲卡和windows操作系統可以進行語音信號的錄入,語音信號
的錄入可以用麥克風直接錄制人的語音,也可以通過音頻線將收音機、電視機或
磁帶中的語音信號錄入到計算機中,在錄音機中可以進行簡單的聲音處理,如加
大或降低音量,加速或減速,聲音的反轉或添加回音效果等。加速或減速的改變
可以完成變音功能,反轉可以達到對聲音文件保密功能。本設計所錄入的語音信
號是在酷狗上把mp3進行格式轉換為wav形式的語音信號。然后保存到MATLAB
7
文件夾里面,命名為“login”。
利用MATLAB中的wavread命令來讀入(采集)語音信號,將它賦值給某一向
量。
4.2 原始語言信號頻譜分析及仿真
在MATLAB中,[y,fs,bits]=wavread(‘login’,[N1 N2]);用于讀取語音信
號,采樣值放在向量y中,fs表示采用頻率(Hz),nbits表示采樣位數,[N1 N2]
表示讀取的值從N1點到N2點的值。sound(y,fs,bits);用于聲音的回放。向量y
則代表了一個信號,也即一個復雜的“函數表達式”,也可以說像處理一個信號的
表達式一樣處理這個聲音信號。
下面是語音信號在MATLAB中的語言程序,它實現了語音的讀入與打開,并繪
制了語音信號的波形頻譜圖。在本次設計中,我們利用fft對語音信號進行快速
傅里葉變換,就可以得到信號的頻譜特性。程序見附錄2。
程序運行后得到的的波形如圖4-1、圖4-2、圖4-3、圖4-4。
圖4-1 原始信號波形
圖4-2 原始語音信號采樣后頻譜圖
8
圖4-3 原始信號幅值
圖4-4 原始信號相位
4.3 加噪語音信號頻譜分析及仿真
在本次課程設計中,我們是利用MATLAB中的隨機函數(rand或randn)產生噪
聲加入到語音信號中,模仿語音信號被污染,并對其頻譜分析。Randn函數有兩
種基本調用格式:Randn(n)和Randn(m,n),前者產生n×n服從標準高斯分布的
隨機數矩陣,后者產生m×n的隨機數矩陣。
下面一段程序實現了利用randn函數把一段隨機噪音信號加入原始語音信號
的信號處理過程,見附錄3。
加噪后語音信號的時域波形、頻譜圖如圖4-5:
9
圖4-5 加噪語音信號時域波形和頻譜圖
通過對兩張圖片的對比,很明顯可以看加噪后的語音信號時域波形比原始語
音信號渾濁了許多,在時間軸上可以明顯看出0—0.5S的幅值增大了;通過對原
始語音信號的頻譜圖與加噪后的語音信號頻譜圖的對比,也可以看出在頻率
5000Hz以后的頻率幅值發生了明顯的增加。
4.4 去噪及仿真
在Matlab中,IIR濾波器利用函數filter對信號進行濾波。函數filter的
調用格式:yn=filter(B,),它是按照直線型結構實現對xn的濾波。其中
xn是輸入信號向量,yn輸出信號向量。設計一個IIR低通濾波器對加噪語音信號
進行濾波處理。程序見附錄4。
IIR濾波前和濾波后波形及頻譜如圖4-6:
圖4-6 IIR濾波前和濾波后波形及頻譜
10
4.5 回放語音信號
經過以上的加噪聲處理后,可在Matlab中用函數sound對聲音進行回放。
其調用格式:sound(y,Fs),sound(y)和sound(y,Fs,bits)。可以察覺濾波前后
的聲音有明顯的變化。
5 結束語
本設計采用了MATLAB軟件,實現了語音信號的采集,圓滿的完成了對加噪聲
語音信號的讀取與打開,與課題的要求十分相符;也較好的完成了對原始語音信
號和加噪聲后的語音信號的頻譜分析,通過fft變換,得出了語音信號的頻譜圖。
課題的特色在于它將語音信號看作一個向量,于是就把語音數字化了。那么,
就可以完全利用數字信號處理的知識來解決語音及加噪處理問題。我們可以像給
一般信號做頻譜分析一樣,來對語音信號做頻譜分析,也能較容易的用數字濾波
器來對語音進行濾波處理。通過比較加噪前后,語音的頻譜和語音回放,能明顯
的感覺到加入噪聲后回放的聲音與原始的語音信號有很大的不同,前者隨較尖銳
的干擾嘯叫聲。從含噪語音信號的頻譜圖中可以看出含噪聲的語音信號頻譜,在整
個頻域范圍內分是布均勻。其實,這正是干擾所造成的。通過濾波前后的對比,
可得出結論:語音信號主要分布在低頻段,而噪聲主要分布在高頻段。
11
附 錄
附錄1:IIR低通濾波器程序
Ft=8000;
Fp=1000;
Fs=1200;
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Ft*tan(wp/2);
fs=2*Fs*tan(wp/2);
[n11,wn11]=buttord(wp,ws,1,50,'s'); %求低通濾波器的階數和截止頻率
[b11,a11]=butter(n11,wn11,'s'); %求S域的頻率響應的參數
[num11,den11]=bilinear(b11,a11,0.5); %雙線性變換實現S域到Z域變換
[h,w]=freqz(num11,den11); %根據參數求出頻率響應
plot(w*8000*0.5/pi,abs(h));
title('IIR低通濾波器');
legend('用butter設計');
grid;
附錄2:產生原始語音信號波形、頻譜、幅值、相位圖程序
[x,fs,bits]=wavread('login');
sound(x,fs,bits);
X=fft(x,4096);
magX=abs(X);
angX=angle(X);
subplot(221);plot(x);title('原始信號波形');
subplot(222);plot(X); title('原始語音信號采樣后的頻譜圖');
subplot(223);plot(magX);title('原始信號幅值');
subplot(224);plot(angX);title('原始信號相位');
12
附錄3:產生原始語音信號和加噪語音信號時域波形、頻譜圖程序
[y,fs,bits]=wavread('login');
sound(y,fs);
n=length(y);
y_p=fft(y,n);
f=fs*(0:n/2-1)/n;
figure(1)
subplot(2,1,1);
plot(y);
title('原始語音信號采樣后的時域波形');
xlabel('時間軸');
ylabel('幅值A');
subplot(2,1,2);
subplot(2,1,2);
plot(f,abs(y_zp(1:n/2)));
title('加噪語音信號頻譜圖');
xlabel('頻率Hz');
ylabel('頻率幅值');
附錄4:產生IIR濾波前和濾波后波形及頻譜圖程序
Ft=8000;
Fp=1000;
Fs=1200;
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Ft*tan(wp/2);
fs=2*Fs*tan(wp/2);
[n11,wn11]=buttord(wp,ws,1,50,'s'); %求低通濾波器的階數和截止頻率
[b11,a11]=butter(n11,wn11,'s'); %求S域的頻率響應的參數
[num11,den11]=bilinear(b11,a11,0.5); %雙線性變換實現S域到Z域變換
[h,w]=freqz(num11,den11); %根據參數求出頻率響應
plot(w*8000*0.5/pi,abs(h));
legend('用butter設計');
grid;
[y,fs,nbits]=wavread ('login');
n = length (y); %求出語音信號的長度
noi=0.01*randn(n,2); %隨機函數產生噪聲
s=y+noi; %語音信號加入噪聲
S=fft(s); %傅里葉變換
z11=filter(num11,den11,s);
sound(z11);
m11=fft(z11); %求濾波后的信號
subplot(2,2,1);
14
plot(abs(S),'g');
title('濾波前信號的頻譜');
grid;
subplot(2,2,2);
參考文獻
[1] 張德豐:MATLAB通信工程仿真,北京機械工業出版社,2010.1
[2] 王彬、于丹、汪洋:MATLAB數字信號處理,北京機械工業出版社,2010.5
[3] 孟志強、陳燕東、王同業、楊鈺:MATLAB輔助現代工程數字信號處理,西安
電子科技大學出版社,2010.7
[4] 徐明遠、邵玉斌:MATLAB仿真在通信與電子過程中的應用,西安電子科技大
學出版社,2010.5
[5] 徐利民、舒君、謝優忠:基于MATLAB的信號與系統實驗教程,清華大學出版
社,2009.7
[6] 張磊、畢靖、郭蓮英:MATLAB實用教程,人民郵電出版社,2008.12
[7] 周利清、蘇菲:數字信號處理基礎,北京郵電大學出版社,2005.9
[8] 劉泉、闕大順:數字信號處理原理與實現,電子工業出版社,2005.8 [9] 景
振毅、張澤兵、董 霖:MATLAB7.0實用寶典,中國鐵道出版社,2008.10
[10] 張雪英:數字語音處理及MATLAB仿真,電子工業出版社,2010.3
16

本文發布于:2023-11-03 01:20:16,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1698945617204486.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:基于matlab的聲音信號處理.doc
本文 PDF 下載地址:基于matlab的聲音信號處理.pdf
| 留言與評論(共有 0 條評論) |