根據(jù)信號(hào)與系統(tǒng)答疑過(guò)程中,學(xué)生對(duì)于三角形信號(hào)卷積結(jié)果的疑惑,給出了相應(yīng)的數(shù)值、理論、以及頻譜分析的解答。特別是后面頻譜分析部分也是由另外參加答疑的同學(xué)提出的。之所以這個(gè)題目會(huì)產(chǎn)生疑問(wèn),主要原因來(lái)自于卷積計(jì)算“圖解法”所帶來(lái)的誤導(dǎo)。圖解方法只能幫助確定卷積的階段和積分上下限,求解卷積結(jié)果還是需要根據(jù)實(shí)際信號(hào)函數(shù)進(jìn)行計(jì)算。
01 三角波卷積
一、答疑碰到的問(wèn)題
這兩天信號(hào)與系統(tǒng)期末考試答疑中,多次碰到學(xué)生詢問(wèn)起一個(gè)課堂練習(xí)的習(xí)題。也就是為什么兩個(gè)等腰三角形的卷積是答案(C):一個(gè)類似于升余弦的光滑曲線,而不是答案(B)一個(gè)尖頂?shù)拿}沖。此時(shí)才意識(shí)到這個(gè)問(wèn)題的確有和直覺(jué)相違背的地方。
▲ 圖1.1.1 三角波與自身的卷積波形:選擇題
通過(guò)分析,造成判斷錯(cuò)誤的來(lái)源,實(shí)際上是誤用了求解卷積過(guò)程中的“圖解法”。圖解方法通過(guò)把卷積的數(shù)學(xué)運(yùn)算轉(zhuǎn)換成信號(hào)波形的變化,幫助確定卷積階段和積分的上下限。但往往也會(huì)對(duì)卷積結(jié)果產(chǎn)生誤導(dǎo),即部分同學(xué)會(huì)將兩個(gè)圖像重疊對(duì)應(yīng)的圖像面積當(dāng)做求解的結(jié)果,但這種情況只能發(fā)生在一個(gè)信號(hào)是常量的情況。
▲ 圖1.1.2 對(duì)于簡(jiǎn)單信號(hào)所使用的圖解方法
二、問(wèn)題分析
這兩天答疑過(guò)程中,學(xué)生也給出了對(duì)于這個(gè)問(wèn)題很好的解釋。下面給出相應(yīng)的總結(jié):
1、數(shù)值求解
下面是通過(guò)數(shù)值求解反映的 一些等腰三角形與其自身卷積的結(jié)果,結(jié)果說(shuō)明了兩個(gè)等腰三角學(xué)卷積的確是一個(gè)一階導(dǎo)數(shù)光滑的曲線。
▲ 圖1 三角波與三角波相互卷積
2、理論分析
對(duì)于這類有限長(zhǎng)度的簡(jiǎn)單信號(hào),在求解它們之間相互卷積的時(shí)候,同時(shí)使用“圖解法”幫助確定積分的區(qū)間。由于兩個(gè)三角波形自身都具有兩個(gè)變化階段一個(gè)是上升階段,一個(gè)是下降階段。它們的長(zhǎng)度相同,所以通過(guò)簡(jiǎn)單分析可以知道這兩個(gè)三角波卷積過(guò)程,它們重合情況可以分成四個(gè)階段,如下圖所示。當(dāng) 不在這四個(gè)階段的時(shí)候,兩個(gè)三角形不重合,卷積結(jié)果為 0。
▲ 圖1.2.2 卷積過(guò)程中四個(gè)不同的重疊階段
由于參與卷積的信號(hào)左右對(duì)稱,所以只需要對(duì)于第一、第二階段進(jìn)行求解;然后將結(jié)果偶對(duì)稱得到信號(hào)在 之后的結(jié)果。
(1)第一個(gè)階段
在 時(shí),兩個(gè)三角形的重疊范圍是 。此時(shí)對(duì)應(yīng)的卷積運(yùn)算為
這個(gè)求解化簡(jiǎn)過(guò)于繁瑣,使用Python中的符號(hào)求積分軟件包可以幫助進(jìn)行求解
t,T = symbols('t,T')
result = integrate(-(T-t-1)*(T+1),(T,-1,t))
(2)第二階段
在 ,參與卷積的信號(hào)重疊方式為如下圖所示,重疊區(qū)域?yàn)?。
合并前面求解的第一、第二階段的公式,將它們進(jìn)行反褶之后,便可以得到第三、第四階段的公式。最終三角形卷積的結(jié)果為:
(3)數(shù)值驗(yàn)證
下面使用Python對(duì)上述公式進(jìn)行繪制,查看卷積結(jié)果的信號(hào)波形。
def w(t,t1,t2):
return heaviside(t-t1, 0.5)-heaviside(t-t2, 0.5)
def f1(t):
return t**3/6 + t**2 + 2*t + 4/3
def f2(t):
return -t**3/2 - t**2 + 2/3
def f(t):
return f1(t) * w(t, -2, -1) +
f2(t) * w(t, -1, 0) +
f2(-t) * w(t, 0, 1) +
f1(-t) * w(t, 1, 2)
t = linspace(-2, 2, 500)
fdim = f(t)
plt.plot(t, fdim)
plt.xlabel("t")
plt.ylabel("f(t)")
plt.grid(True)
plt.tight_layout()
plt.show()
3、傅里葉變換
可以利用傅里葉變換卷積定理,分析兩個(gè)三角脈沖信號(hào)的卷積。對(duì)于高度為 1,寬度為 2 的對(duì)稱等腰三角型,對(duì)應(yīng)的頻譜為
卷積結(jié)果對(duì)應(yīng)的頻譜為:
當(dāng)然,直接從上面結(jié)果進(jìn)行傅里葉反變換求解卷積時(shí)域表達(dá)式也比較麻煩,不過(guò)它可以告訴我們,卷積結(jié)果的頻譜幅度衰減的規(guī)律應(yīng)該是 。再由信號(hào)波形的光滑性與頻譜衰減之間的關(guān)系可知,卷積結(jié)果應(yīng)該是滿足二階導(dǎo)數(shù)連續(xù)。由此也可以幫助判斷在選擇題中,只有答案(C)能夠滿足二階導(dǎo)數(shù)連續(xù)的要求,其它三個(gè)信號(hào)波形對(duì)應(yīng)的一階導(dǎo)數(shù)都不連續(xù)。