1、数字信号处理实验第一次报告实验三 快速傅立叶变换其应用实验三 快速傅立叶变换及其应用姓名: 学号: 一 实验平台二 实验目的:(1) 在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。(2) 应用FFT对典型信号进行频谱分析。(3) 了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。(4) 应用FFT实现序列的线性卷积和相关。三 实验原理:(1) 混叠:采样序列的频谱是被采样信号频谱的周期延拓,当采样频率不满足奈奎斯特采样定理的时候,就会发生混叠,使得刺痒后的序列信号的频谱不能真实的反映原采样信号的频谱。(2) 泄露:根据理论分析,
2、一个时间的信号其频带宽度为无限,一个时间无限的信号其频带宽度则为有限。因此对一个时间有限的信号,应用DFT进行分析,频谱混叠难以避免。对一个时间无限的信号虽然频带有限,但在实际运算中,时间总是取有限值,在将信号截断的过程中,出现了分散的扩展谱线的现象,称之为频谱泄露或功率泄露。(3) 栅栏效应:DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数,就在一定意义上看,用DFT来观察频谱就好象通过一个栅栏来观看一个景象一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点和谷点被“尖桩的栅栏”所挡住,不能被我们观察到。(4) 圆周卷积:把序列X(N)分布在N等份的圆周
3、上,而序列Y(N)经反摺后也分布在另一个具有N等份的同心圆的圆周上。两圆上对应的数两量两相乘求和,就得到全部卷积序列。这个卷积过程称做圆周卷积。(5) 互相关函数反映了两个序列X(N)和Y(N) 的相似程度,用FFT可以很快的计算互相关函数。四 实验内容:实验中用到的函数序列:(a) Gaussian序列exp(-(n-p).2)/q), 0=n=15Xa(n)=0, 其他 (b)衰减正弦序列exp(-an)*sin(2pi*fn),0=n=15 X(b)= 0, 其他 (c)三角波序列 n, 0=n=3 Xb(n)= 8-n, 4=n=7 0, 其他 (d)反三角波序列 4-n, 0=n=3
4、 Xc(n)= n-4, 4=n=1/N时,能分辨,不会发生栅栏效应;当f=1/N时,不能分辨,会发生栅栏效应。4 用FFT 分别计算xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的16点循环卷积和线形卷积。程序:n=0:15;p=8;q=2;xa=exp(-(n-p).2/q);a=0.1;f=0.0625;xb=exp(-a*n).*sin(2*pi*f*n);ya=fft(xa);ya=abs(ya);yb=fft(xb);yb=abs(yb);y1=ya.*yb;subplot(2,1,1);stem(n,y1);yaa=fft(xa,32);yaa=abs(
5、yaa);ybb=fft(xb,32);ybb=abs(ybb);y2=yaa.*ybb;subplot(2,1,2);n=0:31;stem(n,y2);(上图是循环卷积,下图是线性卷积)结论:比较图中线性卷积与圆周卷积序列: Xa(n)(序列长度为N1)与Xb(n)(序列长度为N2)的N点圆周卷积序列(当NN1+N2-1),即为将Xa(n)与Xb(n)线性卷积序列中序号从N到N1+N2-1的序列叠加到原序列序号从0到N-1的地方。5 产生一512点的随即序列xe(n)并用xc(n)和 xe(n)做线形卷积,观察卷积前后xe(n) 频谱的变化。要求将xe(n)分成8段,分别采用重叠相加法和重
6、叠保留法。用重叠保留法和重叠相加法实现线形卷积的过程为: Xc(n)序列长度为8,Xe(n)序列长度为512,分Xe(n)序列为8段,每段长度为64,则每段序列与Xc(n)序列卷积后的长度为72,总长度为520。(凑成2的整数倍) 程序:(重叠相加法)e=rand(1,512);n1=0:3;xc1=n1;n2=4:7;xc2=8-n2;xc=xc1,xc2;yc=fft(xc,72);/将短序列补零后做72点的FFTxe1=xe(1:64);ye1=fft(xe1,72);/对长序列第一段做72点的FFTy1=ye1.*yc;/将上述两个FFT相乘y1=y1,zeros(1,448);/补上
7、448个零,以便相加,以下7段重复上述过程xe2=xe(65:128);ye2=fft(xe2,72);y2=ye2.*yc;y2=zeros(1,64),y2,zeros(1,384);xe3=xe(129:192);ye3=fft(xe3,72);y3=ye3.*yc;y3=zeros(1,128),y3,zeros(1,320);xe4=xe(193:256);ye4=fft(xe4,72);y4=ye4.*yc;y4=zeros(1,192),y4,zeros(1,256);xe5=xe(257:320);ye5=fft(xe5,72);y5=ye5.*yc;y5=zeros(1,25
8、6),y5,zeros(1,192);xe6=xe(321:384);ye6=fft(xe6,72);y6=ye6.*yc;y6=zeros(1,320),y6,zeros(1,128);xe7=xe(385:448);ye7=fft(xe7,72);y7=ye7.*yc;y7=zeros(1,384),y7,zeros(1,64);xe8=xe(449:512);ye8=fft(xe8,72);y8=ye8.*yc;y8=zeros(1,448),y8;y=y1+y2+y3+y4+y5+y6+y7+y8;/将这8个序列相加,便可得到最终的结果。y=abs(y);n=1:520;plot(n,
9、y)(重叠保留法)xe=rand(1,512);xe=zeros(1,8),xe,zeros(1,56)/长序列前添8个零,后添56个零,构成576点的序列n1=0:3; xc1=n1;n2=4:7;xc2=8-n2;xc=xc1,xc2;yc=fft(xc,72);对短序列做72点的FFTxe1=xe(1:72);/将所得序列分成8段,每段序列长度为72ye1=fft(xe1,72);对长序列的第一段做72点的FFTy1=ye1.*yc;将上述两段序列相乘y1=y1(9:72);取第一段所得结果的后64点,以下七段同上述布骤。xe2=xe(73:144);ye2=fft(xe2,72);y2
10、=ye2.*yc;y2=y2(9:72);xe3=xe(145:216);ye3=fft(xe3,72);y3=ye3.*yc;y3=y3(9:72);xe4=xe(216:288);ye4=fft(xe4,72);y4=ye4.*yc;y4=y4(9:72);xe5=xe(289:360);ye5=fft(xe5,72);y5=ye5.*yc;y5=y5(9:72);xe6=xe(361:432);ye6=fft(xe6,72);y6=ye6.*yc;y6=y6(9:72);xe7=xe(433:504);ye7=fft(xe7,72);y7=ye7.*yc;y7=y7(9:72);xe8=
11、xe(505:576);ye8=fft(xe8,72);y8=ye8.*yc;y=y1,y2,y3,y4,y5,y6,y7,y8/将上述8段合并,变可得到最终结果y=abs(y);n=1:520;plot(n,y)结论:比较图中序列的线形卷积频谱:原序列的频谱曲线较线性卷积序列的频谱曲线陡峭,即一个长序列与一个短序列作线性卷积,短序列就相当于一个低通滤波器,滤除长序列的一部分高频分量;6 用FFT分别计算xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的16点循环相关和线形相关,问一共有多少种结果,他们之间有何异同点。程序:function y=t27N=16;n=0:
12、N-1;m=(-N+1):(N-1);xa=exp(-(n-8).2/2);xb=exp(-0.1*n).*sin(2*pi*0.0625*n);Xa1=abs(fft(xa,N);Xb1=abs(fft(xb,N);Xa2=fft(xa,2*N);Xb2=fft(xb,2*N);rm1=real(ifft(conj(Xa1).*Xb1);rm2=real(ifft(conj(Xa2).*Xb2);rm2=rm2(N+2:2*N) rm2(1:N);subplot(2,1,1)stem(n,rm1)subplot(2,1,2)stem(m,rm2)(上面是循环相关,下面是线性相关)由上图可以看
13、到,16点的循环相关由于高斯噪声的干扰,衰减发生了微小的变化,时间位置不对了。并且线形相关32点,循环相关只有16点。7 用FFT分别计算xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的自相关函数。 程序: n=0:15; p=8; q=2; xa=exp(-(n-p).2/q);a=0.1;f=0.0625;xb=exp(-a*n).*sin(2*pi*f*n);k1=length(xa);k2=length(xb);xak=fft(xa,2*k1);xbk=fft(xb,2*k2);rma=real(ifft(conj(xak).*xak);rma=rma(k1+
14、2:2*k1) rma(1:k1);rmb=real(ifft(conj(xbk).*xbk);rmb=rmb(k2+2:2*k2) rmb(1:k2);m1=(-k1+1):(k1-1);m2=(-k2+1):(k2-1);subplot(2,1,1);stem(m1,rma);subplot(2,1,2);stem(m2,rmb);(上面是Xa下面是Xb)由图可以看出最大值出现在0点,这是因为自相关的两个序列是完全一样的,之间不存在延迟。而且,两个序列的互相关与自相关不相同。六 思考题:(1) 实验中的信号序列Xc(n)和Xd(n),在单位圆上的变化频谱|Xc(exp(jw)|和|Xd(exp(jw)|会相同吗?如果不同,说出哪一个低频分量更多一些,为什么?答:他们的单位圆上的Z变换频谱不同,Xc(n)的时域波形比较平缓,顾其低频分量会多一些。(2) 对于一个有限长度序列进行DFT等价于将该序列周期延拓后进行DFT展开,因为DFS也知识取其中一个周期来运算,所以FFT在一定条件下也可以用以分析周期信号序列。如果实正弦信号sin(2pi*fn)f=0.1用16点FFT来做DFS运算,得到的频谱是信号本身的真实谱吗?为什么?答:不是信号本身的真实谱。因为原信号的周期是10,因而进行16点FFT时,其16点的周期延拓后的波形已经不再是原来的波形了。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1