数字信号处理.docx
- 文档编号:10645592
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:27
- 大小:134.39KB
数字信号处理.docx
《数字信号处理.docx》由会员分享,可在线阅读,更多相关《数字信号处理.docx(27页珍藏版)》请在冰豆网上搜索。
数字信号处理
《数字信号处理》课程研究性学习报告
姓名
学号
同组成员
指导教师
时间
DFT近似计算信号频谱专题研讨
【目的】
(1)掌握利用DFT近似计算不同类型信号频谱的原理和方法。
(2)理解误差产生的原因及减小误差的方法。
(3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。
【研讨题目】基本题
1.利用DFT分析x(t)=Acos(2πf1t)+Bcos(2πf2t)的频谱,其中f1=100Hz,f2=120Hz。
(1)A=B=1;
(2)A=1,B=0.2。
要求选择不同的窗函数。
【题目分析】
分析题目,给出合适的DFT参数
1.首先考虑抽样频率,因为max(f1,f2)=120,所以fs>=240,为了更精确,我们取fs=600HZ;
2.抽取信号长度N>=Cfs/△f,在
(1)问中,因为A=B=1,所以我们选择窗函数矩形窗,且N>=30;在
(2)问中因为A远远大于B,所以我们选择了旁瓣幅度小的汉明窗,且N>=60;
3.做DFT的点数L>=N,所以为了统一,我们去取了L=512;
【仿真结果】
(1)程序及仿真结果:
(2)程序及仿真结果;
【结果分析】
对实验结果进行比较,总结出选择合适DFT参数的原则。
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
在对第二问的计算时,没注意到c的值为2,而是对N的范围为30到60,发现60不能分辨两个谱峰,相反30点时能够隐约看见两个谱峰,刚开始以为就此分辨了两个谱峰,后来发现这是错误的
【问题探究】
【仿真程序】
(1)N=30
L=512
f1=100;f2=120;fs=600;
T=1/fs
ws=2*pi*fs
t=(0:
N-1)*T
x=cos(2*pi*f1*t)+cos(2*pi*f2*t)
X=fftshift(fft(x,L))
w=(-ws/2+(0:
L-1)*ws/L)/(2*pi)
plot(w,abs(X))
ylabel('幅度谱')
(2)
N=90
L=512
f1=100;f2=120;fs=600;
T=1/fs
ws=2*pi*fs
t=(0:
N-1)*T
x=cos(2*pi*f1*t)+0.2*cos(2*pi*f2*t)
wh=(hamming(N))';x=x.*wh
X=fftshift(fft(x,L))
w=(-ws/2+(0:
L-1)*ws/L)/(2*pi)
plot(w,abs(X))
ylabel('幅度谱')
title('N=90')
【研讨题目】基本题
2.已知一离散序列为
(1)用L=32点DFT计算该序列的频谱,求出频谱中谱峰的频率;
(2)对序列进行补零,然后分别用L=64、128、256、512点DFT计算该序列的频谱,求出频谱中谱峰的频率;
(3)讨论所获得的结果,给出你的结论。
该结论对序列的频谱计算有何指导意义?
【题目分析】
本题讨论补零对离散序列频谱计算的影响。
【温磬提示】
在计算离散非周期序列频谱时常用Ω/π作为横坐标,称Ω/π为归一化频率(normalizedfrequency)。
在画频谱时需给出横坐标。
每幅图下都需给出简要的文字说明。
由于离散非周期序列频谱是周期的,所以在计算时不需要用fftshift函数对fft计算的结果进行重新排列。
【序列频谱计算的基本方法】
【仿真结果】
仿真结果:
【结果分析】
从表达式看,出现谱峰的的位置应该是在
=0.2π处
从图中可得出当DFT点数为32时,得到的谱峰对应的
1=0.1875π;DFT点数为64时,
2=0.1875π;DFT点数为128时,
3=0.2031π;DFT点数为256时,
4=0.2031π;DFT点数为512时,
5=0.1992π,由此看出,随着DFT的点数的增加,其谱峰越来越和0.2π接近,及DFT点数越多,越能精确描述出序列频谱。
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
程序:
k=0:
31
L1=32;L2=64;L3=128;L4=256;L5=512
x=sin(0.2*pi*k)
X1=fft(x)
X11=abs(X1)
X2=fft(x,L2)
X22=abs(X2)
X3=fft(x,L3)
X33=abs(X3)
X4=fft(x,L4)
X44=abs(X4)
X5=fft(x,L5)
X55=abs(X5)
w1=-pi:
2*pi/L1:
pi-2*pi/L1
w2=-pi:
2*pi/L2:
pi-2*pi/L2
w3=-pi:
2*pi/L3:
pi-2*pi/L3
w4=-pi:
2*pi/L4:
pi-2*pi/L4
w5=-pi:
2*pi/L5:
pi-2*pi/L5
subplot(2,2,1)
plot(w1/pi+1,abs(X1),'r');holdon
plot(w2/pi+1,abs(X2),'g')
title('L=32µÄL=64µÄƵÆױȽÏ')
subplot(2,2,2)
plot(w1/pi+1,abs(X1),'r');holdon
plot(w3/pi+1,abs(X3),'g')
title('L=32µÄL=128µÄƵÆױȽÏ')
subplot(2,2,3)
plot(w1/pi+1,abs(X1),'r');holdon
plot(w4/pi+1,abs(X4),'g')
title('L=32µÄL=256µÄƵÆױȽÏ')
subplot(2,2,4)
plot(w1/pi+1,abs(X1),'r');holdon
plot(w5/pi+1,abs(X5),'g')
title('L=32µÄL=512µÄƵÆױȽÏ')
【研讨题目】基本题
3.已知一离散序列为x[k]=AcosΩ0k+Bcos((Ω0+∆Ω)k)。
用长度N=64的哈明窗对信号截短后近似计算其频谱。
试用不同的A和B的取值,确定用哈明窗能分辩的最小的谱峰间隔
中c的值。
(M2-3)
【题目分析】
本题讨论用哈明窗计算序列频谱时的频率分辨率。
本题分两种情况讨论:
(统一取Ω0=0.2π,Ω1=Ω0+∆Ω=0.2π+π/n,去合适的n值,使得∆Ω足够小)
(1)当A、B相当且都比较大时,及A、B相差不大,我们取A=1,B=0.8,
(2)当A、B相差很大或者A和B都很小时,又分两种情况,①A=1,B=0.1;②A=0.1,B=0.15
在这两种情况下,分别讨论不同的n值,以n的取值来确定最小的谱峰间隔∆Ωω,从而确定c的取值。
【仿真结果】
第一种情况A=1,B=0.8:
第二种情况A=1,B=0.1:
第三种情况A=0.1,B=0.15
【结果分析】
将实验结果与教材中定义的窗函数的有效宽度相比较,发表你的看法。
在第一种情况下,可得最小的谱峰间隔∆Ωω=π/13,所以c=2.5,第二种情况下,在A、B相差很大时,得到最小谱峰间隔∆Ωω=π/9,所以c=3.6;在A、B都很小时,得到的最小谱峰间隔∆Ωω=π/12,所以c=2.7.所以经上诉运算,达到的C值范围为2到4.
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
在离散序列频谱计算中为何要用窗函数?
用不同的窗函数对计算结果有何影响?
与矩形窗相比哈明窗有何特点?
如何选择窗函数?
【仿真程序】
(1)N=64;
L=512;
k=0:
N-1;
w0=0.2*pi;w1=w0+pi/13;
x=cos(w0*k)+0.8*cos(w1*k);
wh=(hamming(N))'
x1=x.*wh
y1=fft(x1,L);
plot((0:
L-1)/L*(2*pi),abs(y1));
xlabel('¦¸');ylabel('·ù¶È');title('N=64,A=1,b=0.8,¦¤¦¸=pi/13');
(2)N=64;
L=512;
k=0:
N-1;
w0=0.2*pi;w1=w0+pi/9;
x=cos(w0*k)+0.1*cos(w1*k);
wh=(hamming(N))'
x1=x.*wh
y1=fft(x1,L);
plot((0:
L-1)/L*(2*pi),abs(y1));
xlabel('¦¸');ylabel('·ù¶È');title('N=64,A=1,b=0.1,¦¤¦¸=pi/9');
(3)N=64;
L=512;
k=0:
N-1;
w0=0.2*pi;w1=w0+pi/12;
x=0.1*cos(w0*k)+0.15*cos(w1*k);
wh=(hamming(N))'
x1=x.*wh
y1=fft(x1,L);
plot((0:
L-1)/L*(2*pi),abs(y1));
xlabel('¦¸');ylabel('·ù¶È');title('N=64,A=0.1,b=0.15,¦¤¦¸=pi/12');
【研讨题目】基本题
4.已知一离散序列为x[k]=cos(Ω0k)+0.75cos(Ω1k),0k63其中Ω0=0.4π,Ω1=Ω0+π/64
(1)对x[k]做64点FFT,画出此时信号的频谱。
(2)如果
(1)中显示的谱不能分辨两个谱峰,是否可对
(1)中的64点信号补零而分辨出两个谱峰。
通过编程进行证实,并解释其原因。
(3)给出一种能分辨出信号中两个谱峰的计算方案,并进行仿真实验。
(M2-4)
【题目分析】
分析影响谱峰分辨率的主要因数,进一步认识补零在在频谱计算中的作用。
【仿真结果】
(1)
(2)
(3)由
(1)和
(2)知,不管做DFT的点数是多少,都不能把两个谱峰分辨,所以应该是原序列的长度不够,导致不能辨别两个谱峰。
在原序列后补零,所得到的X(
)不会改变,而在进行DFT时,得到的X[m]即是对X(
)在一个周期等间隔抽样,所以X[m]=X(
)
由于N的增加,使得显示的分辨率提高,显示出X(
)跟家细节的部分,但是并不能弥补X(
)本身由于泄漏导致的失真。
所以只有增加本身原序列的长度,才能改善此情况。
下面是对原序列X[k]进行加长之后(k=128)的结果:
【结果分析】
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
(1)k=0:
63;
w0=0.4*pi;w1=w0+pi/64;
x=cos(w0*k)+cos(w1*k);
X=fft(x)
plot(k/64*(2*pi),abs(X))
ylabel('幅度')
(2)k=0:
63;
L=512;
w0=0.4*pi;w1=w0+pi/64;
x=cos(w0*k)+0.75*cos(w1*k);
y1=fft(x,512);
plot((0:
L-1)/L*(2*pi),abs(y1));
xlabel('?
?
');ylabel('幅度');title('L=512');
(3)k=0:
127;
L=256;
w0=0.4*pi;w1=w0+pi/64;
x=cos(w0*k)+0.75*cos(w1*k);
y1=fft(x,256);
plot((0:
L-1)/L*(2*pi),abs(y1));
xlabel('?
?
');ylabel('幅度');title('k=128£¬L=256');
【研讨题目】基本题
5.试用DFT近似计算高斯信号
的频谱抽样值。
高斯信号频谱的理论值为
通过与理论值比较,讨论信号的时域截取长度和抽样频率对计算误差的影响。
(M2-6)
【题目分析】
连续非周期信号频谱计算的基本方法。
计算中出现误差的主要原因及减小误差的方法。
【仿真结果】
1,截取长度的影响:
截取长度N=32时:
截取长度N=64
截取长度N=128时:
2,抽样频率的影响:
抽样频率fs=1hz时,
抽样频率fs=2hz时:
抽样频率fs=10hz时:
【结果分析】
由于信号及频谱都有理论表达式,在进行误差分析时希望给出一些定量的结果。
在第一个实验中,当截取长度为64和128时比N=32的误差要的多,对比N=64和N=128,可知N=128的误差比N=64的误差要小,但是并不是N越大越好,我们做了N=256的频谱,发现误差的数量级大了十倍,所以综合可知N=128时很合适;在第二个实验中,我们分别对抽样频率1hz、2hz、10hz进行了讨论,可知抽样频率的误差比截取长度的误差要大得多。
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】在仿真程序里,改变相应的Ts和N就能得到截取长度、抽样频率对频谱的影响。
Ts=0.1;
N=64;
k=-N/2:
(N/2-1);
d=2;
x=exp(-d*(Ts*k).^2);
X=Ts*fftshift(fft(x));
w=-pi/Ts:
2*pi/N/Ts:
(pi-2*pi/N)/Ts;
XT=(pi/d)^0.5*exp(-w.^2/4/d);
subplot(2,1,1);
plot(w/pi,abs(X),'o',w/pi,XT);
subplot(2,1,2);
plot(w/pi,abs(X)-XT);
【研讨题目】扩展题
6.本题研究连续周期信号频谱的近似计算问题。
周期为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)若要用10次以内的谐波近似表示x(t),试给出计算方案,并计算出近似表示的误差。
讨论出现误差的原因及减小误差的方法。
【题目分析】
(1)由DFT的定义,X[m]=
k=0,1,2,…,N-1①
由周期信号x(t)得到它的频谱X(nω0),所以x(t)=
②
因为
,③
把①②③联立求解得到X[m]和X(nω0)的关系:
X[m]=
【理论推导】
DFT计算所得结果X[m]与连续周期信号频谱X(nω0)的关系。
【计算方案】
根据理论推导结果设计近似计算方案。
分析产生误差的主要原因。
【扩展分析】
如果周期信号x(t)是带限信号,即信号的最高频率分量为Mω0(是正整数),试确定在一个周期内的最少抽样点N,使得在频谱的计算过程当中不存在混叠误差。
与抽样定理给出的结论比较,发表你的看法。
【仿真结果】
(3)
【结果分析】
讨论DFT点数对近似计算的影响,讨论所取谐波项的多少对近似计算的影响。
误差分析要给出定量的结果,如平均误差,最大误差等。
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
(2)t=0:
0.01:
1;
x=20*t.^2.*(1-t).^4.*cos(12*pi*t)
plot(t,x)
(3)
电子文件提交说明:
文件名学号_姓名_DSP1(每组在文件名上只需提供一个学号和姓名)
文件格式MicrosoftWord2003或以下版本
建议用Office套装软件Visio进行绘图。
Matlab所绘图形可在Visio环境下ungroup后进行编辑。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理