03-numpy玩轉(zhuǎn)信號處理(卷積)
摘要:本文深入理解一維信號的卷積,先討論連續(xù)域的卷積,然后再延伸到離散域。
00 振動力學(xué)問題
在振動力學(xué),單自由度系統(tǒng)對非周期激勵的響應(yīng)篇章中,一般會提到杜哈梅爾積分(Duhamel 積分),其實就是激勵與系統(tǒng)脈沖響應(yīng)的卷積。這個物理事實是理解卷積的重要突破口。

01 響應(yīng)其實是每一時刻激勵的響應(yīng)的疊加
首先將非周期激勵看作無數(shù)個沖擊組成,每一時刻的激勵就是每一個時刻的沖擊。


用圖示意就是:

02 離散域的卷積

03 卷積和移動平均(平滑)的關(guān)系
平滑:一個一維數(shù)組A,每個元素的大小都一樣,將這個數(shù)組A和信號B(信號B也是一個一維數(shù)組,更長一點)進行卷積計算,就等于對這個信號B進行了平滑處理。
這個過程可以這樣理解:一維數(shù)組A就是一個特殊系統(tǒng)的脈沖效應(yīng),即不衰減。信號B的每個數(shù)據(jù)點和數(shù)組A相乘,然后再疊加,就相當(dāng)于:
這樣其實就是信號B的相鄰一段數(shù)據(jù)點(個數(shù)由數(shù)組A的個數(shù)決定)的平均,就是平滑處理;
04 理解卷積的關(guān)鍵詞
第一:脈沖
第二:脈沖響應(yīng);
第二:響應(yīng)疊加;
05 numpy中卷積用于移動平均(平滑)
import numpy as np
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,2,1/fs)
f=5
s1=2*np.sin(2*np.pi*f*t)
s2=np.random.rand(512)
s3=s1+s2
window=np.ones(11)
window/=sum(window)
con_1=np.zeros(5).tolist()+np.convolve(s3,window,mode='valid').tolist()+np.zeros(5).tolist()
plt.plot(t,s3,color='k',linewidth=0.8)
plt.plot(t,con_1,color='b',linewidth=1.5)
plt.grid()
plt.show()

工程師必備
- 項目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















