You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pandas.date_range()生成精确匹配700Hz采样率的时间戳

700Hz采样率精确时间戳生成方案

问题本质

pd.date_range()的freq参数仅支持整数倍的固定时间偏移(最小精度到纳秒),而700Hz对应的单采样周期为1/700秒,是无限循环小数,无论换算到毫秒、微秒还是纳秒单位,都无法用整数值精确表示。用1.430615ms作为间隔属于近似值,采样点越多,累积的时间漂移越大。

推荐方案:基于偏移量直接计算(无累积误差)

不要硬凑freq的近似值,直接根据采样点序号计算每个点相对于起始时间的精确偏移,生成时间戳:

import pandas as pd
from datetime import datetime
import numpy as np # 大数据量时用numpy提升计算效率

start = datetime(2022, 1, 1, 0, 0)
sample_count = len(labels)
# 生成每个采样点的时间偏移:第i个点偏移i/700秒
time_offsets = pd.to_timedelta(np.arange(sample_count) / 700, unit="s")
time_stamps_at_700 = start + time_offsets

这个方案的误差仅来自单个时间戳的浮点运算精度,不会随着采样点增多累积偏差,完全匹配700Hz的采样间隔。如果数据量很小(少于1万条),把np.arange(sample_count)换成range(sample_count)也可以,不需要额外导入numpy。

备选方案:纳秒级近似freq(短数据可用)

如果数据时长很短(比如10分钟以内,采样点少于42万),也可以用最接近真实间隔的纳秒级freq参数调用date_range,误差在可接受范围内:

time_stamps_at_700 = pd.date_range(
    start=datetime(2022, 1, 1, 0, 0),
    periods=len(labels),
    freq="1428571ns" # 对应1/700秒的纳秒近似值,单步误差约0.43纳秒
)

注意:该方案每100万采样点会累积约0.43毫秒的总误差,长时采集数据不建议使用。

精度校验

生成时间戳后可以用以下代码验证实际采样率是否符合预期:

actual_hz = 1 / time_stamps_at_700.diff().mean().total_seconds()
print(f"实际平均采样率:{actual_hz:.6f}Hz")

内容的提问来源于stack exchange,提问作者brkgcmn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:54:28