此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)

ListConvolve

Usage

ListConvolve[ker, list] 形成有list 的内核ker的卷积。
ListConvolve[ker, list, k] 形成循环卷积,其中ker中的k 个元素和list中的每个元素对齐。
ListConvolve[ker, list,   ,   ] 形成循环卷积,它的第一个元素包含 list[[1]] ker[[ ]],最后一个元素包含 list[[-1]] ker[[ ]]
ListConvolve[ker, list, klist, p] 形成卷积,其中list被放在重复元素 p的结尾。
ListConvolve[ker, list, klist,   ,  , ...  ] 形成卷积,其中list被放在循环重复  的结尾。
ListConvolve[ker, list, klist, padding, g, h] 形成一般卷积, g 代替Timesh代替 Plus.
ListConvolve[ker, list, klist, padding, g, h, lev]kerlistlev层上使用元素形成卷积。


Notes

• 在核  和列表  , ListConvolve[ker, list]计算  , 其中和式的极限使得内核不会超出列表的任何一边。
• 例如: ListConvolve[ x,y ,  a,b,c ]LongRightArrow .
ListConvolve[ker, list] 给出一个长度为 Length[list]-Length[ker]+1的结果.
ListConvolve[ker, list] 并不允许超出和等于 ListConvolve[ker, list,  -1, 1 ].
ListConvolve[ker, list, k] 等于 ListConvolve[ker, list,  k, k ].
ListConvolve[ker, list,   ,   ] 中的  的值决定在的每一边允许的伸出量。
  ,   的共同选项是:
"\!\(\*StyleBox[\"\\\"{-1,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"1}\\\"\", \"MR\"]\) ""无伸出量(缺省) "
"\!\(\*StyleBox[\"\\\"{-1,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"-1}\\\"\", \"MR\"]\) "右手端的最大"伸出量"
"\!\(\*StyleBox[\"\\\"{1,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"1}\\\"\", \"MR\"]\) "左手端的最大"伸出量"
"\!\(\*StyleBox[\"\\\"{1,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"-1}\\\"\", \"MR\"]\) "左右两端的最大"伸出量"
•例: ListConvolve[ x,y ,  a,b,c ,  1,1 ]LongRightArrow .
ListConvolve[ x,y ,  a,b,c ,  1,-1 ]LongRightArrow . • 仅在一端有最大伸出量,ListConvolve得到的结果和list的长度相同。
ListConvolve[ker, list,   ,   , padlist] 有效的放置padlist的重复拷贝,然后在它们上强加一个list的拷贝并形成结果的卷积。
padlist的共同选项是:
"\!\(\*StyleBox[\"\\\"p\\\"\", \"TI\"]\) "重复使用单个元素填补
{"\!\(\*StyleBox[\"\\\"p\\\"\", \"TI\"]\)"1"\!\(\*StyleBox[\"\\\",\\\"\", \"MR\"]\) ""\!\(\*StyleBox[\"\\\"p\\\"\", \"TI\"]\)"2"\!\(\*StyleBox[\"\\\",\\\"\", \"MR\"]\) ... "}" "循环使用元素序列填补
"\!\(\*StyleBox[\"\\\"list\\\"\", \"TI\"]\) """把"list"看作循环填补(缺省)
"\!\(\*StyleBox[\"\\\"{}\\\"\", \"MR\"]\) ""不填补"
ListConvolve 对多维核和数据列表使用。
ListConvolve[ker, list,    ,  , ...  ,    ,  , ...   ] 形成循环卷积,它的  1,1,...  元素包含 ker[[ ,  , ... ]] list[[1,1,... ]] ,它的  -1,-1,...  元素包含 ker[[ ,  , ... ]] list[[-1,-1,... ]].
  ,   取为等于    ,  , ...  ,   ,  , ...   . • 当一个函数 h被指定用作替换Plus,用一个深度等于ker的深度产生明确的嵌套 h 表达式。
ListConvolve 对精确数和符号数及近似数使用。
• 实现注释: 参见节 A.9.4.
• 参见 Mathematica 全书: 3.8.4.
• 同时参见: ListCorrelate, Partition, Inner, PadLeft.
Further Examples

This gives the convolution of  with  .

In[1]:=  

Out[1]=

Matrices such as this one can be used to illustrate how convolutions work. The elements of the convolution are formed by taking the dot product of the first row with each of the other rows. Spaces have been used instead of zeros for clarity.

In[2]:=  

In this case the element X at position  of the kernel is aligned with each element of the list in turn.

In[3]:=  

Out[3]=

In[4]:=  

Here the element Y at position  of the kernel is aligned with each element of the list.

In[5]:=  

Out[5]=

In[6]:=  

This forms the cyclic convolution whose first element contains 2 X and whose last element contains 6 X.

In[7]:=  

Out[7]=

In[8]:=  

Here the list is padded with repetitions of P.

In[9]:=  

Out[9]=

In[10]:=  

This pads the list with P, Q. The reversed list is put on top of a cyclic repetition of P, Q.

In[11]:=  

Out[11]=

In[12]:=  

Here Plus and Times are replaced by Times and Power.

In[13]:=  

Out[13]=

In[14]:=  

This multiplies x and y together in base b.

In[15]:=  

For instance, this multiplies  and  in base  .

In[16]:=  

Out[16]=

In[17]:=  

Out[17]=

In[18]:=  

Out[18]=

In[19]:=