第一篇:DFT在信号频谱分析中的应用
设计一 DFT在信号频谱分析中的应用
一、设计目的
1.熟悉DFT的性质。
2.加深理解信号频谱的概念及性质。
3.了解高密度谱与高分辨率频谱的区别。
二、设计任务与要求
1.学习用DFT和补零DFT的方法来计算信号的频谱。
2.用MATLAB语言编程来实现,在做课程设计前,必须充分预习课本DTFT、DFT及补零DFT的有关概念,熟悉MATLAB语言,独立编写程序。
三、设计内容
1.用MATLAB语言编写计算序列x(n)的N点DFT的m函数文件dft.m。并与MATLAB中的内部函数文件fft.m作比较。参考程序如下: function Xk=dft(xn,N)if length(xn) xn=[xn,zeros(1,N-length(xn))];end n=0:N-1;for k=0:N-1 Xk(1,k+1)=sum(xn.*exp((-1)*j*n*k*(2*pi/N)));end 2.对离散确定信号 x(n)cos(0.48n)cos(0.52n) 作如下谱分析: (1)截取x(n)使x(n)成为有限长序列N(0nN-1),(长度N自己选)写程序计 算出x(n)的N点DFT X(k),画出时域序列图xn~n和相应的幅频图X(k)~k。参考程序如下:(假设N取11,即0≤n≤10 时, 编写程序,计算出X(n)的11点DFT Xk) n = 0:10;xn=cos(0.48*pi*n)+cos(0.52*pi*n);Xk = fft(xn, 11);subplot(2,1,1);stem(n, xn);grid;subplot(2,1,2);stem(n, abs(Xk));grid; (2)将(1)中x(n)补零加长至M点,长度M自己选,(为了比较补零长短的影响,M可以取两次值,一次取较小的整数,一次取较大的整数),编写程序计算x(n)的M点DFT, 画出时域序列图和两次补零后相应的DFT幅频图。 参考程序如下:(假设M取20和M取70,即分别补9个0和59个0,得补零后20点的序列xn1和70点的序列xn2,编写程序,计算出xn1的20点DFT Xk1和 xn2的70点DFT Xk2) n = 0:10;xn=cos(0.48*pi*n)+cos(0.52*pi*n);n1 = 0:19;xn1 = [xn, zeros(1,9)];n2= 0:69;xn2 = [xn, zeros(1,59)];Xk1 = fft(xn1, 20);Xk2 = fft(xn2, 70);subplot(3,1,1);stem(n, xn);grid;subplot(3,1,2);stem(n1, abs(Xk1));grid;subplot(3,1,3);stem(n2, abs(Xk2));grid; (2)用补零DFT计算(1)中N点有限长序列x(n)频谱X(ej)并画出相应的幅频图 X(ej)~。 参考程序如下:(假设M取200) n = 0:10;xn=cos(0.48*pi*n)+cos(0.52*pi*n);n1 = 0:199;xn3 = [xn, zeros(1,189)];Xk3 = fft(xn3, 200);plot(n1, abs(Xk3));grid;3.研究高密度谱与高分辨率频谱。 对连续确定信号xa(t)cos(26.510t)cos(2710t)cos(2910t)以采样频率fs=32kHz对信号xa(t)采样得离散信号x(n),分析下列三种情况的幅频特性。(1)采集数据x(n)长度取N=17点,编写程序计算出x(n)的17点DFTX(k),并画出相应 的幅频图X(k)~k。 (2)采集数据x(n)长度N=17点,补零加长至M点(长度M自己选),利用补零DFT计算 333 x(n)的频谱X1(ej)并画出相应的幅频图X1(ej)~。 (3)采集数据x(n)长度取为M点(注意不是补零至M),编写程序计算出M点采集数据x(n)的的频谱X2(ej)并画出相应的幅频图X2(ej)~。 参考程序如下: T=1/(32*10^3);t=(0:16);xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t*T)+cos(2*pi*9*10^3*t*T);Xk=fft(xn,17);subplot(2,1,1);stem(t,xn);grid;subplot(2,1,2);stem(t,abs(Xk));grid; T=1/(32*10^3);t=(0:16);xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t*T)+cos(2*pi*9*10^3*t*T);n1=0:20;xn1=[xn,zeros(1,4)];Xk1=fft(xn1,21);subplot(2,1,1);stem(n1,xn1);grid;subplot(2,1,2);plot(n1,abs(Xk1));grid; T=1/(32*10^3);t=[0:20];xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t*T)+cos(2*pi*9*10^3*t*T);Xk2=fft(xn,21);subplot(2,1,1);stem(t,xn);grid;subplot(2,1,2);plot(t,abs(Xk2));grid; 四、设计报告要求 1.简述设计目的及原理。 2.完成设计中要求的各种理论推导和计算,并列出相应的MATLAB程序。3.绘出设计中要求的各种曲线,并作出说明。 4.结合设计过程,归纳得出结论,并分析设计中遇到的问题及解决思路和方法。5.写出设计体会。 6.简要回答如下思考题: (1)对比设计内容2中(1)(2)(3)的图,说明补零DFT的作用。 jj(2)解释设计内容3中X1(e)~图和X2(e)~图有什么区别?补零DFT 能否提高信号的频谱分辨率,说明提高频谱密度、频谱分辨率的措施各是什么? DSP课程设计 ——基于MATLAB的声音信号频谱分析 1. 课程设计目的 综合运用数学信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。 2. 理解设计基本要求 1)熟悉离散信号和系统的时域特性。 2)熟悉线性卷积和相关的计算编程方法。 3)掌握序列傅里叶变换的计算机实现方法,利用序列傅里叶变换对离散信号、系统和系统的响应进行频域分析。4)学会MATLAB的使用,掌握MATLAB的程序设计方法。5)利用MATLAB对wav文件进行频谱分析。6)分别用不同的滤波器对加噪语音信号进行滤波,选择最佳滤波器。 3. 课程设计内容 选择一个wav文件作为分析的对象,或录制一段语音信号,对其进行频谱分析,分别对加噪前后的语音信号进行频谱分析,再通过不同滤波器根据信号的频谱特点重构语音信号,选出最佳滤波方案。 4. 课程设计实现步骤 (1)语音信号的获取 选择一个wav文件作为分析的对象,可以利用Windows下的录音机或其他软件,录制一段自己的话音,在MATLAB中,[y,fs,bits]=wavread('Blip',[N1 N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。[N1 N2]表示读取的值从N1点到N2点的值。 sound(y);用于对声音的回放。向量y则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。 下面是语音信号在MATLAB中的语言程序,它实现了语音的读入与打开,并绘出了语音信号时域波形,然后对语音信号进行频谱分析。在MATLAB中,可以利用函数fft对信号进行快速傅里叶变化,得到信号的频谱特性。 在频谱特性中分析最大值的位置(可能有几个),它代表的频率和时域的采样时间有关,相邻的两点之间的距离为。其中,N是离散傅里叶变换用的点数,是采样的时间,前面在读取 wav文件时得到了采样频率。 既然知道了该声波的频谱,按频率就可以反演它的时域值,利用以上分析的主要峰值来重构声波。由于没有考虑相位和其他的频谱分量,所以波形和原来的波形相差甚大,但大体的频率是没有错的。 fs=25600; %语音信号采样频率为25600 [x,fs,bits]=wavread('C:Documents and SettingsAdministrator桌面语音音频.wav'); sound(x,fs,bits); %播放语音信号 y1=fft(x,4096); %对信号做2048点FFT变换 f=fs*(0:2047)/4096;figure(1)magy1=abs(y1);angy1=angle(y1);subplot(3,1,1),plot(x);title('原始信号波形')subplot(3,1,2),plot(magy1);title('原始信号幅值')subplot(3,1,3),plot(angy1);title('原始信号相位')figure(2)freqz(x) %绘制原始语音信号的频率响应图 title('频率响应图')figure(3)plot(f,abs(y1(1:2048)));title('原始语音信号频谱')xlabel('Hz');ylabel('fudu'); axis([0 4500 0 400]) (2)wav语音信号加噪声 在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:(1)单频噪色(正弦干扰);(2)高斯随机噪声。绘出加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。本实验采用正弦干扰。 clc;clear;fs=22050; %语音信号采样频率为22050 [x,fs,bits]=wavread('C:Documents and SettingsAdministrator桌面语音音频.wav');%读取语音信号的数据,赋给变量x y1=fft(x,4096); %对信号做4096点FFT变换 f=fs*(0:511)/4096;t=(0:length(x)-1)/22050;x1=[0.05*sin(2*pi*10000*t)]';x2=x+x1;sound(x2,fs,bits);figure(1)subplot(2,1,1)plot(x) %做原始语音信号的时域图形 title('原语音信号时域图')subplot(2,1,2)plot(x2) %做原始语音信号的时域图形 title('加高斯噪声后语音信号时域图')xlabel('time n');ylabel('fudu');y2=fft(x2,4096);figure(2)subplot(2,1,1)plot(abs(y1))title('原始语音信号频谱');xlabel('Hz');ylabel('fudu');subplot(2,1,2)plot(abs(y2))title('加噪语音信号频谱');xlabel('Hz');ylabel('fudu');axis([0 4500 0 300]);wavwrite(x2,fs,'C:Documents and SettingsAdministrator桌面语音加噪.wav'); (3)巴特沃斯低通滤波 对加入高斯随机噪声和正弦噪声的语音信号进行滤波。用双线性变换法设计了巴特沃斯数字低通IIR滤波器对两加噪语音信号进行滤波,并绘制了巴特沃斯低通滤波器的幅度图和两加噪语音信号滤波前后的时域图和频谱图。clear all;fb = 1000;fc = 1200;fs = 22050;wp=0.1*pi;ws=0.4*pi;Rp=1;Rs=15;Fs=22050;Ts=1/Fs;wp1=2/Ts*tan(wp/2);%将模拟指标转换成数字指标 ws1=2/Ts*tan(ws/2);[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');%选择滤波器的最小阶数 [Z,P,K]=buttap(N);%创建butterworth模拟滤波器 [Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);[bd,ad]=bilinear(b,a,Fs);%用双线性变换法实现模拟滤波器到数字滤波器的转换 [h,w]=freqz(bd,ad);figure(1)subplot(111);plot(w*fs/(2*pi),abs(h))grid;title('滤波器的性能分析');pause;figure(2)[x,fs,bits]=wavread('C:Documents and SettingsAdministrator桌面语音加噪.wav');n=length(x);f=fs*(0:(n/2-1))/n;X=fft(x);z=filter(bd,ad,x);subplot(211);plot(x);title('原始信号的波形');subplot(212);plot(z);title('滤波后信号的波形');pause;figure(3)sound(z,fs,bits);subplot(211);plot(f,abs(X(1:n/2)));title('原始信号的频谱');xlabel('Hz');Z=fft(z);subplot(212);plot(f,abs(Z(1:n/2)));title('滤波后的信号频谱');xlabel('Hz');wavwrite(z,fs,'C:Documents and SettingsAdministrator桌面语音巴滤.wav'); (4)汉明窗的FIR低通滤波 使用窗函数法,选用海明窗设计了数字FIR低通滤波器对加了正弦噪声的语音信号进行滤波,并绘制了滤波器滤波后的语音信号时域图和频谱图。%FIR滤波 fs=22050;[x,fs,bits]=wavread('C:Documents and SettingsAdministrator桌面语音加噪.wav');wp=0.25*pi;ws=0.3*pi;wdelta=ws-wp;N=ceil(6.6*pi/wdelta);%取整 t=0:(size(x)-1);wn=(0.2+0.3)*pi/2;b=fir1(N,wn/pi,hamming(N+1));%选择窗函数,并归一化截止频率 f1=fftfilt(b,x);figure(1)freqz(b,1,512)[h1,w1]=freqz(b,1);plot(w1*fs/(2*pi),20*log10(abs(h1)));figure(2)subplot(2,1,1)plot(t,x)title('滤波前的时域波形');subplot(2,1,2)plot(t,f1);title('滤波后的时域波形');sound(f1);%播放滤波后的语音信号 F0=fft(f1,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x,1024);subplot(2,1,1);plot(f,abs(y2(1:512)));%画出滤波前的频谱图 title('滤波前的频谱')xlabel('Hz');ylabel('fuzhi');subplot(2,1,2)F1=plot(f,abs(F0(1:512)));%画出滤波后的频谱图 title('滤波后的频谱')xlabel('Hz');ylabel('fuzhi');wavwrite(f1,fs,'C:Documents and SettingsAdministrator桌面语音F滤.wav'); 5. 课程设计心得体会 本设计采用了高效快捷的开发工具——MATLAB,实现了语音信号的采集,对语音信号加噪声及设计滤波器滤除噪声的一系列工作。从频率响应图中可以看出:巴特沃斯滤波器具有单调下降的幅频特性,通带内是平滑的。海明窗设计的FIR滤波器的频率特性几乎在任何频带上都比巴特沃斯滤波器的频率特性好,过渡带也比较小,只是海明窗设计的滤波器下降斜度较小对语言的过渡失真进行了补偿。 我们小组初步完成了设计任务,由于个人能力有限以及团队合作不够默契等诸多问题,还存在许多不足的地方,比如滤波器的设计种类还比较单一,没有做更多的滤波效果比较等。在以后的工作和学习中会更加努力来完善设计任务。 参考文献 [1]周辉,董正宏,数字信号处理及MATLAB实现,北京希望出版社,2006 [2]王树勋.数字信号处理处理基础及试验.北京:机械工业出版社,1992 [3]井上伸雄.数字信号处理的应用.北京:科学出版社,1991 [4]郑君里,杨为理.信号与系统(第二版),高等教育出版社,1981 实验二 应用fft对信号进行频谱分析 作业要求: 1、利用matlab编程计算教材中59页例2-2的结果,并画出频谱图。 2、已知有限长序列x(n)=[7,6,5,4,3,2],求x(n)的DFT和IDFT。要求:①画出序列傅里叶变换对应的|X(k)|和arg[X(k)]的图形。 ②画出原信号与傅里叶逆变换IDFT[X(k)]的图形进行比较。 3、实验教材第11页第3题。 4、已知一个周期序列x(k)cos( 8k 3)0.5cos( 4k),利用FFT计算其频谱。 5、有限长序列的离散傅里叶变换(DFT)与离散时间傅里叶变换(DTFT)有何联系与区别? 频谱分析仪和信号分析仪区别及常见问题解答 频谱分析仪和信号分析仪这两个术语往往可以互换使用,不过两者在功能和能力上还是有一定区别。当今的分析仪可进行更全面的频域、时域和调制域信号分析,用“信号分析仪”来描述更为准确。 频谱分析仪:测量在仪器的整个频率范围内输入信号幅度随频率进行变化的情况。其最主要的用途是测量已知和未知信号的频谱功率。 矢量信号分析仪:测量在仪器的中频带宽内输入信号在单一频率上的幅度和相位。其最主要的用途是对已知信号进行通道内测量,例如误差矢量幅度、码域功率和频谱平坦度。 信号分析仪:同时执行频谱分析仪和矢量信号分析仪的功能。 频谱分析仪常见问题解答: 1、是否有不同类型的频谱分析仪? 有两类频谱分析仪,类型由获取信号频谱所使用的方法决定。扫描调谐频谱分析仪使用超外差式接收机对一部分输入信号频谱进行下变频(使用电压控制振荡器和混频器),达到带通滤波器的中心频率。采用超外差式体系结构的电压控制振荡器在一系列频率上进行扫描,支持仪器完整频率范围的假设。快速傅立叶变换(FFT)分析仪计算离散傅立叶变换(DFT),这个数学过程可将输入信号的波形转换成其频谱分量。 2、我何时应使用台式频谱分析仪而不是手持式频谱分析仪? 台式频谱和信号分析仪提供卓越的技术指标和测量应用软件,而手持式频谱分析仪更适合现场工程师使用。 3、频谱分析仪能否得到实时结果? 可以,实时频谱分析仪使用了混合方法,即首先使用超外差技术将输入信号下变频到较低频率,然后使用 FFT 技术对其进行分析。 4、我能否使用频谱分析仪对信号进行解调? 通过将频谱分析仪或信号分析仪与 Agilent 89600 VSA 灵活调制分析软件或测量应用软件结合使用,您能够解调广泛的标准和通用数字信号与制式。 5、安捷伦提供什么类型的频谱分析仪? 安捷伦提供广泛的信号分析仪产品,包括扫描调谐和 FFT 频谱分析仪、频谱分析仪软件和频谱分析仪测量应用软件。 6、安捷伦频谱分析仪产品覆盖什么频率范围? 安捷伦提供从直流至 50 GHz 的多种频谱分析仪和信号分析仪产品,使用外部混频器可扩展到 325 GHz。 频谱分析心得体会 通过三周的学习,我才发现自己的知识差之甚远。在学校学的知识远远不够。从参加工作六年以来,我在班组倒班中所学的钳工知识只是一些浮浅的。要做好自己的工作,还得要更加马不停蹄的学习。 车间认识到频谱分析这门技术在工作上的重要性,给予我们这次学习频谱分析的机会。虽然每天都觉得有点疲惫,但是一想到车间在人员紧张的情况下还派专人给我们讲解,在这般难得的机会下,我的疲惫算什么?并且给我们讲解的居然还是自己的大学校友,而且他还是学电气自动化,来我们车间才一年多,还是靠自学的。可想而知,他在学习频谱分析的时候,不知用了多少工夫。想到这些,想到自己的不足、欠缺的太多,我对这次的学习机会非常之珍惜。不求自己将来有多大的作为,但最起码在工作中能够独挡一面,不辜负领导对自己这次苦心的栽培。我用了数倍的努力来学习频谱分析,每天下班的第一件事就是查资料,看书,再结合笔记分析。 经过对频谱分析的了解,要想真正地学透。哪非易事,它涉及的知识很多。首先:(1)了解频谱分析仪功能及工作原理,(2)振动的一系列知识,(3)各种轴承故障的所有特征表现,(4)各种齿轮缺陷的所有表现形式,(5)联轴器的所有故障表现形式以及各种轴、瓦、结构松动等等,再用所有的知识结合频谱以及故障特征频率计算数值列表来进行分析,判断、找出故障源,这就是我所学习的目标。 经过这段时间的学习以后,我觉得收获不少,学到了以下几点:(1)设备数的建立配置,(2)所有测点的建立配置,(3)巡检计划的建立与下达,(4)系统与仪器的联接及操作,(5)异常状态设备数据的导出、打包、发送给专人指教,(6)现场测量技巧,(7)仪器操作技巧,(8)设备特征频率计算方法,(9)设备故障频谱特征提取(典型),(10)频谱分析技巧,特征信号的提取、故障信号的识别、强迫振动的方向特性、转频信号的识别,(11)诊断报告的书写。对于我现在来说,最困难的就是诊断报告,由于给我们的时间有限,报告写不透彻。有好多理论知识没有掌握,需要我们去吞食。不过,经过这段时间的学习,我有兴趣及决心把频谱分析学好。它是一项高科技诊断设备系统。当你达到一定境界的时候,可根据频谱信息来掌握设备的运行状态,对设备各部件的故障如肉眼般看见,它能够坚持多久,好给检修提前做好准备,减少事故时间,稳定生产。这样优秀的科技技术车间岂能不用呢?车间从一条线抽一个人来学习,那是对我们的一种信任,同时也是对我们开阔视野,填充知识、发挥自己的一次机会。无论怎样的艰辛我也要让车间领导的那份信任得以实现,要通过自己的努力去掌握有关频谱分析的知识。写一份透彻的诊断报告,交上一份满意的答卷。第二篇:--基于MATLAB的语音信号的频谱分析
第三篇:实验二 应用FFT对信号进行频谱分析-作业要求
第四篇:频谱分析仪和信号分析仪区别及常见问题解答
第五篇:频谱分析心得体会