数字信号课设-利用FFT对信号进行频谱分析

上传人:伴*** 文档编号:53831728 上传时间:2022-02-11 格式:DOCX 页数:17 大小:122.64KB
收藏 版权申诉 举报 下载
数字信号课设-利用FFT对信号进行频谱分析_第1页
第1页 / 共17页
数字信号课设-利用FFT对信号进行频谱分析_第2页
第2页 / 共17页
数字信号课设-利用FFT对信号进行频谱分析_第3页
第3页 / 共17页
资源描述:

《数字信号课设-利用FFT对信号进行频谱分析》由会员分享,可在线阅读,更多相关《数字信号课设-利用FFT对信号进行频谱分析(17页珍藏版)》请在装配图网上搜索。

1、学 号 1207040208天津城建大学 数字信号处理 设计说明书利用FFT对信号进行频谱分析起止日期: 2015 年 1 月 5 日 至 2015 年 1 月 16 日学生姓名刘浩男班级12电信2班成绩指导教师(签字)计算机与信息工程学院2015年 1月 16日14天津城建大学课程设计任务书2014 2015 学年第 1 学期 计算机与信息工程 学院 电子信息工程 专业 12电信2班 班级课程设计名称: 数字信号处理 设计题目: 利用FFT对信号进行频谱分析 完成期限:自 2015 年 1 月 5 日至 2015 年 1 月 16 日共 2 周设计依据、要求及主要内容:一课程设计依据在掌握数

2、字信号处理相关理论的基础上,根据数字信号处理课程所学知识,利用Matlab对正弦信号和输入的语音信号进行频谱分析。二课程设计内容1.模拟信号,以进行采样,求N128点FFT的幅度频谱;要求:求出信号的2个模拟频率和数字频率各为多少?这两个频率数值与利用Matlab进行FFT频谱分析结果是否一致? 2. 在Matlab程序中读入一段语音信号,对语音信号进行频谱分析。三课程设计要求1. 要求独立完成设计任务。2. 课程设计说明书封面格式要求见天津城建大学课程设计教学工作规范附表13. 课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。4. 运行程序,观察并保存程序运行结果,能

3、够对运行结果进行结果分析。5. 课设说明书要求:1) 说明题目的设计原理和思路、采用方法及程序。2) 详细说明调试方法和调试过程,并给程序加注释。3) 给出程序运行结果,并对其进行说明和分析。 指导教师(签字): 系主任(签字): 批准日期: 2014 年12月 31 日目 录第一章 设计任务及要求11.1 课程设计依据11.2 课程设计内容11.3 课程设计要求1第二章 设计原理22.1 FFT基本原理22.2 FFT基本应用22.3 MATLAB基本函数调用3第三章 设计实现43.1 模拟信号的频谱分析43.1.1 任务要求43.1.2 程序代码43.1.3 运行结果53.2 语音信号的频

4、谱分析63.2.1 程序代码63.2.2 运行结果6第四章 设计结果及分析74.1 模拟信号频谱结果的分析74.2 语音信号频谱结果的分析10第五章 总结11参考文献12附录 主要程序13第一章 设计任务及要求1.1 课程设计依据在掌握数字信号处理相关理论的基础上,根据数字信号处理课程所学知识,利用Matlab对正弦信号和输入的语音信号进行频谱分析。1.2 课程设计内容1.模拟信号,以进行采样,求N128点FFT的幅度频谱;要求:求出信号的2个模拟频率和数字频率各为多少?这两个频率数值与利用Matlab进行FFT频谱分析结果是否一致? 2. 在Matlab程序中读入一段语音信号,对语音信号进行

5、频谱分析。1.3 课程设计要求1.要求独立完成设计任务。2.课程设计说明书封面格式要求见天津城建大学课程设计教学工作规范附表13.课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。4.运行程序,观察并保存程序运行结果,能够对运行结果进行结果分析。5.课设说明书要求:1)说明题目的设计原理和思路、采用方法及程序。2)详细说明调试方法和调试过程,并给程序加注释。3)给出程序运行结果,并对其进行说明和分析。第二章 设计原理2.1 FFT基本原理离散傅里叶变换(Discrete Fourier Transform,缩写为DFT),是傅里叶变换在时域和频域上都呈离散的形式,将信号的

6、时域采样变换为其DTFT的频域采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作其周期延拓的变换。在实际应用中通常采用快速傅里叶变换(即FFT)计算DFT。FFT,即为快速傅里叶变换,是离散傅里叶变换的快速算法,它是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的。它对傅里叶变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅里叶变换,可以说是进了一大步。设x(n)为N项的复数序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N

