《數字訊號處理》上機實驗指導書

2022-09-14 19:57:04 字數 4697 閱讀 9995

一、引言

「數字訊號處理」是一門理論和實驗密切結合的課程,為了深入地掌握課程內容,應當在學習理論的同時,做習題和上機實驗。上機實驗不僅可以幫助學生深入地理解和消化基本理論,而且能鍛鍊初學者的獨立解決問題的能力。所以,根據本課程的重點要求編寫了四個實驗。

第一章、二章是全書的基礎內容,抽樣定理、時域離散系統的時域和頻域分析以及系統對輸入訊號的響應是重要的基本內容。由於第

一、二章大部分內容已經在前期《訊號與系統》課程中學習完,所以可通過實驗一幫助學生溫習以上重要內容,加深學生對「數字訊號處理是通過對輸入訊號的一種運算達到處理目的」 這一重要概念的理解。這樣便可以使學生從《訊號與系統》課程順利的過渡到本課程的學習上來。

第三章、四章dft、fft是數字訊號處理的重要數學工具,它有廣泛的使用內容。限於實驗課時,僅採用實驗二「用fft對訊號進行譜分析」這一實驗。通過該實驗加深理解dft的基本概念、基本性質。

fft是它的快速演算法,必須學會使用。所以,學習完第

三、四章後,可安排進行實驗二。

數字濾波器的基本理論和設計方法是數字訊號處理技術的重要內容。學習這一部分時,應重點掌握iir和fir兩種不同的數字濾波器的基本設計方法。iir濾波器的單位衝激響應是無限長的,設計方法是先設計模擬濾波器,然後再通過s~z平面轉換,求出相應的數字濾波器的系統函式。

這裡的平面轉換有兩種方法,即衝激響應不變法和雙線性變換法,後者沒有頻率混疊的缺點,且轉換簡單,是一種普遍應用的方法。學習完第六章以後可以進行實驗三。fir濾波器的單位衝激響應是有限長的,設計濾波器的目的即是求出符合要求的單位衝激響應。

窗函式法是一種基本的,也是一種重要的設計方法。學習完第七章後可以進行實驗四。

以上所提到的四個實驗,可根據實驗課時的多少恰當安排。例如:實驗一可根據學生在學習《訊號與系統》課程後,掌握的程度來確定是否做此實驗。若時間緊,可以在實驗

三、四之中任做乙個實驗。建議實驗二必做,因為dft和fft是學習數字訊號處理必須掌握的內容。

二、關於使用計算機語言

由於數字訊號處理實驗的主要目的是驗證數字訊號處理的有關理論,進一步理解鞏固所學理論知識。所以,實現實驗用的演算法語言可以有許多種,但為了提高實驗效率,要求學生用程式設計效率比c語言高好幾倍的matlab語言。下面介紹matlab的主要特點。

(有關matlab的啟動、程式執行和有關訊號處理工具箱函式等內容將放到最後附錄中介紹。)

matlab是一種互動式的以矩陣為基本資料結構的系統。在生成矩陣物件時,不要求明確的維數說明。所謂互動式,是指matlab的草稿紙程式設計環境。

即使用者每輸入一條命令並按回車鍵,matlab系統便解釋執行之,並顯示執行結果。根據該結果,使用者立即知道剛輸入的命令的正確性,或利用中間結果進行其他處理等。

與c語言或fortron語言做科學數值計算的程式設計相比較,利用matlab可節省大量的程式設計時間。將其用於數字訊號處理實驗,則可大大提高實驗效率,在有限的上機時間內,實驗內容可增加幾倍。例如,c語言fft子程式有70多行,而用matlab只呼叫乙個fft函式即可實現對序列進行fft計算。

另外,matlab的工具箱及圖形顯示(列印)功能,可滿足各層次人員直觀、方便的進行分析、計算和設計工作,從而可大大節省時間。例如,序列的卷積、濾波,系統函式h(z)的幅頻特性和相頻特性等計算,均有現成的工具箱函式。而用其它演算法語言完成這些計算的程式設計比較麻煩,且程式較長。

