fft变换matlab代码_fft变换matlab程序

fft变换matlab代码_fft变换matlab程序FFT与MATLAB实现DFT虽然好,但由于计算的次数太多,数据量一大就显得相当复杂最后将DFT进行改进成FFT,即FFT是DFT的快速算法,本质上仍然是DFT。MATLAB中提供“fft”函数,可以直接对数据进行快速傅里叶变换。但是由于FFT

FFT与MATLAB实现   
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序 DFT虽然好,但由于计算的次数太多,数据量一大就显得相当复杂   最后将DFT进行改进成FFT,即FFT是DFT的快速算法,本质上仍然是DFT。   MATLAB中提供“fft”函数,可以直接对数据进行快速傅里叶变换。但是由于FFT的本质仍然是DFT,则得到的频谱是用功率谱密度(PSD)定义的,也就是它的幅值表示的是单位带宽的幅值。   N:样本点   
F_{s} :采样频率   FFT变换之后的横轴为频率轴,频谱图横坐标显示的最大频率点为
\frac{F_{s}}{2} (奈奎斯特采样定理),频率的坐标间隔(频率分辨率)为
\frac{F_{s}}{N} ,也就是说最小能分辨的两个频率之间的差值要大于
\frac{F_{s}}{N} 。   横轴的频率点为:(0:1
\cdot\frac{F_{s}}{N}
\frac{N}{2}\cdot\frac{F_{s}}{N} )。(经过FFT之后,频谱是关于中间位置对称的,只需要观察0~
\frac{N}{2} 即可)   对于实数信号而言,N(先假设N为偶数,其实最好的情况是为2的n次幂个)个离散点的DFT将产生
\frac{N}{2} +1个频率点(因为无论怎样都会有0频率),频率的序号从0~
\frac{N}{2} 。故而N个实数点经过DFT之后的频谱带宽为
\frac{N}{2} ,每一个频率点所占的带宽为
\frac{2}{N} ,所以经过FFT之后的频率对应的幅值并不是真实的幅值,想要将FFT之后的频谱图跟实际的幅值对应,就要进行相应的转换。   (补充:频率为0意味着是FFT之后的一个实数,也就是直流分量)   那么,重点来了,怎么转化呢?   上边我们说的就是每一个频率点所占的带宽是
\frac{2}{N} ,将带宽跟FFT之后得到的幅值相乘即可对应到原本的幅值。但是,需要特别注意的一点:   频率序号为0和
\frac{N}{2} 的两个点的带宽只占中间频率点的一半,也就是占
\frac{1}{N} 的带宽,因此只需要将幅值乘以
\frac{1}{N} 即可。   到这,也许有细心的童鞋发现了,
\frac{N}{2} 这个数据对应的N为偶数是最好的,那如果恰好N为奇数又该怎么解决呢?   事实上,当我们的样本点N为奇数时,只有0频率占
\frac{1}{N} 带宽,其余的
\frac{N+1}{2} 个频率点仍然是对应幅值乘以
\frac{2}{N} 得到真实的幅值。   以上都是基于实数信号,对于复数信号而言(生活中大部分的模拟信号转化为数字信号都是实数信号,很少遇到复数信号),处理方法则相对简单多了。对于复数信号,N个点FFT之后会产生N个频率点,频谱的带宽为N,每个点所占的带宽为
\frac{1}{N} ,将每个幅值都乘以
\frac{1}{N} 即可得到真实的频率幅值。   以下为MATLAB实操:
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序以这个题目为例   1、不进行幅值修正的情况:   
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序时域信号
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序傅里叶变换之后的频谱图   可以看到无论是幅值还是频率,跟我们所给的时域信号是对应不上的,并且同样也证实了关于中心点对称的观点,因此我们接下来只需观察从0到N/2的频率点即可。   2、对幅值进行修正的情况:   
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序不用担心相位图杂乱无章,在没有频率处的相位是没有意义的,我们只需要有幅值处的相位即可
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序
fft变换matlab代码_fft变换matlab程序   将图放大可以看到,修正后的幅频图跟时域对应相当好。   过程中如有任何问题,欢迎各位大佬在评论区讨论以及指出错误。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/41570.html

(0)
上一篇 2024年 9月 7日 上午10:21
下一篇 2024年 9月 7日

相关推荐

关注微信