请问如何提高fft的分辨率?

如题所述

第1个回答  2019-03-17
想提高fft的分辨率,除了提高采样点数以外,其他都是没用的,无论你是添0也好,其他也好。只能提高你绘制出来曲线的光滑度。所以你想提高fft的分辨率,只能增加采样点数,当然,你会说你单片机的频率不够,那只能用更好的单片机,所以一般做fft用的都是fpga
第2个回答  2020-04-08
如何提高fft算法分辨率
  FFT程序,输入是一组复数,输出也是一组复数,想问一下输入到底应该输入什么,输出的复数的含义是什么。
  给定一组序列的抽样值,如何用FFT确定它的频率。
  首先,fft函数出来的应该是个复数,每一个点分实部虚部两部分。
  假设采用1024点fft,采样频率是fs,那么第一个点对应0频率点,第512点对应的就是fs/2的频率点。  然后从头开始找模值最大的那个点,其所对应的频率值应该就是要的基波频率了。
  FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
  有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
  这就是很多信号分析采用FFT变换的原因。
  另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
  虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什么意思、如何决定要使用多少点来做FFT。
  一个模拟信号,经过ADC采样之后,就变成了数字信号。
  采样定理告诉,采样频率要大于信号频率的两倍,这些就不在此罗嗦了。
  采样得到的数字信号,就可以做FFT变换了。
  N个采样点,经过FFT之后,就可以得到N个点的FFT结果。
  为了方便进行FFT运算,通常N取2的整数次方。
相似回答