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

上传人:xmg****18 文档编号:121239286 上传时间:2020-02-19 格式:DOC 页数:26 大小:114.83KB
返回 下载 相关 举报
数字信号课设_利用FFT对信号进行频谱分析报告_第1页
第1页 / 共26页
数字信号课设_利用FFT对信号进行频谱分析报告_第2页
第2页 / 共26页
数字信号课设_利用FFT对信号进行频谱分析报告_第3页
第3页 / 共26页
数字信号课设_利用FFT对信号进行频谱分析报告_第4页
第4页 / 共26页
数字信号课设_利用FFT对信号进行频谱分析报告_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《数字信号课设_利用FFT对信号进行频谱分析报告》由会员分享,可在线阅读,更多相关《数字信号课设_利用FFT对信号进行频谱分析报告(26页珍藏版)》请在金锄头文库上搜索。

1、.专业整理.学 号 1207040208天津城建大学 数字信号处理 设计说明书利用FFT对信号进行频谱分析起止日期: 2015 年 1 月 5 日 至 2015 年 1 月 16 日学生姓名刘浩男班级12电信2班成绩指导教师(签字)计算机与信息工程学院2015年 1月 16日 .学习帮手.天津城建大学课程设计任务书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 运行结果

4、53.2 语音信号的频谱分析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)的计算

7、都需要N次复数乘法和N-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=

8、N N2/2。继续上面的例子,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。可以根据

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

11、数grid; %添加网格第三章 设计实现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*

12、n);y1=x1+x2; %通过叠加形成复合信号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

13、(|X(k)|);grid;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);subplot(2,1,2);plot(f,abs(x11); grid;xlabel(频率(f)); ylabel(幅度(z)); title(原始语音频域信号波形);3.2.2 运行结果第四章 设计结果及分析4.1 模拟信号频谱结果的分析由题意可知,给定的模拟信号为,则该模拟信号对应的2个模拟角频率为1=4,2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号