给定一个长度为X的向量L,fft(X)和fft(X,L)的区别是什么?
这是否意味着我们在使用fft时取L点上的fft(X),在做fft(X,L)时取向量L的fft
发布于 2019-09-05 09:59:34
根据fft
Y = fft(X)采用快速傅里叶变换(FFT)算法计算X的离散傅里叶变换。 如果X是向量,则fft(X)返回向量的傅里叶变换。Y = fft(X,n)返回n-point DFT。如果未指定值,则Y与X大小相同。 如果X是向量且X的长度小于n,那么X将填充尾随零到lengthn。 如果X是向量且X的长度大于n,则X被截断为n长度。
这意味着,如果有一个长度为X的向量L,fft(X)和fft(X,L)是等效的。
当您用fft(X,n)调用n~=L时,有趣的地方来了。
n<L,你的输入矢量X将被调用,即你将使用较少的测量,并得到一个简短的傅立叶序列。n=L;上面讨论过n>L,则向量X为零填充:X = [X zeros(L-n,1)] (用于行向量X)。这将做的是在频域内插。这很容易从公式在文档的底部中看出。

如果我们增加n,我们得到一个更长的向量Y。然而,由于你填充了零点,而不是信号的延续,它的傅里叶变换将是频率之间的插值。通常情况下,W(n)给出的频率是从采样频率开始运行的,从f_s一直到L步骤中的f_n = Nyquist/2,即有多少个数据点:linspace(F_s,f_n,L)。当零填充时,您要做的是在相同的空间中放置更多的点:linspace(F_s,f_n,n),而不添加信息。
https://stackoverflow.com/questions/57802554
复制相似问题