Processing math: 100%

3. 卷積計算與其DSP物理意義


Posted by 高肥 on 2022-06-17

3. 卷積計算與其DSP物理意義

3.1 卷積 (Convolution)定義

給定數位訊號 x[n]h[n]
則:
y[n]=x[n]h[n]=k=x[k]h[nk]=k=h[k]x[nk]

Convolution計算示意圖

3.2 Convolution的DSP物理意義

根據上圖我們可以想像為一個數位訊號 x[n]輸入到一個DSP系統h[n]

經由DSP系統的計算產生輸出y[n]

Convolution在DSP的物理意義:訊號經由系統運算所產生的訊號

3.3 Convolution的衍生 ⇒ 系統脈衝響應 (System Impulse Response)定義

參考ch1的內容

任意的訊號可以以表示成

x[n]=k=x[k]δ[nk]

是不是跟卷積有點像呢!!

帶入ch2中DSP系統的定義

y[n]=T{x[n]}=T{k=x[k]δ[nk]}=k=x[k]T{δ[nk]}

比對Convolution的定義,發現

h[nk]=T{δ[nk]}

根據線性非時變 (LTI)的性質

h[n]=T{δ[n]}

根據上圖

存在一個DSP系統 T

當輸入 x[n] 訊號,產生輸出 y[n]

當輸入 δ[n] 訊號,產生輸出 h[n]

δ[n]是一個單位脈衝 (Unit Impulse)輸入

產生的h[n]有一個專有名詞: 脈衝響應 (Impulse Response)

備註: 響應 (Response)這個詞在DSP中描述系統的輸出,就只是一個響亮、高大上的名稱而已。

後續還會講到一個頻率響應 (Frequency Response),一樣在講系統的輸出,只是它在分析系統在各種不同頻率輸入之下會有甚麼表現。

3.4 卷積的代數性質

3.4.1 交換率

y[n]=x[n]h[n]=h[n]x[n]

3.4.2 結合率

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

3.4.3 分配率

y[n]=(h1[n]+h2[n])x[n]=h1[n]x[n]+h2[n]x[n]

3.5 卷積的應用 — 濾波器

Convolution是DSP的核心技術,最基本的應用就是訊號的濾波 (Filtering)。

此情況下,前面所提到的脈衝響應h[n],就是濾波器 (Filter)。

在此介紹一個最簡單的平均濾波器

平均濾波器 (Average Filter)

平均濾波器可定義為
h[n]=1M{1,1,,1},n=0,1,,(M1)


其中 M 為濾波器的大小

平均濾波器範例

若輸入訊號為x={1,2,4,3,2,1,1},n=0,1,,6
使用平均濾波器,濾波器大小為3,求輸出的數位訊號。

範例解答

x={1,73,3,3,2,43,23},n=0,1,,6

平均濾波器程式範例

import numpy as np
import numpy.random as random
import matplotlib.pyplot as plt

t = np.linspace( 0, 1, 200, endpoint = False )      
x = 10 * np.cos( 2 * np.pi * 5 * t ) + random.uniform ( -5, 5, 200 )
h = np.ones( 7 ) / 7
y = np.convolve( x, h, 'same' )

plt.figure( 1 )
plt.plot( t, x )
plt.xlabel( 't (second)' )
plt.ylabel( 'Amplitude' )

plt.figure( 2 )
plt.plot( t, y )
plt.xlabel( 't (second)' )
plt.ylabel( 'Amplitude' )

plt.show( )

Ref:


#Signal_Processing #DSP_Class







Related Posts

【THM Walkthrough】Breaching Active Directory

【THM Walkthrough】Breaching Active Directory

NeRF: Neural Rendering 的革命性方法(二)

NeRF: Neural Rendering 的革命性方法(二)

範圍鏈(Scope Chain)

範圍鏈(Scope Chain)


Comments