使用 FFT 进行频谱分析
下面的示例说明了如何使用 FFT 函数进行频谱分析。FFT 的一个常用场景是确定一个时域噪声信号的频率分量。
首先创建一些数据。假设是以 1000 Hz 的频率对数据进行的采样。首先为数据构造一条时间轴,时间范围从 t = 0 至 t = 0.25,步长为 1 毫秒。然后,创建一个包含 50 Hz 和 120 Hz 频率的正弦波信号 x。
t = 0:.001:.25;
x = sin(2*pi*50*t) + sin(2*pi*120*t);
添加一些标准差为 2 的随机噪声以产生噪声信号 y。然后,通过对该噪声信号 y 绘图来了解该信号。
y = x + 2*randn(size(t));
plot(y(1:50))
title('Noisy time domain signal')
很明显,通过观察该信号很难确定频率分量;这就是频谱分析为什么被广泛应用的原因。
得到带噪声信号 y 的离散傅里叶变换很容易;执行快速傅里叶变换 (FFT) 即可实现。
Y = fft(y,251);
使用复数共扼 (CONJ) 计算功率频谱密度,即测量不同频率下的能量。为前 127 个点构造一个频率轴,并使用该轴绘制结果图形。(其余的点是对称的。)
Pyy = Y.*conj(Y)/251;
f = 1000/251*(0:127);
plot(f,Pyy(1:128))
title('Power spectral density')
xlabel('Frequency (Hz)')
放大并仅绘制上限为 200 Hz 的图形。请注意 50 Hz 和 120 Hz 下的峰值。以下是原始信号的频率。
plot(f(1:50),Pyy(1:50))
title('Power spectral density')
xlabel('Frequency (Hz)')
关注公众号: MATLAB基于模型的设计 (ID:xaxymaker) ,每天推送MATLAB学习最常见的问题,每天进步一点点,业精于勤荒于嬉。
打开微信扫一扫哦!
使用 FFT 进行频谱分析的更多相关文章
- 使用FFT进行频谱分析
import numpy as np import matplotlib.pyplot as plt from scipy.fftpack import fft fs=100 #采样频率 N=128 ...
- 离散信号MATLAB频谱分析程序
from http://blog.csdn.net/u012129372/article/details/26565611 %FFT变换,获得采样数据基本信息,时域图,频域图 %这里的向量都用行向量, ...
- 用MATLAB对信号做频谱分析
1.首先学习下傅里叶变换的东西.学高数的时候老师只是将傅里叶变换简单的说了下,并没有深入的讲解.而现在看来,傅里叶变换似乎是信号处理的方面的重点只是呢,现在就先学习学习傅里叶变换吧. 上面这幅图在知乎 ...
- MATLAB中FFT的使用方法
MATLAB中FFT的使用方法 说明:以下资源来源于<数字信号处理的MATLAB实现>万永革主编 一.调用方法X=FFT(x):X=FFT(x,N):x=IFFT(X);x=IFFT(X, ...
- FFT的分析以及matlab实验
FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换(DFT)的快速算法. 采样得到的数字信号,做FFT变换,N个采样点,经过FFT之后,就可以得到N个点 ...
- 数字信号处理--FFT
FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域.有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了.这就是很多信号分析采用FFT变换的原因.另外,FFT可以将 ...
- FFT的物理意义
来源:学步园 FFT(Fast Fourier Transform,快速傅立叶变换)是离散傅立叶变换的快速算法,也是我们在数字信号处理技术中经常会提到的一个概念.在大学的理工科课程中,在完成高等数学的 ...
- FFT结果的物理意义
图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度.如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低:而对 于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈 ...
- FS,FT,DFS,DTFT,DFT,FFT的联系和区别
DCT变换的原理及算法 文库介绍 对于初学数字信号处理(DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. 学习过<高等数学>和<信号与系统 ...
随机推荐
- 并发库应用之十二 & 常用集合问题汇总
1. List遍历时修改报错 别的先什么都不说,直接上代码看看就知道了: public class ListTest { public static void main(String[] args) ...
- Windows下安装配置go
基于 go 1.9.2 + liteIDE + windows10 先安装 go 安装包,作用如同安装框架. 默认安装路径是 C:\Go,通常都会更改,但这会影响到后面设置环境变量,因此更改到哪里请记 ...
- Get,Post请求方式经典详解
本文转自:http://blog.csdn.net/findsafety/article/details/47129021 前几天工作中,所有表单我都采用post方法,头儿说那样不好,大型网站上一般都 ...
- 拇指玩」制作的「谷歌安装器」app
作者:匿名用户链接:https://www.zhihu.com/question/57468448/answer/153000587来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- OAuth 2 Developers Guide
Introduction This is the user guide for the support for OAuth 2.0. For OAuth 1.0, everything is diff ...
- 五种开源协议(GPL,LGPL,BSD,MIT,Apache)介绍
商业化的软件应该主要选用MIT或者Apache license的开源系统作为插件. 什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的 ...
- jQuery学习之旅 Item4 细说DOM操作
jQuery-–DOM操作(文档处理) Dom是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准 ...
- 8. 使用ueditor添加文章
ueditor是一个很好用的html编辑器,不仅提供了格式化编辑文本的功能,还提供了自动上传图片的功能,现在就使用该编辑器来实现博客文章的编辑功能.1. 使用ueditor过程中会请求一个后台js文件 ...
- MongoDB与python交互
1.Pymongo PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式.官方文档 2.安装 进入虚拟环境 sudo pip install pymon ...
- Linux.Centos6编译安装nginx
环境 系统环境:CentOS release 6.7 (Final) 需求 centos6.7编译安装nginx1.x 准备 安装依赖 yum install -y gcc gcc-c++ autoc ...