Main Content

conv

畳み込みおよび多項式乗算

説明

w = conv(u,v)は、ベクトルuv畳み込みを返します。uvが多項式の係数のベクトルの場合、それらの畳み込みは 2 つの多項式の乗算と等価になります。

w = conv(u,v,shape)は、shapeの指定に従って、畳み込みのサブセクションを返します。たとえば、conv(u,v,'same')は畳み込みのuと同じサイズの中央部分のみを返し、conv(u,v,'valid')は畳み込みのゼロが加えられたエッジを含まずに計算された部分のみを返します。

すべて折りたたむ

多項式 x 2 + 1 および 2 x + 7 の係数を含むベクトルuおよびvを作成します。

u = [1 0 1]; v = [2 7];

畳み込みを使用して多項式の乗算を行います。

w = conv(u,v)
w =1×42 7 2 7

wに多項式 2 x 3 + 7 x 2 + 2 x + 7 の係数が格納されています。

2 つのベクトルを作成し、それらの畳み込みを行います。

u = [1 1 1]; v = [1 1 0 0 0 1 1]; w = conv(u,v)
w =1×91 2 2 1 0 1 2 2 1

wの長さはlength(u)+length(v)-1となり、この例では9になります。

2 つのベクトルを作成します。uvの畳み込みについて、uと同じサイズの中央部分を求めます。

u = [-1 2 3 -2 0 1 2]; v = [2 4 -1 1]; w = conv(u,v,'same')
w =1×715 5 -9 7 6 7 -1

wの長さは7です。完全な畳み込みの場合、長さはlength(u)+length(v)-1となり、この例では 10 になります。

入力引数

すべて折りたたむ

入力ベクトル。行ベクトルまたは列ベクトルのいずれかとして指定します。ベクトルuvの長さやデータ型は同じでなくてもかまいません。

uまたはvsingle型である場合、出力はsingle型になります。それ以外の場合、convは入力をdouble型に変換してdouble型を返します。

データ型:double|single|int8|int16|int32|int64|uint8|uint16|uint32|uint64|logical
複素数のサポート:あり

畳み込みのサブセクション。'full''same''valid'のいずれかとして指定します。

'full'

完全な畳み込み (既定の設定)。

'same'

畳み込みのuと同じサイズの中央部分。

'valid'

畳み込みのゼロが加えられたエッジを含まずに計算された部分のみ。このオプションを使用すると、length(v)が 0 の場合を除き、length(w)max(length(u)-length(v)+1,0)となります。length(v) = 0の場合は、length(w) = length(u)となります。

詳細

すべて折りたたむ

畳み込み

2 つのベクトルuvの畳み込みとは、vuの上に移動したときの点が重なる領域を表します。代数的には、畳み込みは係数がuvの要素である多項式の乗算と同じ演算になります。

m = length(u)およびn = length(v)とします。このとき、wは長さがm+n-1のベクトルで、そのk番目の要素は次のとおりです。

w ( k ) = j u ( j ) v ( k j + 1 ) .

これは、u(j)およびv(k-j+1)に関して適正な添字となるjのすべての値にわたる総和で、具体的にはj=max(1,k+1-n):1:min(k,m)です。m=nの場合、これは以下のようになります。

w(1) = u(1)*v(1) w(2) = u(1)*v(2)+u(2)*v(1) w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1) ... w(n) = u(1)*v(n)+u(2)*v(n-1)+ ... +u(n)*v(1) ... w(2*n-1) = u(n)*v(n)

拡張機能

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

参考

||||(Signal Processing Toolbox)|