- 數字信號處理及MATLAB實現
- 劉芳 周蜜編著
- 2981字
- 2021-11-12 11:20:02
第一節 時域離散信號
信號是一個值會隨時間和空間變化的物理量。如果信號的值隨連續的時間而變化,則稱為連續時間信號或者模擬信號,用xa(t)表示,變量t代表時間,一般以秒(s)計。日常生活中連續信號的例子有溫度、壓力、水位、化學濃度、電壓與電流、位置、速度、加速度、力與扭矩等。如果信號僅在離散時間點上取值有效,這樣的信號被稱為時域離散信號,也稱離散時間信號,用x(n)表示,其中變量n是整數值并在時間上代表一些離散時刻。因此,x(n)是一個數值的序列

此處向上的箭頭↑指出n=0時的樣本。
在MATLAB中可用行向量來表示一個有限長序列。其樣本的位置信息可用另一個行向量表示。例如,序列x(n)={x(n)}={-1,2,-2,1↑,2,4,3,5}在MATLAB中表示為

產生離散時間信號的常用方法是對模擬信號進行采樣。例如xa=sin(t)表示一個正弦信號,它也是一個連續時間信號。如果對這個信號每隔T時間間隔取一個樣點,可表示成
x(n)=xa(t)|t=nT=sin(nT)={0,0.1987,0.3894,0.5646,0.7174,0.8415,…}(T=0.2s)
如果x(n)的幅度取值用有限精度的數來表述,則這種幅度有限精度量化取值的序列稱為數字信號。例如將xa(nT)|T=0.2的值用四位二進制數表示,便得到相應的數字信號,即
x(n)=xa(nT)|T=0.2={0.0000,0.0100,0.0110,0.0111,0.1000,…}
當一個系統或算法的輸入是一個數字信號x(n),它的輸出是另一個數字信號y(n)時,它被稱為數字信號處理器。數字信號處理技術有著廣泛的應用,并且在現代社會中起到了越來越重要的作用。
本章首先介紹數字信號和數字系統的表征和分類,然后闡述一個連續時間信號如何產生一個等效的離散時間信號,這個過程定義為采樣。與采樣處理密切相關的問題是:滿足什么條件的采樣樣本x(n)才能包含恢復重建信號xa(t)所需的全部信息?這個問題讀者可通過閱讀下文得到答案。
一、基本序列
(一)單位取樣序列δ(n)

單位取樣序列是最簡單也是使用最多的序列之一,僅在n=0時,其值為1,其他各值均為0。它類似于模擬信號中的單位沖激函數δ(t),不同的是δ(t)在t=0時,取值無窮大。單位取樣序列和單位沖激函數如圖2-1所示。

圖2-1 單位取樣序列δ(n)和單位沖激函數δ(t)
在MATLAB中,函數zeros(1,N)產生一個N個零的行向量,利用它可以產生一個有限區間上的δ(n)。編寫函數impseq(n0,n1,n2)來實現δ(n-n0),其中n1和n2表示序列δ(n-n0)起點和終點的位置。函數impseq(n0,n1,n2)參考程序如下:

在命令窗口輸入MATLAB腳本:

輸出圖形如圖2-2所示。

圖2-2 MATLAB中生成的單位取樣序列δ(n-1)
(二)單位階躍序列u(n)

單位階躍序列如圖2-3所示。

圖2-3 單位階躍序列
在MATLAB中,函數ones(1,N)產生一個N個1的行向量,利用它可以實現在一個有限區間上的u(n)。編寫函數stepseq(n0,n1,n2)來實現u(n-n0),其中n1和n2表示序列u(n-n0)起點和終點的位置。函數stepseq(n0,n1,n2)的參考程序如下:

在命令窗口輸入MATLAB腳本

輸出圖形如圖2-4所示。

圖2-4 MATLAB中生成的單位階躍序列u(n)
單位階躍序列與單位取樣序列之間具有下列關系:

式(2-3)的含義如圖2-5所示,式(2-4)表示u(n)可由δ(n)向右移動1位、2位……之和表示。
(三)矩形序列RN(n)

式中,N為矩形序列的長度。

圖2-5 δ(n)=u(n)-u(n-1)
當N=3時,RN(n)的波形如圖2-6所示。矩形序列也可用單位取樣序列或單位階躍序列表示。

圖2-6 矩形序列R3(n)

(四)正弦序列
常見到形如

的正弦序列,其中A,ω0和φ都是實數,分別為x(n)的振幅、頻率和相位(弧度rad)。可用MATLAB函數cos( )或sin( )產生余弦序列或正弦序列。例如,要生成序列x(n)=3sin(0.2πn+π/3)+2cos(0.3πn),0≤n≤10,可在MATLAB軟件的命令窗口輸入腳本

圖2-7表示余弦序列x(n)=1.5cos(ω0n)在ω0取不同值時的波形圖。ω0從0逐漸增大到π的過程中,x(n)的波形振動越來越快,在ω0=π附近,振動最快;然后ω0從π增加到2π,波形振動越來越慢,在ω0=2π處,波形與ω0=0處一樣。因此,在一個周期[0,2π)內,通常稱ω0=0附近為低頻,ω0=π附近為高頻。
(五)指數序列和復指數序列
形如

的序列稱為指數序列。其中,A和a可為實數或復數,若為實數,則為實指數序列。在MAT-LAB中,使用算符“.^”實現一實指數序列。例如,要生成序列x(n)=0.9n,0≤n≤20,可在MATLAB軟件的命令窗口輸入腳本

繼續輸入腳本

圖2-7 余弦序列x(n)=1.5cos(ω0n)在ω0取不同值時的波形

生成的圖形如圖2-8所示。

圖2-8 x(n)=0.9n
當a為復數時,可表示成,系數A也可表示成A=|A|ejφ,則

式中,是復指數序列x(n)的振幅。
其實部和虛部分別為

可用MATLAB函數exp()產生指數序列。例如,要生成序列x(n)=e(3+j5)n,0≤n≤20,可在MATLAB命令窗口輸入腳本

(六)周期序列
滿足等式x(n)=x(n+N)(N為正整數)的序列稱為周期序列。用這個條件來檢驗離散時間余弦(或正弦)序列的周期性,即Acos(ω0n+φ)=Acos[ω0(n+N)+φ],不難求出ω0N=2πk,式中k為整數,也可寫成,下面討論N的幾種可能情況:
1)當為整數時,k=1,則
即為正弦序列的周期。
2)當為非整數,但它是一個有理數時,設
,其中P和Q是互為素數的整數,這時,取k=Q,則N=P為正弦序列的周期。
3)當為無理數時,此正弦序列為非周期序列。
由于復指數序列可表示成余弦(或正弦)序列的形式,因此,其周期性的討論與上述完全相同。下面舉例分析幾個序列的周期性。
例2-1 計算以下序列的周期:
(1)
(2)
(3)
解:(1),該序列為周期序列,且周期為3。
(2)序列的周期為4,序列cos(πn)的周期為2,均為整數,因此該序列一定為周期序列,且兩個周期的最小公倍數4即為該序列的周期。
(3),是無理數,因此,該指數序列是非周期序列。
二、序列的運算
(一)信號相加
兩個信號相加要求長度必須相同。如果兩個序列長度不同或者長度相同,但是樣本位置不同,也不能相加。可將序列增加若干零值延長,使得序列長度相等且樣本位置一致。
例如:有這樣兩個序列x1(n)={1,2,3,4n=0,1,2,3}和x2(n)={1,2,3,4|n=-1,0,1,2},它們長度相等,但是位置不一致(即n的取值不一致)。若要將兩個序列相加,必須對它們進行延長,將兩個序列n的取值范圍都擴展成-1≤n≤3,擴展位置的序列值取零,此時,這兩個序列分別為x1(n)={0,1,2,3,4|n=-1,0,1,2,3}和x2(n)={1,2,3,4,0|n=-1,0,1,2,3},如圖2-9所示。

圖2-9 信號的相加
(二)信號相乘
信號相乘即兩個信號位置相同處的數值相乘,原理與信號相加類似,這里不再舉例說明。
(三)信號移位
序列y(n)與x(n)的關系表示為y(n)=x(n-k),其中k為整數。當k>0時,表示序列y(n)是將x(n)向右平移k個單位的結果;當k<0時,表示序列y(n)是將x(n)向左平移k個單位的結果。例如:x(n)={1,2,3,4|n=0,1,2,3},當y(n)=x(n+2)時,y(n)={1,2,3,4|n=-2,-1,0,1},如圖2-10所示。

圖2-10 信號的移位
(四)信號反轉
序列y(n)與x(n)的關系表示為y(n)=x(-n),稱y(n)是x(n)的信號反轉,即y(n)是將原信號x(n)以y軸為對稱軸鏡像得到的。例如,序列x(n)={1,2,3,4|n=0,1,2,3}的反轉,如圖2-11所示。

圖2-11 信號的反轉
(五)信號尺度變換
信號y(n)與x(n)的關系用公式y(n)=x(mn)表示,其中m取整數,表示每隔m單位取一個樣本。例如,已知x(n)={1,2,3,4|n=0,1,2,3},y(n)=x(2n)表示將原序列每隔2個單位取一個點,如圖2-12所示。

圖2-12 信號尺度變換
- ANSYS Workbench設計建模與虛擬仿真
- 跟閃電俠學Netty:Netty即時聊天實戰與底層原理
- 設計問題:創新模式與交互思維(設計思想論叢)
- AutoCAD中文版輔助設計從入門到精通
- Creo 2.0工業設計完全學習手冊
- 基于C#的Web應用
- 3D打印機/AutoCAD/UG/Creo/Solidworks 產品模型制作完全自學教程
- ANSYS CFX 14.0超級學習手冊
- 從二維到三維
- AutoCAD Electrical 2017 應用項目教程
- 信息化與新型城鎮化:互動效應與路徑研究
- Linux服務器搭建實戰詳解
- SketchUp 8建筑草圖設計
- Altera FPGA/CPLD設計(基礎篇)(第2版)(Altera公司推薦FPGA/CPLD培訓
- 服裝CAD制板實用教程(第二版)