《MATLAB輔助現(xiàn)代工程數(shù)字信號(hào)處理》課件第1章_第1頁
《MATLAB輔助現(xiàn)代工程數(shù)字信號(hào)處理》課件第1章_第2頁
《MATLAB輔助現(xiàn)代工程數(shù)字信號(hào)處理》課件第1章_第3頁
《MATLAB輔助現(xiàn)代工程數(shù)字信號(hào)處理》課件第1章_第4頁
《MATLAB輔助現(xiàn)代工程數(shù)字信號(hào)處理》課件第1章_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章數(shù)字信號(hào)處理與離散時(shí)間系統(tǒng)1.1數(shù)字信號(hào)處理概述1.2信號(hào)與系統(tǒng)1.3離散時(shí)間信號(hào)1.4離散時(shí)間系統(tǒng)1.5小結(jié)

1.1數(shù)字信號(hào)處理概述

目前,以DSP芯片為核心的數(shù)字信號(hào)處理開發(fā)設(shè)備已廣泛應(yīng)用于工程技術(shù)領(lǐng)域。所涉及的信號(hào)包括電、磁、機(jī)械、熱、聲、光等各個(gè)方面。隨著大規(guī)模集成電路和數(shù)字計(jì)算機(jī)的飛速發(fā)展,以及數(shù)字信號(hào)處理理論和技術(shù)的成熟與完善,數(shù)字信號(hào)處理已成為一門極其重要的學(xué)科。1.1.1數(shù)字信號(hào)處理的理論基礎(chǔ)

在較強(qiáng)背景噪聲下,如何提取出真正的信號(hào)或信號(hào)特征,并將其應(yīng)用于實(shí)際工程是信號(hào)處理理論要完成的主要任務(wù)。數(shù)字信號(hào)處理在理論上所涉及的范圍極廣。數(shù)學(xué)領(lǐng)域中的微積分、概率統(tǒng)計(jì)、隨機(jī)過程、高等代數(shù)、數(shù)值分析、復(fù)變函數(shù)等是其基本分析工具;網(wǎng)絡(luò)理論、信號(hào)與系統(tǒng)等是其理論基礎(chǔ);最優(yōu)控制、通信理論、故障診斷等也與其緊密相連。在近40年的發(fā)展中,數(shù)字信號(hào)處理已基本形成了一套較完整的理論體系,主要包括信號(hào)的采集(A/D轉(zhuǎn)換、采樣定理、多抽樣率等)、離散信號(hào)的分析(時(shí)頻分析、信號(hào)變換等)、離散系統(tǒng)分析及其算法(系統(tǒng)轉(zhuǎn)移函數(shù)、頻率特性、快速傅里葉變換、快速卷積等)、信號(hào)的估值(各種估值理論、相關(guān)函數(shù)與功率譜估計(jì)等)、數(shù)字濾波技術(shù)(各種數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn))、信號(hào)的建模(AR、MA、ARMA、PRONY等模型)、信號(hào)處理中的特殊算法(抽取、插值、反卷積、信號(hào)重建等)、信號(hào)處理技術(shù)的實(shí)現(xiàn)與應(yīng)用(軟硬件系統(tǒng)的整體實(shí)現(xiàn))。伴隨著通信技術(shù)、電子技術(shù)及計(jì)算機(jī)的飛速發(fā)展,數(shù)字信號(hào)處理的理論也在不斷地發(fā)展和完善,各種新算法、新理論層出不窮。平穩(wěn)信號(hào)的高階統(tǒng)計(jì)量分析、非平穩(wěn)信號(hào)的聯(lián)合時(shí)域分析、信號(hào)的多抽樣率分析、小波變換及獨(dú)立分量分析等信號(hào)理論取得了較大的發(fā)展。1.1.2數(shù)字信號(hào)處理的實(shí)現(xiàn)

數(shù)字信號(hào)處理的實(shí)現(xiàn)是指將信號(hào)處理的理論應(yīng)用于某一具體的實(shí)踐任務(wù)中。對(duì)象不同,實(shí)現(xiàn)的途徑也不相同,總體說來,數(shù)字信號(hào)處理的實(shí)現(xiàn)可分為軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)兩大類。

軟件實(shí)現(xiàn)主要是指在通用計(jì)算機(jī)上用軟件來實(shí)現(xiàn)信號(hào)處理的過程。目前,有關(guān)信號(hào)處理最強(qiáng)大的軟件工具是MATLAB語言及相應(yīng)的工具箱。本書涉及的工程數(shù)字信號(hào)處理的相關(guān)理論與具體實(shí)際應(yīng)用,均以MATLAB為輔助軟件來實(shí)現(xiàn)信號(hào)處理的仿真過程。

硬件實(shí)現(xiàn)主要是指采用通用微處理器或數(shù)字信號(hào)處理器DSP芯片,配置適當(dāng)?shù)耐鈬鶬C,配合相應(yīng)的處理程序構(gòu)成的數(shù)字信號(hào)處理系統(tǒng)。DSP芯片可分為通用的可編程DSP芯片和專用的DSP芯片。具體有以下幾種實(shí)現(xiàn)方式:

(1)在大、中、小型計(jì)算機(jī)上運(yùn)行相應(yīng)的數(shù)字信號(hào)處理軟件來實(shí)現(xiàn)。如圖像壓縮和解壓縮軟件等。軟件實(shí)現(xiàn)的執(zhí)行速度較慢,因此,軟件實(shí)現(xiàn)一般僅用于DSP算法的模擬與仿真。

(2)在通用計(jì)算機(jī)系統(tǒng)中加上專用的加速處理機(jī)來實(shí)現(xiàn)。此方法專用性強(qiáng),但不便于系統(tǒng)的獨(dú)立運(yùn)行。

(3)在通用的單片機(jī)(如MCS-51系列、MSC-96系列等)上實(shí)現(xiàn)。這種方法主要用于數(shù)字控制等領(lǐng)域。設(shè)計(jì)中可根據(jù)不同環(huán)境選配不同的單片機(jī)類型,以達(dá)到實(shí)時(shí)控制的目的,但該法數(shù)據(jù)運(yùn)算量不能太大,只適用于實(shí)現(xiàn)簡(jiǎn)單的DSP算法。

(4)利用通用的可編程DSP芯片來實(shí)現(xiàn)。DSP芯片較之單片機(jī),具有更加適合于數(shù)字信號(hào)處理的軟件和硬件資源,可用于復(fù)雜的數(shù)字信號(hào)處理算法。通用DSP芯片內(nèi)部帶有乘法器、累加器,采用流水線工作方式及并行結(jié)構(gòu)、多總線結(jié)構(gòu),執(zhí)行速度快,適用于信號(hào)處理的指令等。

(5)采用專用的DSP芯片來實(shí)現(xiàn)。在一些特殊場(chǎng)合,當(dāng)要求信號(hào)處理速度極高時(shí),通用DSP芯片很難實(shí)現(xiàn)要求的功能,須采用專用的DSP芯片。例如專用于FFT、數(shù)字濾波、卷積、相關(guān)等算法的DSP芯片。這種芯片將相應(yīng)的信號(hào)處理算法在芯片內(nèi)部用硬件實(shí)現(xiàn),使用者只需給出輸入數(shù)據(jù),即可在輸出端直接得到數(shù)據(jù),無需進(jìn)行編程。1.1.3數(shù)字信號(hào)處理的應(yīng)用

