Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский
Scilabヘルプ >> Signal Processing > Correlation Convolution > convol

convol

畳込み(コンボリューション)

呼び出し手順

y = convol(h, x)
[y,e1] = convol(h, x, e0)

引数

h

ベクトル, 最初の入力シーケンス ("短い" シーケンス)

x

ベクトル, 第2の入力シーケンス ( "長い" シーケンス)

e0

ベクトル,オーバーラップ加算のための前の結果の末尾 (最初のコールでは使用されません)

y

ベクトル, 畳込み.

e1

オーバーラップ加算のための新規結果の末尾 (最後のコールでは使用されません)

説明

fftを用いて2つの離散シーケンスの畳込み y= h*x を計算します. 畳込みは以下のように定義されます:

y_k = sum_j( h_j * x_{k+1-j} )

オーバーラップ加算法を使用できます.

オーバーラップ加算の使用例: x = [x1,x2,...,xNm1,xN] の時, 最初のコールは, [y1,e1] = convol(h,x1); その後のコール : [yk,ek] = convol(h,xk,ekm1); 最後のコール : [yN] = convol(h,xN,eNm1) 結果は, y = [y1,y2,...,yNm1,yN].

畳込みの定義に基づくアルゴリズムは,多項式の積として実装されます: y = convol(h,x) は, y = coeff(poly(h,'z','c')*poly(x,'z','c')) と等価ですが、 x が"長い"配列の場合には,はるかに効率的です.

x = 1:3;
h1 = [1,0,0,0,0];
h2 = [0,1,0,0,0];
h3 = [0,0,1,0,0];
x1 = convol(h1, x)
x2 = convol(h2, x)
x3 = convol(h3, x)
convol(h1+h2+h3, x)
p1 = poly(x,'x','coeff')
p2 = poly(h1+h2+h3, 'x', 'coeff')
p1 * p2

参照

  • corr — 相関 , 共分散
  • fft — 高速フーリエ変換
  • pspect — Welchの平均ペリオドグラム法による 2つの離散時間信号の間の両面相互スペクトル推定.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:37:49 CET 2022