您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 数字信号处理重叠保留法
武汉理工大学《数字信号处理》课程设计说明书课程设计任务书学生姓名:专业班级:指导教师:黄朝兵工作单位:信息工程学院题目:基于重叠保留法圆周卷积的实现初始条件:具备数字信号处理的理论知识;具备Matlab编程能力;分析重叠保留法的圆周卷积的原理;提供编程所需要的计算机一台要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、独立编写程序实现基于重叠保留法的圆周卷积2、用Matlab验证程序结果,并分析重叠保留法的圆周卷积的原理3、完成符合学校要求的设计说明书时间安排:一周,其中3天程序设计,2天程序调试指导教师签名:年月日系主任(或责任教师)签名:年月日武汉理工大学《数字信号处理》课程设计说明书目录摘要…………………………………………………………………………….(1)1概述…………………………………………………………………..….…(2)2理论分析………………………………………………………………….…(3)2.1圆周卷积与线性卷积………………………………………..…….(3)2.2圆周卷积的计算…………………………………………………….(4)2.3重叠保留法………………………………………………………….(5)3程序设计…………………………………………………………………….(7)3.1程序流程…………………………………………………………….(7)3.2程序流程图………………………………………………………….(8)3.3具体程序设计……………………………………………………….(9)3.4编写完整的程序…………………………………………….…….(10)4结果及分析………………………………………………………………..(11)5心得体会…………………………………………………….…………...(12)参考文献……………………………………………………………….…….(13)武汉理工大学《数字信号处理》课程设计说明书1摘要重叠保留法在运用时,随着数据规模的增大,运算耗时呈线性增长。当数据达到千万量级时,运算延时最少大约为2.335s,由此可见,此方法可运用于对信号的实时处理,同时重叠保留法具有较好的时间和空间复杂度。本次课程设计以matlab为工具得到重叠保留法的源程序,通过对序列的线性卷积计算,进而对重叠保留法进行更深层次的认识。关键字:重叠保留法序列线性卷积matlab武汉理工大学《数字信号处理》课程设计说明书21概述对于一个长序列nx1和一个短序列nx2,长度分别为N,M,圆周卷积的长度为L,在长序列的前面加上1M个零,然后对长序列进行分段,使得每段的长度为L不足的用零补。且前一分段的后1M个抽样值和后一分段的前1M个抽样值相同。这样形成的分段序列为:.其他,010,11LnMkNnxnxk(1.1)分成的段数为:12LMNk(1.2)然后计算nx2与各个分段之间的圆周卷积,其他,,01-Ln1-My⊙y'12'nnynxnxnkkkk(1.3)显然,nk'y的前1M个值发生了混叠,不等于nx2和nxk1的圆周卷积,把nk'y的前1M个值舍去,保留没发生混叠的后N个值,形成序列:其他,,01-Ln1-My'nnykk(1.4)最后将各段相加就可以得到最终的结果,kkMkNnyny1(1.5)武汉理工大学《数字信号处理》课程设计说明书32理论分析2.1圆周卷积与线性卷积设)(1nx和)(2nx为长度为N的有限长序列,且)()(11kXnxDFT,)()(22kXnxDFT,如果kXkXkY21,则kYIDFTnynRmnxmxNNNm1102(2.1.1)证明:相当于将)(~),(~21nxnx作周期卷积和后,再取主值序列。将)(ky周期延拓:)(~)(~~21kXkXkY)(则有:10211021))(()(~)(~)(~)(~NmNNNmmnxmxmnxmxkYIDFSny(2.1.2)在主值区间)())((,1011mxmxNmN,所以:nRmnxmxnRnynyNNmNN1021)()()(~)((2.1.3)同样可以证明:)()()(1012nRmnxmxnyNNmN(2.1.4)定义式(1)为序列)(1nx与)(2nx的圆周卷积,习惯表示为nnxy21x⊙n(2.1.5)从以上的证明过程也可以得出圆周卷积与周期卷积之间的关系,即有限长序列圆周卷积结果的周期延拓等于它们周期延拓后的周期卷积。也就是说,周期卷积的主值序列是各周期序列主值序列的圆周卷积。武汉理工大学《数字信号处理》课程设计说明书4线性卷积是求离散系统响应的主要方法之一,许多重要应用都建立在这一理论基础上,如卷积滤波等。用圆周卷积计算线性卷积的方法归纳如下:将长为N2的序列x(n)延长到L,补L-N2个零,将长为N1的序列h(n)延长到L,补L-N1个零。如果L≥N1+N2-1,则圆周卷积与线性卷积相等,此时,可有FFT计算线性卷积,方法如下:a.计算X(k)=FFT[x(n)]b.求H(k)=FFT[h(n)]c.求Y(k)=H(k)X(k)(k=0~L-1)d.求y(n)=IFFT[Y(k)](n=0~L-1)可见,只要进行二次FFT,一次IFFT就可完成线性卷积计算。上述结论适用于x(n)、h(n)两序列长度比较接近或相等的情况,如果x(n)、h(n)长度相差较多。例如,h(n)为某滤波器的单位脉冲响应,长度有限,用来处理一个很长的输入信号x(n),或者处理一个连续不断的信号,按上述方法,h(n)要补许多零再进行计算,计算量有很大的浪费,或者根本不能实现。为了保持快速卷积法的优越性,可将x(n)分为许多段后处理,每小段的长与h(n)接近,其处理方法有两种:重叠相加法和重叠保留法。本文讨论重叠保留法。2.2计算圆周卷积圆周卷积的具体步骤为:第一步:在哑元坐标上做)(1mx与)(2mx;第二步:把)(2mx沿着纵坐标翻转,得到)(2mx;第三步:对)(2mx做圆周移位,得nRmnxNN2;第四步:)(1mx与nRmnxNN2对应的相同m的值进行相乘,并把结果进行相加,得到的对应于自变量n的一个ny;第五步:换另一个n,重复第三、四步,直到n取遍[0,N-1]中的所有值,得到完整的ny。武汉理工大学《数字信号处理》课程设计说明书52.3重叠保留法为了克服重叠相加法中分段卷积后,仍然需要相加的缺点,人们提出了重叠保留法。这种方法和重叠相加法稍有不同,即将重叠相加法中补零的部分不是补零,而是保留原来的输入序列值,且保留在各段的前端,这时,如利用DFT实现h(n)和xi(n)的圆周卷积,则每段卷积结果的前N1-1个点不等于线性卷积值需舍去。为了清楚地看出这点,研究一下x(n)中一段长为N的序列xi(n)与h(n)(长为N1)的圆周卷积情况:10()()()()(())()NiiiNNmynxnhnxmhnmRn(2.3.1)由于h(n)的长度为N1,当0≤n≤N1-2时,h((n-m))N将在xi(m)的尾部出现有非零值,所以0≤n≤N1-2这部分yi(n)值中将混入xi(m)尾部与h((n-m))N的卷积值,从而使yi(n)不同于线性卷积结果,但当n=N1-1~N-1时,则有h((n-m))N=h(n-m),因此从n=N1-1点开始圆周圈卷积值完全与线性卷积值一样,yi(n)的后面N2点才是正确的卷积值,而每一段卷积运算结果的前N1-1点个值需去掉。图2.1重叠保留过程为了不造成输出信号遗漏,对x(n)分段时,需使相邻两段有N1-1个点的重叠(对于第一段,x(n)由于没有前一段保留信号,在其前填补N1-1点个零点)。为此将xi(n)定义为21(1)01()0ixniNNnNxn其它每段和h(n)的圆周卷积以yi(n)表示,()()()iiynxnhn,由FFT算出,去掉yi(n)的前N1-1点,再把相邻各段输出顺次连接起来就构成了最终的输出序列y(n)。重叠保留法每一输入段均由N-N1+1=N2个新点和前一段保留下来的N1-1个点所组成。武汉理工大学《数字信号处理》课程设计说明书6值得注意的是,对于有限长时间序列x(n)(长度为L=MN2),在结束段(i=M-1)做完后,我们所得到的只是L点的线性卷积,还少了N1-1点,实际上就是h(-n)移出x(n)尾部时的不完全重合点,或者说是最后一段的重叠部分N1-1少做了一次卷积,为此,因再补做这一段N1-1点,在其后填补N2点个零点保证长度仍为N点,一样舍去前取N1-1点,并从N1-1点开始,保留N1-1点。重叠保留法与重叠相加法的计算量差不多,但省去了重叠相加法最后的相加运算。一般来说,用FFT作信号滤波,只用于FIR滤波器阶数h(n)大于32的情况下,且取N2=(5~10)N1,这样可接近于最高效的运算。武汉理工大学《数字信号处理》课程设计说明书73程序设计3.1程序流程要实现基于重叠保留法的圆周卷积,假设有两个长度分别为N,M(MN)的序列nx1,nx2,要求做nx1和nx2L的圆周卷积。首先要对长序列序列nx1进行分段,分段的长度选圆周卷积的长度L,形成的分段序列:其他,010,11LnMkNnxnxk(3.1.1)然后将nx2逐一和各分段nxk1进行圆周卷积,得到:nxxnykk12⊙)((3.1.2)1012LmLLkRmnxmx最后输出序列:kkMkNnyny1(3.1.3)这样即完成了基于重叠保留法的圆周卷积的实现。同样,我们可以根据FFT计算线性卷积,方法如下:a.计算Xi(k)=FFT[xi(n)]b.求H(k)=FFT[h(n)]c.求Y(k)=H(k)Xi(k)k=0~L-1d.求y(n)=IFFT[Y(k)]n=0~L-1可见,只要进行二次FFT,一次IFFT就可完成线性卷积计算。武汉理工大学《数字信号处理》课程设计说明书83.2程序流程图图3-2重叠保留法圆周卷积运算流程图开始输入x(n),h(n),圆周卷积长度N计算x(n),h(n)长度及FFT变换长度x(n)序列前加M-1个0,若长度小于N,补0计算所需段数a,控制循环次数计算h(n)的离散傅里叶变换H(k)截取xi=x(K*N+1,K*N+L);X(k)=FFT[xi],Y(k)=X(k)*H(k),y(n)=IFFT[Y(k)]截去前M-1个重叠点,保留M到L点K=a?将保留的点相连,可得y(n)结束武汉理工大学《数字信号处理》课程设计说明书93.3具体程序设计首先编写基于重叠保留法的圆周卷积的主函数。这个主函数的功能应当是计算出两个序列的长度Lx、M,将长序列进行分段,然后再将短序列和长序列的各个分段分别进行圆周卷积,将分段卷积的的结果序列的前M-1个值舍去,将各个结果合并到一个序列中去,输出这个新序列,程序功能基本完成。主函数的编写过程如下:定义主函数:function[Y]=overlpsav(x,h,N)计算两个序列的长度:Lx=length(x);M=length(h);计算FFT运算序列长度:L=M+N-1;x序列前加M-1个0,序列后加N个0:x=[zeros(1,M-1),x,zeros(1,N)];求截取的段数:a=floor((Lx+M-1)/N);对h做快速傅里叶变换:c=fft(h,L);设置for循环,截取x的某一段xk,对xk进行FFT变换,对Y(k)=X(k)*H(k)进行反傅里叶变换,截取前M-1点,保留其余点:f
本文标题:数字信号处理重叠保留法
链接地址:https://www.777doc.com/doc-6165344 .html