MCPで接続 →

計算を入力してください

公式

広告

結果

線形畳み込み

4, 13, 28, 27, 18

第1数列 1,2,3
第2数列 4,5,6
最大値 28
最小値 4

この計算機でできること

線形畳み込み計算機は、2つの離散数列を「離散線形畳み込み(コンボリューション)」の演算で結合します。畳み込みはデジタル信号処理(DSP)の基本となる演算であり、線形時不変(LTI)システムの入力信号とインパルス応答がわかっているときに、その出力を求めるために使われます。2つの数列を入力するだけで、畳み込み後の数列全体に加えて、その最大値と最小値も即座に表示します。

使い方

入力欄は次の2つだけです。

  • 第1数列 – 入力信号 x を、カンマ区切りの数値で入力します。例:1, 2, 3
  • 第2数列 – もう一方の信号 h(多くの場合インパルス応答)を入力します。例:0, 1, 0.5

小数も負の数も使えます。各値は前後の空白が取り除かれてから数値として解釈されるため、スペースの有無は気にする必要はありません。

計算式

離散線形畳み込みは次のように定義されます。

$$y[n] = \sum_{k} x[k] \cdot h[n-k]$$

実際には、この計算機は二重ループによる直接計算で実装しています。第1数列のすべての要素を第2数列のすべての要素と掛け合わせ、各積 \(x[i] \cdot h[j]\) を出力位置 \(i + j\) に加算していきます。得られる数列の長さは len(x) + len(h) − 1 になります。

広告
2つの離散数列の線形畳み込みを反転・スライドで視覚化
線形畳み込みは一方の数列を反転させ、もう一方の上をスライドさせて重なった積を合計します。

計算例

x = [1, 2, 3]、h = [1, 1] とします。出力の長さは \(3 + 2 - 1 = 4\) です。

  • \(y[0] = 1 \cdot 1 = 1\)
  • \(y[1] = 1 \cdot 1 + 2 \cdot 1 = 3\)
  • \(y[2] = 2 \cdot 1 + 3 \cdot 1 = 5\)
  • \(y[3] = 3 \cdot 1 = 3\)

したがって畳み込みの結果は [1, 3, 5, 3] となり、最大値は 5、最小値は 1 です。

対角線方向に合計した乗算グリッドとして計算する畳み込み
各出力値は、乗算グリッドの対角線に沿った要素積の合計です。

よくある質問

結果の長さはどれくらいになりますか? 常に「2つの入力数列の長さの合計から1を引いた値」です。たとえば4要素の数列と3要素の数列を畳み込むと、6個の値が得られます。

数列を入力する順番は結果に影響しますか? いいえ。畳み込みには交換法則が成り立つため、第1数列と第2数列を入れ替えても同じ結果になります。

これは相互相関(クロスコリレーション)と同じものですか? いいえ。畳み込みでは、スライドさせる前に一方の数列を反転させます(式中の \(h[n-k]\) の項)が、相関では反転を行いません。そのため、どちらかの数列が対称でない限り、両者の結果は異なります。

最終更新: