數字信號處理課程實驗

  • 問題重述

DSP課程實驗

  • 計算機模擬產生多頻率信號:

  • 編寫通用的FFT子程序
  • 設置參數,對信號進行頻譜分析
  • 對信號分別以滿足和不滿足奈奎斯特採樣定理的採樣率進行採樣,觀察其頻譜變化
  • 設計低通、高通、帶通和帶阻濾波器,對多頻率信號進行濾波處理
  • 撰寫實驗報告,內容包括實驗步驟、流程圖、源程序、設置參數、輸出結果(圖)、結果分析(結合原理)

例如:模擬信號:

用一個FFT處理器對其進行頻譜分析,要求能分辨所有的頻率分量,則

  • 1)最小信號記錄長度應爲多少?
  • 2)採樣頻率至少爲多少?
  • 3)若採樣頻率爲100Hz,則採樣點數應取幾點;
  • 4)若採樣頻率爲50Hz,則頻譜分析得到的信號頻率分量有哪些?是否與信號實際頻率分量一致?爲什麼?

 

  • 實驗目的

  1. 實驗所需知識覆蓋離散傅里葉變換、數字濾波器設計、信號抽取與插值恢復、奈奎斯特定理等內容,通過實驗加深對DSP課程內容的理解,鞏固所學知識。
  2. 學會利用計算機編寫通用FFT程序,對連續信號頻譜波形進行分析。
  3. 學會應用DFT分析數字信號處理中常見問題及探尋解決方法。
  4. 熟悉高級程序語言的使用方法,包括常見函數的使用,圖形繪製,多種庫的調用和參數的調節。
  5. 增強在DSP方面的動手能力和自學能力。

 

  • 問題分析

按照題目要求,首先應利用計算機生成一個由多個頻率疊加而成的信號。之後在不通風抽樣頻率之下對信號進行採樣。編寫FFT程序對信號進行DFT變換,應能觀察出在滿足和不滿足奈奎斯特採樣定理的情況下信號頻譜分別處於不混疊和混疊狀態。然後需要對信號進行恢復以觀察滿足或不滿足奈奎斯特採樣定理的情況下,頻域的頻譜混疊對時域恢復信號的影響。在頻譜混疊時,觀察其時域信號的失真。

在滿足奈奎斯特採樣定理的情況下,分別用數字低通、高通、帶通和帶阻濾波器對要求信號進行濾波處理,觀察其頻域的變化和時域波形變化。

本實驗主要實現對時域信號的採樣(A/D轉換),濾波(數字信號處理),以及信號的插值恢復(D/A轉換)等步驟。

  • 實驗原理

數字信號的傅里葉變換,通常採用離散傅里葉變換(DFT)方法。但是DFT存在的不足就是計算量太大,很難進行實時處理。計算一個N點的DFT,一般需要N²次複數乘法和NN-1)次複數加法運算。因此,當N較大或要求對信號進行實時處理時,往往難以實現所需運算速度。FFT是一種DFT的高效算法,它根據離散傅氏變換的奇、偶、虛、實等特性,對離散傅立葉變換的算法進行改進獲得的。

DFT的運算爲:

https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike72%2C5%2C5%2C72%2C24/sign=a53995cd9e25bc313f5009ca3fb6e6d4/1f178a82b9014a907ecf06beae773912b21beec4.jpg

由這種方法計算DFT對於  的每個K值,需要進行4N次實數相乘和(4N-2)次相加,對於Nk值,共需4N*N次實數相乘和(4N-2)*N次實數相加。改進DFT算法,減小它的運算量,利用DFT  的週期性和對稱性,使整個DFT的計算變成一系列迭代運算,可大幅度提高運算過程和運算量,這就是FFT的基本思想。FFT對於在計算機系統或者說數字系統中應用離散傅立葉變換,是很大改進。

有限長離散信號x(n)n=01,…,N-1DFT定義爲:

 

可以看出,DFT需要計算大約N2次乘法和N2次加法。當N較大時,這個計算量是很大的。利用WN的對稱性和週期性,將NDFT分解爲兩個N2點的 DFT,這樣兩個N2DFT總的計算量只是原來的一半,即(N2)2+(N2)2=N22,這樣可以繼續分解下去,將N2再分解爲N4 DFT等。對於N=2m 點的DFT都可以分解爲2點的DFT,這樣其計算量可以減少爲(N2)log2N次乘法和Nlog2N次加法。圖爲FFTDFT-所需運算量與計算點數的關係曲線。由圖可以明顯看出FFT算法的優越性。

 

x(n)分解爲偶數與奇數的兩個序列之和,即

 

x1(n)x2(n)的長度都是N2x1(n)是偶數序列,x2(n)是奇數序列,則

 

 

其中X1(k)X2(k)分別爲x1(n)x2(n)N2DFT。由於X1(k)X2(k)均以N2爲週期,且WN k+N/2=-WN k,所以X(k)又可表示爲:

 

上式的運算可以用圖2表示,根據其形狀稱之爲蝶形運算。依此類推,經過m-1次分解,最後將NDFT分解爲N2個兩點DFT。圖38FFT的分解流程。

https://images0.cnblogs.com/blog2015/322020/201504/221517478436569.jpg

https://images0.cnblogs.com/blog2015/322020/201504/221517552819063.jpg

FFT算法的原理是通過許多小的更加容易進行的變換去實現大規模的變換,降低了運算要求,提高了與運算速度。FFT不是DFT的近似運算,它們完全是等效的。

  • 流程圖

DSP系統的基本組成

 

實驗主要步驟流程圖

 

  • 實驗步驟

  • 計算機模擬產生多頻率信號,取五個週期圖像

 

 

 

以兩倍奈奎斯特頻率抽樣

 

 

對採樣信號進行FFT運算

 

取低頻觀察頻譜特性

 

​​​​​​​對離散頻域進行傅里葉反變換得到時域抽樣信號並與願信號比較

 

​​​​​​​爲了得到原不失真信號,對反變換得到的信號進行零值插入(每兩個取樣值之間插入7個零)

 

​​​​​​​進行傅里葉變換獲得週期延拓的頻譜

 

​​​​​​​通過截至頻率爲抽樣點N一半N/2的理想低通濾波器

 

​​​​​​​顯示1/16觀察低頻

 

​​​​​​​進行傅里葉反變換得到還原的時域波形

 

