Python 用衰减正弦信号的FFT数值微分
我试图通过对数据数组进行FFT,将该数组乘以频域乘以一个虚单位,最后进行逆变换,得到衰减正弦曲线的导数(图在左上角)。黄线是fft的导数。我在这种方法中遇到了两个问题:Python 用衰减正弦信号的FFT数值微分,python,numpy,fft,differentiation,Python,Numpy,Fft,Differentiation,我试图通过对数据数组进行FFT,将该数组乘以频域乘以一个虚单位,最后进行逆变换,得到衰减正弦曲线的导数(图在左上角)。黄线是fft的导数。我在这种方法中遇到了两个问题: 有一个比例因子我无法求解。我甚至试着用“dt”相乘(下面的代码就是这么做的,图上也有),但这并不能完全解决我的问题,我也不知道为什么 如果我决定改用np.fft.rfft(),那么比例因子问题就会消失,但我现在有了一个非常“摇摆”的导数 我做错了什么 N=1000 t、 dt=np.linspace(-1,1,N,rets
np.fft.rfft()
,那么比例因子问题就会消失,但我现在有了一个非常“摇摆”的导数
N=1000
t、 dt=np.linspace(-1,1,N,retstep=True)
a=10
f=np.sin(a*t)*np.exp(-3*t)
der=a*np.cos(a*t)*np.exp(-3*t)-3*np.sin(a*t)*np.exp(-3*t)
f_fft=np.fft.fft(f,norm=“正交”)*dt
freq=np.fft.fft移位(np.fft.fftfreq(N,d=dt))
f_der_fft=np.fft.ifft(-1j*np.pi*2*freq*f_fft,norm=“正交”)
图=plt.图(图尺寸=(20,8))
gs=mpl.gridspec.gridspec(2,2)
ax1=图add_子批次(gs[0,0])
ax2=图add_子批次(gs[0,1])
ax3=图add_子批次(gs[1,:])
ax1.绘图(t,f)
ax1.set_title(“要派生的函数”)
ax2.绘图(t、der、label=“精确”)
ax2.绘图(t,f_der_fft.real,label=“from fft”)
ax2.集合标题(“衍生工具”)
ax3.绘图(t,np.abs(f_der_fft.real der))
ax3.设置刻度(“日志”)
ax3.设置标题(“fft导数的绝对误差”)
plt.show()
现在是rfft的绘图: