透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

摺積結果:

4, 13, 28, 27, 18

第一組序列 1,2,3
第二組序列 4,5,6

摺積計算機能幫你做什麼

這款摺積計算機可以計算兩組有限長度數列的「離散摺積」(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]\) 的總和,其中索引必須同時落在兩組序列的範圍內。簡單來說,這項運算就是把一組序列在另一組上「滑動」,將重疊的項目相乘,再在每一次位移時把它們加總起來。

Advertisement
離散卷積示意圖:將兩個序列翻轉並滑動重疊,產生一個輸出序列
卷積將一個序列翻轉後沿另一個序列滑動,在每次位移時對重疊部分的乘積求和。

實際範例

假設第一組序列為 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\)。

常見問題

輸出序列會有多長?永遠是第一組序列長度加上第二組序列長度再減一(\(n + m - 1\))。

兩組序列的先後順序有差別嗎?沒有。摺積具有交換律,因此交換兩組輸入會得到完全相同的結果序列。

可以拿來做多項式相乘嗎?可以。如果把每組序列視為一個多項式的係數,摺積的輸出就是兩個多項式相乘後的係數——無論是代數運算還是訊號處理,這都是非常方便的捷徑。

最後更新: