1、实验二 DFT 和FFT实验报告实验二 DFT 和FFT1、实验目的认真复习周期序列 DFS、有限长序列DFT 的概念、旋转因子的定义、以及DFS 和DFT的性质等有关内容;复习基2-FFT 的基本算法,混合基-FFT 的基本算法、Chirp-Z 变换的算法等快速傅立叶变换的方法。掌握有限长序列的循环移位、循环卷积的方法,对序列共轭对称性的含义和相关内容加深理解和掌握,掌握利用DFT 分析序列的频谱特性的基本方法。掌握 FFT 算法的基本原理和方法、Chirp-Z 变换的基本原理和方法,掌握利用FFT 分析序列的频谱特性的方法。熟悉利用 MATLAB 进行序列的DFT、FFT 的分析方法。2、
2、实验内容a. 设周期序列( ) ( n) = ,0,1,2,3,0,1,2,3,0,1,2,3,.,求该序列的离散傅立叶级数X (k) = DFS (n),并画出DFS 的幅度特性。function Xk=dfs(xn,N)n=0:1:N-1;k=0:1:N-1;Wn=exp(-j*2*pi/N);nk=n*k;Wnk=Wn.nk;Xk=xn*Wnk;xn=0,1,2,3;k=0:1:3;N=4;Xk=dfs(xn,N);y=abs(Xk);stem(k,y);b. 设周期方波序列为x(n)= (m=0, )其中 N 为基波周期,L/N 是占空比。(1) 用L 和N求| X
3、 (k) |的表达式;(2) 当L 和N 分别为:L=5,N=20;L=5,N=40;L=5,N=60 以及L=7,N=60 时画出DFS 的幅度谱;(3) 对以上结果进行讨论,总结其特点和规律L=5;N=20;k=-N/2:N/2;xn=ones(1,L),zeros(1,N-L);Xk=dfs(xn,N);y=abs(Xk(N/2+1:N) Xk(1:N/2+1);stem(k,y);c. 设有限长序列x(n) = 0,1,2,3,计算DTFTx(n)=X(ej),并画出它的幅度谱;然后利用kw1=k,k=0,1,2,3对X(ej)进行采样,并证明它等于实验a 中的 (
4、k)。X(ej)= =e-jw+2e-j2w+3e-j3wX(ej0)=1+2+3=6;X(ej2/4)=-2+2j;X(ej4/4)=2;X(ej6/4)=-2-2j;d. 序列x(n)=R4(n),计算DTFTx(n)=X(ej),并绘制其幅度和相位谱。(1) 计算x(n)的4 点DFT,并绘制DFT 的幅度与相位谱;(2) 将x(n)补零形成8 点序列,计算8 点DFT,并绘制幅度与相位谱,求频率分辨率;(3) 将x(n)补零形成16 点序列,计算16 点DFT,并绘制幅度与相位谱,求频率分辨率;function Xk=dft(xn,N)n=0:1:N-1;k=0:1:N-1;Wn=ex
5、p(-j*2*pi/N);nk=n*k;Wnk=Wn.nk;Xk=xn*Wnk;function xn = idft( Xk,N )n=0:1:N-1;k=0:1:N-1;Wn=exp(-j*2*pi/N);nk=n*k;Wnk=Wn.(-nk);Xk=(Xk*Wnk)/N;End(1)x=1 1 1 1;N=4;X=dft(x,N);subplot(2,1,1);stem(abs(X);subplot(2,1,2);stem(angle(X)*180/pi);(2)x=1 1 1 1;x=x,zeros(1,4);N=8;X=dft(x,N);subplot(2,1,1);stem(abs(
6、X);subplot(2,1,2);stem(angle(X)*180/pi);(3)x=1 1 1 1;x=x,zeros(1,12);N=16;X=dft(x,N);subplot(2,1,1);stem(abs(X);subplot(2,1,2);stem(angle(X)*180/pi);e. 序列x(n)=cos(0.48n)+cos(0.52n)(1) 求x(n)的10 点DFT,并画出它幅度与相位谱;(2) 求x(n)的100 点DFT,并画出它幅度与相位谱;根据实验结果,讨论 DFT 进行谱分析的条件。n=0:1:99;x=cos(0.48*pi*n)+cos(0.52*pi*
7、n);n1=0:1:9;y1=x(1:1:10);y2=dfs(y1,10);subplot(2,1,1)stem(n1,abs(y2);subplot(2,1,2);stem(n1,angle(y2);n=0:1:99;x=cos(0.48*pi*n)+cos(0.52*pi*n);y1=x(1:1:100);y2=dfs(y1,100);subplot(2,1,1)stem(n,abs(y2);subplot(2,1,2);stem(n,angle(y2);f. 序列x(n)=5(0.9)nR11(n)(1) 求循环反转序列x(-n)11,并绘制x(n)和x(-n)11 的波形;求两序列的
8、DFT,验证DFT 的循环反转性质。(2) 把序列x(n)分解成圆周共轭奇分量xoc(n)和圆周共轭偶分量xec(n),并求出对应的DFT,验证DFT 的圆周共轭对称性质。(3) 绘制x(n+4)11R11(n)、x(n-3)15R15(n)和x(n-6)15 的波形,验证序列圆周移位性质。function xec,xoc=circevod(x)if any(imag(x)=0) error(x is not a real sequence)end N=length(x);n=0:(N-1);xec=0.5*(x+x(mod(-n,N)+1);xoc=0.5*(x-x(mod(-n,N)+1)
9、;function y=cirshftt(x,m,N)if length(x)N error(N must be = the length of x)endx=x zeros(1,N-length(x);n=0:1:N-1;n=mod(n-m,N);y=x(n+1);1)n=0:10;x=5*(0.9).n;y=x(mod(-n,11)+1);subplot(2,1,1);stem(n,x);title(x(n);subplot(2,1,2);stem(n,y);title(x(-n)11)n=0:10;x=5*(0.9).n;y=x(mod(-n,11)+1);X=dft(x,11);Y=d
10、ft(y,11);subplot(2,2,1);stem(n,real(X);subplot(2,2,2);stem(n,imag(X);subplot(2,2,3);stem(n,real(Y);subplot(2,2,4);stem(n,imag(Y);2)n=0:10;x=5*(0.9).n;xec,xoc=circevod(x);subplot(2,1,1);stem(n,xec);subplot(2,1,2);stem(n,xoc);n=0:10;x=5*(0.9).n;X=dft(x,11);xec,xoc=circevod(x);Xec=dft(xec,11);Xoc=dft(x
11、oc,11);subplot(2,2,1);stem(n,real(X);subplot(2,2,2);stem(n,imag(X);subplot(2,2,3);stem(n,real(Xec);subplot(2,2,4);stem(n,imag(Xoc);3)n=0:10;n1=0:14;x=5*(0.9).n;x1=x,zeros(1,3);y1=cirshftt(x,-4,11);y2=cirshftt(x,3,15);y3=cirshftt(x,6,15);subplot(2,2,1);stem(n,x);subplot(2,2,2);stem(n,y1);subplot(2,2,
12、3);stem(n1,y2);subplot(2,2,4);stem(n1,y3);g. 序列x1(n)=1,2,1,x2(n)=1,2,3,2,(1) 编制程序在时域中直接计算4 点循环卷积1 4 2y(n) = x (n)x (n),并绘制波形图;(2) 编制程序先计算x1(n)和x2(n)的4 点DFT,再利用IDFT 计算1 2 4x (n)x (n),比较结果以上两种计算结果是否一致?(3) 计算1 2 5x (n)x (n)和1 2 6x (n)x (n),分析循环卷积点数N 对循环卷积的影响,并比较哪种循环卷积结果与线性卷积是一致的?总结出用循环卷积计算线性卷积的条件。funct
13、ion y=circonvl(x1,x2,N)if length(x1)N error(N must be = the length of x1)endif length(x2)N error(N must be = the length of x2)endx1=x1 zeros(1,N-length(x1);x2=x2 zeros(1,N-length(x2);m=0:1:N-1;x2=x2(mod(-m,N)+1);H=zeros(N,N);for n=1:1:N H(n,:)=cirshftt(x2,n-1,N);endy=x1*H;1)x1=1,2,1;x2=1,2,3,2;y=cir
14、convl(x1,x2,4);stem(y);3)x1=1,2,1;x2=1,2,3,2;subplot(2,1,1)y=circonvl(x1,x2,5);stem(y);subplot(2,1,2)y=circonvl(x1,x2,6);stem(y);h. 序列x(n)=(n+1)R10(n),h(n)=1,0,-1,利用重叠保留法,编制程序用N=6 点的循环卷积计算线性卷积的值y(n)=x(n)*h(n),并与直接线性卷积结果进行比较。function y=ovrlpsav(x,h,N)Lenx=length(x);M=length(h);M1=M-1;L=N-M1;h=h zeros
15、(1,N-M);x=zeros(1,M1),x,zeros(1,N-1);K=floor(Lenx+M1-1)/(L);Y=zeros(K+1,N);for k=0:K xk=x(k*L+1:k*K+N); Y(k+1,:)=circonvl(xk,h,N);endY=Y(:,M:N);y=(Y(:);n=0:9;N=6;x=n+1;h=1,0,-1;y=ovrlpsav(x,h,N);stem(y);i. 序列x(n)=R6(n),用快速傅立叶变换FFT 计算6 点DFTx(n)和8 点DFTx(n),绘制波形图并比较结果。x1=ones(1,6);x2=x1 0 0;y1=fft(x1,6
16、);y2=fft(x2,8);subplot(2,1,1);stem(abs(y1);subplot(2,1,2);stem(abs(y2);j. 设两个序列x(n)=(2n+3)R17(n),h(n)=(n+1)R4(n),采用重叠相加法,按分段长度L=7的FFT 计算线性卷积:y(n)=x(n)*h(n),并与直接线性卷积的结果进行比较。n1=0:16;n2=0:3;x=2*n1+3;h=n2+1;y=conv(x,h);stem(y);k. 设序列x(n)=(0.8)nR15(n),计算序列x(n)在单位园上的Chirp-z 变换,并与DFTx(n)的结果进行比较。l. 设信号x(t)=sin(f1t)+sin(f2t)+sin(f3t)+sin(f4t)+sin(f5t),其中f1=6Hz,f2=6.5Hz,f3=8Hz和f4=9Hz,f5=10Hz,对信号x(t)进行频率为40Hz 进行抽样,时域抽样400 点。(1) 用Chirp-z 变换计算DFTx(n);(2) 直接计算DFTx(n);(3) 在512Hz 的频段范围求Chirp-z 变换。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1