摺積計算機能幫你做什麼
這款摺積計算機可以計算兩組有限長度數列的「離散摺積」(discrete convolution)。摺積是訊號處理、影像濾波、機率運算與多項式相乘中最核心的運算之一。你不必再一格一格手算累加,只要輸入兩組數列,工具就會立刻回傳合成後的輸出序列。
使用方法
只需要填寫兩個欄位:
- 第一組序列 — 你的輸入訊號或第一組數字,請以逗號分隔輸入(例如
1, 2, 3)。 - 第二組序列 — 你的第二組訊號、核(kernel)或濾波器,同樣以逗號分隔(例如
0, 1, 0.5)。
支援小數與負數。計算機會依逗號拆解每筆輸入、自動去除多餘空白,並在運算前把每個項目轉換成數值。
公式說明
離散摺積的定義為:
$$(\text{Seq}_1 * \text{Seq}_2)[i] = \sum_{j=\max(0,\,i-m+1)}^{\min(i,\,n-1)} \text{Seq}_1[j]\cdot \text{Seq}_2[i-j]$$對於長度分別為 \(n\) 與 \(m\) 的兩組有限序列,計算結果恰好會有 \(n + m - 1\) 個數值。每一個輸出值 \(y[i]\) 都是所有乘積 \(x[j] \cdot h[i - j]\) 的總和,其中索引必須同時落在兩組序列的範圍內。簡單來說,這項運算就是把一組序列在另一組上「滑動」,將重疊的項目相乘,再在每一次位移時把它們加總起來。
實際範例
假設第一組序列為 1, 2, 3,第二組序列為 0, 1, 0.5。此時 \(n = 3\)、\(m = 3\),因此結果會有 \(3 + 3 - 1 = 5\) 個數值:
- \(y[0] = 1 \cdot 0 = 0\)
- \(y[1] = 1 \cdot 1 + 2 \cdot 0 = 1\)
- \(y[2] = 1 \cdot 0.5 + 2 \cdot 1 + 3 \cdot 0 = 2.5\)
- \(y[3] = 2 \cdot 0.5 + 3 \cdot 1 = 4\)
- \(y[4] = 3 \cdot 0.5 = 1.5\)
所以輸出結果為 0, 1, 2.5, 4, 1.5。
常見問題
輸出序列會有多長?永遠是第一組序列長度加上第二組序列長度再減一(\(n + m - 1\))。
兩組序列的先後順序有差別嗎?沒有。摺積具有交換律,因此交換兩組輸入會得到完全相同的結果序列。
可以拿來做多項式相乘嗎?可以。如果把每組序列視為一個多項式的係數,摺積的輸出就是兩個多項式相乘後的係數——無論是代數運算還是訊號處理,這都是非常方便的捷徑。