您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页DSP研究性学习报告频谱计算

DSP研究性学习报告频谱计算

来源:爱go旅游网


《数字信号处理》课程研究性学习报告

DFT近似计算信号频谱专题研讨

姓名 庄泽鑫 学号 11214058 同组成员 王敏超 11214051

指导教师 薛建 时间 2013-5-5

利用DFT近似计算信号频谱专题研讨

【目的】

(1) 掌握利用DFT近似计算不同类型信号频谱的原理和方法; (2) 理解误差产生的原因及减小误差的方法; (3)研究用DFT近似计算连续周期信号的方法;

(4) 培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。

【研讨内容】

基本题

基本题是课程的基本要求,所有的人都需完成。

问题一

已知一离散序列为

x[k]sin(0.2πk),k0,1,,31

(1)用L=32点DFT计算该序列的频谱,求出频谱中谱峰的频率;

(2)对序列进行补零,然后分别用L=、128、256、512点DFT计算该序列的频谱,求出频谱中谱峰的频率;

(3)讨论所获得的结果,给出你的结论。该结论对序列的频谱计算有何指导意义?

【题目分析】 本题讨论补零对离散序列频谱计算的影响。

【温磬提示】 在计算离散非周期序列频谱时常用/作为横坐标,称/为归一化频率normalized frequency)。在画频谱时需给出横坐标。每幅图下都需给出简要的文字说明。 由于离散非周期序列频谱是周期的,所以在计算时不需要用fftshift 函数对fft计算的结果进行重新排列。

【序列频谱计算的基本方法】 【仿真结果】 (1)

谱峰 14.5561

谱峰的频率 3 (2)

DFT点数:L= 谱峰 14.5561

谱峰的频率 6

DFT点数:L=128 谱峰 15.2671

谱峰的频率 13

DFT点数:L=256 谱峰 15.2671 谱峰的频率 26

DFT点数:L=512 谱峰 15.3563

谱峰的频率 51

【结果分析】

(1) 如图中可知,频峰频率为0.2Hz 谱峰 14.5561 谱峰的频率 3 (2) 如各图中可知,频峰频率仍为0.2Hz 谱峰 14.5561谱峰的频率 6

(3) 对该序列不断补零,我们从图中可以看出补零越多,则频谱间隔越小,频谱函数越详细,细节越多,使信号频谱的显示分辨率越大。

【自主学习内容】

利用DFT分析连续非周期信号的频谱 栏栅现象 【阅读文献】 数字信号处理

【发现问题】(专题研讨或相关知识点学习中发现的问题): 对序列补零的作用

【问题探究】

对序列补零的作用可以减小频谱分析时的谱线间隔,所以能够提高信号频谱的显示分辨率。

通过对序列补零只能提高信号频谱的显示分辨率。如果连续信号在离散化或时域加窗过程中,由于混叠或泄露等过程已经造成信号频谱中信息的失真,则无论怎么补零也无法再恢复已损失的信息。

【仿真程序】 (1) L=32; k=0:31;

x=sin(2*pi*k./10); X=fft(x);

plot(k/32,abs(X)); (2) L=0:63; k=0:31;

x=sin(2*pi*k./10); X=fft(x,);

plot(L/,abs(X)); L=0:127; k=0:31;

x=sin(2*pi*k./10); X=fft(x,128);

plot(L/128,abs(X)); L=0:255; k=0:31;

x=sin(2*pi*k./10); X=fft(x,256);

plot(L/256,abs(X)); L=0:511; k=0:31;

x=sin(2*pi*k./10); X=fft(x,512);

plot(L/512,abs(X));

问题二

某离散序列为 x[k]=Acos0k+Bcos0+)k)。用长度N=的哈明窗对信号截短后近似计算其频谱。试用不同的A和B的值(如 A和B近似相等,A和B近差距较大),确定用哈明窗能分辩的最小的谱峰间隔Δwc

【题目分析】 本题讨论用哈明窗计算序列频谱时的频率分辨率问题。