7、-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即N点DFT变换大约就需要N2次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2点DFT变换需要(N/2)2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样变换以后,总的运算次数就变成N 2(N/2)2=N N2/2。继续上面

8、的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog2N次的运算,N在1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。当然,也因为这一思想,只有当项数N=2M(M为正整数)时,才能进行FFT的运算。2.2 FFT基本应用周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。在各种信号序列中

9、,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT 不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的 DFT 是其z 变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT 是DFT 的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。在 MATLAB 信号处理工具箱中的函数fft(x,n),可以用来实现序列的N 点快速傅立叶变换。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2/ND。可以根据此式选择FFT的变换区

10、间N。误差主要来自于用FFT作频谱分析是,得到的是离散谱,儿信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。2.3 MATLAB基本函数调用cos(); %余弦函数sin(); %正弦函数fft(); %FFT变换函数wavread(); %读WAV音频文件函数length(); %求长度函数figure(); %新建图形函数subplot(); %图形分块函数plot(); %绘制折线图函数stem(); %绘制杆图函数title(); %写标题函数xlabel(); %写x轴标题函数ylabel(); %写y轴标题函数grid; %添加网

11、格第三章 设计实现3.1 模拟信号的频谱分析3.1.1 任务要求模拟信号,以进行采样,求N128点FFT的幅度频谱;要求:求出信号的2个模拟频率和数字频率各为多少?这两个频率数值与利用Matlab进行FFT频谱分析结果是否一致?3.1.2 程序代码close all; clc; clear all; %清零,清屏,关闭其他窗口,f1=2; A1=2; %指定各余弦信号的频率和幅值f2=4; A2=5;fs=128; %指定采样频率n=0:127; %指定采样时刻x1=A1*sin(2*pi*f1/fs*n); %产生各余弦信号序列x2=A2*cos(2*pi*f2/fs*n);y1=x1+x2

12、; %通过叠加形成复合信号y1%绘制各余弦信号,噪声信号及其复合信号subplot(3,1,1); plot(n,x1);title(余弦信号1);grid;subplot(3,1,2); plot(n,x2);title(余弦信号2);grid;subplot(3,1,3); plot(n,y1);title(复合信号);grid;%用快速傅立叶变换对复合信号进行频谱分析Fy1=fft(y1); figure; %换一页显示 subplot(1,1,1);stem(n,abs(Fy1),.);title(复合信号的FFT频谱分析);xlabel(2k/N);ylabel(|X(k)|);gr

