错误的信号幅度读取 .bin 文件(似乎随机错误?)

Wrong Signal Amplitude reading .bin-File (seems randomly wrong?)

我遇到了一个我不太明白的问题。

我有一个 .bin 文件,其中包含信号和噪声的时间序列。我有准确的时间数据,只剪掉有趣的部分。

我的问题是有时振幅太高,有时又像预期的那样。我想我将问题分解为以下几点:

sampling_rate = 2e6  
dt = np.dtype(np.int32) 
# get Timedata
start_raw_L1 = 261.2    # good_signal
count_raw_L1 = 1.315

# start_raw_L1 = 261.4  bad_signal
# count_raw_L1 = 1.315


start_L1 = np.int64(start_raw_L1*sampling_rate*4)
count_L1 = np.int64(count_raw_L1 * sampling_rate)

# L1
bin_data = open(bin_file, "rb")
bin_data.seek(start_L1, os.SEEK_SET)
data_L1 = np.fromfile(bin_data, dtype=dt, count=count_L1, sep='')
bin_data.close()

# Plot
plt.plot(data_L1)

所以看起来我选择哪个时间很重要?如果我只是稍微改变开始时间,信号的幅度高度就会发生变化,我不明白为什么?也许有人可以帮助我。

非常感谢! 最好的祝福 巴斯蒂安

good_signal bad_signal

int(261.4*2e6*4) 给出 2091199999。这不是 4 的倍数。问题是 261.4*2e6 给出 522799999.99999994,而不是您可能预期的 522800000。

将 4 的乘法移到整数转换之外:4*int(261.4*2e6) 给出 2091199996。您可能更喜欢 4*round(261.4*2e6),它给出 2091200000。在您的代码中,这意味着使用,比方说,

start_L1 = 4*np.int64(start_raw_L1*sampling_rate)