【仿真结果】

2π中c的值。 N

【结果分析】 将实验结果与教材中定义的哈明窗有效宽度相比较,发表你的看法。

【自主学习内容】

当两个相近频率幅度相差不大时,分辨效果比较好。C从2到1.8,1.6,1.4变化,可知c>1.6时能分辨开,并且c>2时较为理想

【阅读文献】

《数字信号处理》高等教育出版社 陈后金主编,薛健胡键编著

【发现问题】 (专题研讨或相关知识点学习中发现的问题):

在仿真过程中发现当c=1能分开谱峰间隔,这是错误的,这可能是由于DFT计算频谱时候产生了误差,可能是离散点的位置不同影响了连续点的取值而造成了这种结果。

【问题探究】 在离散序列频谱计算中为何要用窗函数?用不同的窗函数对计算结果有何影响?与矩形窗相比哈明窗有何特点?如何选择窗函数?

由于计算机存储空间有限,因此我们需要利用窗函数来截取,得到短的序列近似计算频谱。哈明窗旁瓣带走能量少,不同频率之间影响小,但其主瓣宽,因而影响分辨率。所以c的选取根据分辨率要求来选择。

【仿真程序】

w0=0.2*pi;

dw1=pi/32; dw2=pi/35.6; dw3=pi/40; dw4=pi/45.7; k=0:63; A=1; B=1; L=1028;

x1=(A*cos(w0*k)+B*cos((w0+dw1)*k)).*(0.-0.46*(cos(2*pi/63*k))); x2=(A*cos(w0*k)+B*cos((w0+dw2)*k)).*(0.-0.46*(cos(2*pi/63*k))); x3=(A*cos(w0*k)+B*cos((w0+dw3)*k)).*(0.-0.46*(cos(2*pi/63*k))); x4=(A*cos(w0*k)+B*cos((w0+dw4)*k)).*(0.-0.46*(cos(2*pi/63*k))); X1=fftshift(fft(x1,L)); X2=fftshift(fft(x2,L)); X3=fftshift(fft(x3,L)); X4=fftshift(fft(x4,L)); w=-pi:2*pi/L:pi-2*pi/L; subplot(2,2,1); plot(w/pi,abs(X1)); subplot(2,2,2); plot(w/pi,abs(X2)); subplot(2,2,3); plot(w/pi,abs(X3)); subplot(2,2,4); plot(w/pi,abs(X4));

问题三

已知一离散序列为 x[k]=cos(0k)+0.75cos(1k), 0 k  63 其中0=0.4, 1=0+/

(1) 对x[k]做点FFT, 画出此时信号的频谱。

(2) 如果(1)中显示的谱不能分辨两个谱峰,是否可对(1)中的点信号补零而分辨出两个谱

峰。通过编程进行证实,并解释其原因 。

(3) 给出一种能分辨出信号中两个谱峰的计算方案,并进行仿真实验。

【题目分析】 分析影响谱峰分辨率的主要因数,进一步认识补零在在频谱计算中的作用。

【仿真结果】

见【仿真程序】 【结果分析】

1、对x[k]做点DFT无法分辨谱峰,从后补零,序列的频谱不会有任何变化。 2、补零之后只能提高信号频谱的显示分辨率,由于混叠或泄露等过程已经造成信号频谱中信息的失真,补零无法恢复已经损失的信息。 【自主学习内容】

【阅读文献】

《数字信号处理》高等教育出版社 陈后金主编,薛健胡键编著

【发现问题】 (专题研讨或相关知识点学习中发现的问题):

【问题探究】 问题一、二、三讨论的是离散信号频谱的计算问题。与连续信号频谱计算问题相比较,其计算误差有何不同?

离散信号频谱如果是连续信号频谱的周期倍,可能会产生混叠。 【仿真程序】

k=0:63; L=;

w0=0.4*pi; w1=w0+pi/;

x=cos(w0*k)+0.75*cos(w1*k); x=[x zeros(1,L-length(x))]; X=fftshift(fft(x)); w=-pi:2*pi/L:pi-2*pi/L; plot(w/pi,abs(X));

