Mathematica的卷积运算

电网与清洁能源Mathematica的卷积运算
相⽐Matlab,在平时理解概念时我更喜欢⽤Mathematica,因为,⽆疑的,Mathematica的强⼤的符号运算总会让⼈⾝⼼舒畅。最近信号与系统学习卷积。我在Mathematica中研究了相关的函数,⾃觉收获很⼤。故在此总结。
⾸先是离散信号的卷积。先介绍有限信号的卷积(这是上课时刚开始的例⼦,但是在Mathematica中却似乎是最难理解的函数了)。相关的函数是:
⼀、ListConvolve
帮助如下:
1、基本⽤法:ListConvolve[ker, list] 构造核ker和list的卷积。
怡升科技出现的新概念是核。核即指核⼼,便是值输⼊的信号。list⾃然是单位冲击信号对应的响应了。以下是我的实验结果
可见,其参数其实是⼀个单⾏的矩阵。默认情况下是,开始的⼀个结果ker的最后⼀个元素和list的第⼀个元素对其,⽽最后⼀个是ker的第⼀个元素和list的最后⼀个元素对其。于是,得到的结果个数和list的个数相同。
2、第三个参数:ListConvolve[ker, list, k] 形成循环卷积,其中 ker 中的 k个元素和 list 中的每个元素对齐。
再次出现新概念:循环卷积。意思是,当结果范围超出list时(这种情况是在刚刚的默认情况时没有出现的),循环相乘。实验结果如下:
恐惧的总和可以见得,ker中的第⼀个元素:x,和a对其,然⽽y和z则对应于循环以后的h和g了。这就是循环卷积的意思了。
3、ListConvolve[ker,list,k,p] 当遇到循环时,不⽤循环元素,⽽是⽤p来代替。实验结果如下:
4、ListConvolve[ker,list,{kL,kR}] 形成循环卷积,它的第⼀个元素包含 list[[1]]ker[[kL]],最后⼀个元素包含 list[[-1]]ker[[kR]].
索尼爱立信 w380c这⾥再次涉及到⼀些东西。最主要的是,list去内容的运算。本质上,list和ker其实都是⼀个列矩阵。实验如下:
因此,[[x]]表⽰取x⾏。例如:
因此,上述帮助的意思是,我们可以规定其开始和结束的地⽅。开始的地⽅是list[[1]]和ker[[kL]],结束的地⽅是list[[-1]]ker[[kR]],其中-1指最后⼀⾏。只是很有⽤的。
通过以上四种⽤法相结合,我们就可以得到我们想要的卷积运算。使⽤Table可以⽣成希望的矩阵,然后循环是⽤0来代替。⽽且kL和kR来控制需要的范围。普遍做法如下:
⽰例:
⼆、DiscreteConvolve
人工电源网络DiscreteConvolve是将两个函数做卷积。需要给出函数的表达式,给出的是连续函数的表达式,但是计算时是进⾏整数点的采样,从⽽构成⼀个矩阵,进⾏计算。这⾥充分的体现了符号运算的强⼤之处。⽤法如下:
裆部DiscreteConvolve[f,g,m,n]表达式 f 和 g 的关于 n 的卷积.
实验如下:(本实验选⾃《信号与系统》奥本海姆第⼆版 例2.3
三、Convolve
Convolve[f,g,x,y]计算f和g关于x的卷积。
这个⽤法相对简单,实验如下:
以下实验选⾃《信号与系统》奥本海姆第⼆版例2.7

本文发布于:2024-09-22 04:15:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/293355.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:卷积   循环   信号   函数   结果   运算   矩阵
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议