数字信号处理

课程设计

题目:通过重叠相加法实现卷积

院系:自动化与信息工程学院

专业:通信工程

班级: 通信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 y=Convmy4(A,B,L) %创建循环卷积函数

if L

error('出错');

end

if L>length(A) %如果A序列长度小于L则补零到L

A=[A,zeros(1,L-length(A))];

end

if L>length(B) %给B序列补零到L

B=[B,zeros(1,L-length(B))];

B=B'; %B转置

end

E=A(1,1);

C=A(1,[2:L]); %写循环矩阵的第一行

D=fliplr(C);

A=[E,D];

y(1)=A(1,1).*B(1,1);

for h=2:1:L

y(1)=y(1)+A(1,h).*B(h,1); % %计算循环卷积序列的第一个值

end

for k=2:1:L

t=A(1,L);

for i=L:-1:2

A(1,i)=A(1,i-1); %得到矩阵的第二到L行并计算循环卷积的

end %另外几个值

A(1,1)=t;

y(k)=0;

for m=1:1:L

y(k)=y(k)+A(1,m).*B(m,1);

end

end

4.主

matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc相关推荐

  1. 求二叉树上结点的路径c语言版,求二叉树根到给定节点的路径设计报告.doc

    求二叉树根到给定节点的路径设计报告 题目: 求二叉树根到给定节点的路径 摘要:本程序设计题要求出二叉树的根节点到给定节点的路径,我们利用二叉树的双亲存储表示法建立二叉树,然后在树的叶子节点中找到给定的 ...

  2. matlab 柱状图怎么叠加,如何让柱形图重叠起来

    国庆假期过去了,大家都上班了吧,我也继续更新文章. 今天,我们来讲一下,<表格设计课>12期里的投票问题: 如何让柱形图里的柱子重叠起来.我大致分为下面几点来讲: 柱形图重叠的前提 重叠的 ...

  3. Win11任务栏图标重叠怎么办 Win11任务栏图标重叠的解决方法

    Win11操作系统也推出一段时间了,不少小伙都有下载体验,但有一些小伙伴在使用Win11系统的时候发现自己任务栏图标重叠在一起,那么碰到这种情况应该怎么办,下面就和小编一起来看看有什么解决方法. Wi ...

  4. matlab编程的步骤,如何画matlab程序的流程图?求解答

    NF=input('请输入短路点的数目:NF=');   %输入短路点的数目NF for i1=1:NF     %给i1赋值短路点的数目,从1到NF clear; %清除 n1=input('请输入 ...

  5. 中南大学 科学计算与MATLAB语言 11矩阵求值

    中南大学 科学计算与MATLAB语言 11矩阵求值 矩阵求值主要包括 矩阵的行列式值 矩阵的秩 矩阵的迹 矩阵的范数 矩阵的条件数 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称方阵所 ...

  6. matlab中利用xy求取多项式z,matlab基础练习题

    3. 求有理分式()()()()3323230.522521x x x R x x x x ++=+-++的商多项式和余多项式 4. 一元多项式42234p x x x =-+,写出表示p 的MATL ...

  7. MATLAB新手简明使用教程(七)——使用matlab建立多项式以及求导,商求导乘积求导等——新手来看,保证看懂。

    前期回顾 上一期中,我们学了下面的知识: 定积分的基本概念和一些简单的几何意义. 使用 int 函数计算不定积分. 使用 int 函数计算定积分. 本期内容 本期我打算给大家介绍一下使用matlab对 ...

  8. 两个绝对值相减求最值_matlab同一矩阵任意两列相减绝对值的最大值和最小值

    展开全部 b = [1,2,10,4,5;6,7,8,9,10;11,8,13,14,15;16,17,20,19,20]; % 求出两两相减的列索引 ic = perms(1:5); ic = ic ...

  9. 已知函数和y值求自变量用matlab,matlab已知函数值求自变量,求助

    思路是这样的:你得到最小的函数值后,把它带入你作图的方程反解自变量的值.我不知道你画的这个函数图像的方程什么,我用一个二次方程y=x.^2+x给你做示范:先做图:x=-10:0.1:10;y=x.^2 ...

最新文章

  1. RDKit | 基于相似图可视化原子贡献
  2. 有向图php,小蚂蚁学习数据结构(29)——图的存储表示
  3. Android开发--浅谈ExpandableListActivity
  4. java classname.this_java 中 类名.this与类名.class
  5. nyoj 931 货物运输(Floyd输出路径)
  6. HDU2068(错列排序)
  7. 一、人工智能数学基础——线性代数
  8. Spring4.x(5)--ApplicationContext接口
  9. 单一IP地址静态NAT实验环境
  10. 使用libevhtp编写HTTP服务器的方法
  11. adb工具包的安装和使用(Windows)
  12. 解决a标签下载文件token验证问题
  13. Unity iOS XCode
  14. 免费的18个开源快速建站Java CMS
  15. 巴蜀1471 魔兽争霸
  16. 如何控制积分成本?常见的积分成本的核算方法
  17. 【百家讲坛】郦波副教授解读《曾国…
  18. android卡在开机画面,请教:用迅为4412开发板开机时卡在Android静止画面
  19. 唐僧向李世民汇报627年度工作总结报告,堪称国际水平!
  20. 华为、海尔之后,阿里在全屋智能领域有新动作,这次牵手的是萤石

热门文章

  1. LeetCode 543. 二叉树的直径(DFS)
  2. 数据结构--栈--顺序栈/链式栈(附: 字符括号合法配对检测)
  3. delphi 串口通信发送_关于串口通信232、485、422和常见问题,就没见过能讲这么清楚的...
  4. 河北省高校计算机大赛,河北省教育厅关于举办2016年华北五省(市、自治区)及港澳台大学生计算机应用大赛河北赛区竞赛的通知...
  5. 山西大学计算机应用专业,山西大学计算机应用技术专业
  6. 美团AI全景图:吃喝玩乐背后的黑科技
  7. 技术动态 | 北京大学计算机所邹磊教授研究组开源面向 RDF 知识图谱的自然语言问答系统 gAnswer...
  8. MiningZhiDaoQACorpus,580万百度知道问题,980万问答对数据挖掘项目
  9. leetcode-187-重复的DNA序列
  10. 【多线程】:Synchronized和ReentrantLock的对比