由於上述特點,在美國一些大學裡,matlab已成為輔助教學的有益工具。matlab已成功地用於數字訊號處理課程中的問題分析、實驗、濾波器設計及計算機模擬。附錄中所介紹的訊號處理工具箱函式及繪圖函式基本可滿足本教材所要求的上機實驗需要。

對序列進行譜分析的matlab程式及執行結果見附錄。

三、上機實驗

實驗一:訊號、系統及系統響應

1. 實驗目的

① 熟悉連續訊號經過理想抽樣前後的頻譜變化關係,加深對時域抽樣定理的理解。

② 熟悉時域離散系統的時域特性。

③ 利用卷積方法觀察分析系統的時域特性。

④ 掌握序列傅利葉變換的計算機實驗方法,利用序列的傅利葉變換對連續訊號、離散訊號及系統響應進行頻域分析。

2. 實驗原理與方法

抽樣是連續訊號數字處理的第乙個關鍵環節。對抽樣過程的研究不僅可以了解抽樣前後訊號時域和頻域特性發生的變化以及訊號資訊不丟失的條件,而且可以加深對傅利葉變換、z變換和序列傅利葉變換之間關係式的理解。

我們知道,對乙個連續訊號xa(t)進行理想抽樣的過程可用(1.1)式表示。

=δt(t) —— (1.1)

其中為xa(t)的理想抽樣,δt(t)為週期衝激脈衝,即

—— (1.2)

的傅利葉變換為

= —— (1.3)

(1.3)式表明為的週期延拓,其延拓週期為抽樣角頻率(ωs=2π/t)。抽樣前後訊號的頻譜示意圖見「參考教材圖1-29」。只有滿足抽樣定理時,才不會發生頻率混疊失真。

在計算機上用高階語言程式設計直接按(1.3)式計算理想抽樣的頻譜很不方便。下面匯出用序列的傅利葉變換來計算的公式。

將(1.2)式代入(1.1)式並進行傅利葉變換,

= =

1.4)

式中的xa(nt)就是取樣後得到的序列x(n),即

x(n) = xa(nt)

x(n)的序列傅利葉變換為

x(ej1.5)

比較(1.5)和(1.4)可知

= x(ejω) |ω = ωt —— (1.6)

這說明兩者之間只在頻率度量上差乙個常數因子t。實驗過程中應注意這一差別。

離散訊號和系統在時域均可用序列來表示。序列圖形給人以形象直觀的印象,它可加深我們對訊號和系統的時域特徵的理解。本實驗還將觀察分析幾種訊號及系統的時域特性。

為了在數字計算機上觀察分析各種序列的頻域特性,通常對x(ejω)在[0,2π]上進行m點取樣來觀察分析。對長度為n的有限長序列x(n),有

—— (1.7)

其中k = 0,1, …, m-1

通常m應取得大一些,以便觀察譜的細節變化。取模||可繪出幅頻待性曲線。

乙個時域離散線性非移變系統的輸入/輸出關係為

y(n) = x(n) * h(n) = —— (1.8)

這裡,y(n)為系統的輸出序列,x(n)為輸入序列。h(n)、x(n)可以是無限長,也可以是有限長。為了計算機繪圖觀察方便,主要討論有限長情況。

如果h(n)和x(n)的長度分別為n和m,則y(n)的長度為l = n + m - 1。這樣,(1.8)式所描述的卷積運算就是序列移位、相乘和累加的過程,所以程式設計十分簡單。

上述卷積運算也可以在頻域實現(即卷積定理:時域卷積,頻域相乘。)

y(ejω) = x(ejω)h(ejω) —— (1.9)

(1.9)式右邊的相乘是在各頻點上的頻譜值相乘。

3. 實驗內容

(1) 連續訊號分析

① 連續時間非週期訊號的選擇

參考:訊號與系統(第二版)上冊;鄭君里—附錄三(p378)

1 單邊指數脈衝;2 雙邊指數脈衝;4 鐘形脈衝;10 抽樣脈衝;

(a>0) ; e*exp(-a*abs(t)) (a>0)

② 用matlab編制程式

圖1.1 連續訊號分析程式框圖

③ 時域觀察,頻域分析

