DFT频谱分析作业.docx
- 文档编号:10461107
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:10
- 大小:106.85KB
DFT频谱分析作业.docx
《DFT频谱分析作业.docx》由会员分享,可在线阅读,更多相关《DFT频谱分析作业.docx(10页珍藏版)》请在冰豆网上搜索。
DFT频谱分析作业
DFT频谱分析作业
通信工程2013040150
作业一
设周期序列
截取N点长得到
(1)N=10,做10点DFT,得到X1(k);
(2)N=10,做100点补零DFT,得到X2(k);
(3)N=100,做100点DFT,得到X3(k)。
要求:
针对以上三种情况,分别输出|X1(k)|、|X2(k)|、|X3(k)|的图形,并进行比较、分析和讨论。
解:
代码如下
%双频周期信号的DFT分析
n=0:
1000;
x=cos(0.48*pi*n)+cos(0.52*pi*n);%时域的离散时间信号
%-----------N=1010点DFT-------------%
N=10;%截取的序列长度
N0=10;%DFT点数N0>N
xn=x(1:
N);%取一个周期的长度
Xk=fft(xn,N0);
subplot(3,1,1)
stem(0:
1:
N0-1,abs(Xk),'fill','MarkerSize',3.75)%取模画图
title('N=1010点DFT')
xlabel('k');ylabel('|X1(k)|')
grid
%----------N=10100点补零DFT----------%
N=10;%截取的序列长度
N0=100;%DFT点数N0>N
xn=x(1:
N);%取一个周期的长度
Xk=fft(xn,N0);
subplot(3,1,2)
stem(0:
1:
N0-1,abs(Xk),'fill','MarkerSize',3.75)%取模画图
grid
title('N=10100点补零DFT')
xlabel('k');ylabel('|X2(k)|')
%----------N=100100点DFT------------%
N=100;%截取的序列长度
N0=100;%DFT点数N0>N
xn=x(1:
N);%取一个周期的长度
Xk=fft(xn,N0);
subplot(3,1,3)
stem(0:
1:
N0-1,abs(Xk),'fill','MarkerSize',3.75)%取模画图
grid
title('N=100100点DFT')
xlabel('k');ylabel('|X3(k)|')
运行,得结果如图1所示:
图1DFT频谱
观察对比:
1)10点DFT的|X1(k)|出现明显的栅栏效应,相邻谱线间隔很大,而100点DFT的间隔较小,说明通过增大DFT点数N0即频域抽样点数,可以减小栅栏效应;
2)|X2(k)|与|X3(k)|相比出现了明显的频谱泄漏,即截断效应。
由于DFT需要对时域序列进行截断,对x(n)乘一个N点长的矩形窗函数N(n)(主瓣宽度为4/N),N越大主瓣越小引起的泄漏就越小。
作业二
设。
用FFT分析其频谱结构,选择不同的截取长度Tp,观察截断效应,试用加窗的方法降低旁瓣。
解:
加矩形窗的FFT代码如下
%单频周期信号的DFT分析cos(pi*t)0.5Hz
fs=400;%采样频率HZ
f1=100;f2=50;f3=25;%模拟频率HZ
n=0:
1000;
x=cos(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs)+cos(2*pi*f3*n/fs);%时域的离散时间信号
%----------Tp=0.04
Tp=0.04;
N=fs*Tp;%截取的序列长度
N0=2048;%DFT点数N0>N
xn=x(1:
N);%取一个周期的长度
Xk=fft(xn,N0);
Xk=abs(Xk)./max(abs(Xk));
subplot(3,1,1)
stem(0:
1:
N0-1,Xk,'fill','MarkerSize',3.75)%取模画图
grid
title('Tp=0.04s');xlabel('k');ylabel('|X(k)|')
axis([0220001.2])
%----------Tp=4*0.04
Tp=4*0.04;
N=fs*Tp;%截取的序列长度
N0=2048;%DFT点数N0>N
xn=x(1:
N);%取一个周期的长度
Xk=fft(xn,N0);
Xk=abs(Xk)./max(abs(Xk));
subplot(3,1,2)
stem(0:
1:
N0-1,Xk,'fill','MarkerSize',3.75)%取模画图
grid
title('Tp=4*0.04s');xlabel('k');ylabel('|X(k)|')
axis([0220001.2])
%----------Tp=16*0.04
Tp=16*0.04;
N=fs*Tp;%截取的序列长度
N0=2048;%DFT点数N0>N
xn=x(1:
N);%取一个周期的长度
Xk=fft(xn,N0);
Xk=abs(Xk)./max(abs(Xk));
subplot(3,1,3)
stem(0:
1:
N0-1,Xk,'fill','MarkerSize',3.75)%取模画图
grid
title('Tp=16*0.04s');xlabel('k');ylabel('|X(k)|')
axis([0220001.2])
运行,得
图2DFT频谱
图3DFT频谱(模拟频率)
由模拟频率图可以看出,在做到也即N取256时,出现了三个频点,就是原信号的三个频点。
当也即N取16、64时频率分辨率较低。
加Hamming窗进行分析:
%单频周期信号的DFT分析cos(pi*t)0.5Hz
fs=400;%采样频率HZ
f1=100;f2=50;f3=25;%模拟频率HZ
n=0:
1000;
x=cos(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs)+cos(2*pi*f3*n/fs);%时域的离散时间信号
%----------Tp=0.04
Tp=0.04;
N=fs*Tp;%截取的序列长度
N0=2048;%DFT点数N0>N
xn=x(1:
N).*hamming(N)';%取一个周期的长度
Xk=fft(xn,N0);
Xk=abs(Xk)./max(abs(Xk));
subplot(3,1,1)
stem(0:
1:
N0-1,Xk,'fill','MarkerSize',3.75)%取模画图
grid
title('Tp=0.04s');xlabel('k');ylabel('|X(k)|')
axis([0220001.2])
%----------Tp=4*0.04
Tp=4*0.04;
N=fs*Tp;%截取的序列长度
N0=2048;%DFT点数N0>N
xn=x(1:
N).*hamming(N)';%取一个周期的长度
Xk=fft(xn,N0);
Xk=abs(Xk)./max(abs(Xk));
subplot(3,1,2)
stem(0:
1:
N0-1,Xk,'fill','MarkerSize',3.75)%取模画图
grid
title('Tp=4*0.04s');xlabel('k');ylabel('|X(k)|')
axis([0220001.2])
%----------Tp=16*0.04
Tp=16*0.04;
N=fs*Tp;%截取的序列长度
N0=2048;%DFT点数N0>N
xn=x(1:
N).*hamming(N)';%取一个周期的长度
Xk=fft(xn,N0);
Xk=abs(Xk)./max(abs(Xk));
subplot(3,1,3)
stem(0:
1:
N0-1,Xk,'fill','MarkerSize',3.75)%取模画图
gridtitle('Tp=16*0.04s');xlabel('k');ylabel('|X(k)|')
axis([0220001.2])
图5加Hamming窗的DFT频谱
对比可以明显看出,加窗后得到的频谱图上非信号频点处幅度很低。
这说明旁瓣确实低了。
下图对比更明显:
右侧的为加矩形窗,左侧为加海明窗。
也可以看出虽然海明窗降低了旁瓣幅度、但是主瓣宽度变宽,主瓣泄漏厉害,本来能够分开的两个频率分量幅值很相近。
这显示了加窗的矛盾。
作业三
读取一个音乐文件并播放,取其中一段数据显示其时域波形,利用DFT进行频谱分析并显示其幅度谱。
解:
clearall
%声音文件的DFT分析
%[data,fs,bits]=wavread('warning');
[data,fs,bits]=wavread('clock');
sound(data,fs)
subplot(2,1,1)
plot(data);
axis([0length(data)-1.21.2])
title('声音信号波形图')
N=65536;%截取的序列长度
N0=65536*2;%DFT点数N0>N
xn=data(1:
N);%取一个周期的长度
Xk=fft(xn,N0);
subplot(2,1,2)
plot(0:
1:
N0-1,abs(Xk))%'fill','MarkerSize',3.75)%取模画图
title(['N=',num2str(N),'',num2str(N0),'点DFT'])
xlabel('k');ylabel('|X1(k)|')
grid
%subplot(3,1,3)
%Xa=abs(Xk);
%Xkdb=20*log10(Xa/max(Xa))
%stem(0:
1:
N0-1,Xkdb,'fill','MarkerSize',3.75)%取模画图
%title(['N=',num2str(N),'',num2str(N0),'点DFT'])
%axis([0N0+5-500])
%xlabel('k');ylabel('|X1(k)|')
%grid
运行后,得到声音信号的波形图及其DFT频谱图如下:
分析:
由声音文件可以听出来,clock声主要集中在“滴答”的一个“滴”字上,所以其频谱在一个频点上有峰值,说明了时域波形这一频点的声音占的比重很大。
在做FFT分析时,要考虑到声音文件的数据长度,超过数据长度Matlab会报错。
另外还要适当的选择数据长度,如何比较“经济”地进行FFT分析,而不是分析的点越多越好。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DFT 频谱 分析 作业