如果我有一个波形x
,例如
x = [math.sin(W*t + Ph) for t in range(16)]
与任意W
and Ph
,我计算它的(Real)f
FFT
f = numpy.fft.rfft(x)
x
我可以得到原件
numpy.fft.irfft(f)
现在,如果我需要将恢复波形的范围扩展到左侧和右侧多个样本,该怎么办?即一个波形y
,len(y) == 48
和是原始波形的周期性扩展y[16:32] == x
。y[0:16], y[32:48]
换句话说,如果 FFT 假设它的输入是一个f(t)
在 上采样的无限函数t = 0, 1, ... N-1
,我如何恢复f(t)
fort<0
和的值t>=N
?
注意:我以完美的正弦波为例,但实际上x
可以是任何信号:任意信号,例如x = range(16)
or x = np.random.rand(16)
,或从随机.wav
文件中获取的任意长度的段。