畳み込み

実際に、インパルス応答と入力信号から出力信号を数値的に求める場合にはZ変換は使用せずに、

[式1]

を直接実行する。この計算を「畳み込み」または、英語で

convolution

と呼ぶscilabにはこれを実行する関数 convol が組み込まれている。

以前試した、エコーがかかるプログラム -> こちら

で、


w3=convol(p2,x) * 0.5;

は、p2がインパルス応答の数列であり、それとxとの畳み込みを計算することでエコーをかけている。たとえば以下を実行してみよう。

x=loadwave("yahoo.wav");
h=int(modulo(9999:29999,10000)/9999);
sound(convol(h,x),22050);

エコーを3回聞くことができる。