今天小编给大家带来MATLAB实现信号的FFT(快速傅里叶变换)的实现,相信看完的各位会有所收获,如果跟着敲一遍代码 相信会对其中参数的设置更加的有心得。下面开始
首先是基础知识:
所谓的谱分析就是计算信号的频谱,包括振幅谱,相位谱以及功率谱。首先我们假设所处理的离散信号x(n)是从连续信号xa(t)(a是英文单词:analog(模拟)的缩写)取样得到的。规定如下符号:
1、T:取样周期,单位为s。
2、fs:取样频率,单位为Hz,于是有 fs=1/T。
3、f0:连续信号xa(t)的最高频率,单位为Hz。
4、F:xa(t)的频率分辨率,单位也是Hz,所谓的频率分辨率是指频域取样中两个相邻点间的频率间隔。
5、N:一个记录长度中的取样数
6、tp:信号xa(t)的最小记录长度,tp=1/F,单位是s。
根据奈奎斯特采样定理知道,采样频率必须要大于信号最高频率的两倍,否则会引起混叠失真,即:
fs>=2f0 或者 T<=1/2f0
最小记录长度必须按所需的频率分辨率来选择,也就是
tp=NT=1/F
如果f0和F都知道,那么由上面两个式子可以知道: N>=2f0/F
下面进行MATLAB例子实现一个模拟信号x(t)=t*e^t,t>=0的实现,代码如下:
效果图,
从原序列的变换幅度可以看出其频谱分量主要集中在低频段(因为高频通常都是噪声,即在原始信号中夹杂的抖动非常快的信号),给个图给你体会
好了,本篇文章到此结束了。有什么不懂的地方可以留言哦,也欢迎收藏,也许你现在用不到,但指不定你以后会学这个呢!