我正在尝试计算三个μ子极化信号的傅里叶变换,它们只是余弦函数乘以指数衰减。因此,进行傅里叶变换,我们将看到以相应频率为中心的加宽峰。问题是我已经尝试过傅里叶变换,但我不知道它是否正确;此外,我正在尝试使用 scipy.stats.moment 函数,使用第二个时刻来计算 FWHM:它正确吗?你能告诉我代码是否正确吗?我将三个信号放在 .npy 文件中,以及用于傅里叶分析的代码。信号是signal[0]、signal[1]和signal[2],10维数组。每个信号[k] 包含 10 个极化函数(每个施加磁场 1 个),它们是 400 个点的信号。 https://github.com/JonathanFrassineti/UNDI-examples。啊,频率范围从 0 Hz 到 40 MHz。谢谢!
N = 400 # Number of signal points.
N1 = 40000000
T = 1./800. # Sampling spacing.
xf = np.fft.rfftfreq(N1, T)
yf1 = FWHM1 = sigma1 = delta1 = bhar1 = np.zeros(fields, dtype = object)
yf2 = FWHM2 = sigma2 = delta2 = bhar2 = np.zeros(fields, dtype = object)
yf3 = FWHM3 = sigma3 = delta3 = bhar3 = np.zeros(fields, dtype = object)
for j in range(fields):
# Fourier transform.
yf1[j] = np.fft.rfft(signal[0][j])
yf2[j] = np.fft.rfft(signal[1][j])
yf3[j] = np.fft.rfft(signal[2][j])
FWHM1[j] = moment(yf1[j], moment=2)
FWHM2[j] = moment(yf2[j], moment=2)
FWHM3[j] = moment(yf3[j], moment=2)
sigma1[j] = np.sqrt(np.abs(FWHM3[j]))/2.355
sigma2[j] = np.sqrt(np.abs(FWHM2[j]))/2.355
sigma3[j] = np.sqrt(np.abs(FWHM3[j]))/2.355
delta1[j] = sigma1[j]/gamma_Cu
delta2[j] = sigma2[j]/gamma_Cu
delta3[j] = sigma3[j]/gamma_Cu
bhar1[j] = (((a*angtom)**3)/(1e-7*gamma_Cu*hbar))*delta1[j]
bhar2[j] = (((a*angtom)**3)/(1e-7*gamma_Cu*hbar))*delta2[j]
bhar3[j] = (((a*angtom)**3)/(1e-7*gamma_Cu*hbar))*delta3[j]