畳み込み計算機
二つの数値列の離散線形畳み込みを計算し、信号処理や数学的解析に活用できます。
離散畳み込み
各有限数列をカンマ区切りの数値で入力してください。
畳み込みについて
畳み込みは二つの数列を組み合わせ、一方のパターンが他方をどのように変化させ、フィルタリングし、重なり合うかを表します。有限離散数列では、一方の数列を他方に沿ってずらしたときの積の和が各出力サンプルになります。一つ目の長さが m、二つ目が n の場合、完全な線形畳み込みの長さは m + n - 1 です。この計算機は全体を計算し、最初の重なりから最後の重なりまで順に表示します。
畳み込みはデジタル信号処理の各所で使われます。線形時不変システムでは、サンプリングされた入力信号とシステムのインパルス応答の畳み込みが出力になります。音声イコライザー、平滑化フィルター、エコーモデル、画像カーネル、通信路などに応用されています。確率論では独立な確率変数の和の分布を求める際にも使い、多項式の乗算も同じ係数ごとの計算パターンを用います。
出力サンプルを求めるには、添字の和がそのサンプルの添字になる値同士を組にし、それぞれを掛けて合計します。両端付近では重なる値が少なく、中央では多くの値が寄与します。整数、小数、負数に対応しているため、特別な記法なしで多くの実用的な有限信号を扱えます。計算するのは線形畳み込みであり、巡回畳み込みではありません。巡回畳み込みは固定周期で添字を折り返すため、異なる結果になることがあります。
畳み込みには交換法則があるので、二つの入力を入れ替えても出力は変わりません。結合法則と分配法則も成り立ち、直列接続したフィルターや分解したシステムの解析に役立ちます。値が一のサンプルだけからなるインパルスは単位元となり、どの数列と畳み込んでも元の数列を返します。どちらかの入力を一定倍すると、すべての出力も同じ倍率になります。
表示結果は、授業の演習、簡単なフィルター確認、手計算の照合に使えるサンプル一覧です。非常に長い数列は高速フーリエ変換で処理することが多い一方、ここで入力するような短い数列には直接和を求める方法が明快で確実です。サンプルの順序を統一し、意味のある遅延を表すゼロは省略せず入力してください。
畳み込みの例
| 入力数列 | 出力数列 | 解釈 |
|---|---|---|
| [1, 2, 3] と [1, 1] | [1, 3, 5, 3] | 二サンプルの移動和 |
| [1, 0, 2] と [2, 1] | [2, 1, 4, 2] | ゼロのサンプルを含む数列 |
| [2, -1] と [3, 4] | [6, 5, -4] | 符号付きの値にも対応 |
畳み込みの計算方法
- 一つ目の数列をサンプル順に、各数値をカンマで区切って入力します。
- 二つ目の数列も同じカンマ区切り形式で入力します。
- 「畳み込みを計算」を選び、すべての有効な重なりの積を合計します。
- 完全な出力数列を左から右へ読み取ります。
よくある質問
どの種類の畳み込みを計算しますか?
二つの有限数列について、離散線形畳み込みの全出力を計算します。巡回畳み込みのようにサンプルを折り返すことはありません。
出力がどちらの入力よりも長いのはなぜですか?
長さ m と長さ n の数列を畳み込むと、m + n - 1 個のサンプルが得られます。追加のサンプルは両端での部分的な重なりを表します。
負数や小数も入力できますか?
はい。カンマで区切る各項目には、負数を含む有限の整数や小数を指定できます。出力の丸めは、意味のない浮動小数点誤差を抑えるためだけに行います。
入力の順番は関係しますか?
いいえ。畳み込みには交換法則があるため、二つの数列を入れ替えても同じ結果になります。ずらし方の解釈は変わりますが、数値の出力は変わりません。
畳み込みと相関は同じですか?
いいえ。相関はずれごとの類似度を測り、通常は数列の反転や共役の扱いが異なります。畳み込みは主に、入力をシステム応答やカーネルと組み合わせるために使われます。