对给定信号进行频谱分析

对给定信号进行频谱分析

ID:44601905

大小:346.38 KB

页数:16页

时间:2019-10-24

对给定信号进行频谱分析_第1页
对给定信号进行频谱分析_第2页
对给定信号进行频谱分析_第3页
对给定信号进行频谱分析_第4页
对给定信号进行频谱分析_第5页
资源描述:

《对给定信号进行频谱分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、题目10对给定信号(序列)进行频谱分析(C语言或MATLAB实现)。功能:对给定的数据进行频谱分析,要求从文本文件中读入原始数据,各种参数由软件界面输入,谱分析结果保存在文木文件中。能够显示对数据进行FFT后的频谱图,以及实际信号的频谱图。设计步骤:1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2)根据给定指标,编写FFT谱分析程序;3)编写计算信号实际频谱的程序;4)用Matlab的相关函数进行检验。要求:1)用结构化设计方法。一个程序划分成若干模块,每一个模块的函数功能要划分好,总体设计应画出流程图;2)输入输出界面要友好;3)源程序书写要规范,加必要的注释

2、;4)要提供通过Matlab函数进行检验的结果;5)程序一定要要能运行起来,宁可功能少一些。课程设计的最后成果是提交一份实验报告,内容包括:1)程序的设计思想,包括功能描述,函数接口的确定;2)流程图;3)源程序代码(需打印);4)matlab函数及测试方法和结果;5)小结。一设计目的综合运用本课程的理论知识编程快速傅里叶变化(FFT),通过理论推倒得出相应结论,并利用MATLAB作为工具进行实现。巩固和运用在数字信号处理课程中所学的理论知识和实验技能,掌握最基本的数字信号处理的理论和方法,培养发现问题和解决问题的能力,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,

3、并从实践上初步实现对数字信号的处理。二设计步骤1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2)根据给定指标,编写FFT谱分析程序;3)编写计算信号实际频谱的程序;4)用Matlab的相关函数进行检验。三设计内容1.从文本文件中读入数据2•对输入序列进行倒序3.对倒序后的序列FFT蝶形运算四设计要求1)用结构化设计方法。一个程序划分成若干模块,每一个模块的函数功能要划分好,总体设计应画出流程图;2)输入输出界面要友好;3)源程序书写要规范,加必要的注释;4)要提供通过Matlab函数进行检验的结果;5)程序一定要要能运行起来,宁可功能少一些。五设计原理(运算规律

4、及编程思想)FFT算法的基本原理是把长序列的DFT逐次分解为较短序列的DFTo按照抽取方式的不同可分为DIT-FFTC按吋间抽取)和DIF-FFT(按频率抽取)算法。1)原位运算(亦称同址计算)FFT的每级(列)计算都是由N个复数数据(输入)两两构成一个蝶型(共N/2个蝶形)运算而得到另外N个复数数据(输出)。当数据输入到存储器以后,每一组运算的结果,仍然存放在这同一组存储器中直到最后输出2)旋转因了的变化规律N点DIT-FFT运算流图中,每级都有N/2个蝶形。每个蝶形都要乘以因子W/VP,称其为旋转因子,p称为旋转因子的指数。观察FFT运算流图发现,第L级共有2L-1个不同的旋转

5、因子。N=23=8时的各级旋转因子表示如下:L=1吋,WNp=WN/4J,N/4=21=2L,J=0L=2时,WNp=WN/2J,N/2=22=2L,J=0,1L=3时,WNp=WNJ,N=23=2L,J=0,1,2,3对N=2M的一般情况,第L级的旋转因子为:3)蝶形运算规律设序列x(n)经吋域抽选(倒序)后,存入数组X中。如果蝶形运算的两个输入数据相距B个点(B=2L-1),应用原位计算,则蝶形运算可表示成如下形式:下标L表示第L级运算,则表示第L级运算后数组元素X(J)的值。4)编程思想及程序框图先从输入端开始,逐级进行,共进行M级运算。在进行第L级运算时,依次求出B个不同的

6、旋转因子,每求出一个旋转因子,就计算完它对应的所有个蝶形。这样,我们可用三重循环程序实现DIT-FFT运算,程序框图见“六流程图”5)序列的倒序由N二8蝶形图看出:原位计算时,FFT输岀的X(k)的次序正好是顺序排列的,即X(0)・・・X(7),但输入x(n)都不能按口然顺序存入到存储单元中,而是按x(0),x(4),x(2),x(6),x(l),x(5),x(3),x(7)的顺序存入存储单元,即为乱序输入,顺序输出。这种顺序看起来相当杂乱,然而它是有规律的。即码位倒读规则。倒序规律六流程图七测试结果点数2048PushButton采样频率0.0293八测试方法(1)倒序测试>>N

7、二input('请输入点数N二');x二load('gkx.txt');Er,c]=size(x);ifr<=N%如果数据的个数小于阶数N则补零。z=zeros(1,N~r);A二[x‘z];%y代表补零后的序列,用[ab]时必须是行向量形式的,如果是列向量形式会报错。elseA二x';encl%步骤2对输入序列进行倒序%LH二N/2;%J是倒序数的十进制数。J二LH;Nl=N-2;for1=1:1:N1ifI<=JT二A(I+1);A(I+1)二A(J+1);A(J

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。