13、id;3.1.3 运行结果3.2 语音信号的频谱分析3.2.1 程序代码(在Matlab程序中读入一段语音信号,对语音信号进行频谱分析。)x1,fs,nbits=wavread(abc.wav);%matlab中fs默认44100Hz,nbits为16bit%sound(x1,fs);n=length(x1);t= 0: 1/fs:( n- 1) /fs ;x11=fft(x1,n); f=0:fs/n:fs*(n-1)/n; figure(1);subplot(2,1,1);plot(t,x1);grid; title(原始语音时域信号波形);xlabel(时间(t);ylabel(幅值(x

14、);subplot(2,1,2);plot(f,abs(x11); grid;xlabel(频率(f)); ylabel(幅度(z)); title(原始语音频域信号波形);3.2.2 运行结果第四章 设计结果及分析4.1 模拟信号频谱结果的分析由题意可知,给定的模拟信号为,则该模拟信号对应的2个模拟角频率为1=4,2=8(单位:rad/s),其相应的2个模拟频率为f1=2,f2=4(单位:Hz)。以进行采样(采样频率fs=100Hz,N=128),得到采样序列x(n)=2sin(0.04n)+5cos(0.08n),则该采样序列对应的2个数字频率为1=1/fs=0.04,2=2/fs=0.0

15、8下面是利用Matlab进行FFT频谱分析的结果:图4.1.1 fs=100Hz的频谱分析由上图可以看出,由MATLAB进行FFT频谱分析的结果并不是和理论求得的只有两个频率上有频率分量而别的频率分量都为0,而是出现了5个左右的频率分量,而且数字频率的值也并不与理论分析的值重合。这是为什么呢?下面是原因分析:1、FFT是DFT的快速算法,而DFT的实质是有限长序列傅里叶变换的有限点离散采样,而上述得到的采样序列是周期序列,并不是有限长序列。2、根据DFT的隐含周期性可知,DFT实质上是有限长序列的周期延拓序列的频谱特性。根据这一特性可知,当从周期序列截取的有限长序列正好是原周期序列的一个周期或

16、正整数个周期时,利用FFT分析的有限长序列的频谱特性正好是原周期序列的频谱特性;反之,当从周期序列截取的有限长序列不是原周期序列的一个周期或正整数个周期时,利用FFT分析的有限长序列的频谱特性不是原周期序列的频谱特性,而是此时截取的有限长序列的周期延拓序列的频谱特性。根据上述原因分析,只有当截取的有限长序列正好是原周期序列的一个周期或正整数个周期时,利用FFT分析的有限长序列的频谱特性才能正好是原周期序列的频谱特性。根据1=1/fs,2=2/fs可知,T1=2/1=2/(1/fs)=2fs/1=2fs/4=fs/2,T2=2/2=2/(2/fs)=2fs/2=2fs/8=fs/4,因此T=fs

17、/2,则N/T=N/(fs/2)=2N/fs;当N/T(即2N/fs)的值为正整数时,利用FFT分析的有限长序列的频谱特性才能正好是原周期序列的频谱特性。将N=128带入,得N/T=256/fs;同时,采样频率fs应该满足采样定理,即s2c,因为1=4,2=8,则c=8,即s的取值为s16,即fs8,再根据N/T=256/fs的取值为正整数这一条件,可以求得fs的可能取值为16,32,64,128,256。即只有当fs取16,32,64,128,256这五个值时,利用FFT分析的有限长序列的频谱特性才能正好是原周期序列的频谱特性。下面我们来验证一下我们的推论:当fs=100Hz时,正如图4.1

18、.1所示 ,利用FFT所得到的频谱分析结果和理论分析的结果并不一致。再如,当fs=90Hz时,利用FFT所得到的频谱分析结果如下图:图4.1.2 fs=90Hz的频谱分析很显然,在该情况下利用FFT所得到的频谱分析结果与理论分析的结果也不一致。当fs=128Hz时,利用FFT所得到的频谱分析结果如下图:图4.1.3 fs=128Hz的频谱分析此时,在该情况下利用FFT所得到的频谱分析的结果与理论预测的一样,只有两个频率有频率分量,别的频率分量均为0。而且,这两条频率分量对应的数字频率分别为1=2k1/N,2=2k2/N,将k1=2,k2=4,N=128代入可以得到,1=2k1/N=2*2/12

19、8=/32,2=2k2/N=2*4/128=/16。在该情况下的理论计算值为:1=1/fs=4/128=/32,2=2/fs=8/128=/16。可以看出,利用FFT所得到的频谱分析的结果与理论分析的结果完全一致。同样再如,当fs=64Hz时,利用FFT所得到的频谱分析结果如下图:图4.1.4 fs=64Hz的频谱分析同样,此时在该情况下利用FFT所得到的频谱分析的结果与理论预测的一样,只有两个频率有频率分量,别的频率分量均为0。而且,这两条频率分量对应的数字频率分别为1=2k1/N,2=2k2/N,将k1=4,k2=8,N=128代入可以得到,1=2k1/N=2*4/128=/16,2=2k

20、2/N=2*8/128=/8。在该情况下的理论计算值为:1=1/fs=4/64=/16,2=2/fs=8/64=/8。可以看出,利用FFT所得到的频谱分析的结果与理论分析的结果完全一致。由此,可以验证“当从周期序列截取的有限长序列正好是原周期序列的一个周期或正整数个周期时,利用FFT分析的有限长序列的频谱特性正好是原周期序列的频谱特性;反之,当从周期序列截取的有限长序列不是原周期序列的一个周期或正整数个周期时,利用FFT分析的有限长序列的频谱特性不是原周期序列的频谱特性,而是此时截取的有限长序列的周期延拓序列的频谱特性。”这一结论。综上所述,利用FFT对周期信号进行频谱分析时,当从周期序列截取

21、的有限长序列正好是原周期序列的一个周期或正整数个周期时,分析结果是正确的,与理论值完全一致;反之,当从周期序列截取的有限长序列不是原周期序列的一个周期或正整数个周期时,根据截断效应可之,此时会产生频谱泄漏的现象,使原来的离散谱线向附近展宽,使频谱变模糊,使谱分辨率降低。4.2 语音信号频谱结果的分析众所周知,语音信号是一种典型的低频信号,其频谱特性只有在低频率上有频率分量,频率越高频率分量越少,高频率上频率分量为0,下面我们利用FFT进行语音信号的频谱分析来验证这一结果。上图中,第一个图为原始语音信号的波形,第二个图为利用FFT进行语音信号的频谱分析的波形。利用DTFT本身的偶函数特性和DTF

22、T的周期性(DTFT是频率的周期函数,周期是2)以及DFT(或FFT)和DTFT的变换关系可得FFT频谱分析结果在其区间内也是具有对称性的,对称轴在其区间的正中间处,在区间的正中间处,频率f为,越远离对称轴频率越低,在0和区间最大处频率为0。由此,可以很显然的验证其频谱特性只有在低频率上有频率分量,频率越高频率分量越少,高频率上频率分量为0。利用FFT对语音信号进行频谱分析的结果与理论分析的结果一致。第五章 总结数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。采样序列是对连续的模拟信号进行等间隔采

23、样得到的,通过对模拟信号的采样与恢复来实现用数字信号处理的方法处理连续的模拟信号。利用FFT对模拟信号进行频谱分析可以加深对DTFT、DFT、FFT以及采样定理的理解。Matlab是一个强大的数学工具,它的应用广泛,涉及到各个领域。它使用起来十分方便,不用麻烦去定义变量。它的绘图能力很强,甚至可以模拟出三维视图。矩阵是它应用的核心,许多工程繁琐的运算都需要靠矩阵来化简,这正是它的生命力所在。但是,他的函数很多,开始学时记的比较痛苦,我已经深深感觉到了。不过看多了也就熟了,感觉和学五笔差不多。它的语法简单,像我学过C语言的学起来还是蛮容易的。它的数组定义十分符合自然,是从1开始的,数组元素的调用

24、也很接近数学的表达。此外,函数的名字也很符合英文规则。从课题中心来看,课题“利用FFT对信号进行频谱分析”是希望通过此次课程设计加深对典型序列的理解,同时学会运用数字信号处理的知识和MATLAB对信号进行频谱分析,同时要求对DTFT、DFT、FFT和采样定理的原理有更透彻的理解。本课题的特色在于要很好的掌握理论知识,要学会用MATLAB解决本次课程设计的问题,熟悉的掌握利用FFT对信号进行频谱分析的原理,把数字信号处理的知识学以至用,运用理论对FFT的频谱分析结果加以分析,这就是把理论运用到实践中来。通过学习matlab,我又一次锻炼了自己的思维,它学起来得心应手也让我明白了学习一门语言(c语

25、言)对学习其他语言的帮助指导作用。同时,它也加强了我理论联系实际的能力。这是一个专业课的基础工具,学好它是必要的。在实际操作中也遇到很多问题,最终通过询问老师和同学把问题一一解决了,同时也阅读了很多图书和文献,并学会了如何撰写课程设计。通过这次课程设计,我学会了很多东西,总之这次课程设计最大的收益这还是自己。参考文献1高西全丁玉美.数字信号处理西安电子科技大学出版社,2008,第3版2赵之劲刘顺兰数字信号处理实验浙江大学出版社,20073宗孔德.多抽样率信号处理.北京:清华大学出版社,19874陈怀探数字信号处理教程MATALAB释义与实现电子工业出版社,20055韩纪庆,张磊,郑铁然.语音信

26、号处理M.北京:清华大学出版社,2004附录 主要程序1、模拟信号的频谱分析close all; clc; clear all; %清零,清屏,关闭其他窗口,f1=2; A1=2; %指定各余弦信号的频率和幅值f2=4; A2=5;fs=128; %指定采样频率n=0:127; %指定采样时刻x1=A1*sin(2*pi*f1/fs*n); %产生各余弦信号序列x2=A2*cos(2*pi*f2/fs*n);y1=x1+x2; %通过叠加形成复合信号y1%绘制各余弦信号,噪声信号及其复合信号subplot(3,1,1); plot(n,x1);title(余弦信号1);grid;subplot

27、(3,1,2); plot(n,x2);title(余弦信号2);grid;subplot(3,1,3); plot(n,y1);title(复合信号);grid;%用快速傅立叶变换对复合信号进行频谱分析Fy1=fft(y1); figure; %换一页显示 subplot(1,1,1);stem(n,abs(Fy1),.);title(复合信号的FFT频谱分析);xlabel(2k/N);ylabel(|X(k)|);grid;2、语音信号的频谱分析x1,fs,nbits=wavread(abc.wav);%matlab中fs默认44100Hz,nbits为16bit%sound(x1,fs);n=length(x1);t= 0: 1/fs:( n- 1) /fs ;x11=fft(x1,n); f=0:fs/n:fs*(n-1)/n; figure(1);subplot(2,1,1);plot(t,x1);grid; title(原始语音时域信号波形);xlabel(时间(t);ylabel(幅值(x);subplot(2,1,2);plot(f,abs(x11); grid;xlabel(频率(f)); ylabel(幅度(z)); title(原始语音频域信号波形);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!