理解數字訊號處理的三把鑰匙

2021-08-26 16:25:10 字數 2213 閱讀 6389

理解數字訊號處理的三把鑰匙

在數字訊號處理大廈中,有許許多多的小房間,有的門上寫著「dft」,有的門上寫著「濾波」,有的門上寫著「卷積」,有的門上寫著「相關」,等等。每乙個房間都藏著知識的秘密,每乙個房間都要用屬於自己的鑰匙才能開啟。但就整體上來說,理解數字訊號處理有三把「萬能」的鑰匙:時域與頻域的相互切換、向量和matlab軟體。充分應用這三把鑰匙,能為深入理解數字訊號處理提供有力的幫助。

1、時域與頻域的相互切換

深入理解數字訊號處理的第一把鑰匙是時域與頻域的相互切換。時域與頻域之間聯絡的橋梁是傅利葉變換。學過高等數學的人都知道,傅利葉分析是數學分析的乙個重要分支。傅利葉變換也是訊號處理最重要的理論基礎之一,因而也有人說訊號處理其實就是數學分析的乙個分支,這點更因絕大多數的訊號處理圖書充斥著數學公式而得到強化。誠然,數學公式的嚴密性是訊號處理的理論基礎,但正是訊號或系統在頻域所具有的明確的物理意義使訊號處理與數學分析有所區別,正是要不斷在時域與頻域來回切換導致了訊號處理與數學分析成為兩個不同的學科。當給定乙個訊號的時候,訊號處理專家的做法是先在時域觀察其特徵,再到頻域觀察其特徵,或者更高階的是在時-頻聯合域上觀察訊號的特徵。在訊號處理的過程中,在頻域上濾波之後要觀察時域的變化,在時域處理後要觀察頻域的影響。而對乙個數學專家來說,其思路可能就是建立模型,提出猜想,然後再推導證明。

對於很多訊號處理的初學者來說,經過一段時間的學習後能夠從數學公式上理解訊號和系統,但卻很少從物理意義的角度上去理解訊號和系統,這導致了對數字訊號處理普遍的畏難情緒。還有很多人能夠從時域分析訊號和系統,也能夠從頻域分析訊號和系統,但卻不易在時域與頻域之間來回切換,而是往往將時域與頻域孤立開來,從而不能更深地理解訊號和系統。更多地在時域與頻域之間來回切換,理解其中的物理意義,可以說是數字訊號處理的一種基本思維方式。

2、向量

向量,或者說向量,只不過是一根帶有箭頭的線段,如圖1(a)所示。它看起來非常簡單,但這種簡單的工具卻可以讓我們拋開繁雜的數學公式,直觀地理解數字訊號處理中許多看似深奧的概念。

圖1 復正弦訊號的向量表示及其加法運算

復正弦訊號在訊號處理中有著特殊的作用。對於幅度為a,頻率為f,取樣率為fs,初始相位為fai的復正弦訊號s(n):

s(n) = a*exp(j*2pi*f/fs*n+fai)

可以非常直觀方便地用乙個旋轉的向量來表示,如圖1(a)所示。其中向量的長度表示了訊號的幅度,旋轉的速度表示了訊號的頻率。

相加是最基本的運算。對於兩個頻率相同但初始相位不同的復正弦訊號的相加,如果用數學公式的話,要先用尤拉公式展開,然後再進行三角函式的運算,比較麻煩。但是利用向量圖,則只需要以兩個向量為邊,做乙個平行四邊形,所得的對角線即是相加的結果,如圖1(b)所示,非常直觀。

向量雖然也是一種數學工具,但這種工具簡單而又直觀,能幫助我們重新發現往往被數學公式的浪潮所淹沒的訊號處理的實質,是深入理解數字訊號處理的最有力的工具之一。

3、matlab軟體

matlab是美國mathworks公司開發的一種面向科學與工程數值計算的計算機軟體,它程式設計簡單,易學易懂,號稱是「草稿紙」式的計算機語言。而且這種軟體的圖形顯示能力非常強大,非常適合抽象概念的理解。matlab最初只是教學輔助軟體,但由於強大的功能和一系列顯著的特點,其應用早已超出了輔助教學,已經廣泛用於實際的科學研究和工程應用中。在訊號處理方面,matlab也已經成為國際訊號處理界公認的數值計算和演算法開發的標準平台。

因為其程式設計簡單,初學者很快就能上手,將訊號處理的基本概念和方法轉化為實際的**,在互動式的學習實踐中提高對基本概念的理解。雖然在matlab中,本書將要涉及的數字訊號處理的基本內容幾乎都可以直接呼叫現成的函式,但初學者在理解概念的過程中最好是自己編寫**而不是直接呼叫函式,這樣的理解才能更深入。因為其計算能力強大,對一些要用到比較深奧複雜數學公式的訊號處理方法,比如濾波器的係數計算及有限字長影響的分析,用matab能夠簡單方便地得到所需的結果,可以大幅提高效率。因其圖形顯示功能豐富,很多概念都可以方便地用具體的圖形來演示,可以增強直觀的理解。

matlab雖然功能強大,是理解和應用數字訊號處理的非常有效的工具。但如果有人據此產生「有了matlab再也無需深入了解基本的概念和方法」的觀念,就可能會走入歧途。一方面,如果沒有對基本概念的理解和把握,使用matlab時可能會連引數是什麼含義都不知道;另一方面,如果沒有對概念的理解和把握,更無法利用matlab這個工具來解決實際的問題。

最後再強調一下,matlab既不能告訴我們訊號處理基本概念和方法的物理意義,也無法告訴我們面對具體問題時的解決思路,它終究只是一種工具軟體,只有將基本概念的理解與matlab的實現聯絡起來,相互印證,才能使matlab在理解和應用數字訊號處理中真正起到「萬能」鑰匙的作用。

數字訊號處理的基礎 卷積的理解

數字訊號處理的一條原則呢就是把訊號分解成乙個乙個的脈衝訊號,輸入到系統之後得到輸出響應,再把這些輸出響應做乙個線性的疊加就可以得到真是的響應了。這一點是非常重要的,不管是卷積還是傅利葉變換,本質就是這個樣子的。卷積從數字訊號處理的角度來講就是 加入我知道系統的脈衝響應,並且知道輸入訊號,那麼我又沒有...

數字訊號處理中卷積的直觀理解

在乙個線性時不變系統 lti 中,當輸入訊號x n 隨著時間而作用到系統中,y n 作為x n 在時間序列中作用在系統中的響應。先從離散系統分析,卷積形式如下 先考慮有限因果系統的訊號輸入,可得 從式子可以得到,y 0 x 0 h 0 y 1 x 0 h 1 x 1 h 0 其中 x 0 x 1 x...

數字訊號處理 觀察訊號的頻譜

今天學習將時域訊號通過fft轉換為頻域訊號之後,將其各個頻率分量的幅值繪製成圖,可以很直觀地觀察訊號的頻譜。重點理解fft變換的過程。程式來自參考書 python科學計算 import numpy as np import pylab as pl from pylab import mpl 首先定義...