文档介绍:
实验3利用FFT计算线性卷积一、实验目的 1.掌握利用FFT计算线性卷积的原理及具体实现方法。 2.加深理解重叠相加法和重叠保留法。 3.考察利用FFT计算线性卷积各种方法的适用范围。二、实验设备与环境 计算机、matlab软件环境。三、实验基础理论1.线型卷积和圆周卷积设x(n)为L点序列,h(n)为M点序列,x(n)和h(n)的线性卷积为yln=xn*yn=m=-∞∞xmh(n-m)yl(n)的长度为L+M-1。x(n)和h(n)的N点圆周卷积为yn=xnyn=m=-∞∞xmhn-mNRN(n)圆周卷积与线性卷积相等而不产生交叠的必要条件为N≥L+M-1圆周卷积定理:根据DFT的性质,x(n)和h(n)的N点圆周卷积的DFT等于它们DFT的乘积DFTxnhn=XkHk 2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以用圆周卷积来计算,必须选择N≥L+M-1;同时为了能使用基-2FFT完成卷积运算,要求N=2v。采用补零的办法使x(n)和h(n)的长度均为N。(2)计算x(n)和h(n)的N点FFTxnXkhnHk(3)组成乘积Yk=XkHk(4)利用IFFT计算Y(K)的IDFT,得到线性卷积y(n)Ykyn 3.分段卷积我们考察单位取样响应为h(n)的线性系统,输入为x(n),输出为y(n),则yn=xn*hn 当输入序列x(n)极长时,如果要等x(n)全部集齐时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量存贮单元。为此我们把x(n)分段,分别求出每段的卷积,合在一起得到最后总的输出。这种方法称为分段卷积分段卷积可细分为重叠保留法和重叠相加法。重叠保留法:设x(n)的长度为Nx,h(n)的长度为M。我们把序列x(n)分成多段N点序列xi(n),每段与前一段重叠M-1个样本。由于第一段没有前一段保留信号,为了修正,我们在第一个输入端前面填充M-1个零。计算每一段与h(n)的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。所以我们将每段卷积结果的前M-1个样本社区,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来,得到总输出。利用FFT实现重叠保留发的步骤如下:在x(n)前面填充M-1个零,扩大以后的序列为xn={0,0,…,0,M-1个xn}将x(n)分为若干N点子段,设L=N-M+1为每一段的有效数据长度,则第i段xi(n)(0≤n≤N-1)的数据为xin=xmiL≤m≤iL+N-1,i≥0,0≤n≤N-1计算每一段与h(n)的N点圆周卷积,利用FFT计算圆周卷积:xinXikhnHkYik=Xi(k)H(k)Yikyin舍去每一段卷积结果的前M-1个样本,连接剩下样本,得到卷积结果y(n)。重叠相加法:设h(n)长度为M,将信号x(n)分解成长为L的子段,建议L选择与的M数量级相同,以xi(n)表示没每段信号,则xn=i=0∞xinxi=xn+iL,0≤n≤L-10,其它xn*hn=i=0∞xin*h(n)每一段卷积yi(n)的长度为L+M-1,所以在做求和时,相邻两段序列有M-1个样本重叠,即前一段的最后M-1个样本喝下一段的前M-1个序列重叠,这个重叠部分相加,再与不重叠部分
内容来自淘豆网www.taodocs.com转载请标明出处.