matlab中nfft指的什么,FFT在matlab中的使用方法

FFT在matlab中的用法

一、FFT的物理意义

​ FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。 虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。 一个模拟信号,经过ADC采样之后,就变成了数字信号。采样定理告诉我们,采样频率要大于信号频率的两倍,这些我就不在此罗嗦了。 采样得到的数字信号,就可以做FFT变换了。N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。

二、计算序列的FFT变换

求序列{2,3,3,2}的DFT变换。

>> N=4;

>> n=0:N-1;

>> xn=[2 3 3 2];

>> xk=fft(xn)

运算结果如下:

xk =

10.0000 + 0.0000i -1.0000 - 1.0000i 0.0000 + 0.0000i -1.0000 + 1.0000i

带入公式检验:

X[k]=∑n=0N−1X[n]WNnkX[k]=\sum_{n=0}^{N-1}X[n]W_N^{nk}X[k]=n=0∑N−1​X[n]WNnk​

X[0]=2W40+3W40+3W40+2W40=10X[0]=2W_4^{0}+3W_4^{0}+3W_4^{0}+2W_4^{0}=10X[0]=2W40​+3W40​+3W40​+2W40​=10

X[1]=2W40+3W41+3W42+2W43=−1−iX[1]=2W_4^{0}+3W_4^{1}+3W_4^{2}+2W_4^{3}=-1-iX[1]=2W40​+3W41​+3W42​+2W43​=−1−i

X[2]=2W40+3W42+3W44+2W46=0X[2]=2W_4^{0}+3W_4^{2}+3W_4^{4}+2W_4^{6}=0X[2]=2W40​+3W42​+3W44​+2W46​=0

X[3]=2W40+3W43+3W46+2W49=−1+iX[3]=2W_4^{0}+3W_4^{3}+3W_4^{6}+2W_4^{9}=-1+iX[3]=2W40​+3W43​+3W46​+2W49​=−1+i

公式运算结果与matlab仿真结果一致。

​ xk与xn的维数相同,共有4个元素。xk的第一个数对应于直流分量,即频率值为0,在傅里叶级数的叠加中,它仅仅影响全部波形相对于数轴整体向上或是向下而不改变波的形状。

三、计算三角信号的FFT变换

1、分析采样点N的数量对FFT结果的影响

​ 做n个点的FFT,表示在时域上对原来的信号取了n个点来做频谱分析,n点FFT变换的结果仍为n个点。

信号一:y=0.5sin(2pi20t)+2sin(2pi40t)

​可以很容易的看出信号的由频率为20和40的两个分量组成,其中最高频率为40,根据奈科斯特定律,

在这里我将抽样信号fs设定为100HZ,采样点N分别设定为128和2048。

​N=128

>> fs=100;

>> N=128;

>> n=0:N-1;

>> t=n/fs;

>> y=0.5*sin(2*pi*20*t)+2*sin(2*pi*40*t);

>> x=fft(y,N);

>> m=abs(x);

>> f=n*fs/N;

>> subplot

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLABfft代表快速傅里叶变换(Fast Fourier Transform)。快速傅里叶变换是一种用于将信号从域转换到频域的算法。它可以有效地计算出信号的频谱,以显示信号各个频率分量的幅度和相位。通过使用fft函数,可以对信号进行快速傅里叶变换,并获得频谱信息。 在给定的代码示例使用fft函数对一个由15Hz幅值为0.5的正弦信号和40Hz幅值为2的正弦信号组成的信号进行了快速傅里叶变换,绘制出了不同长度的幅频谱图。 在第一段代码使用了长度为32的FFT(nfft1=32),并绘制出了前16个频率点的幅度谱。在第二段代码使用了长度为128的FFT(nfft2=128),并绘制出了前64个频率点的幅度谱。 在绘制幅频谱时,需要根据采样频率和FFT的长度计算出频率轴上的频率值,以便与幅度值进行对应。常见的计算方法使用f=(0:N-1)'*fs/N,其f是频率轴上的频率值,N是FFT的长度,fs是采样频率。通过计算频率值,可以在绘图时设置x轴的刻度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MATLAB——FFT(快速傅里叶变换)](https://blog.csdn.net/m0_46155417/article/details/129448371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值