1) 除了负频率,FFT 函数提供的最小频率是多少?是零吗?
2)如果为零,我们如何在对数刻度上绘制零?
3)结果总是对称的?或者它只是看起来是对称的?
4)如果我使用 abs(fft(y)) 比较 2 个信号,我会失去一些准确性吗?
5 回答
1) 除了负频率,FFT 函数提供的最小频率是多少?是零吗?
fft(y)
返回一个向量,其中包含 的 DFT 的第 0 到 (N-1) 个样本y
,其中 y(t) 应该被认为是在 0 ... N-1 上定义的(因此, y(t) 可以被认为是在 Z) 上定义的周期信号。
的第一个样本fft(y)
对应于频率 0。真实、离散时间、周期性信号的傅里叶变换也具有离散域,它是周期性的和厄米特的(见下文)。因此,负频率的变换是正频率的相应样本的共轭。
例如,如果您将(的周期性重复)解释y
为在 Z(采样周期 == 1)上定义的周期性实信号,那么 的域fft(y)
应解释为 N 个等距点 0, 2π/N ... 2π(N -1)/N。负频率 -π ... -π/N 的变换样本是频率 π ... π/N 的样本的共轭,并且等于频率 π ... 2π(N- 1)/N。
2)如果为零,我们如何在对数刻度上绘制零?
如果您想绘制某种波特图,您可以仅绘制正频率的变换,忽略与最低频率(特别是 0)相对应的样本。
3)结果总是对称的?或者它只是看起来是对称的?
如果是实数,它具有厄米对称性y
:它的实部是对称的,它的虚部是反对称的。换句话说,它的幅度是对称的,而它的相位是反对称的。
4)如果我使用 abs(fft(y)) 比较 2 个信号,我会失去一些准确性吗?
如果您的意思是abs(fft(x - y))
,这没关系,您可以使用它来了解差异的频率分布(或误差,如果 x 是 y 的估计值)。如果您的意思是abs(fft(x)) - abs(fft(y))
(???),您至少会丢失相位信息。
好吧,如果你想了解快速傅里叶变换,你想回到基础并了解 DFT 本身。但是,这不是你问的,所以我只是建议你在自己的时间这样做:)
但是,在回答您的问题时:
- 是的,(除了否定,正如你所说)它是零。N 点输入的范围是 0 到 (N-1)。
- 在 MATLAB 中?我不确定我是否理解您的问题 - 像绘制任何其他值一样绘制零值......尽管正如 duffymo 正确指出的那样,没有自然对数为零。
- 它本质上类似于 sinc(正弦基数)函数。不过,它不一定是对称的。
- 你不会失去任何准确性,你只会得到幅度响应(但我想你已经知道了)。
咨询“C 中的数值配方”,第 12 章“快速傅立叶变换”说:
频率范围从负 fc 到正 fc,其中 fc 是奈奎斯特临界频率,等于 1/(2*delta),其中 delta 是采样间隔。所以频率当然可以是负的。
你不能绘制不存在的东西。没有自然对数为零。您可以将频率绘制为 x 轴,也可以为半对数轴选择一个不包括零的范围。
频率范围内是否存在对称性取决于时域中函数的性质。您可以在频域中绘制关于 y 轴不对称的图。
我不认为采用这样的绝对值是一个好主意。您需要阅读更多关于卷积、校正和信号处理的信息,以比较两个信号。
- fft 的结果可以是 0。其他人已经回答了。
- 要绘制 0 频率,诀窍是将其设置为一个非常小的正数(为此我使用 exp(-15))。
- 已经被其他人回答了。
- 如果您只对幅度感兴趣,是的,您可以这样做。例如,这适用于许多图像处理问题。
你的问题的一半:
3) FFT运算的结果取决于信号的性质;因此没有什么要求它是对称的,尽管如果是对称的,您可能会获得有关信号属性的更多信息
4)这将比较一对信号的幅度,但那些相等并不能保证 FFT 是相同的(不要忘记相位)。但是,它可能足以满足您的目的,但您应该确信这一点。