热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

matlab对三角波信号进行频谱分析,实验三用FFT对信号进行频谱分析及MATLAB程序.doc...

实验三用FFT对信号进行频谱分析及MATLAB程序实验三用FFT对信号进行频谱分析一实验目的1能够熟练掌握快速离散傅立叶变换的原理及应用FFT进行频谱分析的基本方法;

实验三 用FFT对信号进行频谱分析及MATLAB程序

实验三 用FFT对信号进行频谱分析

一 实验目的

1 能够熟练掌握快速离散傅立叶变换的原理及应用FFT进行频谱分析的基本方法;

2了解; (3-1)

是的连续周期函数。对序列进行N点DFT得到,则是在区间上对的N点等间隔采样,频谱分辨率就是采样间隔。因此序列的傅里叶变换可利用DFT(即FFT)来计算。

用FFT对序列进行谱分析的误差主要来自于用FFT作频谱分析时,得到的是离散谱,而非周期序列的频谱是连续谱,只有当N较大时,离散谱的包络才能逼近连续谱,因此N要适当选择大一些。

2.用DFT对周期序列进行谱分析

已知周期为N的离散序列,它的离散傅里叶级数DFS分别由式(3-2)和(3-3)

给出:

DFS: , n=0,1,2,…,N-1 (3-2)

IDFS: , n=0,1,2,…,N-1 (3-3)

对于长度为N的有限长序列x(n)的DFT对表达式分别由式(3-4)和(3-5)给出:

DFT: , n=0,1,2,…,N-1 (3-4)

IDFT: , n=0,1,2,…,N-1 (3-5)

FFT为离散傅里叶变换DFT的快速算法,对于周期为N的离散序列x(n)的频谱分析便可由式(3-6)和(3-7)给出:

DTFS: (3-6)

IDTFS: (3-7)

周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。

3. 用DFT对模拟周期信号进行谱分析

对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。对于模拟周期信号,也应该选取整数倍周期的长度,经采样后形成周期序列,按照周期序列的谱分析进行。如果不知道信号的周期,可以尽量选择信号的观察时间长一些。

三 实验内容

1. 对以下序列进行谱分析:

选择FFT的变换区间N为8和16两种情况进行频谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。

2. 对以下周期序列进行谱分析:

选择FFT的变换区间N为8和16两种情况进行频谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。

3. 对模拟周期信号进行谱分析:

选择采样频率,对变换区间N分别取16、32、64三种情况进行谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。

四 思考题

1. 对于周期序列,如果周期不知道,如何用FFT进行谱分析?

2. 如何选择FFT的变换区间?(包括非周期信号和周期信号)

3. 当N=8时,和的幅频特性会相同吗?为什么?N=16呢?

五 实验报告及要求

1. 完成各个实验任务和要求,附上程序清单和有关曲线。

2. 简要回答思考题。

程序代码:

%用FFT对信号作频谱分析

clear all;

close all;

%实验(1)

x1n=[ones(1,4)]; %产生序列向量R4(n)

M=8;xa=1:(M/2);xb=(M/2):-1:1;

x2n=[xa,xb]; %产生长度为8的三角波序列x2(n)、x3(n)

x3n=[xb,xa];

X1k8=fft(x1n,8); %计算x1n的8点DFT

X1k16=fft(x1n,16); %计算x1n的16点DFT

X2k8=fft(x2n,8); %计算x2n的8点DFT

X2k16=fft(x2n,16); %计算x2n的16点DFT

X3k8=fft(x3n,8); %计算x3n的8点DFT

X3k16=fft(x3n,16); %计算x3n的16点DFT

%幅频特性曲线

N=8;wk=2/N*(0:N-1);

subplot(3,2,1);stem(wk,abs(X1k8),'.'); %绘制8点DFT的幅频特性图

title('(1a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');

subplot(3,2,3);stem(wk,abs(X2k8),'.');

title('(2a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');

subplot(3,2,5);stem(wk,abs(X3k8),'.');

title('(3a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');

N=16;wk=2/N*(0:N-1);

subplo



推荐阅读
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 本文介绍了如何通过扩展 UnityGUI 创建自定义和复合控件,以满足特定的用户界面需求。内容涵盖简单和静态复合控件的实现,并展示了如何创建复杂的 RGB 滑块。 ... [详细]
  • 本文详细介绍了MicroATX(也称Mini ATX)和MATX主板规格,探讨了它们的结构特点、应用场景及对电脑系统成本和性能的影响。同时,文章还涵盖了相关操作系统的实用技巧,如蓝牙设备图标删除、磁盘管理等。 ... [详细]
  • 本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ... [详细]
  • 本文介绍了如何使用 Python 的 Bokeh 库在图表上绘制菱形标记。Bokeh 是一个强大的交互式数据可视化工具,支持丰富的图形自定义选项。 ... [详细]
  • 本题要求将由小写字母组成的字符串划分为多个片段,确保每个字母只出现在一个片段中。目标是生成尽可能多的片段,并返回每个片段的长度列表。本文将详细解释问题描述、解题思路及代码实现。 ... [详细]
  • 本文介绍如何调整Element UI组件的边框样式,以确保内容与边框之间有足够的间距,并展示如何通过CSS实现更好的布局效果。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 本文介绍了如何使用 Python 的 Matplotlib 和 Pandas 库进行数据可视化。通过示例代码展示了折线图、柱状图和水平柱状图的创建方法,并解释了图表参数设置的具体细节。 ... [详细]
  • 利用生成对抗网络生成多标签离散电子健康记录
    本文探讨了通过生成对抗网络(GAN)生成合成电子健康记录(EHR)的方法,旨在解决隐私保护问题并促进医学研究。论文地址为:https://arxiv.org/abs/1703.06490v1。该方法通过生成高维离散变量的综合EHR数据,显著提升了医学研究中的数据可用性和安全性。 ... [详细]
  • 本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ... [详细]
author-avatar
-qone0_784
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有