卷积【长期讨论与积累】
卷积(褶积,Convolution)最早在1754年由法国数学家达朗贝尔提出,当时他在《宇宙体系的几个要点研究》中采用卷积积分推导泰勒定理;随后的1778年法国数学家拉普拉斯在概率论中正式使用卷积。至此,卷积还都只是在数学领域应用。1960年代到1980年代,美国和日本的多位科学家用于矩阵输入系统的模式识别,随后开辟出卷积神经网络应用于工程(生物)领域并持续发展至今。此是应用于神经生物学领域。
在几乎同时期发展的双控理论及与各类线性变换一同发展的时频域信号分析中,卷积、反卷积、卷积定理等数学工具也大量应用,并成为我们电气工程专业基础课《电路》中的必修内容(一般人在大二之前的学习内容中都不会遇到);同时在地质探测、地震研究、油气勘探和开采中也都有应用。
在20年前的本世纪初,当Schroeter、Hollaender和Gringarten等人解决了反卷积计算方法上的稳定性问题后,有专家预言:随着测试新工具和新技术的增加和应用,以及与其它专业研究成果的更紧密结合,采用包含卷积算法的运算工具在工程测量中的作用与重要性将不断增大;
引用《数字信号处理》中的卷积定理:将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算、节省运算。
其C++代码如下:
1 void convolution(double *input1, double *input2, double *output, int mm, int nn)
2 {
3 double *xx = new double;
4 // do convolution 【进行卷积】
5 for (int i = 0; i < mm + nn - 1; i++)
6 {
7 xx = 0.0;
8 for (int j = 0; j < mm; j++)
9 {
10 if (i - j >= 0 && i - j < nn)
11 xx += input1 * input2;
12 }
13 }
14 // set value to the output array 【输出数组XX值】
15 for (int i = 0; i < mm + nn - 1; i++)
16 output = xx;
17 delete[] xx;
18}
发现更早线索:
与达朗贝尔同样在18世纪的数学家欧拉(瑞士),最早在积分学和微分方程的研究中提出了卷积的核心思想,被视为卷积概念的起源。欧拉通过定积分和函数变换的形式,为后续卷积运算奠定了基础。
再往前的数学大神就是牛顿了,目前没有发现牛顿有关于卷积的研究记录。
页:
[1]