matlab cftool光滑曲线导出为什么就不光滑了_快速傅里叶变换(FFT)中为什么要“补零”?...

本文探讨了在MATLAB中使用FFT时,为何补零会导致原本光滑的曲线变得不光滑。通过分析波形分辨率和FFT分辨率,解释了补零能提高频域分辨率但可能引发频谱泄漏问题。通过对不同数据点数的实验,揭示了补零对频谱密度和精度的直接影响,强调在实际应用中选择合适的数据点数和补零策略的重要性。
摘要由CSDN通过智能技术生成

066a2fb9ec80c32eb40dc5c8329cbb51.png

为了大家能够复现各个图中的结果,我附上了所有我编写的MATLAB代码。

创作不易,未经允许,禁止转载。

另外,说明一下,用MATLAB做FFT并不要求数据点个数必须为以2为基数的整数次方。之所以很多资料上说控制数据点数为以2为基数的整数次方,是因为这样就能采用以2为基的FFT算法,提升运算性能。

如果数据点数不是以2为基数的整数次方,处理方法有两种,一种是在原始数据开头或末尾补零,即将数据补到以2为基数的整数次方,这是“补零”的一个用处;第二种是采用以任意数为基数的FFT算法。

而MATLAB的

函数在参数
正好就是数据
的长度,但又不是以2为基数的整数次方时,并不会采用补零的方法,而是采用以任意数为基数的FFT算法,这样也能得到很好的结果,只不过速度要稍稍慢了一些,但一般的计算量是体现不出来的。

快速傅里叶变换 FFT

比如,现在我有一个信号,这个信号中仅包含两个正(余)弦波,一个是

,一个是
,即
。设定采样频率为
,如果采
个点,那么时域信号的时长就有

e62f73cea983713db7959f95c09acff1.png
图1. 1000个数据点

如果,直接对这1000个数据点其做快速傅里叶变换,

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值