数字信号处理实验报告6 加思考题.docx
数字信号处理实验报告6 加思考题实 验 报 告 实验名称课程名称 院 系 部: 学生姓名: 同 组 人: 指导教师: 实验日期: _ 专业班级: 学 号: 实验台号: 成 绩: 华北电力大学 一:实验目的及要求 应用离散傅里叶变换DFT分析模拟信号x(t)的频谱,深刻理解利用DFT分析模拟信号频谱的原理、分析过程中出现的现象及解决方法。 二:实验仪器 仪器名称 计算机 规格/型号 数量 一台 备注 装有Matlab 三:实验原理 连续周期信号相对于离散周期信号,连续非周期信号相对于离散非周期信号,都可以通过时域抽样定理建立相互关系。因此,在离散信号的DFT分析方法基础上,增加时域抽样的步骤,就可以实现连续信号的DFT分析。 x(t) 的频谱 利用DFT计算连续周期信号分析步骤为: (1) 确定周期信号的基本周期T0; (2) 计算一个周期内的抽样点数N。若周期信号的最高次谐频为p次谐波pw0 ,则频谱中有2p+1根谱线;若周期信号的频谱无限宽,则认为集中信号90%以上(或根据工程允许而定)能量的前(p+1)次谐波为近似的频谱范围,其余谐波忽略不计。取N>=2p+1; (3) 对连续周期信号以抽样间隔T= T0 /N进行抽样,得到xk ; (4) 利用FFT函数对xk作N点FFT运算,得到Xm; (5) 最后求得连续周期信号的频谱为X(nw0)=Xm/N。 利用DFT计算连续非周期信号x(t) 的频谱 分析步骤为: (1)根据时域抽样定理,确定时域抽样间隔T,得到离散序列xk; (2) 确定信号截短的长度M及窗函数的类型,得到有限长M点 离散序列xMk=xkwk; (3) 确定频域抽样点数N,要求N>=M; (4) 利用FFT函数进行N点FFT计算得到N点的Xm; (5由Xm可得连续信号频谱值 。 X(jw)样点的近似四:实验步骤 第一:实验内容 1. 利用FFT分析信号x(t)=e-2tu(t)的频谱。 (1) 确定DFT计算的各参数; (2) 比较理论值与计算值,分析误差原因,提出改善误差的措施。 2. 分析周期信号x(t)=cos(10t)+2sin(18t)频谱时,如果分析长度不为整周期,利用fft函数计算并绘出其频谱,总结对周期信号进行频谱分析时,如何选取信号的分析长度。 3. 假设一实际测得的一段信号的长度为0.4s,其表达式为 x(t)=cos(2pf1t)+0.75 cos(2pf2t) 其中f1=100Hz,f2=110Hz。当利用FFT近似分析该信号的频谱时,需要对信号进行时域抽样。试确定一合适抽样频率fsam,利用DFT分析信号x(t)的频谱。 若在信号截短时使用Hamming窗,由实验确定能够分辨最小谱峰间隔Df和信号长度Tp的关系。若采用不同参数的Kaiser窗,重新确定能够分辨最小谱峰间隔Df和信号长度Tp 的关系。 4. 产生一个淹没在噪声中的信号x(t),例如由50Hz和120Hz的正弦信号以及一个零均值的随机噪声叠加而成。确定抽样间隔和信号截短长度,分析信号的频谱,指出50Hz和120Hz的正弦成分对应的谱峰位置,详细写出检测信号的步骤和原理。 第二:实验结果,波形: 实验内容 %对连续信号x=e(-2t)分析 fsam=50;Tp=6; N=512; T=1/fsam; t=0:T:Tp; x=exp(-2*t); X=T*fft(x,N); subplot(2,1,1);plot(t,x); xlabel('t');title('时域波形 N=512');legend('理论值'); w=(-N/2:N/2-1)*(2*pi/N)*fsam; y=1./(j*w+2); subplot(2,1,2);plot(w,abs(fftshift(X),w,abs(y),'r-.'); title('幅度谱 N=512');xlabel('w'); legend('理论值','计算值',0); axis(-10,10,0,1.4) 实验内容 T0=1; N=36; T=T0/N; % 周期T0、FFT的点数N、抽样间隔T t=0:T:T0; x=cos(10*pi*t)+2*sin(18*pi*t); %周期信号 Xm=fft(x,N)/N; %利用FFT计算其频谱 f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-N/2:(N/2-1); subplot(2,1,1);stem(f,abs(fftshift(Xm); %画出幅度谱 xlabel('f (Hz)');ylabel('magnitude');title('幅度谱 N=36'); T0=1; N=90; T=T0/N; % 周期T0、FFT的点数N、抽样间隔T t=0:T:T0; x=cos(10*pi*t)+2*sin(18*pi*t); %周期信号 Xm=fft(x,N)/N; %利用FFT计算其频谱 f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-N/2:(N/2-1); subplot(2,1,2);stem(f,abs(fftshift(Xm); %画出幅度谱 xlabel('f (Hz)');ylabel('magnitude');title('幅度谱 N=90'); 实验内容 %对信号进行频谱分析 fsam=440;Tp=0.4; N=55; T=1/fsam; t=0:T:Tp; f1=100;f2=110; x=cos(2*pi*f1*t)+sin(2*pi*f2*t); %周期信号 Xm=fft(x,N)/N; %利用FFT计算其频谱 f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-N/2:(N/2-1); subplot(2,1,1);stem(f,abs(fftshift(Xm); %画出幅度谱 xlabel('f (Hz)');ylabel('magnitude');title('幅度谱 N=440'); %使用hamming对信号进行频谱分析 fsam=440;Tp=0.4; N=55;T=1/fsam; t=0:T:Tp; N=Tp/T+1; f1=100;f2=110; y=cos(2*pi*f1*t)+0.75*sin(2*pi*f2*t); %周期信号 %选择非矩形窗hamming窗分析 w=0.54-0.46*cos(2*pi*k/(N-1); x=y.*w; Xm=fft(x,N)/N; %利用FFT计算其频谱 f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-N/2:(N/2-1); subplot(2,1,2);stem(f,abs(fftshift(Xm); %画出幅度谱 xlabel('f (Hz)');ylabel('magnitude');title('幅度谱怎加hamming窗后分析N=?'); 实验内容 %对信号进行频谱分析 fsam=480;Tp=0.4; N=55; T=1/fsam; t=0:T:Tp; f1=50;f2=120; x=cos(2*pi*f1*t)+0.75*sin(2*pi*f2*t); %周期信号 Xm=fft(x,N)/N; %利用FFT计算其频谱 f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-N/2:(N/2-1); stem(f,abs(fftshift(Xm); %画出幅度谱 xlabel('f (Hz)');ylabel('magnitude');title('幅度谱 N=55'); 第三:思考题 1. 既然可直接由Fourier变换的定义计算连续信号的傅里叶变换,为何利用DFT分析连续信号的频谱? 答:根据定义是可以根据傅里叶变换的定义直接计算连续信号的福利叶变换,但是定义区间是无限长,这在计算上是不可实施的,无论是人工计算还是通过计算机进行计算。而DFT是有限长的序列的傅里叶变换,在计算机上容易实现。再者,在数字信号处理中,希望能够利用数字方法直接计算常见的四种信号的频谱函数,这是需要的时域信号为有限长,其频谱也为有限项。因此常常利用DFT对序列进行频谱分析。 2. 若信号持续时间无限,且无解析表达式,如何利用DFT分析其频谱? 答:因为只要是有限长的离散序列都可以通过DFT对其进行频谱分析。故对于持续时间无限的信号,因首先得到能表征信号特征的离散序列,在对该离散序列进行DFT变换分析即可。这就涉及到模拟信号的数字化过程,具体方法是:采样,根据信号的采样定理对该持续时间无限的序列进行采样。量化,将采样得到的序列进行量化得到原模拟信号对应的离散序列,让后采用DFT对该序列进行频谱分析即可。 3. 在利用DFT分析连续信号频谱时,会出现哪些误差?如何克服或改善这些误差? 答:在利用DFT分析连续信号的频谱时,会出现的误差可以分为三类。分别是混叠现象,泄露现象,栅栏现象。 克服或改善的方法分别是: 混叠现象:对于带限连续信号,只要提高抽样频率使之满足时域抽样定理;对于非带限信号,可以根据实际情况对其进行低通滤波,使之成为带限信号。工程中的信号一般都不是带限信号,连续信号在抽样前通常都进过一个低通滤波器进行低通滤波,以减少混叠误差,提高频谱分析精度。 泄漏现象:在选择矩形窗口的长度时,适当增加窗的长度,可以提高频谱分辨率,但是不能减小旁瓣引起的频谱泄露,因此可以选择旁瓣幅度很小甚至为零的非矩形窗对信号进行加窗处理,就可以降低频谱泄露。 栅栏现象:改善栅栏现象最常用的方法是在离散序列之后补零,得到一个比原有序列更长的序列,这样就可以增加频谱图中的很多细节,降低栅栏现象。 4. 在利用DFT分析连续信号频谱时,如何选择窗函数? 答:在用DFT分析连续信号频谱时,选择窗函数一般首选矩形窗,因为对信号进行加窗处理的目的是去截断信号,故一般情况下选择矩形窗就可以了。但是在对频谱分析精度要求高的情况下,就要合理选择非矩形窗,选择旁瓣幅值小甚至为零的非矩形窗以满足要求,提高频谱分析精度。 5. 讨论序列后补零对频谱分析结果的影响。 答:在序列后补零直接的影响就是增加了序列的长度。但是却提高了频谱分析的精度。因为序列补零后,序列长度增加了,由于抽样频率没有改变,因此频谱图中谱线之间的间隔变小了,从而显示出了更多的细节,提高了频谱分析精度。 6. 窗函数对频谱分辨率有何影响?如何提高频谱分辨率? 答:窗函数对频谱分析精度的影响主要是有窗函数的主瓣宽度和旁瓣幅度影响的。具体而言是:主瓣宽度越窄,精确度越高;旁瓣幅度越小,精确度越高。 因此要想提高频谱分析精度,就必须选择合适的窗函数,应该使所选窗函数的长度尽量长,这样就可以减小窗函数主瓣的宽度;此外尽量选则旁瓣幅度较小甚至为零的窗函数,这样也可以减小频谱泄露,提高频谱分子精度。