DFT近似计算信号频谱专题研讨.docx
《DFT近似计算信号频谱专题研讨.docx》由会员分享,可在线阅读,更多相关《DFT近似计算信号频谱专题研讨.docx(20页珍藏版)》请在冰豆网上搜索。

DFT近似计算信号频谱专题研讨
《数字信号处理》课程研究性学习报告
DFT近似计算信号频谱专题研讨
姓名
同组成员
指导教师
时间2015.06.19
DFT近似计算信号频谱专题研讨
【目的】
(1)掌握利用DFT近似计算不同类型信号频谱的原理和方法。
(2)理解误差产生的原因及减小误差的方法。
(3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。
【研讨题目】基本题
1.已知一离散序列为
(1)用L=32点DFT计算该序列的频谱,求出频谱中谱峰的频率;
(2)对序列进行补零,然后分别用L=64、128、256、512点DFT计算该序列的频谱,求出频谱中谱峰的频率;
(3)讨论所获得的结果,给出你的结论。
该结论对序列的频谱计算有何指导意义?
【题目分析】
本题讨论补零对离散序列频谱计算的影响。
【温磬提示】
在计算离散非周期序列频谱时常用Ω/π作为横坐标,称Ω/π为归一化频率(normalizedfrequency)。
在画频谱时需给出横坐标。
每幅图下都需给出简要的文字说明。
由于离散非周期序列频谱是周期的,所以在计算时不必用fftshift函数对fft计算的结果进行重新排列。
【序列频谱计算的基本方法】
【仿真结果】
【结果分析】
对序列补零后再做DFT相当于增加了DFT的点数,即频域抽样的点数,而原离散序列没有改变,其傅里叶变换结果也没有改变,同时若DFT点数太少则获得的频谱信息过少,有可能会使得重要的
频率信息丢失。
由结果可知,DFT点数越多,产生的离散谱中含有的信息也就越多,得到的频谱能更好的反应原连续谱中的信息。
在对离散序列用DFT做谱分析时,应当适当增加DFT的点数,以减小栅栏效应。
DFT点数越多,则L越大,即fsam/N越小,那么显示分辨率就越高。
【自主学习内容】
【阅读文献】
[1]陈后金,薛健,胡健. 数字信号处理[M]. 北京:
高等教育出版社,2006 .
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
1.
k=0:
31;
xk=sin(0.2*pi*k);
H=fft(xk);
w=linspace(0,2*pi,32)
stem(w/pi,abs(H));
title('F=2*k*pi¡À0.2*pi');
xlabel('normalizedfrequency');
ylabel('fudu');
2.
k=0:
31;
xk=sin(0.2*pi*k);
H=fft(xk,64);
w=linspace(0,2*pi,64)
stem(w/pi,abs(H));
title('F=2*k*pi¡À0.2*pi;L=64');
xlabel('normalizedfrequency');
ylabel('fudu');
3.
k=0:
31;
xk=sin(0.2*pi*k);
H=fft(xk,128);
w=linspace(0,2*pi,128)
stem(w/pi,abs(H));
title('F=2*k*pi¡À0.2*pi;L=128');
xlabel('normalizedfrequency');
ylabel('fudu');
4.
k=0:
31;
xk=sin(0.2*pi*k);
H=fft(xk,256);
w=linspace(0,2*pi,256)
stem(w/pi,abs(H));
title('F=2*k*pi¡À0.2*pi;L=256');
xlabel('normalizedfrequency');
ylabel('fudu');
5.
k=0:
31;
xk=sin(0.2*pi*k);
H=fft(xk,512);
w=linspace(0,2*pi,512)
stem(w/pi,abs(H));
title('F=2*k*pi¡À0.2*pi;L=512');
xlabel('normalizedfrequency');
ylabel('fudu');
2已知一离散序列为x[k]=AcosΩ0k+Bcos((Ω0+∆Ω)k)。
用长度N=64的哈明窗对信号截短后近似计算其频谱。
试用不同的A和B的值(如A和B近似相等,A和B近差距较大),确定用哈明窗能分辩的最小的谱峰间隔
中c的值。
∆Ω=0.06πc=1.92
【题目分析】
本题讨论用哈明窗计算序列频谱时的频率分辨率。
Hamming窗函数的幅值有中心向两端逐渐减弱,因而其高频分量明显减小,频谱中旁瓣的幅度较小,主瓣峰值与第一个旁瓣峰值相对衰减很大,hamming窗以增加主瓣宽度来降低旁瓣能量,用hamming窗极端频谱时要求能分辨的谱峰的间隔Δƒ≥c/Tp=c*fs/N。
【仿真结果】
【结果分析】
将实验结果与教材中定义的哈明窗有效宽度相比较,发表你的看法。
由以上三幅图可见f2=140Hz时,各谱峰可分辨。
则△f=40fHz又△Ω=2πc/N且△Ω=△wT=2π△fT=2π*40*1/800
所以c=3.2(近似值)
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
在离散序列频谱计算中为何要用窗函数?
用不同的窗函数对计算结果有何影响?
与矩形窗相比哈明窗有何特点?
如何选择窗函数?
【仿真程序】
【题目分析】
本题讨论用哈明窗计算序列频谱时的频率分辨率。
【仿真结果】
【结果分析】
将实验结果与教材中定义的哈明窗有效宽度相比较,发表你的看法。
【自主学习内容】
【阅读文献】
1]陈后金,薛健,胡健. 数字信号处理[M]. 北京:
高等教育出版社,2006
【问题探究】
在离散序列频谱计算中为何要用窗函数?
用不同的窗函数对计算结果有何影响?
与矩形窗相比哈明窗有何特点?
如何选择窗函数?
【仿真程序】
k=0:
63;
A=1;B=1;t=0.1;w=2*pi;
xk=A*cos(w*k)+B*cos((w+t)*k)
W=hamming(64);
yk=xk.*W';
m=linspace(0,pi,512);
H=fft(yk,512);
stem(m/pi,abs(H));
title('A=1;B=1;t=0.1;w=2*pi;');
xlabel('Normalizedfrequency');
ylabel('Magnitude');
k=0:
63;
A=3;B=1;t=0.1;w=2*pi;
xk=A*cos(w*k)+B*cos((w+t)*k)
W=hamming(64);
yk=xk.*W';
m=linspace(0,pi,512);
H=fft(yk,512);
stem(m/pi,abs(H));
title('A=3;B=1;t=0.1;w=2*pi;');
xlabel('Normalizedfrequency');
ylabel('Magnitude');
3已知信号
,
(1)以
为间隔对
抽样,抽得128个样本
,画出其频谱密度函数的草图
,对其做128点FFT,得到
,问m为哪些值时,
具有较大值?
(较大值即主瓣之中的非零值)
(2)若给
补上896个零值,使之成为1024点序列,
对
做1024点FFT得到
,问m为哪些值时,
具有较大值?
(3)仍以
对
抽样,抽得1024个样本
,画出其频谱密度函数的草图
,对
做1024点FFT,得到
问m为哪些值时,具
有较大值?
(4)设
为1024点的hamming窗,
写出
的数学表达式,令
,画出
的频谱密度函数的草图
,对
做1024点FFT,得到
,问m为哪些值时,
具有较大的值?
【题目分析】
分析影响谱峰分辨率的主要因数,进一步认识补零在在频谱计算中的作用。
【仿真结果】
【结果分析】
DFT点数越多,分辨率越高,补零只能使序列的频谱变得细致,但不能提高频率的分辨率。
只有采集更多的有效数据,才能得到序列的高分辨频谱。
【自主学习内容】
【阅读文献】
[1]陈后金胡健. 数字信号处理[M]. 北京:
高等教育出版社,2006 .
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
1、2、3题讨论的是离散信号频谱的计算问题。
与连续信号频谱计算问题相比较,其计算误差有何不同?
答:
离散信号的频谱具有周期性,会因抽样频率的不适而产生混叠,导致失真。
【仿真程序】
1.
t=0:
0.0001:
1.27;T=0.01;
k=0:
127;
f1=10;f2=10.3;
xt1=cos(2*pi*f1*t)+cos(2*pi*f2*t);
xk=cos(2*pi*f1*k*T)+cos(2*pi*f2*k*T);
%stem(k,xk);
w=linspace(0,2*pi,512);
X=fft(xk,512);
plot(w/pi,abs(X));
holdon;
H=fft(xk)
w2=linspace(0,2*pi,128);
stem(w2/pi,abs(H),'r');
2.3.
t=0:
0.0001:
10.23;T=0.01;
k=0:
1023;
f1=10;f2=10.3;
xt1=cos(2*pi*f1*t)+cos(2*pi*f2*t);
xk=cos(2*pi*f1*k*T)+cos(2*pi*f2*k*T);
%stem(k,xk);
w=linspace(0,2*pi,1024);
X=fft(xk,1024);
plot(w/pi,abs(X));
holdon;
H=fft(xk,1024)
w2=linspace(0,2*pi,1024);
stem(w2/pi,abs(H),'r');
4.
t=0:
0.0001:
10.23;T=0.01;
k=0:
1023;
f1=10;f2=10.3;
xt1=cos(2*pi*f1*t)+cos(2*pi*f2*t);
xk=cos(2*pi*f1*k*T)+cos(2*pi*f2*k*T);
%stem(k,xk);
h=hamming(1024);
gk=xk.*h';
w=linspace(0,2*pi,1024);
X=fft(gk,1024);
plot(w/pi,abs(X));
holdon;
H=fft(xk,1024)
w2=linspace(0,2*pi,1024);
stem(w2/pi,abs(H),'r');
4试用DFT近似计算高斯信号
的频谱抽样值。
高斯信号频谱的理论值为
通过与理论值比较,讨论信号的时域截取长度和抽样频率对计算误差的影响。
【题目分析】
连续非周期信号频谱计算的基本方法。
计算中出现误差的主要原因及减小误差的方法。
【仿真结果】
【结果分析】
由于信号在时域和频谱都有理论表达式,在进行误差分析时希望给出一些定量的结果。
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
t=0:
0.001:
5;d=0.256;T=0.456;
k=0:
511;
gt=exp(-(t.^2)*d);
gk=exp(-((k*T).^2)*d);
X=freqz(gk);
w=linspace(0,2*pi,512);
plot(w/pi,abs(X));
holdon;
G=sqrt(pi/d)*exp(-(w.^2)/(4*d));
plot(w/pi,abs(G),'r');
legend('³éÑù','ÀíÂÛ');
扩展题
5本题研究连续周期信号频谱的近似计算问题。
周期为T0的连续时间周期信号x(t)可用Fourier级数表示为
其中
X(nω0)称为连续时间周期信号x(t)的频谱函数。
称为信号的基频(基波),
称为信号的谐波。
如果信号x(t)函数表达式已知,则可由积分得出信号的频谱。
如果信号x(t)函数表达式未知,或者x(t)函数表达式非常复杂,则很难由积分得信号的频谱。
本题的目的就是研究如何利用DFT近似计算连续时间周期信号的频谱。
(1)若在信号x(t)的一个周期T0内抽样N个点,即
,T为抽样周期(间隔),可获得序列x[k]
试分析序列x[k]的DFT与连续时间周期信号x(t)的频谱X(nω0)的关系;
(2)由
(1)的结论,给出由DFT近似计算周期信号频谱X(nω0)的方案;
(3)周期信号x(t)的周期T0=1,x(t)在区间[0,1]的表达式为
x(t)=20t2(1-t)4cos(12πt)
(a)试画出信号x(t)在区间[0,1]的波形;
(b)若要用6次以内的谐波近似表示x(t),试给出计算方案,并计算出近似表示的误差。
讨论出现误差的原因及减小误差的方法。
【题目分析】
【理论推导】
DFT计算所得结果X[m]与连续周期信号频谱X(nω0)的关系。
【计算方案】
根据理论推导结果设计近似计算方案。
分析产生误差的主要原因。
【扩展分析】
如果周期信号x(t)是带限信号,即信号的最高频率分量为Mω0(是正整数),试确定在一个周期内的最少抽样点N,使得在频谱的计算过程当中不存在混叠误差。
与抽样定理给出的结论比较,发表你的看法。
【仿真结果】
x(t)在区间[0,1]的波形:
【结果分析】
讨论DFT点数对近似计算的影响,讨论所取谐波项的多少对近似计算的影响。
误差分析要给出定量的结果,如平均误差,最大误差等。
与连续非周期信号频谱计算过程中存在的误差相比较,连续周期信号频谱的计算计算误差有何异同?
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
t=0:
0.001:
1;
k=0:
101;
xt=20*(t.^2).*((1-t).^4).*cos(12*pi*t);
plot(t,xt)
%xk=20*((k*T).^2).*((1-(k*T)).^4).*cos(12*pi*(k*T));
X=fft(xt)/length(t);
Xm=fftshift(X);
m=-(length(t)-1)/2:
(length(t)-1)/2;
%m=linspace(0,pi,512);
%stem(m,abs(Xm));
N=10;w0=2*pi;
forn=0:
N-1;%N:
г²¨Êý
xN=xN+2*real(X(n)*exp(j*n*w0*t));
end
%plot(t,xN);
电子文件提交说明:
文件名学号+姓名+研讨题目(每组在文件名上只需提供一个学号和姓名)
文件格式MicrosoftWord2010或以下版本
建议用Office套装软件Visio进行绘图。
Matlab所绘图形可在Visio环境下ungroup后进行编辑。