众所周知,sinc(t)的傅里叶变换是rect(f)。
简单的 python 脚本,用于在随机正常噪声之后发现fft
信号ifft
。
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(1234)
peak=np.fft.fft(np.sinc(np.linspace(-4, 4, 200)))
peak_ifft=np.fft.ifft(peak)
n=200
noise=np.random.normal(loc=0, scale=np.sqrt(2)/2, size=(n, 2)).view(np.complex128)
signal=noise+np.reshape(np.asarray(peak),(-1,1))
plt.figure()
plt.subplot(2,2,1)
plt.plot(np.abs(signal))
plt.title('power vs freq')
plt.subplot(2,2,2)
signal_ifft=np.fft.ifft(signal)
plt.plot(signal_ifft)
plt.title('should appear sinc,but not')
plt.subplot(2,2,3)
plt.plot(peak_ifft)
plt.title('should be sinc,and yes')
plt.show()
既然x(t)+y(t)<->X(f)+Y(f)
,np.fft.ifft(np.fft(signal))
回到原点signal
,为什么不能np.fft.ifft(np.fft(signal+noise))
呢?