数字信号处理实验答案湖南大学经典
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二DFT 和FFT
一、实验目的
1)认真复习周期序列DFS、有限长序列DFT 的概念、旋转因子的定义、以及DFS 和DFT的性质等有关内容;复习基2-FFT 的基本算法,混合基-FFT 的基本算法、Chirp-Z 变换的算
法等快速傅立叶变换的方法。
2)掌握有限长序列的循环移位、循环卷积的方法,对序列共轭对称性的含义和相关内容加深理解和掌握,掌握利用DFT 分析序列的频谱特性的基本方法。3)掌握FFT 算法的基本原理和方法、Chirp-Z 变换的基本原理和方法,掌握利用FFT 分析序列的频谱特性的方法。
4)熟悉利用MATLAB 进行序列的DFT、FFT 的分析方法。
二、实验内容
1)设周期序列( ) { xn =……,0,1,2,3,0,1,2,3,0,1,2,3,……},求该序列的离散傅立叶级数X (k) = DFS[x(n)],并画出DFS 的幅度特性。
主程序:
clc;
N=4;
n=0:N-1;
k=0:N-1;
xn=[0 1 2 3];
Xk=xn*exp(-j*2*pi/N).^(n'*k);
stem(k, abs(Xk));
xlabel('k');
gtext('|X(k)|');
分析:由定义可知,对于周期序列,根据离散傅里叶级数公式即可求出,此实验中显示了一个周期的傅里叶级数。
2)设周期方波序列为
其中N 为基波周期,L/N 是占空比。
(1) 用L 和N求| X(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时
clc;
N=20;
xn=[ones(1,5),zeros(1,15)];
xn=[xn,xn,xn];
n=0:3*N-1;
k=0:3*N-1;
Xk=xn*exp(-j*2*pi/N).^(n'*k)
stem(k,abs(Xk));
xlabel('k');
title('L=5,N=20时DFS幅度谱');
结果:(修改代码中的L和N(x(n)),可以得到其他占空比时DFS的幅度谱)
分析:由四组图对比可知,N越大,其频域抽样间隔越小,N为频域的重复周期。占空比L/N主要决定第一零点带宽(在一个周期内)。
3)设有限长序列x(n) = {0,1,2,3},计算DTFT[x(n)]=X(ejω),并画出它的幅度谱;然后利用kω=2*pi*k/4,k=0,1,2,3对X(ejω)进行采样,并证明它等于实验a 中的X(k)。主程序:
clc;
N=4;
xn=[0 1 2 3];
n=0:N-1;
k=0:N-1;
w=2*pi*(0:2047)/2048;
Xw=exp(-j*w)+2*exp(-j*2*w)+3*exp(-j*3*w);
subplot(211);
plot(w/pi,abs(Xw));
title('X(ejw)幅度谱');
Xk=fft(xn,N);
subplot(212);
stem(k,abs(Xk),'fill');
hold on;
plot(N/2*w/pi,abs(Xw));
结果:
分析:对比第一题的结果可以看出,对离散傅里叶变换的频谱进行抽样,在满足采样定理的条件下,可以无失真的恢复原来的波形。
4)序列x(n)=R4(n),计算DTFT[x(n)]=X(ejω),并绘制其幅度和相位谱。
(1) 计算x(n)的4 点DFT,并绘制DFT 的幅度与相位谱;
(2) 将x(n)补零形成8 点序列,计算8 点DFT,并绘制幅度与相位谱,求频率分辨率;
(3) 将x(n)补零形成16 点序列,计算16 点DFT,并绘制幅度与相位谱,求频率分辨率;
主程序:
N1=8; N2=16;
k1=0:N1-1;
k2=0:N2-1;
w=2*pi*(0:2047)/2048;
Xw=(1-exp(-j*4*w))./(1-exp(-j*w));
%对x(n)的频谱函数采样2048个点可以看做连续的频谱xn=[(n>=0)&(n<4)];
X1k=fft(xn,N1);
X2k=fft(xn,N2);
subplot(321);
plot(w/pi,abs(Xw));
title('连续函数幅度谱');
xlabel('w/pi');
subplot(322);
plot(w/pi,angle(Xw));
title('连续函数相位谱');
axis([0,2,-pi,pi]);
line([0,2],[0,0]);
xlabel('w/pi');
subplot(323);
stem(k1,abs(X1k),'.');
title('X1(k)幅度谱');
plot(N1/2*w/pi,abs(Xw));%图形上叠加连续谱的幅度曲线subplot(324)
stem(k1,angle(X1k),'.');
axis([0,N1,-pi,pi]);
line([0,N1],[0,0]);
title('X1(k)相位谱');
hold on;
plot(N1/2*w/pi,angle(Xw));%图形上叠加连续谱的相位曲线subplot(325);
stem(k2,abs(X2k),'.');
title('X2(k)幅度谱');
hold on;
plot(N2/2*w/pi,abs(Xw));
subplot(326)
stem(k2,angle(X2k),'.');
axis([0,N2,-pi,pi]);
line([0,N2],[0,0]);
title('X2(k)相位谱');
hold on;
plot(N2/2*w/pi,angle(Xw));