​​​​​​​通過數字低通butterworth濾波器(截止頻率10HZ

 

 

​​​​​​​通過數字高通butterworth濾波器(截至頻率30HZ

 

 

​​​​​​​通過數字帶通butterworth濾波器(截止頻率(10HZ30HZ

 

 

​​​​​​​​​​​​​​通過數字帶阻butterworth濾波器(截止頻率(10HZ30HZ

 

 

 

 

  • 組別參數

奈奎斯特定理驗證與信號恢復

組別

頻率(f1,f2,f3)

振幅(A1,A2,A3)

信號記錄長度(NT)

抽樣頻率

通過濾波器類型

第一組

(5,20,40)

(1.5,2,-1)

5

160HZ

第二組

(5,20,40)

(1.5,2,-1)

3

160HZ

第三組

(5,20,40)

(1.5,2,-1)

3

50HZ

第四組

(5,20,40)

(1.5,2,-1)

3

80HZ

第五組

(5,20,40)

(1.5,2,-1)

3

100HZ

第六組

(5,20,40)

(1.5,2,-1)

3

320HZ

 

信號通過理想濾波器

組別

頻率(f1,f2,f3)

振幅(A1,A2,A3)

信號記錄長度(NT)

抽樣頻率

通過濾波器類型

 

第七組

(5,20,40)

(1.5,2,-1)

3

160HZ

低通(f<10HZ)

第八組

(5,20,40)

(1.5,2,-1)

3

160HZ

高通

(f>30HZ)

第九組

(5,20,40)

(1.5,2,-1)

3

160HZ

帶通

(10HZ<f<30HZ)

第十組

(5,20,40)

(1.5,2,-1)

3

160HZ

帶阻

(f<10HZ|f>30HZ)

                       

信號通過butterworth濾波器

組別

頻率(f1,f2,f3)

振幅(A1,A2,A3)

信號記錄長度(NT)

抽樣頻率

通過濾波器類型

 

第十一組

(5,20,40)

(1.5,2,-1)

3

160HZ

低通(f<10HZ)

第十二組

(5,20,40)

(1.5,2,-1)

3

160HZ

高通

(f>30HZ)

第十三組

(5,20,40)

(1.5,2,-1)

3

160HZ

帶通

(10HZ<f<30HZ)

第十四組

(5,20,40)

(1.5,2,-1)

3

160HZ

帶阻

(f<10HZ|f>30HZ)

                     

 

 

  • 輸出結果(圖)

第一組輸出結果圖(實驗步驟例):

 

第二組輸出結果圖

 

第三組輸出結果圖

 

第四組輸出結果圖

 

第五組輸出結果圖

 

第六組輸出結果圖

 

第七組輸出結果圖(通過理想低通濾波器)

 

第八組輸出結果圖(通過理想高通濾波器)

 

第九組輸出結果圖(通過理想帶通濾波器10HZ~30HZ)

 

第十組輸出結果圖(通過理想帶阻濾波器,阻帶10~30hz)

 

第十一組輸出結果圖(通過10HZ butterworth低通濾波器)

 

 

第十二組輸出結果圖(通過30HZ butterworth高通濾波器)

 

 

第十三組輸出結果圖(通過10~30HZ butterworth帶通濾波器)

 

第十四組輸出結果圖(通過10~30HZ butterworth帶阻濾波器)

 

 

  • 結果分析

組別

頻率(f1,f2,f3)

振幅(A1,A2,A3)

信號記錄長度(NT)

抽樣頻率

是否混疊失真

第一組

(5,20,40)

(1.5,2,-1)

5

160HZ

第二組

(5,20,40)

(1.5,2,-1)

3

160HZ

第三組

(5,20,40)

(1.5,2,-1)

3

50HZ

第四組

(5,20,40)

(1.5,2,-1)

3

80HZ

第五組

(5,20,40)

(1.5,2,-1)

3

100HZ

第六組

(5,20,40)

(1.5,2,-1)

3

320HZ

對前六組實驗結果圖像的對比分析可得,抽樣頻率不大於奈奎斯特抽樣頻率,即兩倍最高頻率分量時,頻譜發生混疊,產生混疊失真。由第三組,第四組可以看出,頻域產生混疊,重建信號時域波形發生嚴重失真。其他各組無失真。即驗證了奈奎斯特抽樣定理。

組別

頻率(f1,f2,f3)

振幅(A1,A2,A3)

抽樣頻率

通過濾波器類型

第一組

(5,20,40)

(1.5,2,-1)

160HZ

第七組

(5,20,40)

(1.5,2,-1)

160HZ

理想低通

(f<10HZ)

第十一組

(5,20,40)

(1.5,2,-1)

160HZ

butterworth低通

(f<10HZ)

第八組

(5,20,40)

(1.5,2,-1)

160HZ

理想高通

(f>30HZ)

第十二組

(5,20,40)

(1.5,2,-1)

160HZ

butterworth高通

(f>30HZ)

第九組

(5,20,40)

(1.5,2,-1)

160HZ

理想帶通

(10HZ<f<30HZ)

第十三組

(5,20,40)

(1.5,2,-1)

160HZ

butterworth帶通

(10HZ<f<30HZ)

第十組

(5,20,40)

(1.5,2,-1)

160HZ

理想帶阻

(f<10HZ|f>30HZ)

第十四組

(5,20,40)

(1.5,2,-1)

160HZ

butterworth帶阻

(f<10HZ|f>30HZ)

 

對於經過濾波器的組別和第一組比較,可以看出信號通過各個濾波器之後頻域的變化,同時觀測重建信號的時域可以看出信號通過高通、低通、帶通、帶阻濾波器後信號波形變化。可以依此看出,對於不同需求、可採用不同形式濾波器。對比理想濾波器和5butterworth濾波器的輸出結果可已看出butterworth濾波器的濾波結果與理想濾波器的輸出結果存在不同,其頻譜變化較理想濾波器而言有一個過渡帶寬,且阻帶衰減不是理想值。與所學內容相吻合,驗證了數字濾波器的內容。

  • 題目解答

            模擬信號:

 

用一個FFT處理器對其進行頻譜分析,要求能分辨所有的頻率分量,則

  • 1)最小信號記錄長度應爲多少?
  • 2)採樣頻率至少爲多少?
  • 3)若採樣頻率爲100Hz,則採樣點數應取幾點;
  • 4)若採樣頻率爲50Hz,則頻譜分析得到的信號頻率分量有哪些?是否與信號實際頻率分量一致?爲什麼?

 

答:

  1. 最小信號記錄長度應至少包含一個信號週期,xa(t)中三個信號分量頻率分別爲5HZ、20HZ、40HZ,故頻率分辨率爲5HZ,則xa(t)的最小週期T0爲0.20s。即最小信號記錄長度應爲0.20s。
  2. 採樣頻率應大於奈奎斯特頻率,xa(t)中三個信號分量頻率分別爲5HZ、20HZ、40HZ,則xa(t)的信號分量的最大頻率爲40HZ,即採樣頻率fs至少爲80HZ。
  3. 採樣點數N = T0/T,T0 = 0.2s,若頻率爲100HZ則T = 1/fs = 0.01s。N = 20,由N = 2^L,則L5N取最小值32。即,採樣點數應取32點。
  4. 若採樣頻率爲50HZ,則信號頻率分量有5HZ10HZ20HZ,因不滿足奈奎斯特定理,頻譜發生混疊,產生了新的頻率分量10HZ,其爲週期延拓吼-40HZ的頻率分量出現在摺疊頻率(25HZ)範圍內的誤檢分量。如實驗第三組數據頻譜圖像所示。頻譜混疊,對應的波形圖發生失真。50HZ抽樣對應結果如下圖所示。

  •  
  • 實驗源碼及實驗詳細步驟

實驗平臺 Jupyter Notebook

實驗語言 Python

實驗所運用科學計算庫 numpy scipy signal

實驗所運用繪圖庫matplotlib seaborn

實驗源碼:

見我的下載區

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章