在泛函分析中,卷积(卷积)、旋积或摺积(英语:Convolution)是通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与经过翻转和平移与g的重叠部分的累积。如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是“滑动平均”的推广。算法原理:该例程实现的是离散线性卷积。两个卷积因子x(n)、y(n),输出卷积结果f(n),若x(n)序列长度为L、y(n)序列长度为M,则输出序列f(n)长度为L+M-1。离散卷积公式如下:∑∞−∞=−=∗=mmnymxnynxnf)()()()()(或∑∞−∞=−=∗=mmnxmynynxnf)()()()()(卷积是一种运算关系,例如,FIR滤波器的单位脉冲响应与输入信号序列的时域运算关系即为线性卷积。由于实际的信号都是因果序列,长度是有限的,因此上面的公式可以变换为如下所示:∑−=−=∗=10)()()()()(Lmmnymxnynxnf或∑−=−=∗=10)()()()()(Mmmnxmynynxnf如果直接将求和公式展开计算将会变得比较繁琐,因此,可以使用一种计算简便、易于手工计算的方法----对位相乘求和法计算卷积。具体计算方法可见本文件夹PPT格式资料《使用对位相乘求和法求卷积》。本算法例程就使用了对位相乘求和法计算卷积。以《使用对位相乘求和法求卷积》资料里面的例7-2-6为例进行计算。打开卷积例程Convolution加载到开发板中运行,点击左上角,会在编程窗口下方出现一个观察窗口,点击“Watch1”,由于例程将卷积输出放在数组y1中,在窗口里面输入y1然后回车,就可以看见卷积输出序列。如下图所示:计算结果与例7-2-6的计算结果是一致的。如果用户需要对例程进行使用,只需要修改以下几项:1、#definea3//x(n)的序列长度#defineb4//h(n)的序列长度修改a与b的预定义值,该为新的两个卷积序列长度。2、Uint16x1[a]={3,2,1};//卷积序列1Uint16h1[b]={4,3,2,1};//卷积序列2在初始化的时候将两个卷积序列进行赋值,或者在进行运算之前进行赋值。重新编译一下程序即可