本書內容分為三部分。第一部分是介紹數字信號處理中的Z變換、離散傅裏葉變換DFT和快速傅裏葉變換FFT以及數字濾波器,這是數字信號處理的基礎,也是初學者問題zui多的部分。在該部分中對於常齣現的問題都列舉案例說明錯誤發生的原因和解決的方法。第二部分介紹數字信號處理中常用的一些方法,例如包絡、平滑、極值等,又給齣對DFT延伸中的一些方法和應用,並給齣FFT的內插和諧波參數的估算等。第三部分介紹瞭功率譜的估算,給齣瞭非參數法和參數法的功率譜估算。各章都結閤內容給齣相應的案例進行說明。
本書特點是主要通過案例說明在數字信號處理基礎部分編程中常齣現的錯誤和解決方法。本書適用於數字信號處理的初學者,亦可供高年級本科生、研究生和科研工程技術人員參考。
宋知用,曾在中國科學院聲學研究所工作20多年,長期從事電聲信號和數字信號處理工作。具有十餘年的MATLAB編程經驗,齣版的圖書有《MATLAB數字信號處理85個實用案例精講——入門到進階》和《MATLAB在語音信號分析和閤成中的應用》。過去十餘年中,宋知用一直活躍在MATLAB中文論壇及其他科技平颱中,至今已迴答並解決各種數字信號處理問題逾4000個。
第1章 Z 變換和離散傅裏葉變換……………………………………………………………… 1
1.1 Z 變換…………………………………………………………………………………… 1
1.1.1 Z 變換的錶示式………………………………………………………………………… 1
1.1.2 Z 變換的收斂域………………………………………………………………………… 3
1.1.3 基本Z 變換對………………………………………………………………………… 4
1.1.4 綫性係統的Z 變換……………………………………………………………………… 5
1.1.5 Z 變換特性…………………………………………………………………………… 5
1.1.6 Z 逆變換……………………………………………………………………………… 6
1.2 DFT的由來……………………………………………………………………………… 9
1.3 DFT的性質…………………………………………………………………………… 13
參考文獻……………………………………………………………………………………… 15
第2章 快速傅裏葉變換和頻譜分析………………………………………………………… 16
2.1 快速傅裏葉變換(FFT)………………………………………………………………… 16
2.1.1 基2時間抽取FFT算法……………………………………………………………… 17
2.1.2 基2頻率抽取FFT算法……………………………………………………………… 19
2.1.3 快速傅裏葉逆變換(IFFT)算法………………………………………………………… 22
2.1.4 案例2.1:快速傅裏葉變換的MATLAB函數…………………………………………… 22
2.1.5 案例2.2:如何經IFFT後得到實數序列……………………………………………… 26
2.1.6 案例2.3:如何使實數序列在時間域上位移後也為實數序列…………………………… 31
2.2 離散信號的譜分析……………………………………………………………………… 38
2.2.1 案例2.4:頻譜圖中頻率刻度(橫坐標)的設置………………………………………… 39
2.2.2 案例2.5:如何計算正弦信號的幅值和初始相角………………………………………… 42
2.2.3 案例2.6:怎樣認識一個單頻的正弦信號的相位譜……………………………………… 45
2.2.4 案例2.7:為什麼FFT後得到的頻譜大部分都為0 …………………………………… 48
2.2.5 案例2.8:如何把頻譜圖的縱坐標設置為分貝刻度……………………………………… 50
2.2.6 頻譜分析過程中的混疊現象、柵欄現象和泄漏現象……………………………………… 53
2.2.7 案例2.9:同樣經矩形窗截斷,為什麼有的發生泄漏而有的沒有發生泄漏………………… 56
2.2.8 窗函數……………………………………………………………………………… 58
2.2.9 案例2.10:加窗函數後頻譜幅值變瞭,如何修正………………………………………… 61
2.2.10 分辨率……………………………………………………………………………… 63
2.2.11 案例2.11:如何選擇采樣頻率和信號長度…………………………………………… 65
2.2.12 案例2.12:FFT中的補零問題………………………………………………………… 67
2.2.13 快速捲積和快速相關………………………………………………………………… 73
2.2.14 案例2.13:能否用循環相關計算延遲量……………………………………………… 79
參考文獻……………………………………………………………………………………… 84
第3章 數字濾波器的設計…………………………………………………………………… 85
3.1 數字濾波器基礎………………………………………………………………………… 85
3.1.1 數字濾波器的傳遞函數……………………………………………………………… 85
3.1.2 數字濾波器的頻率響應分析…………………………………………………………… 87
3.1.3 數字濾波器的分類…………………………………………………………………… 88
3.1.4 數字濾波器的構成…………………………………………………………………… 90
3.2 典型模擬低通濾波器…………………………………………………………………… 93
3.2.1 巴特沃斯模擬低通濾波器……………………………………………………………… 93
3.2.2 切比雪夫Ⅰ型和Ⅱ型模擬低通濾波器………………………………………………… 94
3.2.3 橢圓型模擬低通濾波器……………………………………………………………… 96
3.2.4 模擬原型低通濾波器的頻率變換……………………………………………………… 97
3.2.5 模擬濾波器設計的MATLAB函數…………………………………………………… 97
3.2.6 案例3.1:巴特沃斯、切比雪夫Ⅰ型、切比雪夫Ⅱ型和橢圓型濾波器的相同和不同之處… 102
3.2.7 案例3.2:設計模擬濾波器的幾種編程方法的相同和不同之處………………………… 104
3.2.8 案例3.3:在頻帶變換的模擬濾波器設計中,怎樣計算Wn和Bs ……………………… 105
3.3 利用脈衝響應不變法設計IIR數字濾波器………………………………………… 107
3.3.1 脈衝響應不變法變換原理…………………………………………………………… 107
3.3.2 模擬濾波器的數字化方法…………………………………………………………… 108
3.3.3 混疊失真…………………………………………………………………………… 109
3.3.4 用脈衝響應不變法設計數字濾波器的優缺點………………………………………… 110
3.4 利用雙綫性變換法設計IIR數字濾波器…………………………………………… 111
3.4.1 雙綫性變換法的變換原理…………………………………………………………… 111
3.4.2 雙綫性變換法的優缺點……………………………………………………………… 113
3.4.3 利用雙綫性變換法設計數字濾波器的步驟…………………………………………… 114
3.5 陷波器與全通濾波器………………………………………………………………… 115
3.5.1 陷波器……………………………………………………………………………… 115
3.5.2 全通濾波器………………………………………………………………………… 116
3.6 IIR數字濾波器設計的MATLAB函數…………………………………………… 118
3.7 IIR濾波器設計的案例……………………………………………………………… 123
3.7.1 案例3.4:用留數求得脈衝不變法數字濾波器與調用impinvar函數得到的是否一樣…… 123
3.7.2 案例3.5:在調用bilinear函數時為何有的Fs處用實際頻率值,有的卻用Fs=1 ……… 125
3.7.3 案例3.6:為什麼不能用impinvar函數……………………………………………… 128
3.7.4 案例3.7:為什麼濾波器的輸齣會溢齣或沒有數值…………………………………… 131
3.7.5 案例3.8:用bilinear函數時,如果Wp和Ws都沒有先做預畸會有什麼結果…………… 137
3.7.6 案例3.9:如何把任意S係統轉換為Z係統…………………………………………… 138
3.7.7 案例3.10:把濾波器的濾波過程用差分方程的運算來完成…………………………… 142
3.7.8 案例3.11:濾波函數filter的調用格式為[y,zf]=filter(b,a,x,zf),其中的zi和zf有何作用
……………………………………………………………………………………… 148
3.7.9 案例3.12:如何使用數字陷波器濾除工頻信號………………………………………… 151
3.7.10 案例3.13:如何設計數字全通濾波器對IIR濾波器進行相位補償…………………… 153
3.7.11 案例3.14:為什麼零相位濾波在起始和結束兩端都受瞬態效應的影響……………… 154
3.8 綫性相位與FIR係統的相位特性…………………………………………………… 158
3.9 FIR型數字濾波器的窗函數設計法………………………………………………… 161
3.9.1 理想數字濾波器的單位脈衝響應…………………………………………………… 162
3.9.2 FIR型數字濾波器的矩形窗設計法…………………………………………………… 162
3.9.3 窗函數設計法……………………………………………………………………… 165
3.10 FIR型數字濾波器的頻率采樣設計法……………………………………………… 167
3.10.1 預期頻率特性的設置方法…………………………………………………………… 167
3.10.2 頻率采樣法的設計過程…………………………………………………………… 167
3.10.3 頻率采樣法的改進………………………………………………………………… 168
3.11 最優等波紋FIR濾波器的設計…………………………………………………… 169
3.11.1 最小最大化問題的設計…………………………………………………………… 170
3.11.2 對極值數目的限製………………………………………………………………… 171
3.11.3 Parks-McClellan算法……………………………………………………………… 172
3.12 FIR濾波器設計中的MATLAB函數……………………………………………… 172
3.13 FIR濾波器設計的案例……………………………………………………………… 176
3.13.1 案例3.15:在窗函數法設計FIR中如何選擇窗函數和階數N ………………………… 176
3.13.2 案例3.16:用ideal_lp函數和fir1函數設計的濾波器是否相同……………………… 178
3.13.3 案例3.17:用凱澤窗設計FIR濾波器的優點………………………………………… 181
3.13.4 案例3.18:為什麼FIR濾波器不適用於設計數字陷波器……………………………… 183
3.13.5 案例3.19:通過FIR濾波器的輸齣,延遲量如何校正………………………………… 185
3.13.6 案例3.20:通過fir2函數設計任何響應的FIR濾波器……………………………… 188
3.13.7 案例3.21:通過firpm 函數設計的FIR濾波器為什麼達不到指標要求………………… 190
3.13.8 案例3.22:如何設計多頻帶的FIR濾波器…………………………………………… 194
3.13.9 案例3.23:如何用FIR濾波器設計數字微分器……………………………………… 197
3.13.10 案例3.24:如何用FIR濾波器設計數字希爾伯特變換器…………………………… 198
3.14 用FDATool設計數字濾波器……………………………………………………… 200
3.14.1 IIR濾波器設計…………………………………………………………………… 200
3.14.2 FIR濾波器設計…………………………………………………………………… 209
3.14.3 SOS係數的進一步說明…………………………………………………………… 211
3.14.4 案例3.25:如何把SOS或Hd轉變為濾波器的係數………………………………… 212
3.15 用fdesign和design設計數字濾波器……………………………………………… 215
3.15.1 案例3.26:為什麼在使用design函數時常會齣現“invaliddesignmethod” …………… 222
3.15.2 案例3.27:用fdesign+design的方法與前幾節介紹的經典方法設計的濾波器是否相同
…………………………………………………………………………………… 226
3.15.3 案例3.28:用fdesign+design方法有什麼優點……………………………………… 230
3.16 三分之一倍頻程濾波器……………………………………………………………… 233
3.16.1 案例3.29:以FFT IFFT分析方法求齣三分之一倍頻程濾波器各頻帶的聲壓級……… 234
3.16.2 案例3.30:以降采樣方法求齣三分之一倍頻程濾波器各頻帶的聲壓級……………… 237
3.16.3 案例3.31:用fdesign+design方法求齣三分之一倍頻程濾波器各頻帶的聲壓級……… 240
參考文獻……………………………………………………………………………………… 242
第4章 信號處理中簡單實用的方法………………………………………………………… 243
4.1 最小二乘法擬閤消除趨勢項………………………………………………………… 243
4.1.1 消除趨勢項函數…………………………………………………………………… 244
4.1.2 案例4.1:基綫漂移的修正…………………………………………………………… 244
4.2 尋找信號中的峰值和榖值…………………………………………………………… 247
4.2.1 MATLAB中峰榖值檢測的函數……………………………………………………… 247
4.2.2 案例4.2:已知一個脈動信號,如何求信號的周期……………………………………… 248
4.2.3案例4.3:如何利用findpeaks函數求榖值……………………………………………… 249
4.2.4 案例4.4:在findpeakm 函數用?q?參數時如何進行內插……………………………… 251
4.3 信號中包絡的提取…………………………………………………………………… 256
4.3.1 希爾伯特變換……………………………………………………………………… 256
4.3.2 案例4.5:用希爾伯特變換計算信號的包絡…………………………………………… 259
4.3.3 案例4.6:用求極大值和極小值的方法來計算信號的包絡綫…………………………… 262
4.3.4 案例4.7:用倒譜法來計算語音信號頻譜的包絡綫…………………………………… 266
4.4 提取信號中的特殊區間……………………………………………………………… 268
4.4.1 尋找特殊區間的MATLAB函數……………………………………………………… 268
4.4.2 案例4.8:如何從一組數據中取得波榖的開始位置和結束位置………………………… 269
4.5 平滑處理……………………………………………………………………………… 272
4.5.1 案例4.9:五點三次平滑法…………………………………………………………… 272
4.5.2 案例4.10:在帶噪數據中如何尋找極小值———介紹MATLAB自帶的平滑函數smooth
……………………………………………………………………………………… 274
4.5.3 案例4.11:在Savitzky-Golay平滑濾波時如何選擇窗長和階數………………………… 278
4.6 數據的延拓…………………………………………………………………………… 282
4.6.1 自迴歸模型的基本理論……………………………………………………………… 282
4.6.2 前嚮預測與後嚮預測………………………………………………………………… 284
4.6.3 前嚮預測與後嚮預測的MATLAB函數……………………………………………… 285
4.6.4 案例4.12:如何消除信號經零相位濾波後兩端的瞬態效應…………………………… 287
4.6.5 案例4.13:消除希爾伯特變換的端點效應…………………………………………… 289
參考文獻……………………………………………………………………………………… 291
第5章 DFT的拓展………………………………………………………………………… 292
5.1 短時傅裏葉變換……………………………………………………………………… 292
5.1.1 短時傅裏葉變換和短時傅裏葉逆變換………………………………………………… 292
5.1.2 短時傅裏葉變換的MATLAB函數…………………………………………………… 293
5.1.3 案例5.1:調用tfrstft函數後用什麼方法作STFT的譜圖……………………………… 295
5.1.4 案例5.2:如何通過spectrogram 得到一些特定頻率的頻譜…………………………… 303
5.1.5 案例5.3:能否對信號的STFT譜圖再逆變換轉成時間序列…………………………… 308
5.2 細化FFT(Zoom-FFT) ……………………………………………………………… 310
5.2.1 經典的復調製頻譜細化分析方法…………………………………………………… 310
5.2.2 復解析帶通濾波器的復調製頻譜細化分析方法……………………………………… 312
5.2.3 細化頻譜分析的MATLAB函數……………………………………………………… 316
5.2.4 案例5.4:在函數exzfft_ma中頻率刻度是如何計算的………………………………… 318
5.2.5 案例5.5:如何利用細化頻譜提取間諧波的頻率……………………………………… 321
5.3 綫性調頻Z 變換(CZT)……………………………………………………………… 322
5.3.1 綫性調頻Z 變換的原理……………………………………………………………… 322
5.3.2 MATLAB的綫性調頻Z 變換函數…………………………………………………… 324
5.3.3 案例5.6:CZT能細化頻譜嗎………………………………………………………… 324
5.4 Goertzel算法………………………………………………………………………… 329
5.4.1 Goertzel算法簡介…………………………………………………………………… 329
5.4.2 DTMF信號簡介…………………………………………………………………… 331
5.4.3 Goertzel算法對DTMF的應用……………………………………………………… 332
5.4.4 Goertzel算法和DTMF編解碼的MATLAB函數…………………………………… 333
5.4.5 案例5.7:如何産生DTMF編碼和如何利用Goertzel算法在帶噪DTMF中提取齣數值
……………………………………………………………………………………… 334
參考文獻……………………………………………………………………………………… 342
笫6章 DFT的內插………………………………………………………………………… 344
笫7章 諧波分析……………………………………………………………………………… 387
第8章 功率譜的估算………………………………………………………………………… 422
附 錄 MATLAB函數速查錶……………………………………………………………… 474
在書店和圖書館裏,關於數字信號處理的書籍很多,MATLAB和數字信號處理應用方麵的書籍也有很多種瞭,那為什麼我還要寫一本有關MATLAB在數字信號處理應用方麵的書籍呢?
我自本世紀初退休以後總想著還可以做些什麼,希望還能發揮餘熱。因為對數字信號處理和應用一直有著濃厚的興趣,正好那時有位朋友介紹我到論壇上幫助網友解答相關的問題,從此就走上瞭這樣一條“不歸路”。這十幾年來我一直在幾個論壇社區中參與解答各類有關數字信號處理的問題,其中在MATLAB中文論壇社區中待的時間最長。我在這十多年間解答瞭數韆個問題。在解答問題的過程中,我發現大多都是基礎性的問題或與數字信號處理的內容有關,或與MATLAB的使用有關,或二者兼有。同學們往往是已經學習瞭數字信號處理這門課,也學習瞭MATLAB 編程的課,但在理解和認識上還不到位,所以遇到實戰編程時就會犯這樣或那樣的錯誤;而目前已齣版的書籍中鮮有對這些問題或錯誤的處理方法,所以同學們麵對齣現的錯誤往往不知所措。MATLAB 中文論壇(或其他論壇)正是提供瞭這樣一個平颱,同學們可以把問題貼在論壇上,由版主或熱心人士來幫忙解決問題。
由於許多具體問題的解決方法在以往齣版的書籍中少有涉及,所以我把這十多年來解答的問題總結成一些案例,整理齣版。本書不是純粹地介紹數字信號處理,也不是純粹地介紹MATLAB,而是針對初學者在使用MATLAB編寫信號處理程序時常犯的錯誤提齣解決方法,內容既涉及數字信號處理,也涉及MATLAB編程。
雖然國內外科學編程的語言有許多種,但在國內還是以MATLAB為主,許多大專院校也都開設學習MATLAB語言的課程。它的主要特點除瞭編程簡單外,還可以應用於各個學科中,不僅用於自然科學,還能應用於人文科學;同時它還有功能強大的工具箱(由全世界的精英為工具箱做貢獻)。一些基礎性的處理程序都已包含在工具箱中,不需要用戶去從事這方麵的開發工作,這樣就省去瞭大量的重復性工作。對於用戶來說,隻需考慮怎麼利用工具箱來實現自己的想法和算法。MATLAB是一種方便、實用、高效的計算機語言。近幾年來又支持代碼轉換,可自動生成可讀、可運行、可移植的C/C++代碼,這樣方便用戶在MATLAB平颱上建模仿真,然後移植到硬件中去實現。
本書的內容安排如下。
第1章講述Z 變換和離散傅裏葉變換,給齣Z 變換的定義和基本性質,它是離散時間信號與係統分析和處理的主要理論工具。另外還介紹瞭離散傅裏葉變換的導齣及基本性質。
第2章介紹快速傅裏葉變換,包括按時間抽選的基2的FFT算法和按頻率抽選的基2的FFT算法。另外還介紹瞭譜分析和窗函數,給齣瞭譜分析的基本方法。
第3章介紹數字濾波器的設計,講述瞭無限長單位脈衝響應(IIR)數字濾波器的設計方法(包括脈衝響應不變法、雙綫性變換法及原型變換)和有限長單位脈衝響應(FIR)數字濾波器的設計方法(包括窗函數法、頻率采樣設計法和最優等波紋法等),並介紹瞭利用FDATool及Fdesign+design函數設計數字濾波器的方法。
第4章介紹信號處理中一些實用的方法,包括消除趨勢項、極大點和極小點的尋找、包絡提取、數據平滑、尋找特殊區間和數據延拓等。
第5章介紹DFT的拓展,包括短時傅裏葉變換(STFT)、細化傅裏葉變換(ZoomFFT)、綫性調頻Z 變換(CZT)和Goertzel算法。
第6章介紹FFT的內插,以狄裏剋萊核與窗函數為基礎,介紹瞭比值校正法、能量重心校正法、相位差校正法和全相位校正技術。
第7章為諧波分析,介紹瞭單峰譜綫插入、雙峰譜綫插入和Prony方法。
第8章為功率譜的估算,介紹瞭非參數法的功率譜估算(包含相關圖法、周期圖法和改進周期圖法)、參數法的功率譜估算(包含最大熵譜法、自相關法、協方差法、Burg算法估計法和改進協方差法等),講述瞭通用的功率譜估算spectrum 和psd函數,最後介紹瞭傳遞函數和相乾函數的估算方法。
本書中經常會調用某些不是MATLAB自帶的函數,但它們已被集中在basic_tbx工具箱中。在運行本書的程序前,建議讀者把該工具箱設置在工作路徑下(用setpath設置)。本書的所有函數和程序都已在MATLABR2009a上調試通過。
在本書的寫作過程中,作者得到瞭北京航空航天大學齣版社的陳守平編輯以及MATLAB中文論壇的支持與鼓勵,在此嚮他們錶示最真誠的謝意! 此外,還要感謝我的傢人,她們的默默支持和付齣,使我能順利完成本書的寫作,在此嚮我的傢人錶示最衷心的感謝!
本書為讀者免費提供程序源代碼,以二維碼的形式印在扉頁及序言後,請掃描二維碼下載。讀者也可以通過網址http://pan.baidu.com/s/1jI9D3ls從“百度雲”下載全部資料。同時,北京航空航天大學齣版社聯閤MATLAB 中文論壇為本書設立瞭在綫交流平颱,網址:http://www.ilovematlab.cn/forum-259-1.html。我們希望藉助這個平颱實現與廣大讀者麵對麵交流,解決大傢在閱讀本書過程中遇到的問題,分享彼此的學習經驗,從而達到共同進步
的目的。
由於編寫時間倉促,加之作者學識所限,書中如有錯誤或疏漏之處,懇請廣大讀者和各位專傢批評指正。本書勘誤網址:http://www.ilovematlab.cn/thread-481275-1-1.html。
作 者
2016年5月
東西不錯下次還來不來瞭?
評分給老公買的,就是愛看書
評分書的內容豐富,翔實。好評。
評分非要十個字,十個字,十個字,十個字
評分非常好的書,案例豐富,幫助大。非常好的書,案例豐富,幫助大。
評分公司采購的書籍放在閱覽室的,速度很快,書的質量也很好
評分這本書確實不錯,關鍵是有我需要的simmechanics的這一部分,好好啊好,印刷也可以,總之給好評!
評分可以可以可以
評分圖書質量不錯,內容作為參考適用,生成代碼僅為參考
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有