k=0:63; L=128; w0=0.4*pi; w1=w0+pi/;

x=cos(w0*k)+0.75*cos(w1*k); x=[x zeros(1,L-length(x))]; X=fftshift(fft(x)); w=-pi:2*pi/L:pi-2*pi/L;

plot(w/pi,abs(X));

k=0:63; L=512; w0=0.4*pi; w1=w0+pi/;

x=cos(w0*k)+0.75*cos(w1*k); x=[x zeros(1,L-length(x))]; X=fftshift(fft(x)); w=-pi:2*pi/L:pi-2*pi/L; plot(w/pi,abs(X));

k=0:127; L=128; w0=0.4*pi;

w1=w0+pi/;

x=cos(w0*k)+0.75*cos(w1*k); x=[x zeros(1,L-length(x))]; X=fftshift(fft(x)); w=-pi:2*pi/L:pi-2*pi/L; plot(w/pi,abs(X));

问题四

试用DFT近似计算高斯信号g(t)exp(dt)的频谱抽样值。高斯信号频谱的理论值为

2π2G(j)exp()

d4d通过与理论值比较,讨论信号的时域截取长度和抽样频率对计算误差的影响。

【题目分析】

对于连续的非周期信号进行频谱计算,要先对其进行抽样变为离散信号,再对频谱在一个周期

内抽样。信号g(t)exp(dt2)在时域内无限长,为了避免频谱混叠造成的误差可以加抗混叠滤波器之后再分析。

【仿真结果】

【结果分析】

时域截取长度相同时,抽样间隔越小时误差越小,当抽样间隔一定时,时域截取长度越长,误差越小。

当Ts=1S,N=2S时,误差较大,绝对误差约为0.5

当Ts=0.5S,N=2S时,误差比间隔为1S时小,绝对误差小于等于0.2 当Ts=0.5S,N=4S时,误差更小,绝对误差小于等于0.04.

因为时域截取长度越长,保留下来的原信号中的信息越多,抽样间隔越小,频谱越不容易发生混叠,所以实验值比理论值误差小

【自主学习内容】

Matlab抽样函数的使用 【阅读文献】

信号与系统 数字信号处理 【发现问题】

Ts取值可以调整,将Ts取值减小可以探究其对误差的影响

【问题探究】

在网络上查询FFT函数的使用方法: fft(x,N):计算N点的DFT,若M>N,则将原序列截断为N点的序列,再计算其DFT,若M因此,当N我们定义为大于的数值时,函数仅自动截取了点进行计算,故其产生的误差变大。 解决方案:我们将程序一中的N0改变为1024,取值Ts=0.05,N=80,时域截取长度为4s,可以发现实验误差极小。此时N的取值也必须与N0相应增加,否则误差仍然会很大。

【仿真程序】 Ts=input('Ts='); N=input('N=');

N0=1024;

k=(-N/2:(N/2))*Ts; d=pi;

x=exp(-d*(k).^2);

X=Ts*fftshift(fft(x,N0));

w=-pi/Ts:2*pi/N0/Ts:(pi-2*pi/N0)/Ts; XT=(pi/d)^0.5*exp(-w.^2/4/d); subplot(2,1,1)

plot(w/pi,abs(X),'-o',w/pi,XT); xlabel('\\omega/\\pi'); ylabel('X(j\\omega)');

legend('实验值','理论值');

title(['Ts=',num2str(Ts) ' ' 'N=',num2str(N)]); subplot(2,1,2)

plot(w/pi,abs(X)-XT) ylabel('实验误差') xlabel('\\omega/\\pi');

电子文件提交说明:

文件名 学号+姓名+研讨题目 (每组在文件名上只需提供一个学号和姓名) 文件格式 Microsoft Word 2003 或以下版本 建议用Office 套装软件 Visio 进行绘图。 Matlab所绘图形可在Visio环境下ungroup 后进行编辑。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务