數(shù)字信號(hào)處理是一門涉及多學(xué)科的新興學(xué)科,在語音、雷達(dá)、聲納、地震、圖像、通信系統(tǒng)、系統(tǒng)控制、生物醫(yī)學(xué)工程、機(jī)械振動(dòng)、遙感遙測(cè)、地質(zhì)勘探、航空航天、電力系統(tǒng)、故障檢測(cè)、自動(dòng)化儀器等眾多領(lǐng)域獲得了極其廣泛的應(yīng)用。數(shù)字信號(hào)處理有效地推動(dòng)了眾多工程技術(shù)領(lǐng)域的技術(shù)改造和學(xué)科發(fā)展。近年來,隨著多媒體的發(fā)展,DSP芯片已在家電、電話、磁盤機(jī)等設(shè)備中廣泛應(yīng)用。

數(shù)字信號(hào)處理的典型應(yīng)用如表1.1所示。

1.2信號(hào)與系統(tǒng)

信號(hào)是信息的載體,是信息的物理表現(xiàn)形式,是信息的函數(shù)。信號(hào)是隨著時(shí)間、空間或其他自變量變化的物理量。通常把一個(gè)信號(hào)描述為一個(gè)或幾個(gè)自變量的函數(shù)。例如,函數(shù)

S(x,y)=5x+4xy+20y2

(1.1)

描述了含兩個(gè)自變量x和y的信號(hào),是一種確定性信號(hào)。然而,很多情況下,這種函數(shù)關(guān)系是未知的,比如語音信號(hào)等自然信號(hào)。信號(hào)根據(jù)其不同的特征屬性,有很多種分類方法。按信號(hào)的周期性可分為周期信號(hào)和非周期信號(hào);按信號(hào)是否能被確定規(guī)則所唯一描述,可分為確定性信號(hào)和隨機(jī)信號(hào);按信號(hào)時(shí)間自變量的特征和取值,可分為連續(xù)時(shí)間信號(hào)和離散時(shí)間信號(hào)。

系統(tǒng)定義為對(duì)某個(gè)信號(hào)執(zhí)行某種操作的一臺(tái)物理設(shè)備。譬如,用于降低有用信息載體信號(hào)噪聲和干擾的濾波器,就是一個(gè)系統(tǒng)。濾波器通過執(zhí)行相應(yīng)操作有效地濾去信號(hào)中的噪聲和干擾。操作就是信號(hào)處理。操作的執(zhí)行過程就是對(duì)信號(hào)的處理過程。在操作過程中,如果是線性操作,系統(tǒng)就是線性的;如果是非線性操作,系統(tǒng)就是非線性的。系統(tǒng)不僅包括物理設(shè)備,還包括對(duì)信號(hào)操作的軟件實(shí)現(xiàn)。對(duì)于計(jì)算機(jī)處理系統(tǒng)來說,程序就是軟件實(shí)現(xiàn)。信號(hào)處理主要針對(duì)的是數(shù)字信號(hào),而模擬信號(hào)一般可以轉(zhuǎn)換成所需處理的數(shù)字信號(hào)。因此,本書主要論述的是數(shù)字系統(tǒng)。從廣義上講,一個(gè)數(shù)字系統(tǒng)是一個(gè)硬件和軟件結(jié)合的實(shí)現(xiàn),每一部分都執(zhí)行自身的一套特定操作。

系統(tǒng)是可以被描述的。連續(xù)系統(tǒng)可用常系數(shù)微分方程、傅里葉變換、拉普拉斯變換描述;離散系統(tǒng)可用差分方程、離散傅里葉變換、Z變換描述。數(shù)字系統(tǒng)所執(zhí)行的操作通常可以由數(shù)學(xué)方式來表達(dá),執(zhí)行相應(yīng)數(shù)學(xué)操作的方法或規(guī)則集稱為算法。1.2.1連續(xù)時(shí)間信號(hào)和離散時(shí)間信號(hào)

連續(xù)時(shí)間信號(hào)在給定時(shí)間區(qū)域內(nèi),對(duì)于任意時(shí)刻都對(duì)應(yīng)一個(gè)確定的函數(shù)值。時(shí)間域可以是有限或是無限。常見的連續(xù)時(shí)間信號(hào)主要有指數(shù)信號(hào)、正弦信號(hào)、單位階躍信號(hào)、單位斜坡信號(hào)、正負(fù)號(hào)信號(hào)、脈沖信號(hào)、sinc信號(hào)及復(fù)指數(shù)信號(hào)。

離散時(shí)間信號(hào)定義在某些特定的時(shí)間值上,只是在某些離散的瞬時(shí)時(shí)間點(diǎn)給出函數(shù)值,其他點(diǎn)無定義。這些時(shí)間點(diǎn)不需要是等間隔的,但為計(jì)算方便和易于處理,通常取為等時(shí)間間隔。如果使用離散時(shí)間的序號(hào)n作為自變量,那么信號(hào)值就會(huì)變成整型變量的函數(shù),這樣,一個(gè)離散時(shí)間信號(hào)就可以用一系列實(shí)數(shù)或復(fù)數(shù)來表示。為強(qiáng)調(diào)信號(hào)的離散時(shí)間特性,通常用序列x(n)來表示這種信號(hào)。若信號(hào)等間隔,則可用x(nT)表示,T為采樣周期。在MATLAB中,可用一個(gè)列向量來表示一個(gè)有限長(zhǎng)度序列x(n)。由于計(jì)算機(jī)內(nèi)存有限,故無法表示任意無限序列。另外,由于列向量沒有包含采樣時(shí)刻的信息,因此要完整地表示序列x(n),需要用n和x兩個(gè)向量來表示,前者表示序列元素的位置,后者表示相應(yīng)的序列值。例如序列

x(n)=[3,-1,4,6,5,-8,9,2]

在MATLAB中可表示為

n=[-1,0,1,2,3,4,5,6]

x=[3,-1,4,6,5,-8,9,2]1.2.2確定性信號(hào)與隨機(jī)信號(hào)

任何一個(gè)可以被一個(gè)顯式數(shù)學(xué)表達(dá)式、一個(gè)數(shù)據(jù)表或者一個(gè)定義好的規(guī)則所唯一描述的信號(hào),都稱為確定性信號(hào)。確定性信號(hào)的每個(gè)值都可以用有限個(gè)參量唯一地加以描述。

然而,在很多實(shí)際應(yīng)用中,有些信號(hào)不能被數(shù)學(xué)公式顯式表達(dá)到一個(gè)合理的精度,或者是描述得太過復(fù)雜以至于沒有任何實(shí)際用處。這種不能用有限參量來唯一、確定地加以描述,也無法對(duì)其未來值確定地預(yù)測(cè)的信號(hào),稱為隨機(jī)信號(hào)。隨機(jī)信號(hào)可以通過統(tǒng)計(jì)數(shù)學(xué)的方法描述,常用的是概率密度函數(shù)或功率密度譜描述。如地震信號(hào)、語音信號(hào)以及最常用的白噪聲。隨機(jī)信號(hào)可分為平穩(wěn)隨機(jī)信號(hào)與非平穩(wěn)隨機(jī)信號(hào),而平穩(wěn)隨機(jī)信號(hào)又可分為各態(tài)遍歷信號(hào)與非各態(tài)遍歷信號(hào)。

