提问人:dHubley 提问时间:8/19/2023 更新时间:8/19/2023 访问量:33
恢复正弦波相移时的数值噪声(numpy)
Numerical noise in numpy when recovering the phase shifts of a sinewave
问:
使用下面的代码片段时,我预计displacement_sim的值几乎完全相等,但似乎存在大量的数值噪声。
import numpy as np
import matplotlib.pyplot as plt
import scipy.signal as sig
plt.close("all")
#simulation
lambda_start = 1300e-9
lambda_end = 1350e-9
k_start = 2*np.pi / lambda_start
k_end = 2*np.pi / lambda_end
f_d = 8192.0 / 2.0**20.0
depth = 200e-6
displacement = 1e-9
records = 8192
sweep_length = 4000
k = np.linspace(k_start, k_end, sweep_length)
vib = displacement * np.cos(2 * np.pi * f_d * np.linspace(0,records - 1, records));
kk, vv = np.meshgrid(k, vib)
inter = 30000*(np.cos(2*(kk)*(depth + vv)) + 1)
plt.plot(inter[::100].T)
displacement_sim = (1325e-9 / (4*np.pi)) * np.abs(np.fft.fft(np.unwrap(np.angle(np.fft.fft(inter)[:,11]))))[64] / (4096)
运行脚本时计算的值为 9.654553207983893e-10。我已经尝试过使用余弦的精确实现来运行它,但没有运气。我想一定是FFT,有没有人遇到过类似的问题?
答: 暂无答案
评论