- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验十九线性卷积计算
北京工业大学电控学院信息工程实验报告实验19、20、21*2011-4-29[在此处键入文档的摘要。摘要通常是对文档内容的简短总结。在此处键入文档的摘要。摘要通常是对文档内容的简短总结。]陶莎娜验十九 线性卷积计算一、实验目的1、掌握两短序列线性卷积的直接计算方法。 2、掌握DFT计算线性卷积的方法。 3、掌握一长序列与一短序列作线性卷积的方法。二、实验条件给出FFT函数子程序void fft()于digit.c。Dft()函数子程序。Turbo C 2.0、 cl.lib,xxgc.h。586微机一台。三、编程思想1、直接卷积:根据卷积定义:y(n)=x(n) h(n)=∑x(k)h(n-k)实现思路:y[0]..y[L-1],x[0]..x[N-1],h[0]..h[M-1];general:L=M+N-1;as:0=k=M+N-2,0=n-k=M-1,0=k=N-1so:K=0,K=n-M+1; k=N-1,K=n;2、FFT的两种实现方法——叠接相加法、叠接舍去法将一次圆卷分为几次完成,而每次圆卷的序列长= 输入序列分段后每段的序列长+系统序列长-1+补零至2的n次幂。叠接舍去法是将前面一段的尾部补至本段的头部以保证每段输入序列的序列长为要求的序列长。系统函数依旧是补零至要求的序列长,圆卷满足交换律故以系统函数作为乘数。当系统函数翻转,周期延拓后,由于其主值序列除n=0处的值都已被翻转至负半轴,因此不难想象其在原主值序列的补零处将出现因周期延拓后而产生的除n=0外的系统主值序列。其非零值的数量共为系统函数序列长减1,故其每段圆卷只需将这些值舍去,再将各段拼接即可。叠接相加法是将输入序列所分的每段尾部补零至所要求的序列长。系统函数依旧是补零至要求的序列长。圆卷满足交换律故以系统函数作为乘数。当系统函数翻转,周期延拓后,由于其主值序列除n=0处的值都已被翻转至负半轴,这里与重叠舍去法是相同的。但由于输入序列尾部补零,故其原补零处出现的非零值没有对圆卷造成干扰,相反由于其在最初几个值做圆卷时,没有算上前一段尾部的值(这部分都被补零了)故需要把前一段的尾部(相应的这部分没有算上后端的头部)与当前段相加,再将各段相接即可。四、实验内容1、给定N点序列x(n)及M点序列h(n),计算其卷积:并利用序列:x(n)=1,2,3,4;N=4H(n)=3,2,1;M=3检验所编程序的正确性,考虑卷积求和的上下限,以达到最少技术次数的目的。程序如下:直接线性卷积的函数void convol(double *x,int N,double *h,int M,double *y,int L){ /*线性卷积定义*/int n,k,kk;for(n=0;nL;n++) for(k=(n=M)?n-M+1:0,kk=(Nn)?n:N-1,y[n]=0;k=kk;k++) y[n]+=x[k]*h[n-k]; }设置输入函数与系统函数int N=5,M=3,L=10,i,a; /*n,gd=VGA,gm=1,w,key,kv;*/double x[8]={1,2,3,4,5},h[8]={3,2,1},y[20]; 画出线性卷积printf((1) directly convolution); convol(h,M,x,N,y,L);plotxy2(RED,show1,y,L);实验结果如图: 2、利用卷积定理计算线性卷积①程序模块:printf((2) fft convolution);for(i=M+N-1,L=1;i!=0;){i=i1;L=L1;}fft_ccc(f,L,1);fft_ccc(r,L,1);for(i=0;iL;i++)f[i]=cmul(f[i],r[i]);fft_ccc(f,L,-1);plotxy2(RED,show,f,8);②实验结果:3、利用“叠接舍去法”计算线性卷积:思路: a、将x(n)分成长L的小段xi(n),令h(n)的实际长度为M。b、在做每一段xi(n)和h(n)的线性卷积时,将xi(n)的长度向后扩展为(L+M-1),即x1(n)从n=0,1,至L+M-2。c、取第二段x2(n)时,n不是从L+M-1点开始,而是从第L点开始。这样前一段于后一段卷积后作搭接时,两段中间将有多余部分,应予舍去,故称“叠接舍去法”。令x(n)=n+1,n=0,1…..,14,N=15 h(n)=M-n,n=0,1,2,M=3或用直接法,或用卷积定理,或用叠接舍去法计算x(n)和h(n)的线性卷积。(1)、直接法:①程序模块:printf((3) 15 data fft convolution\n);{dcomplex x[32]={1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,
文档评论(0)