matlab cftool光滑曲线导出为什么就不光滑了_快速傅里叶变换(FFT)中为什么要“补零”?...
为了大家能够复现各个图中的结果,我附上了所有我编写的MATLAB代码。
创作不易,未经允许,禁止转载。
另外,说明一下,用MATLAB做FFT并不要求数据点个数必须为以2为基数的整数次方。之所以很多资料上说控制数据点数为以2为基数的整数次方,是因为这样就能采用以2为基的FFT算法,提升运算性能。
如果数据点数不是以2为基数的整数次方,处理方法有两种,一种是在原始数据开头或末尾补零,即将数据补到以2为基数的整数次方,这是“补零”的一个用处;第二种是采用以任意数为基数的FFT算法。
而MATLAB的
快速傅里叶变换 FFT
比如,现在我有一个信号,这个信号中仅包含两个正(余)弦波,一个是
如果,直接对这1000个数据点其做快速傅里叶变换,将得到频谱图:
可以发现,频谱点稀疏,在1MHz附近根本无法将1 MHz 和1.05 MHz 的两个频率分开。
clear
频率分辨率
发现频率成分无法被区分开来,第一反应应该就是:频率分辨率不够。那么,如何提高频率分辨率呢?首先要清楚,这里存在两种类型的频率分辨率。
一种叫波形分辨率,其由原始数据的时间长度决定:
另一种可以称之为视觉分辨率或FFT分辨率,其由采样频率和参与FFT的数据点数决定[1]:
之所以要区分,就是因为后面要进行“补零”的操作。如果不补零,直接对原始数据做FFT,那么这两种分辨率是相等的。
例如上面,有:
补零
那么,如果现在在原始数据点后补零会有什么效果呢?假设在这
此时对其做快速傅里叶变换,结果如下:
可以发现,频谱点密集了不少,但是在
波形分辨率只与原始数据的时长
有关,而与参与FFT的数据点数无关。所以,虽然补了很多零,但波形分辨率依然为:
而“时域补零相当于频域插值”[2],也就是说,补零操作增加了频域的插值点数,让频域曲线看起来更加光滑,也就是增加了FFT频率分辨率,注意式
这是“补零”的另一个原因。
clear
频谱泄漏
显然,根据上面的分析可知,在采样频率不变的情况下,要想将
对其做快速傅里叶变换,结果如下:
因为此时的波形分辨率为:
但是会发现
频谱泄露,因为数据点的个数影响,使得在
clear
为了解决这个问题,可以设法使得谱线同时经过
如果原始数据不变,在后面再补充
那么FFT分辨率就是
对其做快速傅里叶变换,结果如下:
会发现
这也是一种补零操作带来的影响。
clear
图8 中会有一些旁瓣出现,这是因为补零影响了原始信号,如果,直接采8000个点作为原始数据,即将程序中的L0改为8000,那么有:
并对其做FFT,结果如下
这样就不存在补零带来的误差了。
参考
- ^Zero Padding http://www.bitweenie.com/listings/fft-zero-padding/
- ^Zero Padding Theorem https://ccrma.stanford.edu/~jos/dft/Zero_Padding_Theorem_Spectral.html
matlab cftool光滑曲线导出为什么就不光滑了_快速傅里叶变换(FFT)中为什么要“补零”?...相关推荐
- matlab cftool光滑曲线导出为什么就不光滑了_MATLAB|二维绘图
0| 前言 数据可视化(data visualization)技术指的是运用计算机图形学和图像处理技术,将数据转换为图形或图像在屏幕上显示出来,并进行交互处理的技术.它涉及计算机图形学.图像处理.计算 ...
- matlab cftool光滑曲线导出为什么就不光滑了_【富怡CAD问题答疑】为什么我画的曲线有锯齿状,不光滑...
❤ 点击上方蓝字,轻松关注 ❤ 具体操作如下: 1.菜单栏--选项--系统设置 2.页面设置--使用光滑曲线这里打钩 3.对照一下,解决! ............................ ...
- Matlab如何进行利用离散傅里叶变换DFT (快速傅里叶变换FFT)进行频谱分析
文章目录 1. 定义 2. 变换和处理 3. 函数 4. 实例演示 例1:单频正弦信号(整数周期采样) 例2:单频正弦信号(非整数周期采样) 例3:含有直流分量的单频正弦信号 例4:正弦复合信号 例5 ...
- 快速傅里叶变换FFT进行频谱分析(matlab)
快速傅里叶变换FFT进行频谱分析(matlab) 本章摘要:FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域.有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了 ...
- MATLAB之傅里叶变换,快速傅里叶变换FFT
文章目录 傅里叶变换及傅里叶逆变换定义 窗函数/矩形脉冲信号的傅里叶变换 基于MATLAB的快速傅里叶变换FFT 傅里叶变换及傅里叶逆变换定义 能从时域的非周期连续信号转化到频域非周期连续信号. 窗函 ...
- matlab绘制oc曲线,三角网方法绘制等值线图及其在重力资料成图中的应用
一目U舀物化探资抖成图过去常用的是网格化数据绘等值线图,然而实际工作中观测点一般是随机的,:主就需光转换成网格化数据,然后再绘图,这样做有很多不足取的地方,例如极值偏移.影响精度等等.最近随机点数据绘 ...
- matlab fft频率轴,FFT(快速傅里叶变换)中频率和实际频率的关系
原标题:FFT(快速傅里叶变换)中频率和实际频率的关系 一 四个名词:实际物理频率,角频率,圆周频率,归一化频率 ·实际物理频率表示AD采集物理信号的频率,fs为采样频率,由奈奎斯特采样定理可以知道, ...
- matlab中filter卷积补零,matlab中的卷积——filter,conv之间的区别
filter是做滤波,其实原理跟卷积是想通的,只不过处理结果的方法不同,先看示例程序: x=[1,2,3,4,5]; h=[1,1,1]; y1=conv(h,x) y2=filter(h,1,x) ...
- MATLAB中的快速傅里叶变换FFT与IFFT
背景 FFT (Fast Fourier Transform)是离散傅立叶变换的快速算法,可以将一个信号从时域变换到频域.同时与之对应的是IFFT(Inverse Fast Fourier Trans ...
最新文章
- 小程序定制开发需要注意的事项
- 群晖NAS百度云Docker客户端下载目录没有权限的问题解决
- scrapy-splash抓取动态数据例子十三
- php 根据权重随机数,PHP根据概率产生随机数
- 获取sqlserver数据库中所有库、表、字段名的方法
- Java面向对象(12)--对象类型转换 (Casting )
- 编写一个可以打印不同长度数组内容的函数模板
- simpson积分模板
- 开源大数据:Alluxio 云原生数据编排
- Kafka开源转商业实践,助力车主无忧系统稳健 | 凌云时刻
- Nginx工作原理及基本使用
- IIC详解之AT24C08
- 26. 平衡二叉排序树
- 【金融基础设施建设01】金融基础设施建设概论(金融基础设施的定义、现状、国内外标准、基本特征、作用、风险)
- 区块链搭建联盟链及控制台安装
- 把ip导入mysql_纯真IP数据库导入mysql
- 计算机怎么取消u盘启动程序,如何设置电脑启动项的为U盘启动,小编教你如何设置电脑启动项的为U盘启动...
- 锋利的jQuery读书笔记-第1章 认识jQuery
- 2019华师在线计算机,华师计算机基础客观作业2019.pdf
- linux trac svn,Ubuntu安装Trac SVN