調整訊號xa(t)引數,觀察時域波形變化。分析頻域波形,選取近似帶限頻率值fmax,確定對xa(t)→x(n)=xa(nt)的抽樣週期t(t=1/fs),不失真的條件應該滿足抽樣頻率fs≥2fmax(即:時域抽樣定理)。

例如圖 1.2給出了單邊減幅余弦訊號xa(t) =exp(-10*t).*cos(2*pi*25*t)的時域和幅頻特性曲線,由此圖可以近似選取xa(t)的抽樣頻率fs≥2fmax=2×150=300hz。

圖1.2 xa(t)的時域和幅頻特性曲線

(2) 離散訊號分析

① 離散時間非週期訊號x(n)的生成

對前乙個實驗中的連續訊號xa(t)抽樣,用於產生實驗中要用到的訊號序列x(n) = xa(nt)。根據上乙個實驗分析結果選取近似帶限頻率值fmax,按照抽樣頻率fs=2fmax、fs>2fmax和fs<2fmax三種情況編制matlab源程式(t=1/fs)。

② 用matlab編制程式

圖1.3 離散訊號分析程式框圖

③ 時域觀察,頻域分析

調整抽樣頻率fs=2fmax、fs>2fmax和fs<2fmax,觀察時域波形變化,分析頻域波形。根據時域、頻域的變化驗證時域抽樣定理x(ej2πft) =。改變程式中頻率軸變數為:

f(hz)模擬頻率、ω(rad/s)模擬角頻率和ω(rad)數字頻率,觀察頻率特性的週期變化,並用所學理論對以上各種情況加以解釋。

例如圖 1.4給出了單邊減幅余弦抽樣訊號x(n)的時域和幅頻特性曲線,由此圖可以觀察分析選取抽樣頻率fs=2fmax =2×150=300hz時的時域和幅頻特性。

圖1.4 xa(t)的時域和幅頻特性曲線

(3) 系統響應分析

① 生成實驗用的輸入序列x(n)和系統單位衝激響應序列h(n)

輸入序列:x(n) = r10(n)

單位衝激響應序列:h(n) = δ(n) + 2.5δ(n-1) + 2.5δ(n-2) + δ(n-3)

② 時域離散訊號、系統和系統響應分析

觀察系統h(n)對輸入訊號x(n) = r10(n)的響應特性y(n)。即利用線性卷積求系統響應y(n),呼叫有限長序列線性卷積子程式,用於完成兩個給定長度的序列的卷積。可以直接呼叫matlab語言中的卷積函式conv。

conv用於兩個有限長度序列的卷積,它假定兩個序列都從n = 0開始。

呼叫格式如下:y = conv ( x , h)

改變輸入訊號x(n)長度,列印輸出y(n)圖形並判斷y(n)圖形及其非零值序列長度是否與理論計算結果一致。

數字訊號處理實驗指導書

電氣工程學院 數字訊號處理 實驗指導書 王武編寫 適用專業 測控技術與儀器 貴州大學 二oo 四年六月 前言一 實驗目的 數字訊號處理是一門工程技術基礎性質的課程,因此實驗方法的學習是本門課教學過程中的乙個必不可少的環節。其目的為 一 依據理論課的內容對重要的原理加以驗證,鞏固和加深所學的理論知識,...

數字訊號處理實驗指導書

數字訊號處理 實驗指導書 實驗一離散時間系統及離散卷積 一 實驗目的 1 熟悉matlab軟體的使用方法。2 熟悉系統函式的零極點分布 單位脈衝響應和系統頻率響應等概念。3 利用matlab繪製系統函式的零極點分布圖 系統頻率響應和單位脈衝響應。4 熟悉離散卷積的概念,並利用matlab計算離散卷積...

數字訊號處理》實驗指導書 正文

實驗一離散時間訊號分析 一 實驗目的 1 掌握各種常用的序列,理解其數學表示式和波形表示。2 掌握在計算機中生成及繪製數碼訊號波形的方法。3 掌握序列的相加 相乘 移位 反褶等基本運算及計算機實現與作用。4 掌握線性卷積軟體實現的方法。5 掌握計算機的使用方法和常用系統軟體及應用軟體的使用。6 通過...