線性卷积在DSP上的实现.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
線性卷积在DSP上的实现

线性卷积在DSP上的实现 摘要: 卷积和(简称卷积)是信号处理中常用的算法之一。数字卷积运算通常采用两种方法:线性卷积和圆卷积。DSP(Digital Signal Processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。 DSP典型应用框图 主程序 MATLAB C #include math.h #include stdio.h #define Nx a //序列x[k]的长度 #define Nh b //序列h[k]的长度 #define Length Nx+Nh-1 //卷积或相关结果序列的长度 int x[Nx]={}; int h[Nh]={}; int y[Length]; void convolution(int*, int*, int*); void main() { int k; //调用卷积程序 convolution(x, h, y); for(k=0;k=Length-1;k++) fprintf(stdout,%i ,y[k]); // 打印卷积计算结果 fprintf(stdout,\n ); } void convolution(int x[Nx] , int h[Nh], int y[Length] ) { int i,k; for (k=0;k=Length-1; k++) { int temp=0; for(i=0; iNx; i++) { if ((k-i)=0 (k-i) =Nh-1) temp=temp+x[i]*h[k-i]; } y[k]=temp; } } 线性卷积matlab实现(按照理论公式和conv函数两种方法) %按照理论公式法一: a=[4 5 6 7 8 9]; b=[ 7 5 8 ]; k=length(a); bk=length(b); n=length(a)+length(b)-1; a=[a zeros(1,n-k)]; b=[b zeros(1,n-bk)]; y=zeros(1,n); for i=1:n temp=0; for j=1:n if i=j temp=temp+a(j).*b(i+1-j) else break; end end y(i)=temp end y subplot(3,1,1) stem(y) %按照理论公式法二: for i=1:n j=max(1,i+1-bk):min(i,k); y2(i)=sum(a(j).*b(i+1-j)); end y2 subplot(3,1,2) stem(y2) %利用conv函数 a=[4 5 6 7 8 9]; b=[ 7 5 8 ]; y3=conv(a,b) subplot(3,1,3) stem(y3) 用C语言实现线性卷积, /* y(n)=x(n)*h(n) m--length of x(n); n--length of h(n); l=m+n-1 length of y(n) */ 线性卷积源程序 (2010-12-21 17:09:57) 转载▼ 标签: 分类: %自己做出的线性卷积算法,很难得,想从网上下一个的,谁知道百度文库需要20个金币,真是气愤, %然后就自己摸索着写出了这个线性卷积源码,解释相当清楚。 ? function yn=xianxingjuanji(x1,x2)? %定义函数mycomv x1=input(x1=); x2=input(x2=); N1=length(x1);???? %计算每个序列的长度 M=length(x2); ? L=N1+M-1;????????? %卷积后的序列的长度 for(n=1:L)??????? %利用算法实现卷积,外层循环次数L ??? y(n)=0; ??? for(m=1:M)??? %内层循环,用于计算每个y(n)的值 ??????? k=n-m+1;? %因为matlab中序列的下标是从1开始的,所以所有下标都+1 ??????? if(k=1k=N1)???? %只用计算1时的值,1是x2(m)为零,不用计算 ?????????? y(n)=y(n)+x2(m)*x1(k); ??????? end ??? e

文档评论(0)

sd47f8cI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档