前言
數字信號處理是從20世紀60年代以來,隨著信息學科和計算機學科的高速發展而迅速發展起來的一門新興學科,它的重要性日益在各個領域的應用中表現出來。簡言之,數字信號處理是把信號用數字或符號表示的序列,通過計算機或信號處理設備,用數字的數值計算方法處理,以達到提取有用信息、便于應用的目的。
MATLAB是一個功能強大的數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案。
目前,MATLAB已成為信號處理、圖像處理、通信原理、自動控制等專業的重要基礎課程的首選實驗平臺,而對于學生而言最有效的學習途徑是結合某一專業課程的學習掌握該軟件的使用與編程。
1.本書特點
由淺入深,循序漸進:本書以初中級讀者為對象,內容安排上考慮到MATLAB進行仿真和運算分析時的基礎知識和實踐操作,從基礎開始,由淺入深地幫助讀者掌握MATLAB的分析方法。
步驟詳盡,內容新穎:本書結合作者多年MATLAB使用經驗與實際應用案例,將MATLAB軟件的使用方法與技巧詳細地講解給讀者,使讀者在閱讀時能夠快速掌握書中所講內容。
實例典型,輕松易學:學習實際工程應用案例的具體操作是掌握MATLAB最好的方式。本書通過綜合應用案例,透徹詳盡地講解了MATLAB在各方面的應用。
2.本書內容
本書結合多年MATLAB使用經驗與實際工程應用案例,將MATLAB軟件的使用方法與技巧詳細地講解給讀者。本書在講解過程中步驟詳盡、內容新穎,講解過程輔以相應的圖片,使讀者在閱讀時一目了然,從而快速掌握書中所講內容。
本書對數字信號處理的基本理論、算法及MATLAB實現進行系統的論述。全書分為3部分,共12個章節,具體內容如下:
第一部分:MATLAB基礎。介紹MATLAB的基礎知識、發展史及基本運算等內容,讓讀者對MATLAB有一個概要性的認識。具體的章節安排如下:
第1章MATLAB基礎知識
第二部分:信號處理的基本理論。介紹了數字信號處理基本理論和方法及其MATLAB實現,向讀者展示了MATLAB在處理數字信號方面的方法及技巧。具體的章節安排如下:
第2章信號與系統的分析基礎
第3章信號變換
第4章IIR濾波器的設計
第5章FIR濾波器設計
第6章其他濾波器
第7章隨機信號處理
第8章小波在信號處理中的應用
第三部分:信號處理的綜合實例。介紹了MATLAB基于圖像信號處理、語音信號處理、通信信號處理、雷達信號處理等在實際中應用,讓讀者進一步領略到MATLAB的強大功能和廣泛的應用范圍。具體的章節安排如下:
第9章基于語音信號處理
第10章基于通信信號處理
第11章基于雷達信號處理
第12章信號處理的圖形用戶界面工具與設計
3.讀者對象
本書適合于MATLAB初學者和期望提高應用MATLAB進行信號處理能力的讀者,具體說明如下:
★初學MATLAB的技術人員
★廣大從事信號處理的科研工作人員
★大中專院校的教師和在校生
★相關培訓機構的教師和學員
★參加工作實習的“菜鳥”
★MATLAB愛好者
4.讀者服務
為了方便解決本書疑難問題,讀者朋友在學習過程中遇到與本書有關的技術問題,可以發郵件到郵箱caxart@126.com,或者訪問博客http://blog.sina.com.cn/caxart,編者會盡快給予解答,我們將竭誠為您服務。
5.本書作者
本書主要由沈再陽編著。此外,付文利、王廣、張巖、溫正、林曉陽、任艷芳、唐家鵬、孫國強、高飛等也參與了本書部分內容的編寫工作,在此表示感謝。
雖然作者在本書的編寫過程中力求敘述準確、完善,但由于水平有限,書中欠妥之處在所難免,希望讀者和同仁能夠及時指出,共同促進本書質量的提高。
最后再次希望本書能為讀者的學習和工作提供幫助!
編著者
2017年5月
沈再陽,畢業于清華大學,研究生學歷業,就職于中國核工業集團公司。精通MATLAB系統仿真軟件,熟練應用MATLAB進行圖像處理、信號處理等。在國內外期刊發表論文多篇,申請并獲得授權專利多項,參與的項目獲得集團三等獎。
第3章信號的變換
信號與系統的分析方法中,除了時域分析方法外,還有變換域分析的方法。連續時間信號與系統的變換域分析方法主要是傅里葉變換和拉普拉斯變換。離散時間信號的Z變換是分析線性時不變離散時間系統問題的重要工具,在數字信號處理、計算機控制系統等領域有著廣泛的應用。
學習目標:
(1)了解、熟悉Z變換的概念與性質;
(2)理解Z反變換的相關內容;
(3)掌握離散系統中的Z域描述方法;
(4)了解、熟悉傅里葉級數與變換;
(5)理解離散傅里葉變換及其性質;
(6)實現頻率域采樣和快速傅里葉變換;
(7)熟悉實現離散余弦變換、ChirpZ變換和Gabor函數。
3.1Z變換概述
連續系統一般使用微分方程、拉普拉斯變換的傳遞函數和頻率特性等概念進行研究。一個連續信號f(t)的拉普拉斯變換F(s)是復變量s的有理分式函數,而微分方程通過拉普拉斯變換后也可以轉換為s的代數方程,從而可以大大簡化微分方程的求解,從傳遞函數可以很容易地得到系統的頻率特征。
因此,拉普拉斯變換作為基本工具將連續系統研究中的各種方法聯系在一起。計算機控制系統中的采樣信號也可以進行拉普拉斯變換,從中找到簡化運算的方法,引入了Z變換。
3.1.1Z變換的定義
序列x(n)的Z變換(簡稱ZT)定義為
X(z)=∑+∞n=-∞x(n)z-n
上式稱為雙邊Z變換。
如果x(n)的非零值區間為(-∞,0]或者[0,+∞),則上式可變為
X(z)=∑0n=-∞x(n)z-n
X(z)=∑+∞n=0x(n)z-n
此時,稱為序列x(n)的單邊Z變換。
序列的ZT存在的條件為
|X(z)|=∑+∞n=-∞x(n)z-n≤∑+∞n=-∞x(n)z-n=∑+∞n=-∞|x(n)||z-n|<+∞
滿足上式的z的取值范圍稱為Z變換的收斂域(RegionofConvergence,ROC),它通常為z平面上的一個環狀域,即
Rx-<|z|
3.1.2Z變換的收斂域
序列Z變換的收斂域與序列的形態有關。反之,同一個Z變換的表達式,不同的收斂域,確定了不同序列形態。下面根據序列形態不同,分別討論其收斂域。
對于任意給定的序列x(n),能使X(z)=∑∞n=-∞x(n)z-n收斂的所有z值集合為收斂域。即滿足
∑∞n=-∞|x(n)z-n|<∞
不同的x(n)的Z變換,由于收斂域不同,可能對應于相同的Z變換,故在確定Z變換時,必須指明收斂域。
1.有限長序列
有限序列的描述函數是
x(n)=x(n)n1≤n≤n2
0其他
其Z變換為
X(z)=∑n2n=n1x(n)z-n
因此Z變換式是有限項之和,故只要級數的每一項有界,則級數就收斂。收斂域為
0<|z|<∞
2.右邊序列
右邊序列的描述函數是
x(n)=x(n)n≥n1
0其他
其Z變換為
X(z)=∑∞n=n1x(n)z-n
因此Z變換樣式是無限項之和,當n1≥0時,由根值判別法有
limn→∞n|x(n)z-n|<1
所以此時收斂域為
|z|>limn→∞n|x(n)|=R1
當n1<0時,此時級數全收斂,所以右邊序列的收斂域為R1<|z|<∞。
3.左邊序列
左邊序列的描述函數為
x(n)=x(n)n≤n2
0其他
其Z變換為
X(z)=∑n2n=-∞x(n)z-n=∑∞n=-n2x(-n)zn
當n2<0時,由根值判別法有
limn→∞n|x(-n)zn|<1
由此求得的收斂域為
|z|
當n2>0時,此時相當于增加了一個n2>0的有限長序列,還應除去原點,左邊序列的收斂域為
0<|z|
4.雙邊序列
雙邊序列的描述函數為
x(n)=x(n)[u(-n-1)+u(n)]
其Z變換為
X(z)=∑∞n=-∞x(n)z-n=∑-1n=-∞x(n)z-n+∑∞n=0x(n)z-n
因為∑∞n=0x(n)z-n的收斂域為|z|>R1,∑-1n=-∞x(n)z-n的收斂域為|z|
R1<|z|
3.2Z變換的性質
3.2.1線性性質
假設
Z[x1(k)]=X1(z)(|z|>Rx1)
Z[x2(k)]=X2(z)(|z|>Rx2)
則有
Z[ax1(k)+bx2(k)]=aX1(z)+bX2(z)
其中,a、b為任意常數。
3.2.2時域的移位
假設Z[f(t)]=F(z),那么有
Z[f(t+nT)]=znF(z)-∑n-1k=0f(kT)z-k
假設Z[f(t)]=F(z),那么有
Z[f(t-nT)]=z-nF(z)
3.2.3時域擴展性
若函數f(t)有Z變換F(z),則
Z[eatf(t)]=F(ze±aT)
根據Z變換定義有
Z[eatf(t)]=∑∞k=0f(kT)eakTz-k
令z1=ze±aT,則上式可寫成
Z[eatf(t)]=∑∞k=0f(kT)z-k1=F(z1)
代入z1=ze±aT,得
Z[eatf(t)]=F(ze±aT)
3.2.4時域卷積性質
已知
x(k)X(z)(α1<|z|<β1)
h(k)H(z)(α2<|z|<β2)
則有
x(k)*h(k)X(z)H(z)
3.2.5微分性
如果有
x(k)X(z)α<|z|<β
那么有
kx(k)-zdX(z)dzα<|z|<β
3.2.6積分性
已知
x(k)X(z)α<|z|<β
則有
x(k)k+mzm∫∞zX(η)ηm+1dηα<|z|<β
3.2.7時域求和
如果有
x(k)X(z)α<|z|<β
那么有
f(k)=∑ki=-∞x(i)zz-1X(z)max(α,1)<|z|<β
3.2.8初值定理
如果函數f(t)的Z變換為F(z),并存在極限limz→∞F(z),則
limk→0f(kT)=limz→∞F(z)
3.2.9終值定理
假定f(t)的Z變換為F(z),并假定函數(1-z-1)F(z)在z平面的單位圓上或圓外沒有極點,則
limk→∞f(kT)=limz→1(1-z-1)F(z)
3.3Z反變換
定義X(z)的Z反變換(IZT)為
x(n)=12πj∮CX(z)zn-1dz
式中,C為收斂域內一條環繞原點逆時針閉合圍線。
求Z反變換的方法主要有兩種,分別是留數法和部分分式展開法。
由留數定理可知:若函數在圍線C上連續,在C以內有K個極點,而在C以外有M個極點,則有
12πj∫X(z)zn-1dz=∑kRes[X(z)zn-1]z=zk
當極點為一階時的留數為
Res[X(z)zn-1]Z=Zr=[(z-zr)X(z)zn-1]z=zr
當極點為多重極點時的留數為
Res[X(z)zn-1]z=zr=1(l-1)!dl-1dzl-1[(z-zr)lX(z)zn-1]z=zr
部分分式法把x的一個實系數的真分式分解成幾個分式的和,使各分式具有a(x+A)k或者ax+b(x2+Ax+B)k的形式。
通常情況下傳遞函數可分解為
X(z)=B(z)A(z)=∑Mi=0biz-i1+∑Ni=1aiz-i
MATLAB的符號數學工具箱提供了計算Z變換的函數ztrans()和Z反變換的函數iztrans(),其調用形式為
F=ztrans(f),
f=iztrans(F)
其中,右端的f和F分別為時域表示式和Z域表示式的符號表示,可應用函數sym來實現,其調用格式為
S=sym(A)
在MATLAB中,留數法求Z反變換可以使用函數residuez實現,調用格式為
[RPK]=residuez(B,A);
其中,B和A分別為X(z)的多項式中分子多項式和分母多項式的系數向量;返回值R為留數向量,P為極點向量,二者均為列向量;返回值K為直接項系數,僅在分子多項式最高次冪大于等于分母多項式最高次冪時存在,否則,返回值為空。