Python 为什么FFT大小等于时域中的样本数?

Python 为什么FFT大小等于时域中的样本数?,python,signal-processing,fft,Python,Signal Processing,Fft,我的问题很简单。我想我了解FFT和DFT。我不明白的是,为什么在Python或matlab中,我们使用FFT大小作为样本数?为什么在时域中采集的每个样本都对应于频域中的频率箱 例如,为了绘制.wav文件信号的频谱,我们使用Scipy的fft包: FFT = abs(scipy.fftpack.fft(time_domain_signal)); Frequency_Vector = fftpack.fftfreq(len(FFT_out), (1/Sampling_rate)) 现在如果我输入l

我的问题很简单。我想我了解FFT和DFT。我不明白的是,为什么在Python或matlab中,我们使用FFT大小作为样本数?为什么在时域中采集的每个样本都对应于频域中的频率箱

例如,为了绘制
.wav
文件信号的频谱,我们使用Scipy的fft包:

FFT = abs(scipy.fftpack.fft(time_domain_signal));
Frequency_Vector = fftpack.fftfreq(len(FFT_out), (1/Sampling_rate))
现在如果我输入
len(FFT\u out)

它与采样数(即音频信号的采样频率*时间)相同,并且由于ffreq是包含频率单元的频率向量,因此Len(fft)=频率单元数


请给出一个简单的解释。

从数学上讲,傅里叶变换的一个关键特性是它是线性和可逆的。后者意味着,如果两个信号具有相同的傅里叶变换,则它们相等,并且对于任何频谱,都有一个具有该频谱的信号

对于具有有限信号样本集合的实现,第一个属性意味着傅里叶变换可以由nx M矩阵表示,其中N是时间样本数,M是频率样本数。第二个性质意味着矩阵必须是可逆的,因此是平方的,即我们必须有M==N


你说时间和频率是对应的,这是真的,因为它们的数量是相同的。但是,每个频率单元中的值将取决于所有时间值。

您所说的FFT函数是什么?我猜它来自一个包裹,但是哪一个呢?你称之为FFT大小是什么?我投票结束这个问题,因为它与a无关。@JosephBudin我说的是Scipy的FFT包,用于绘制wav的频谱。文件信号我们使用FFT=abs(scipy.fftpack.FFT(时域信号))频率向量=fftpack.fftfreq(len(FFT_out),(1/采样率))现在如果我输入len(FFT_out),它与采样数(即音频信号的采样频率*时间)相同,因为ffreq是包含频率仓的频率向量,因此len(fft)=频率的数量bins@ftkhateeb,在问题结束之前,你应该在问题中包含该评论。否则,任何人都不可能回答它。