白噪聲的特征是所有頻率(無限帶寬)下具有平坦的功率密度(即均勻能量分布),但它的概率密度函數(shù)可以有各種分布形式。從信號(hào)處理的角度出發(fā),由于噪聲是一個(gè)隨機(jī)過程,可用統(tǒng)計(jì)方法描述,將混雜在有用信號(hào)中的噪聲去除,即在噪聲中提取有用信號(hào)。1.2.3能量信號(hào)與功率信號(hào)

連續(xù)信號(hào)x(t)和離散信號(hào)x(n)的能量分別定義為(1.2a)(1.2b)式中,若E<∞,則稱x(t)或x(n)為能量有限信號(hào),簡(jiǎn)稱為能量信號(hào);若E>∞,則稱為能量無限信號(hào)。當(dāng)x(t)和x(n)的能量E無限時(shí),僅研究它們的功率。信號(hào)x(t)和x(n)的功率分別為(1.3a)(1.3b)式中,若P<∞,則稱x(t)或x(n)為功率有限信號(hào),簡(jiǎn)稱功率信號(hào)。隨機(jī)信號(hào)由于其時(shí)間是無限的,所以總是功率信號(hào)。一般來說,在有限區(qū)間內(nèi)存在的確定性信號(hào)有可能是能量信號(hào)。1.2.4數(shù)字信號(hào)處理系統(tǒng)的基本組成

在科學(xué)和工程上,大多數(shù)信號(hào)都是自然模擬信號(hào)。該類信號(hào)一般為連續(xù)變量的函數(shù),可以直接被適合的模擬系統(tǒng)處理,以改變信號(hào)的特征或提取有用信息。在這種情況下,輸入和輸出信號(hào)均是模擬的。

數(shù)字信號(hào)處理是把信號(hào)用數(shù)字或符號(hào)表示成序列,通過計(jì)算機(jī)或?qū)S眯盘?hào)處理設(shè)備,用數(shù)值計(jì)算方法進(jìn)行各種處理,達(dá)到提取有用信息以便于應(yīng)用的目的。如濾波、檢測(cè)、變換、增強(qiáng)、估計(jì)、識(shí)別、參數(shù)提取以及頻譜分析等。數(shù)字信號(hào)處理提供了處理模擬信號(hào)的備用方法,如圖1.1所示。要執(zhí)行數(shù)字信號(hào)的處理,需在模擬信號(hào)和數(shù)字信號(hào)間加一個(gè)A/D轉(zhuǎn)換器,將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),再作為數(shù)字信號(hào)處理器的輸入。圖1.1數(shù)字信號(hào)處理系統(tǒng)可編程數(shù)字計(jì)算機(jī)是一個(gè)對(duì)輸入信號(hào)執(zhí)行所需操作的數(shù)字信號(hào)處理器。處理器通過更改軟件來靈活地改變信號(hào)的處理操作。在實(shí)際應(yīng)用中,數(shù)字信號(hào)處理器的輸出通常是以模擬信號(hào)傳給用戶的,例如語音、圖像等,這就需用D/A轉(zhuǎn)換器將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)輸出。

圖像等,這就需用D/A轉(zhuǎn)換器將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)輸出。

數(shù)字信號(hào)處理與模擬信號(hào)處理相比,數(shù)字信號(hào)處理的動(dòng)態(tài)范圍寬,信噪比高。信號(hào)在模擬系統(tǒng)中經(jīng)過一系列模擬運(yùn)算處理后,誤差積累,噪聲逐級(jí)放大,整個(gè)系統(tǒng)信噪比指標(biāo)下降;信號(hào)在數(shù)字系統(tǒng)中,僅受A/D轉(zhuǎn)換的量化誤差及系統(tǒng)有限字長(zhǎng)影響,處理過程中不會(huì)產(chǎn)生其他噪聲。數(shù)字信號(hào)處理系統(tǒng)的性能具有確定性、可預(yù)見性和可重復(fù)性,穩(wěn)定性好。這是由數(shù)字器件相比模擬器件的高精度及高穩(wěn)定度決定的。數(shù)字信號(hào)處理系統(tǒng)具有很強(qiáng)的靈活性,易于實(shí)現(xiàn)自適應(yīng)算法,易于大規(guī)模集成。1.2.5模數(shù)轉(zhuǎn)換和數(shù)模轉(zhuǎn)換

現(xiàn)實(shí)中的信號(hào)大多是模擬信號(hào),要通過數(shù)字方法處理模擬信號(hào),首先就需將其轉(zhuǎn)換為具有有限精度的數(shù)字序列形式。這一過程稱為模數(shù)(A/D)轉(zhuǎn)換,其轉(zhuǎn)換設(shè)備稱為A/D轉(zhuǎn)換器。A/D轉(zhuǎn)換一般由采樣、量化和編碼三步完成。而數(shù)模(D/A)轉(zhuǎn)換器則通過樣本間的插值操作完成數(shù)字信號(hào)到模擬信號(hào)的輸出。

1.模擬信號(hào)的采樣

模擬信號(hào)的采樣即對(duì)信號(hào)時(shí)間上的離散化,這是數(shù)字化處理的第一個(gè)環(huán)節(jié)。其研究?jī)?nèi)容主要包含信號(hào)經(jīng)采樣后發(fā)生的變化(如頻譜的變化)、信號(hào)內(nèi)容是否丟失(采樣序列能否代表原始信號(hào)、如何不失真地還原信號(hào))以及由離散信號(hào)恢復(fù)連續(xù)信號(hào)的條件。

采樣器一般由電子開關(guān)組成,開關(guān)每隔T秒短暫地閉合一次,將連續(xù)信號(hào)接通,實(shí)現(xiàn)一次采樣。如開關(guān)每次閉合τ秒,則采樣器的輸出是一串重復(fù)周期為T,寬度為τ的脈沖,脈沖的幅度是這段時(shí)間內(nèi)信號(hào)的幅度,這一采樣過程可看做一個(gè)脈沖調(diào)幅過程,脈沖載波是一串周期為T、寬度為τ的矩形脈沖,用P(t)表示,調(diào)制信號(hào)是輸入的連續(xù)信號(hào)xa(t),則采樣輸出為

xp(t)=xa(t)P(t)

(1.4)一般τ是很小的,τ越小,則采樣輸出脈沖幅度越接近輸入信號(hào)在離散時(shí)間點(diǎn)上的瞬時(shí)值。信號(hào)采樣要滿足奈奎斯特采樣定理,即在信號(hào)采樣中,采樣頻率必須大于信號(hào)最高頻率的兩倍。

工程實(shí)際中,考慮到信號(hào)含有噪聲,為避免頻譜混淆,選取的采樣頻率總比信號(hào)最高頻率ΩS的兩倍大得多。同時(shí),為避免高于折疊頻率ΩS/2的噪聲信號(hào)進(jìn)入采樣器造成頻譜混淆,采樣器前常常加一個(gè)保護(hù)性的前置低通濾波器(抗混疊濾波器)。

2.量化

量化是離散時(shí)間連續(xù)值信號(hào)轉(zhuǎn)換到離散時(shí)間離散值信號(hào)的轉(zhuǎn)換過程。每個(gè)信號(hào)的樣本值是從可能值的有限集中選取的。

3.編碼

在A/D轉(zhuǎn)換器中的編碼過程為每一個(gè)量化級(jí)別賦予一個(gè)唯一的二進(jìn)制數(shù)。如果有L級(jí),那么至少需要L個(gè)不同的二進(jìn)制數(shù)。若字長(zhǎng)為b位,則可生成2b個(gè)不同的二進(jìn)制數(shù)。

4.D/A轉(zhuǎn)換與插值處理

D/A轉(zhuǎn)換通過執(zhí)行某種插值操作連接數(shù)字信號(hào)的點(diǎn),其一般的樣本形式稱為零階保持或階梯近似。采樣定理指出了帶限信號(hào)的最佳插值。為簡(jiǎn)化插值處理過程,實(shí)際上大多采用零階保持線性插值的方法來實(shí)現(xiàn)D/A轉(zhuǎn)換,再跟隨一個(gè)后濾波器或平滑濾波器來實(shí)現(xiàn)模擬輸出。

1.3離散時(shí)間信號(hào)

對(duì)模擬信號(hào)xa(t)進(jìn)行等間隔采樣,采樣間隔為T,可得到的采樣輸出為

x[n]=xa(t)|t=nT=xa(nT),n=…,-2,-1,0,1,2,…

(1.5)

對(duì)于不同的n值,xa(nT)是一個(gè)有序的數(shù)字序列,該數(shù)字序列就是離散時(shí)間信號(hào)。T稱為采樣周期或采樣間隔,f=1/T為采樣頻率。實(shí)際信號(hào)處理中,這些數(shù)字序列值按順序存放于存儲(chǔ)器中,此時(shí)nT代表的是前后順序。為了簡(jiǎn)化表述,一般不寫采樣間隔,記為x(n),稱為數(shù)字序列。對(duì)于具體信號(hào),x(n)也代表第n個(gè)序列值。需要說明的是,n需取整數(shù),非整數(shù)時(shí)無定義;另外,在數(shù)值上它等于信號(hào)的采樣值,且信號(hào)隨n的變化規(guī)律可以用公式表示,也可以用圖形表示。1.3.1典型離散時(shí)間信號(hào)

在數(shù)字信號(hào)處理中,定義了一些基本的典型離散時(shí)間信號(hào)序列,它們的定義和在MATLAB中的表述如下。

1.單位采樣序列

單位采樣序列的表達(dá)式為(1.6)(1.7)單位采樣序列也可以稱為單位脈沖序列,特點(diǎn)是僅在n=0時(shí)取值為1,其他情況時(shí)均為0。它類似于模擬信號(hào)和系統(tǒng)中的單位沖激函數(shù)δ(t),但不同的是δ(t)在t=0時(shí),取值無窮大,t≠0時(shí)取值為0,對(duì)時(shí)間t的積分為1。在MATLAB中,利用函數(shù)zeros(1,N)可以實(shí)現(xiàn)有限長(zhǎng)區(qū)間的δ(n),也可利用邏輯關(guān)系操作符n==0來實(shí)現(xiàn)。

【例1.1】

用MATLAB編寫生成單位采樣序列的程序,其中,n∈[-10,10],n0=1。

MATLAB程序如下:

%MATLABPROGRAM1-1

%aDeltaSequence

n0=1;

n1=-10;

n2=10;

%Generatex(n)=delta(n-n0);n1<=n,n0<=n2

if((n0<n1)|(n0>n2)|(n1>n2))

error(′參數(shù)必須滿足n1<=n0<=n2′)

end

n=[n1:n2];

%x=[zeros(1,(n0-n1)),1,zeros(1,(n2-n0))];%用zeros函數(shù)實(shí)現(xiàn)

x=[(n-n0)==0];%用邏輯關(guān)系式實(shí)現(xiàn)

stem(n,x)

xlabel(′n′);ylabel(′x(n)′);title(′DeltaSequence′);

grid

程序運(yùn)行結(jié)果如圖1.2所示。圖1.2單位采樣序列

2.單位階躍序列

單位階躍序列的表達(dá)式為(1.8)(1.9)單位階躍序列類似于模擬信號(hào)中的單位階躍函數(shù)u(t)。δ(n)與u(n)之間的關(guān)系為

δ(n)=u(n)-u(n-1)

(1.10)(1.11)

在MATLAB中,利用函數(shù)ones(1,N)可以實(shí)現(xiàn)有限長(zhǎng)區(qū)間的u(n),也可用邏輯關(guān)系式n≥0來實(shí)現(xiàn)。

【例1.2】

用MATLAB編寫生成單位階躍序列的程序,其中,n∈[-8,8],n0=2。

MATLAB程序如下:

%MATLABPROGRAM1-2

%Function[x,n]=stepseq(n0,n1,n2)

n0=2;

n1=-8;

n2=8;

if((n0<n1)|(n0>n2)|(n1>n2))

error(′參數(shù)必須滿足n1<=n0<=n2′)

end

n=[n1:n2];

%x=[zeros(1,(n0-n1)),ones(1,(n2-n0+1))];%用ones函數(shù)實(shí)現(xiàn)

x=[(n-n0)>=0];%用“≥”實(shí)現(xiàn)

stem(n,x)

xlabel(′n′);ylabel(′x(n)′);title(′StepSequence′);

grid程序運(yùn)行結(jié)果如圖1.3所示。圖1.3單位階躍序列矩形序列是其一種特殊序列,定義為(1.12)式中,N稱為矩形序列的長(zhǎng)度。

3.單位斜坡序列單位斜坡序列的表達(dá)式為(1.13)

【例1.3】

用MATLAB編寫生成單位斜坡序列的程序,其中,n∈[0,10]。

MATLAB程序如下:

%MATLABPROGRAM1-3

%aRampSequence

n1=0;

n2=10;

n=[n1:0.5:n2];

x=n;

stem(n,x)

xlabel(′n′);ylabel(′x(n)′);title(′RampSequence′);

grid

程序運(yùn)行結(jié)果如圖1.4所示。圖1.4單位斜坡序列

4.正弦、余弦序列

正弦和余弦序列的表達(dá)式分別為

x(n)=Asin(ω0n+j)n

(1.14a)

x(n)=Acos(ω0n+j)n

(1.14b)

式中,A為幅度;ω0稱為序列的數(shù)字域頻率,表示序列變化的速率,單位是弧度;j為初始相位角。在MATLAB中,利用函數(shù)sin和cos可以實(shí)現(xiàn)有限長(zhǎng)區(qū)間的正弦和余弦序列。

【例1.4】

用MATLAB編寫程序,生成x(n)=-2sin(0.3πn),n∈[-10,50]。

MATLAB程序如下:

%MATLABPROGRAM1-4

n=[-10:50];

x=3*cos(0.4*pi*n+pi/3)-2*sin(0.3*pi*n);

stem(n,x)

xlabel(′n′);ylabel(′x(n)′);title(′SineSequence′);

