旭辉网站建设,免费制作手机网页,网上举报平台,绿色系网站数字信号处理课程设计题目#xff1a;通过重叠相加法实现卷积院系#xff1a;自动化与信息工程学院专业#xff1a;通信工程班级: 通信091学号: 3090432028姓名: 雷帛川指导教师: 李建勋职称: 副教授2012年7月1日2012年7月14日用结构化设计方法。一个程序划分成若干模块通过重叠相加法实现卷积院系自动化与信息工程学院专业通信工程班级: 通信091学号: 3090432028姓名: 雷帛川指导教师: 李建勋职称: 副教授2012年7月1日2012年7月14日用结构化设计方法。一个程序划分成若干模块每一个模块的函数功能要划分好总体设计应画出流程图输入输出界面要友好源程序书写要规范加必要的注释要提供通过Matlab函数进行检验的结果程序一定要要能运行起来。原理经常遇到两个序列的长度相差很大的情况解决这个问题的方法就是将长序列分段计算运用分段处理方法中的重叠相加法计算两个序列的卷积运算。设一个给定序列是长度为n1的A,另一个导入序列是长度为n2的B,其中B序列是相对A序列比较长的所以可以把B分为和A一样长的若干段段即B分后每一小段长度为n1。根据公式可知将B序列的每一小段与A序列做现行卷积然后将所有的n2/n1段的线性卷积结果相加起来就是整个B序列和A序列的线性卷积结果,而又在本设计中B序列的一小段和A序列的线性卷积又可由循环卷积来实现只要让循环卷积的点数循环卷积的结果就和线性卷积的结果等价在本实验中取,故A序列和B序列的线性卷积可认为是由A序列和B的每一小段做点的循环卷积的最终累加和另外还有两个个问题需要考虑首先是做循环卷积时要对A序列和B序列的那一小段补零做卷积后最终做累加的时候要考虑重叠的片段必须将重叠的两段加起来。不重叠的片段直接赋值。其次是如果B序列长度n2不是A序列长度n1的整数倍时必须将B序列余下的那几个数补零后和A序列做点循环卷积再加到最终的结果的相应位置。下列是计算循环卷积的过程在本次课设题中序列A和B序列的某一小段做循环卷积由于已知A序列的长度为n1故可取B序列的每一小段都和A序列相等长度并且取循环卷积的点数为这就保证每一组的循环卷积都等效于线性卷积。做循环卷积可运用循环卷积矩阵做其第一步是将A序列和B序列的某一小段补零到长度为然后把A序列通过变换生成的循环卷积矩阵将补零后的B的某一小段转置然后用循环卷积矩阵乘以它就可以得到循环卷积的结果在此也即线性卷积。重叠相加法的图示如下设计过程1.循环卷积子函数流程图2.主函数流程图3.循环卷积子函数源程序function yConvmy4(A,B,L) %创建循环卷积函数if Lerror(出错);endif Llength(A) %如果A序列长度小于L则补零到LA[A,zeros(1,L-length(A))];endif Llength(B) %给B序列补零到LB[B,zeros(1,L-length(B))];BB; %B转置endEA(1,1);CA(1,[2:L]); %写循环矩阵的第一行Dfliplr(C);A[E,D];y(1)A(1,1).*B(1,1);for h2:1:Ly(1)y(1)A(1,h).*B(h,1); % %计算循环卷积序列的第一个值endfor k2:1:LtA(1,L);for iL:-1:2A(1,i)A(1,i-1); %得到矩阵的第二到L行并计算循环卷积的end %另外几个值A(1,1)t;y(k)0;for m1:1:Ly(k)y(k)A(1,m).*B(m,1);endend4.主