设计一DFT在信号频谱分析中的应用
设计一 DFT在信号频谱分析中的应用
一、设计目的
1. 熟悉DFT的性质。
2. 加深理解信号频谱的概念及性质。
3. 了解高密度谱与高分辨率频谱的区别。
二、设计任务与要求
1.学习用DFT和补零DFT的方法来计算信号的频谱。
2.用MATLAB语言编程来实现,在做课程设计前,必须充分预习课本DTFT、DFT及补零DFT的有关概念,熟悉MATLAB语言,独立编写程序。
三、设计内容
1. 用MATLAB语言编写计算序列x(n)的N点DFT的m函数文件dft.m。并与MATLAB中的内部函数文件fft.m作比较。
2. 对离散确定信号 x(n)cos(0.48n)cos(0.52n) 作如下谱分析:
(1) 截取x(n)使x(n)成为有限长序列N(0nN-1),(长度N自己选)写程序计
算出x(n)的N点DFT X(k),画出时域序列图xn~n和相应的幅频图X(k)~k。
参考程序如下:
假设N取10,
即 0 ≤n ≤ 9 时, 编写程序,计算出X(n)的10点DFT Xk。
n = 0:9;
xn=cos(0.48*pi*n)+cos(0.52*pi*n);
Xk = fft (xn, 10);
subplot(2,1,1); stem(n, xn); grid;
subplot(2,1,2); stem(n, abs(Xk)); grid;
(2) 将 (1)中x(n)补零加长至M点,长度M自己选,(为了比较补零长短的影响,M可以取两次值,一次取较小的整数,一次取较大的整数),编写程序计算x(n)的M点DFT, 画出时域序列图和两次补零后相应的DFT幅频图。
参考程序如下:
假设M取15和M取60,即分别补5个0和50个0,得补零后15点的序列xn1和60点的序列xn2,编写程序,计算出xn1的15点DFT Xk1和 xn2的60点DFT Xk2,
n = 0:9; xn=cos(0.48*pi*n)+cos(0.52*pi*n);
n1 = 0:14; xn1 = [xn, zeros(1,5)];
n2= 0:59; xn1 = [xn, zeros(1,50)];
Xk1 = fft(xn1, 15);
Xk2 = fft(xn1, 60);
subplot(3,1,1); stem(n, xn); grid;
subplot(3,1,2); stem(n1, abs(Xk1)); grid;
subplot(3,1,3); stem(n2, abs(Xk2)); grid;
(3) 用补零DFT计算 (1)中N点有限长序列x(n)频谱X(ej)并画出相应的幅频图X(e
参考程序如下:
假设M取100
n = 0:9; xn=cos(0.48*pi*n)+cos(0.52*pi*n);
n1 = 0:99; xn3 = [xn, zeros(1,90)];
Xk3 = fft(xn3, 100);
plot(n1, abs(Xk3)); grid;
3. 研究高密度谱与高分辨率频谱。
对连续确定信号xa(t)cos(26.5103t)cos(27103t)cos(29103t) 以采样频率fs=32kHz对信号xa(t)采样得离散信号x(n),分析下列三种情况的幅频特性。
(1)采集数据x(n)长度取N=16点,编写程序计算出x(n)的16点DFTX(k),并画出相应的幅频图X(k)~k。
(2) 采集数据x(n)长度N=16点,补零加长至M点(长度M自己选),利用补零DFT计算 x(n)的频谱X1(ej)并画出相应的幅频图X1(e)~。
(3) 采集数据x(n)长度取为M点(注意不是补零至M),编写程序计算出M点采集数据jj)~。
x(n)的的频谱X2(ej)并画出相应的幅频图X2(ej)~。
参考程序如下:
T=1/(32*10^3);
t=(0:15);
xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t)+cos(2*pi*9*10^3*t*T); Xk=fft(xn,16);
subplot(2,1,1);stem(t,xn);grid;
subplot(2,1,2);stem(t,abs(Xk));grid;
T=1/(32*10^3);
t=(0:15);
xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t)+cos(2*pi*9*10^3*t*T); n1=0:30; xn1=[xn,zeros(1,15)];
Xk1=fft(xn1,31);
subplot(2,1,1);plot(n1,xn1);grid;
subplot(2,1,2);plot(n1,abs(Xk1));grid;
T=1/(32*10^3);
t=[0:30];
xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t)+cos(2*pi*9*10^3*t*T); Xk2=fft(xn1,31);
subplot(2,1,1);plot(t,xn);grid;
subplot(2,1,2);plot(t,abs(Xk2));grid;
四、设计报告要求
1. 简述设计目的及原理。
2. 完成设计中要求的各种理论推导和计算,并列出相应的MATLAB程序。
3. 绘出设计中要求的各种曲线,并作出说明。
4. 结合设计过程,归纳得出结论,并分析设计中遇到的问题及解决思路和方法。
5. 写出设计体会。
6. 简要回答如下思考题:
(1)对比设计内容2中(1)(2) (3)的图,说明补零DFT的作用。
(2)解释设计内容3中X1(e)~图和X2(e)~图有什么区别?补零DFT能否提高信号的频谱分辨率,说明提高频谱密度、频谱分辨率的措施各是什么?
jj