grid

程序運(yùn)行結(jié)果如圖1.5所示。圖1.5正余弦序列

5.實(shí)指數(shù)序列

實(shí)指數(shù)序列的表達(dá)式為

x(n)=an

n,a∈R

(1.15)

如果|a|<1,x(n)的幅度隨n的增大而減小,稱x(n)為收斂序列;如果|a|>1,x(n)的幅度隨n的增大而增大,稱x(n)為發(fā)散序列。在MATLAB中,利用數(shù)組運(yùn)算符“.^”可以實(shí)現(xiàn)有限長(zhǎng)區(qū)間的實(shí)指數(shù)序列。

【例1.5】

用MATLAB編寫生成x(n)=0.5n,n∈[-8,10]的程序。

MATLAB程序如下:

%MATLABPROGRAM1-5

n=[-8:10];

x=0.5.^n

stem(n,x)

xlabel(′n′);ylabel(′x(n)′);title(′RealPowerSequence′);

grid

程序運(yùn)行結(jié)果如圖1.6所示。圖1.6實(shí)指數(shù)序列

6.復(fù)指數(shù)序列

復(fù)指數(shù)序列的表達(dá)式為

x(n)=e(σ+jω0)n

(1.16)

式中,ω0為數(shù)字域頻率,σ為阻尼系數(shù)。借助歐拉公式可以展開為

x(n)=eσn(cosω0n+jsinω0n)

(1.17)

式中,實(shí)部Re(n)=eσncosω0n,虛部Im(n)=eσnsinω0n,模|x(n)|=eσn,幅角為ω0n。在MATLAB中,可采用函數(shù)exp實(shí)現(xiàn)序列。

【例1.6】

用MATLAB編寫生成復(fù)指數(shù)序列x(n)=

e(-0.2+j0.3)n,n∈[-10,10]的程序。MATLAB程序如下:

%MATLABPROGRAM1-6

n=[-10:10];

s=-0.2+0.3*j;

x=exp(s*n);

Re_x=real(x);

Im_x=imag(x);

Mag_x=abs(x);

Phase_x=(180/pi)*angle(x);

subplot(221);%實(shí)部序列

stem(n,Re_x);

xlabel(′n′);ylabel(′Re-x′);title(′PowerRealPortSequence′);

grid

subplot(222);

%虛部序列

stem(n,Im_x);

xlabel(′n′);ylabel(′Im-x′);title(′PowerImagPortSequence′);

grid

subplot(223);

%幅值序列

stem(n,Mag_x);

xlabel(′n′);ylabel(′Mag-x′);title(′PowerMagnitudeSequence′);

grid

subplot(224);

%相位序列

stem(n,Phase_x);

xlabel(′n′);ylabel(′Phase-x′);title(′PowerPhaseSequence′);

grid

程序運(yùn)行結(jié)果如圖1.7所示。圖1.7復(fù)指數(shù)序列

7.周期序列

如果對(duì)所有n存在一個(gè)最小的正整數(shù)N,使下面的等式成立:

x(n)=x(n+N)-∞<n<∞(1.18)

則稱序列x(n)為周期序列,周期為N,N須取整數(shù)。例如,x(n)=sin是周期為8的周期序列,也稱為正弦序列。在MATLAB中,設(shè)1個(gè)周期的序列為x(n),則4個(gè)周期的序列可表示為

y(n)=[x(n)x(n)x(n)x(n)]

8.隨機(jī)序列

在MATLAB中,提供了兩個(gè)產(chǎn)生隨機(jī)序列的函數(shù):

x(k)=rand(1,N)用于產(chǎn)生[0,1]區(qū)間均勻分布的隨機(jī)數(shù)序列,長(zhǎng)度為N;

x(k)=randn(1,N)用于產(chǎn)生均值為0,方差為1,長(zhǎng)度為N的高斯分布隨機(jī)數(shù)序列(白噪聲)。

【例1.7】用MATLAB編寫生成[a,b]上均勻分布的隨機(jī)序列的程序。

MATLAB程序如下:

%MATLABPROGRAM1-7

%用于產(chǎn)生[a,b]上均勻分布的N點(diǎn)隨機(jī)序列

n=[1:N];

x=a+(b-a)*rand(1,N);

stem(n,x);

xlabel(′n′);ylabel(′x(n)′);title(′RandomSequence′);

grid

【例1.8】

用MATLAB編寫均值為a、方差為c的高斯隨機(jī)序列的程序。

MATLAB程序如下:

%MATLABPROGRAM1-8

%用于產(chǎn)生均值為a、方差為c的高斯隨機(jī)序列

n=[1:N];

x=a+sqrt(c)*randn(1,N);

stem(n,x);

xlabel(′n′);ylabel(′x(n)′);title(′RandomSequence′);

grid

9.任意序列

以上介紹了幾種常用的典型序列。對(duì)于任意序列,常用單位采樣序列的移位加權(quán)和表示,也可表示成與單位取樣序列的卷積和,其表達(dá)式為(1.19)式中,δ(n-k)=。1.3.2離散時(shí)間信號(hào)的運(yùn)算

在數(shù)字信號(hào)處理中,離散時(shí)間信號(hào)用序列表示,序列有下面幾種運(yùn)算。

1.序列相加

設(shè)有序列x1(n)和x2(n),則序列

x(n)=x1(n)+x2(n)

(1.20)

表示兩個(gè)序列的和,定義為同序號(hào)的序列值逐項(xiàng)對(duì)應(yīng)相加。

當(dāng)x1(n)和x2(n)的長(zhǎng)度、采樣位置均一樣時(shí),才能直接相加;當(dāng)x1(n)和x2(n)的長(zhǎng)度、采樣位置不一樣時(shí),須用0補(bǔ)齊空出的位置,再相加。

【例1.9】用MATLAB編寫序列相加的程序。

MATLAB程序如下:

%MATLABPROGRAM1-9

%實(shí)現(xiàn)x(n)=x1(n)+x2(n)

n=min(min(n1),min(n2)):max(max(n1),max(n2));%y(n)的長(zhǎng)度

y1=zeros(1,length(n));y2=y1;

%初始化

y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;%具有y的長(zhǎng)度的x1

y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;%具有y的長(zhǎng)度的x2

y=y1+y2;

%序列相加

2.序列數(shù)乘

序列數(shù)乘的定義式為

x(n)=ax1(n)

(1.21)

3.序列相乘(點(diǎn)乘)

設(shè)序列為x1(n)和x2(n),則序列

x(n)=x1(n)·x2(n)

(1.22)

表示兩個(gè)序列的積,定義為同序號(hào)的序列值逐項(xiàng)對(duì)應(yīng)相乘。當(dāng)x1(n)和x2(n)的長(zhǎng)度、采樣位置均一樣時(shí),才能直接相乘;當(dāng)x1(n)和x2(n)的長(zhǎng)度、采樣位置不一樣時(shí),須用0補(bǔ)齊空出的位置,再相乘。

【例1.10】

用MATLAB編寫序列相乘的程序。

MATLAB程序如下:

%MATLABPROGRAM1-10

%實(shí)現(xiàn)x(n)=x1(n)*x2(n)

