文档库 最新最全的文档下载
当前位置:文档库 › 利用傅立叶变换计算线性卷积

利用傅立叶变换计算线性卷积

利用傅立叶变换计算线性卷积
利用傅立叶变换计算线性卷积

实验一 利用傅立叶变换计算线性卷积

一、实验目的

1. 掌握MATLAB 的使用。

2. 掌握用直接法计算线性卷积的原理和方法

3. 掌握利用FFT 及IFFT 计算线性卷积的原理和方法

二、实验原理及方法

1、线性卷积的定义

序列)1N n 0(),n (x -≤≤和序列)1M n 0(),n (h -≤≤的线性卷积y(n)=x(n)*h(n)定义为:

10),()()(1

0-+≤≤-?=

∑-=M N n m n h m x n y N m 利用直接法计算线性卷积即用线性卷积的定义计算。

2、利用FFT 及IFFT 计算线性卷积的原理和方法

如果将序列x(n)和h(n) 补零,使其成为长度为L 的序列(L>=N+M-1), 则x(n)与h(n)的线性卷积y(n)=x(n)*h(n)与L 点圆周卷积相等,而圆周卷积可采用FFT 及IFFT 完成,即求y(n)=x(n)*h(n)可转化为:

对上式两端取FFT 得: Y(k)=X(k)H(k)

其中:X(k)=FFT[x(n)], H(k)=FFT[h(n)]

则:y(n)=IFFT[Y(k)]

三、实验仪器及材料

⒈ 计算机,并装有MATLAB 程序

⒉ 打印机

四、实验步骤

1、已知两序列: ???>≤≤=3n ;

03n 0;)5/3()n (h n 用Matlab 随机生成输入信号X (n ),范围为0~2;

2、得出用直接法(定义)计算线性卷积y(n)=x(n)*h(n)的结果;

3、用Matlab 编制利用FFT 和IFFT (圆周卷积)计算线性卷积y(n)=x(n)*h(n)的程序; 分别令圆周卷积的点数为L=5,7,8,10,打印结果。

4、对比直接法和圆周卷积法所得的结果。

五、实验说明:

1、实验前复习线性卷积,圆周卷积及FFT 内容。

2、利用FFT 计算线性卷积是将x(n)、h(n)用补零的方法延长到N+M-1,再用圆周卷积完成,因此要求x(n)、h(n)延长后的长度满足L>=N+M-1,才能保证用圆周卷积计算结果与直接法计算结果相同。

六、分析整理实验数据,写出实验报告

实验报告要求:

1、 手工计算两序列的线性卷积,并与计算机的结果比较,以验证手工计算的正确性。

2、 令L=5,用已编制好的程序分别采用直接法和FFT 法对两序列计算线性卷积y(n)=x(n)*h(n),并打印结果。

3、 令L=7,8,10,用已编制好的程序分别采用直接法和FFT 法对两序列计算线性卷积y(n)=x(n)*h(n),并对比所得的结果,打印L=7,8,10的结果。

4、 打印程序.

七、思考题

说明为什么L=7,8,10时采用直接法和FFT 法对两序列计算线性卷积y(n)=x(n)*h(n)的结果相同,而与L=5时计算结果不同?

附录:

本实验所用的Matlab函数:

X=rand(r,c) : 用Matlab随机生成输入信号X(n),范围为0~1,r行,c列

Y=conv(x1,x2): 将序列x1(n)与序列x2(n)做线形卷积,结果赋给序列Y(n);

Y=fft(x ,L) : 将序列x (n)做L点傅立叶变换,结果赋给序列Y(n);

Y=ifft(x,L) : 将序列x (n)做L点傅立叶反变换,结果赋给序列Y(n);

Stem(x,y) : 以x为横坐标,y为纵坐标画曲线;

Plot(x,y) : 以x为横坐标,y为纵坐标画曲线;

L=10; % The length of FFT

sizex=4; % The length of the sequence x(n)

sizeh=4; % The length of the sequence h(n)

x=rand(1,4)*2 %x=[1,1,1,1]; x =[1.9003,0.4623,1.2137,0.9720]

h=[0.6^0,0.6^1,0.6^2,0.6^3]

y=conv(x,h); %x*h

X=fft(x,L);

H=fft(h,L);

for i=1:1:L

YK(i)=X(i)*H(i);

end

yFFT=ifft(YK,L);

subplot(2,2,1)

le=0:1:sizex-1; %横标

stem(le,x)

title('x sequence')

xlabel('n')

ylabel('x(n)')

x = 1.9003 0.4623 1.2137 0.9720

y = 1.9003 1.6025 2.1752 2.2771 1.1200 0.6121 0.2100

Yfft=1.9003 1.6025 2.1752 2.2771 1.1200 0.6121 0.2100 0 0 h = 1.0000 0.6000 0.3600 0.2160

L=7;

L=5;

x=[1,1,1,1]; h = 1.0000 0.6000 0.3600 0.2160

y =1.0000 1.6000 1.9600 2.1760 1.1760 0.5760 0.2160

yFFT =1.0000 1.6000 1.9600 2.1760 1.1760 0.5760 0.2160 0.0000 0.0000 0.0000

subplot(2,2,2)

le2=0:1:sizeh; %1

stem(le2,h)

title('h sequence')

xlabel('n')

ylabel('h(n)')

subplot(2,2,3)

le3=0:1:sizex+sizeh-1; % 2 stem(le3,y)

title('y sequence by direct method') xlabel('n')

ylabel('y(n)')

subplot(2,2,4)

le3=0:1:L; %1

stem(le3,yFFT)

title('y sequence by FFT')

xlabel('n')

ylabel('y(n)')

时域和频域法计算4点卷积

已知x1(n)={2,3,2},x2(n)={1,2,3,4}(1)求出x2(m-n),当m=0,1,2,3时的序列;(2)计算出x1(n)与x2(n)的卷积;(3)用频域方法算出x1(n)与x2(n)的卷积 解:(1)m=0时,x(m-n)=x(-n) , x(-0)=x(-0+4)=1;x(-1)=x(-1+4)=4;x(-2)=3;x(-3)=2; 故x(-n)={1,4,3,2} 同理m=1时;x(m-n)=x(1-n)={2,1,4,3} 同理m=2时;x(m-n)=x(2-n)={3,2,1,4} 同理m=3时;x(m-n)=x(3-n)={4,3,2.1} (2)m=0时 3 =∑[{2,3,2,0}*{1,4,3,2}]=∑{2,12,6,0}=20 n=0 m=1时 3 =∑[{2,3,2,0}*{2,1,4,3}]=∑{4,3,8,0}=15 n=0 m=2时 3 =∑[{2,3,2,0}*{3,2,1,4}]=∑{6,6,2,0}=14 n=0

m=3时 3 =∑[{2,3,2,0}*{4,3,2.1}]=∑{8,9,4,0}=21 n=0 (3) x1(n)={2,3,2=}==> X1(k)={6, -2-2j, 2, 2j-2} x2(n)={1,2,3,4}==>X2(k)={10,-2+2j,-2,-2-2j} X1(k)?X2(k)={60, 8,- 4, 8} 令Y(k)=X1(k)·X2(k) y(n)=x1(n)x2(n) IDFT后 3 3 y(n)=(1/N )∑Y(k)e^(j(2π/4)kn)=(1/N )∑Y(k)(-j)^(kn) k=0 k=0 ={ 18,16,10,21}

卷积运算

卷积运算 信号的卷积运算是信号处理领域中最重要的运算之一。随着对信号与系统理论研究的深入,特别是计算机技术的不断发展,不仅使卷积方法在很我领域得到了很广泛的应用,而且卷积运算的逆运算---反卷积的问题也受到了越来越大的重视和应用。 比如,在语音识别、地震勘探、超声诊断、光学成像、系统辨识及其他诸多信号处理领域中,甚至可以说卷积与反卷积的问题无处不在,而且很多的问题,都是有待深入研究的课题。 所以,大家要切实理解和掌握好卷积分运算的各个方面,打好牢固的基础。下面,我们来看看卷积的定义是怎样的。 信号的卷积积分(简称卷积),定义为: 简记为,其中的星号是卷积运算符。注意不要与我们在编写计算机程序时所用的乘法的表示符号搞混了。在信号处理课程里,乘法往往是用居中的点来表示的,或者干脆不写居中的点,而直接将要进行乘积运算的信号(包括直流信号---它是一个常数)连在一起写。 信号的卷积运算对应着一定的物理背景,这要在我们进一步学习了关于系统的激励与响应的关系之后,才能更深入地理解。 不仅如此,信号的卷积运算还对应着一定的几何解释。从定义式我们可以看出:(1) 在积分式中,信号自变量改变了符号,这对应在几何波形上,就是将信号进行了反褶变换;(2) 并且,信号f2的波形 位置与积分变量的取值有关,积分变量在积分限内的不断变化,将导致信号的波形发生移动,即是对它不断进行平移操作;(3) 最后,每当信号处在一个新位置,都要与信号f1相乘,且依据积分的定义,要将这些乘积加起来,而其结果实际上对应着两信号波形相交部分的面积。所以,卷积运算可以用几何图解方式来直观求解。 下面我们来说明如何用它的几何意义来求解两信号的卷积。 将信号的自变量改为,信号变为。对任意给定的,卷积的计算过程为: (a) 将关于r进行反褶得到; (b) 再平移至t0得到; (c) 与相乘得到; (d) 对r进行积分得,即; 不断变化,就可以得到s(t)。

相关文档