1. カメラ
  2. カーオーディオ&エレクトロニクス
  3. ホームオーディオ
  4. パーソナルオーディオ
  5. テレビ
  6. スマートホーム
  >> 電子技術オンライン >  >> スマートホーム >> スマートライフ

関数を使用せずに MATLAB で畳み込みを適用する方法

畳み込みは、1 つの関数が別の関数の上に移動するときに、2 つの関数のオーバーラップを基準にして 2 つの関数をブレンドする数学演算です。 MATLAB には事前に構築された畳み込み関数が含まれていますが、離散畳み込み積分を自分で計算することができます。 2 つの関数 f と g の離散畳み込みは、f(j) * g(k-j) の範囲 0 から j の合計として定義されます。

ステップ 1

畳み込みたい 2 つの関数を含む 2 つのベクトル f と g を定義します。 f と g の長さは同じである必要はありません。畳み込みの結果の長さ k は、f と g の長さの合計よりも 1 少なくなります:

m =長さ (f); n =長さ (g); k =m + n - 1;

ステップ 2

畳み込みが発生する範囲 j を定義します。 j の値は、畳み込み対象の 2 つの関数 f(j) と g(k+1-n) の添え字が有効な範囲です。 k に追加される 1 の値は、MATLAB が 0 ではなく 1 でベクトルのインデックス付けを開始するという事実を説明するためのものです:

j =max(1,k+1-n):min(k,m)

ステップ 3

畳み込みの結果のためのスペースを事前に割り当てます:

my_result =zeros(k);

ステップ 4

k の値を反復処理する for ループを作成します。

result_index =1:k の場合

ステップ 5

j のすべての値の畳み込みを計算します:

my_result(k) =sum(f(j) .* g(k-j+1));

ステップ 6

「end」コマンドで for ループを閉じます。