n=min(min(n1),min(n2)):max(max(n1),max(n2));%y(n)的長(zhǎng)度

y1=zeros(1,length(n));

y2=y1;

y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;

%具有y的長(zhǎng)度的x1

y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;

%具有y的長(zhǎng)度的x2

y=y1.*y2;

%序列相乘

4.序列時(shí)延

給定離散信號(hào)x(n),若信號(hào)以y1(n)和y2(n)分別定義為

y1(n)=x(n-N)

(1.23)

y2(n)=x(n+N)

(1.24)

則y1(n)是整個(gè)x(n)在時(shí)間軸上延時(shí)/右移N個(gè)抽樣周期所得的新序列,同理,y2(n)是將整個(gè)x(n)超前/左移N個(gè)抽樣周期的新序列。

【例1.11】

用MATLAB編寫序列時(shí)延的程序。

MATLAB程序如下:

%MATLABPROGRAM1-11

%實(shí)現(xiàn)y(n)=x(n-n0),n0為時(shí)延的單位長(zhǎng)度,m為x的下標(biāo)

n=m+n0;

y=x;

5.序列翻轉(zhuǎn)

序列翻轉(zhuǎn)的定義式為

y(n)=x(-n)

(1.25)

x(-n)是以n=0的縱軸為對(duì)稱軸,將序列x(n)加以翻轉(zhuǎn)。MATLAB中用函數(shù)fliplr來實(shí)現(xiàn)序列翻轉(zhuǎn)。

【例1.12】

用MATLAB編寫序列翻轉(zhuǎn)的程序。

MATLAB程序如下:

%MATLABPROGRAM1-12

%實(shí)現(xiàn)y(n)=x(-n)

y=fliplr(x);

n=-fliplr(n);

6.序列的奇偶性

任何一個(gè)序列x(n)都可以分解為偶分量xe(n)和奇分量xo(n)之和:

x(n)=xe(n)+xo(n)

(1.26)

xe(n)=0.5(x(n)+x(-n))=xe(-n)

(1.27)

xo(n)=0.5(x(n)-x(-n))=-xo(n)

(1.28)

【例1.13】

用MATLAB編寫序列的奇偶分解程序。

MATLAB程序如下:

%MATLABPROGRAM1-13

%序列的奇偶分解

m=fliplr(n);

Mm=min([m,n]):max([m,n]);

nm=n(1)-m(1);

n1=1:length(n);

x1=zeros(1,length(Mm));

x1(n1+nm)=x;

x=x1;

xeven=0.5*(x+fliplr(x));

xold=0.5*(x-fliplr(x));

7.序列的卷積和

若有兩序列x(n)和h(n),則其卷積和定義為

(1.29)

在MATLAB中,用函數(shù)conv來實(shí)現(xiàn)序列的卷積和。

【例1.14】

用MATLAB編寫序列卷積和的程序。

MATLAB程序如下:

%MATLABPROGRAM1-14

%y=卷積結(jié)果

%ny=y的基底(support)

%x=基底nx上的第一個(gè)信號(hào)

%nx=x的支架

%h=基底nh上的第二個(gè)信號(hào)

%nh=h的基底

nyb=nx(1)+nh(1);

nye=nx(length(x))+nh(length(h));

ny=[nyb:nye];

y=conv(x,h);

8.序列的能量

序列的能量定義式為

(1.30)

有限長(zhǎng)序列的能量可以由MATLAB語句來得到

Ex=sum(x.*conj(x))

Ex=sum(abs(x).^2)

9.序列的功率

序列x(n)的功率由下式給出

(1.31)

有限長(zhǎng)序列的功率可由以下MATLAB語句得到

Px=sum(x.*conj(x))/length(x)

Px=sum(abs(x).^2)/length(x)

10.序列的求和及求積

序列求和的定義式為

(1.32)

序列求積的定義式為

(1.33)

在MATLAB中,序列的求和及求積可分別由函數(shù)sum和函數(shù)prod來得到

y=sum(x(n1:n2))

y=prod(x(n1:n2))1.3.3MATLAB常用信號(hào)生成函數(shù)

MATLAB信號(hào)處理工具箱提供了一些特殊信號(hào)波形的生成函數(shù),下面簡(jiǎn)要介紹幾種常用函數(shù)。

1.sawtooth函數(shù)

功能:產(chǎn)生周期為2π的鋸齒波或三角波。

調(diào)用格式:

x=sawtooth(t)

x=sawtooth(t,width)

其中,width為0和1之間的數(shù),當(dāng)width=0.5時(shí),產(chǎn)生標(biāo)準(zhǔn)三角波。

2.square函數(shù)

功能:產(chǎn)生周期為2π、幅值為[-1,1]的方波。

調(diào)用格式:

正方波x(t)=square(t)

帶占空比的方波x(t)=square(t,duty)

其中,t為時(shí)間向量,duty為正幅值部分占周期的百分?jǐn)?shù)。

3.sinc函數(shù)

功能:生成sinc函數(shù)波形。

調(diào)用格式:y=sinc(x)

函數(shù)sinc(x)的周期為2π,并隨x的增加而作衰減振蕩,且為偶函數(shù),在nπ處的值為0。

4.diric函數(shù)

功能:生成dirichlet或sinc周期函數(shù)波形。

調(diào)用格式:y=diric(x,n)

其中,x為向量,n為整數(shù)。當(dāng)n為奇數(shù)時(shí),周期為2π;當(dāng)n為偶數(shù)時(shí),周期為4π。

5.pulstran函數(shù)

功能:產(chǎn)生脈沖串信號(hào)。

調(diào)用格式:y=pulstran(t,d,′func′,P1,P2)

其中,t為時(shí)間向量,d為脈沖串位置向量,P1和P2為與脈沖有關(guān)的參數(shù)設(shè)置,func為脈沖類型函數(shù),MATLAB提供三種脈沖類型:Gauspuls(高斯調(diào)制正弦脈沖)、Rectpuls(非周期矩形脈沖)和Tripuls(非周期三角形脈沖)。

【例1.15】

編寫程序,產(chǎn)生一矩形波脈沖串,脈寬為0.1s,脈沖重復(fù)頻率為3Hz,采樣頻率為2kHz,信號(hào)長(zhǎng)度為1s。

MATLAB程序如下:

%MATLABPROGRAM1-15

clf;

t=[0:0.0005:1];

d=[0:1/3:1];

y=pulstran(t,d,′rectpuls′,0.1);

plot(t,y);

title(′Pulstrantripuls′);xlabel(′t′);ylabel(′y′);

grid;

程序運(yùn)行結(jié)果如圖1.8所示。圖1.8矩形波脈沖串

1.4離散時(shí)間系統(tǒng)

在信號(hào)處理中,通常需要設(shè)計(jì)一個(gè)器件或算法對(duì)離散時(shí)間信號(hào)執(zhí)行某些規(guī)定的運(yùn)算,這樣的器件或算法稱為離散時(shí)間系統(tǒng)。也就是說,離散時(shí)間系統(tǒng)就是將輸入序列映射成另一輸出序列的變換或算子。線性時(shí)不變系統(tǒng)是最重要且最常用的離散時(shí)間系統(tǒng)。

1.4.1離散時(shí)間系統(tǒng)的基本概念

一個(gè)離散時(shí)間系統(tǒng)可以抽象為一種變換,或是一種映射。設(shè)時(shí)域離散系統(tǒng)的輸入為x(n),經(jīng)過規(guī)定的運(yùn)算,系統(tǒng)輸出序列用y(n)表示。設(shè)運(yùn)算關(guān)系用T[·]表示,則輸出與輸入之間的關(guān)系為

y(n)=T[x(n)]

(1.34)

下面介紹有關(guān)離散時(shí)間系統(tǒng)的幾個(gè)重要定義。

1.線性系統(tǒng)

滿足疊加原理的系統(tǒng)稱為線性系統(tǒng)。設(shè)x1(n)和x2(n)分別為系統(tǒng)的輸入序列,其輸出分別用y1(n)和y2(n)表示,即

y1(n)=T[x1(n)]

(1.35)

y2(n)=T[x2(n)]

(1.36)

則線性系統(tǒng)需滿足下列兩個(gè)條件:

T[x1(n)+x2(n)]=y1(n)+y2(n)

(1.37)

T[ax1(n)]=ay1(n)

(1.38)

式中,a是常數(shù)。滿足式(1.37)稱為線性系統(tǒng)的可加性;滿足式(1.38)稱為線性系統(tǒng)的比例性或齊次性。將兩式結(jié)合起來,可表示為

y(n)=T[ax1(n)+bx2(n)]=ay1(n)+by2(n)

(1.39)

式中,a和b均是常數(shù)。

【例1.16】

設(shè)y(n)=ax(n)+b(a和b是常數(shù)),試證明該系統(tǒng)y(n)是非線性系統(tǒng)。

證明

y1(n)=T[x1(n)]=ax1(n)+b

y2(n)=T[x2(n)]=ax2(n)+b

y(n)=T[x1(n)+x2(n)]=ax1(n)+ax2(n)+b

y(n)≠y1(n)+y2(n)

因此,該系統(tǒng)是非線性系統(tǒng)。

2.時(shí)不變系統(tǒng)

如果系統(tǒng)對(duì)輸入信號(hào)的運(yùn)算關(guān)系T[·]在整個(gè)運(yùn)算過程中不隨時(shí)間變化,或者系統(tǒng)對(duì)于輸入信號(hào)的響應(yīng)與信號(hào)加于系統(tǒng)的時(shí)間無關(guān),則稱該系統(tǒng)為時(shí)不變系統(tǒng),可表示為

y(n)=T[x(n)]

(1.40a)

y(n-n0)=T[x(n-n0)]

(1.40b)

式中,n0為任意整數(shù)。

【例1.17】

判別y(n)=ax(n)+b代表的系統(tǒng)是否為時(shí)不變系統(tǒng)。式中,a和b為常數(shù)。

y(n)=ax(n)+b

y(n-n0)=ax(n-n0)+b

y(n-n0)=T[x(n-n0)]

因此,該系統(tǒng)為時(shí)不變系統(tǒng)。

3.系統(tǒng)的因果性與穩(wěn)定性

線性和時(shí)不變兩個(gè)約束條件定義了一類可用卷積和表示的系統(tǒng)。

若系統(tǒng)n時(shí)刻的輸出只取決于n時(shí)刻以及n時(shí)刻以前的輸入序列,而跟n時(shí)刻以后的輸入序列無關(guān),則稱該系統(tǒng)具有因果性質(zhì),或稱該系統(tǒng)為因果系統(tǒng)。

若n時(shí)刻的輸出還取決于n時(shí)刻以后的輸入序列,在時(shí)間上違背了因果性,則這類系統(tǒng)是無法實(shí)現(xiàn)的,被稱為非因果系統(tǒng)。因此,系統(tǒng)的因果性是指系統(tǒng)的可實(shí)現(xiàn)性。

線性時(shí)不變系統(tǒng)具有因果性的充分必要條件是系統(tǒng)的單位取樣響應(yīng)滿足

h(n)=0,n<0

(1.41)滿足式(1.41)的序列稱為因果序列,所以,因果系統(tǒng)的單位取樣響應(yīng)必然是因果序列。由于單位取樣響應(yīng)是輸入為δ(n)的零狀態(tài)響應(yīng),故在n<0時(shí),輸出為0。

若系統(tǒng)輸入有界,輸出也有界,則稱系統(tǒng)具有穩(wěn)定性質(zhì),稱之為穩(wěn)定系統(tǒng)。系統(tǒng)穩(wěn)定的充分必要條件是系統(tǒng)的

單位取樣響應(yīng)絕對(duì)可和,即

(1.42)

穩(wěn)定因果系統(tǒng)是指既滿足穩(wěn)定性又滿足因果性的系統(tǒng)。穩(wěn)定因果系統(tǒng)既是可實(shí)現(xiàn)的又是穩(wěn)定的。這種系統(tǒng)的單位脈沖響應(yīng)既是單邊的,又是絕對(duì)可積的,即

【例1.18】

設(shè)線性時(shí)不變系統(tǒng)的單位取樣響應(yīng)h(n)=anu(n),式中,a是實(shí)常數(shù),試分析該系統(tǒng)的因果穩(wěn)定性。

解由于n<0時(shí),h(n)=0,所以該系統(tǒng)是因果系統(tǒng)。(1.43)當(dāng)且僅當(dāng)|a|<1時(shí),因此,系統(tǒng)穩(wěn)定的條件是|a|<1;否則,|a|≥1時(shí),系統(tǒng)不穩(wěn)定。系統(tǒng)穩(wěn)定時(shí),h(n)的模隨n增大而減小,此時(shí)序列h(n)為收斂序列。如果系統(tǒng)不穩(wěn)定,h(n)的模隨n增大而增大,序列h(n)為發(fā)散序列。1.4.2離散時(shí)間線性時(shí)不變系統(tǒng)的分析

線性時(shí)不變系統(tǒng)(LTI)是既滿足疊加原理又具有時(shí)不變性的系統(tǒng)。線性時(shí)不變系統(tǒng)可以用單位脈沖響應(yīng)來表示。

單位脈沖響應(yīng)即系統(tǒng)對(duì)于δ(n)的零狀態(tài)響應(yīng)為

h(n)=T[δ(n)]

(1.44)

設(shè)系統(tǒng)輸入為x(n),按照式(1.44)表示成單位采樣序列移位加權(quán)和為(1.45)(1.46)根據(jù)線性時(shí)不變系統(tǒng)的疊加和時(shí)不變性質(zhì),有

(1.47)式中,“*”代表卷積運(yùn)算。式(1.47)表示線性時(shí)不變系統(tǒng)的輸出等于輸入序列和系統(tǒng)的單位脈沖響應(yīng)h(n)的卷積。這個(gè)公式和模擬系統(tǒng)的卷積是類似的,稱為離散卷積或線性卷積,或直接卷積,以區(qū)別于其他種類的卷積。線性卷積中的主要運(yùn)算是翻轉(zhuǎn)、移位、相乘和相加,設(shè)兩序列的長(zhǎng)度分別是N和M,線性卷積后的序列長(zhǎng)度為(N+M-1)。線性卷積服從交換律、結(jié)合律和分配律。

(1)交換律:

(1.48)

(2)結(jié)合律:(1.49)(3)分配律:(1.50)

卷積運(yùn)算的求解步驟為:先對(duì)h(m)繞縱軸翻轉(zhuǎn),得到h(-m);再對(duì)h(-m)移位,得到h(n-m);最后,將x(m)和h(n-m)所有對(duì)應(yīng)項(xiàng)相乘之后相加,即得離散卷積結(jié)果y(n)。令l=n-m,作變量代換,則卷積公式變?yōu)?1.51)故x(m)和h(n-m)的位置可對(duì)調(diào),即輸入x(n)和單位脈沖響應(yīng)h(n)的線性時(shí)不變系統(tǒng)與輸入h(n)和單位脈沖響應(yīng)x(n)的線性時(shí)不變系統(tǒng)具有同樣的輸出。

在MATLAB中,利用函數(shù)conv(x,h)可以實(shí)現(xiàn)兩個(gè)有限長(zhǎng)度序列的卷積,函數(shù)conv假定兩個(gè)序列都從n=0開始,其調(diào)用格式為

y=conv(x,h)

【例1.19】

設(shè)x(n)=R4(n),h(n)=R4(n),求y(n)=x(n)*h(n)。

解按照式(1.47),有

式中,矩形序列長(zhǎng)度為4,求解該式主要是根據(jù)矩形序列的非零值區(qū)間來確定求和的上、下限,R4(m)的非零值區(qū)間為0≤m≤3,R4(n-m)的非零值區(qū)間為0≤n-m≤3,其乘積值的非零區(qū)間對(duì)m來說,需同時(shí)滿足不等式0≤m≤3和n-3≤m≤n。當(dāng)0≤n≤3時(shí)

當(dāng)4≤n≤6時(shí)MATLAB計(jì)算卷積程序如下:

%MATLABPROGRAM1-19

nx=[0:3];

Ra=[nx>=0];

nh=[0:3];

Rb=[nh>=0];

y=conv(Ra,Rb);

M=length(y)-1;

n=[0:M];

disp(′輸出序列y=′);

disp(y);

stem(n,y);

xlabel(′時(shí)間序號(hào)n′);ylabel(′振幅y(n)′);

grid程序運(yùn)行結(jié)果如下:

輸出序列y=

1234321

卷積仿真波形如圖1.9所示。

LTI離散時(shí)間系統(tǒng)根據(jù)脈沖響應(yīng)的長(zhǎng)度,可分為有限脈沖響應(yīng)(FiniteImpulseResponse,F(xiàn)IR)系統(tǒng)和無限脈沖響應(yīng)(InfiniteImpulseResponse,IIR)系統(tǒng)兩大類。圖1.9卷積運(yùn)算1.4.3離散時(shí)間系統(tǒng)的差分方程描述

為了描述一個(gè)系統(tǒng),可將其看成一個(gè)黑盒子,只描述或者研究系統(tǒng)輸出和輸入之間的關(guān)系,這種方法稱為輸入輸出描述法。對(duì)于模擬系統(tǒng),可由微分方程描述系統(tǒng)輸入輸出之間的關(guān)系。而對(duì)于離散時(shí)間系統(tǒng),由于其變量n是離散整型變量,故只能用差分方程來反映其輸入輸出序列之間的運(yùn)算關(guān)系。對(duì)于線性時(shí)不變系統(tǒng),常用線性常系數(shù)差分方程表示,N階線性常系數(shù)差分方程的一般形式為(1.52)式中,x(n)和y(n)分別是系統(tǒng)的輸入序列和輸出序列,ar、bk都是常數(shù)。差分方程的階數(shù)N是由y(n)變量序號(hào)的最大與最小之差確定的。

若已知系統(tǒng)的輸入序列,則通過求解差分方程可以求出其輸出序列。求解差分方程的基本方法主要包括經(jīng)典解法、遞推解法和變換域法。

若已知輸入序列和N個(gè)初始條件,則可以求出n時(shí)刻的輸出。如果將式(1.52)中的n用n+1代替,則可求出n+1時(shí)刻的輸出,因此差分方程本身就是一個(gè)適合遞推法求解的方程。

【例1.20】

已知一階差分方程系統(tǒng)y(n)=1.5x(n)+

y(n-1),其輸入信號(hào)為

試求解輸出y(n)。解①假定初始條件為n<0,y(n)=0。

由差分方程、初始條件和輸入信號(hào),得

依次遞推,得②假定初始條件為n>0,y(n)=0。

將上述差分方程改寫成

依此類推,得到在①和②兩種初始條件下,表示了兩個(gè)不同的單位脈沖響應(yīng),雖滿足同一差分方程,但由于初始條件不同,故它們代表了不同的系統(tǒng):①由初始條件確定的是因果穩(wěn)定系統(tǒng),②由初始條件確定的是非因果不穩(wěn)定系統(tǒng)。

用差分方程描述系統(tǒng)時(shí),只有附加必要的約束條件,才能唯一地確定一個(gè)系統(tǒng)的輸入和輸出關(guān)系。

在MATLAB中,可以用函數(shù)filter求解差分方程,調(diào)用格式為

y=filter(a,b,x)

其中,參數(shù)x為輸入向量(序列),a、b分別為差分方程系數(shù)ai、bi構(gòu)成的向量,y為輸出結(jié)果。

【例1.21】

有一差分方程:

y(n)+0.7y(n-1)-0.45y(n-2)-0.6y(n-3)

=0.8x(n)-0.44x(n-1)+0.36x(n-2)+0.02x(n-3)

輸入序列x(n)=δ(n),0≤n≤40。利用MATLAB求輸出y(n)。

MATLAB程序如下:

%MATLABPROGRAM1-21

N=41;

a=[0.8,-0.44,0.36,0.22];

b=[1,0.7,-0.45,-0.6];

x=[1zeros(1,N-1)];

k=[0:1:N-1];

y=filter(a,b,x);

stem(k,y)

xlabel(′n′);ylabel(′幅度y′);

grid;

程序運(yùn)行結(jié)果如圖1.10所示。圖1.10用MATLAB求解差分方程1.4.4離散時(shí)間信號(hào)的相關(guān)性

在信號(hào)處理中經(jīng)常要研究?jī)蓚€(gè)信號(hào)的相似性,或一個(gè)信號(hào)經(jīng)過一段延遲后自身的相似性,以實(shí)現(xiàn)信號(hào)的檢測(cè)、識(shí)別與提取等。相關(guān)函數(shù)是描述隨機(jī)信號(hào)的重要統(tǒng)計(jì)量,已廣泛應(yīng)用于雷達(dá)、聲納、數(shù)字通信、地質(zhì)學(xué)以及其他學(xué)科的工程領(lǐng)域中。

1.互相關(guān)和自相關(guān)函數(shù)

對(duì)于兩個(gè)長(zhǎng)度相同、能量有限的信號(hào)x(n)和y(n),互相關(guān)函數(shù)為(1.53)該式表明:rxy(m)在時(shí)刻m時(shí)的值等于將x(n)保持不變,y(n)左移m個(gè)抽樣周期后,兩個(gè)序列對(duì)應(yīng)相乘再相加的結(jié)果。

如果y(n)=x(n),則x(n)的自相

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論