繁体   English   中英

帮我了解FFT函数(Matlab)

[英]Help me understand FFT function (Matlab)

1)除了负频率,FFT函数提供的最小频率是多少? 是零吗?
2)如果为零,我们如何在对数刻度上绘制零?
3)结果总是对称的? 还是看起来是对称的?
4)如果我使用abs(fft(y))比较2个信号,是否会失去一些准确性?

1)除了负频率,FFT函数提供的最小频率是多少? 是零吗?

fft(y)返回一个向量,该向量具有y的DFT的第0至第(N-1)个样本,其中应将y(t)定义为0 ... N-1(因此,可以将y(t)的“周期性重复”视为在Z上定义的周期性信号。

fft(y)的第一个样本对应于频率0。实时,离散时间,周期性信号的傅立叶变换也具有离散域,并且是周期性和Hermitian的(请参见下文)。 因此, 负频率的变换是正频率的相应样本的共轭。

例如,如果将y (周期性重复)解释为在Z上定义的周期性实信号(采样周期== 1),则fft(y)的域应解释为N个等距点0,2π/ N。 ..2π(N-1)/ N。 负频率为-π...-π/ N的变换样本是频率为π...π/ N的样本的共轭,等于频率为π...2π(N- 1)/ N。

2)如果为零,我们如何在对数刻度上绘制零?

如果要绘制某种波特图 ,则可以仅对正频率绘制变换,而忽略与最低频率(特别是0)相对应的样本。

3)结果总是对称的? 还是看起来是对称的?

如果y为实,则具有Hermitian对称性 :其实部是对称的,其虚部是反对称的。 换句话说,它的幅度是对称的,其相位是反对称的。

4)如果我使用abs(fft(y))比较2个信号,是否会失去一些准确性?

如果您的意思是abs(fft(x - y)) ,这是可以的,您可以使用它来了解差值的频率分布(如果x是y的估计,则为误差)。 如果您的意思是abs(fft(x)) - abs(fft(y)) (???),则至少会丢失相位信息。

好吧,如果您想了解快速傅立叶变换,则需要回到基础知识并了解DFT本身。 但这不是您要的,所以我建议您在自己的时间做这个:)

但是,在回答您的问题时:

  1. 是的(如您所说,否定的除外)为零。 对于N点输入,范围是0到(N-1)。
  2. 在MATLAB中? 我不确定我是否理解您的问题-像其他任何值一样绘制零值...虽然,正如duffymo正确指出的那样,不存在零的自然对数。
  3. 它本质上类似于Sinc(正弦基数)函数。 不过,它不一定是对称的。
  4. 您将不会失去任何准确性,只是得到幅度响应(但我想您已经知道了)。

查阅“ C语言配方”,有关“快速傅立叶变换”的第12章说:

  1. 频率范围从负fc到正fc,其中fc是奈奎斯特临界频率,等于1 /(2 * delta),其中delta是采样间隔。 因此,频率肯定可以为负。

  2. 您无法绘制不存在的东西。 没有自然对数为零。 您可以将频率绘制为x轴,或者为半对数轴选择一个不包含零的范围。

  3. 频率范围内是否存在对称性取决于时域中函数的性质。 您可以在频域中具有关于y轴不对称的图。

  4. 我认为采取这样的绝对价值不是一个好主意。 您需要阅读大量有关卷积,校正和信号处理以比较两个信号的内容。

  1. fft的结果可以为0。其他人已经回答了。
  2. 要绘制0频率,诀窍是将其设置为非常小的正数(为此我使用exp(-15))。
  3. 已经被其他人回答。
  4. 如果您只对幅度感兴趣,可以的。 举例来说,这适用于许多图像处理问题。

您的一半问题:

3)FFT运算的结果取决于信号的性质; 因此,没有必要要求它是对称的,尽管如果是对称的,则可能会获得有关信号特性的更多信息

4)这将比较一对信号的幅度,但是相等的信号并不能保证FFT是相同的(不要忘记相位)。 但是,它可能足以满足您的目的,但是您应该确定这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM