用于计算序列数据的协方差的方法及装置.pdf

上传人:徐敬 文档编号:10810506 上传时间:2021-08-13 格式:PDF 页数:22 大小:1.17MB
收藏 版权申诉 举报 下载
用于计算序列数据的协方差的方法及装置.pdf_第1页
第1页 / 共22页
用于计算序列数据的协方差的方法及装置.pdf_第2页
第2页 / 共22页
用于计算序列数据的协方差的方法及装置.pdf_第3页
第3页 / 共22页
文档描述:

《用于计算序列数据的协方差的方法及装置.pdf》由会员分享,可在线阅读,更多相关《用于计算序列数据的协方差的方法及装置.pdf(22页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910071866.4 (22)申请日 2019.01.25 (71)申请人 中科驭数 (北京) 科技有限公司 地址 100190 北京市海淀区科学院南路6号 中国科学院计算技术研究所科研综合 楼 (72)发明人 鄢贵海卢文岩朱凯 (74)专利代理机构 北京金咨知识产权代理有限 公司 11612 代理人 秦景芳 (51)Int.Cl. G06F 13/16(2006.01) G06F 9/30(2006.01) (54)发明名称 用于计算序列数据的协方差的方法及装置 (57。

2、)摘要 本发明提供了一种用于计算序列数据的协 方差的方法及装置, 该方法包括: 接收第一序列 的第一数据和第二序列的第二数据, 并将第一数 据和第二数据分别存储至第一缓冲器和第二缓 冲器; 在第一缓冲器中的数据个数和第二缓冲器 中的数据个数均大于或等于滑动窗口的情况下, 根据第一缓冲器中滑动窗口所在位置从第一缓 冲器读取数量为滑动窗口大小的第一序列的数 据, 根据第二缓冲器中滑动窗口所在位置从第二 缓冲器读取数量为滑动窗口大小的第二序列的 数据; 计算读取的数量为滑动窗口大小的第一序 列的数据和读取的数量为滑动窗口大小的第二 序列的数据的协方差。 通过上述方案能够提高对 序列数据的协方差进行计。

3、算处理的实时性。 权利要求书3页 说明书12页 附图6页 CN 109800191 A 2019.05.24 CN 109800191 A 1.一种用于计算序列数据的协方差的方法, 其特征在于, 包括: 接收第一序列的第一数据和第二序列的第二数据, 并将所述第一数据和所述第二数据 分别存储至第一缓冲器和第二缓冲器; 在所述第一缓冲器中的数据的个数和所述第二缓冲器中的数据的个数均大于或等于 滑动窗口的大小的情况下, 根据所述第一缓冲器中所述滑动窗口所在位置从所述第一缓冲 器读取数量为所述滑动窗口的大小的所述第一序列的数据, 根据所述第二缓冲器中所述滑 动窗口所在位置从所述第二缓冲器读取数量为所述。

4、滑动窗口的大小的所述第二序列的数 据; 计算读取的数量为所述滑动窗口的大小的所述第一序列的数据和读取的数量为所述 滑动窗口的大小的所述第二序列的数据的协方差, 用于分析包含所述第一数据的所述第一 序列和包含所述第二数据的所述第二序列数据的相关性。 2.如权利要求1所述的用于计算序列数据的协方差的方法, 其特征在于, 计算读取的数 量为所述滑动窗口的大小的所述第一序列的数据和读取的数量为所述滑动窗口的大小的 所述第二序列的数据的协方差, 包括: 根据所述滑动窗口的大小, 利用多个加法器、 多个除法器及多个乘法器计算读取的数 量为所述滑动窗口的大小的所述第一序列的数据和读取的数量为所述滑动窗口的大。

5、小的 所述第二序列的数据的协方差。 3.如权利要求2所述的用于计算序列数据的协方差的方法, 其特征在于, 根据所述滑动 窗口的大小, 利用多个加法器、 多个除法器及多个乘法器计算读取的数量为所述滑动窗口 的大小的所述第一序列的数据和读取的数量为所述滑动窗口的大小的所述第二序列的数 据的协方差, 包括: 利用第一加法器阵列和第一除法器, 根据所述滑动窗口的大小对读取的数量为所述滑 动窗口的大小的所述第一序列的数据进行计算, 得到包括所述第一数据的所述第一序列的 数据的期望值; 利用第二加法器阵列和第二除法器, 根据所述滑动窗口的大小对读取的数 量为所述滑动窗口的大小的所述第二序列的数据进行计算,。

6、 得到包括所述第二数据的所述 第二序列的数据的期望值; 利用第一乘法器、 第三加法器阵列及第三除法器, 根据所述滑动 窗口的大小对读取的数量为所述滑动窗口的大小的所述第一序列的数据和读取的数量为 所述滑动窗口的大小的所述第二序列的数据进行计算, 得到包括所述第一数据的所述第一 序列的数据和包括所述第二数据的所述第二序列的数据的乘积的期望值; 利用第二乘法器对包括所述第一数据的所述第一序列的数据的期望值和包括所述第 二数据的所述第二序列的数据的期望值进行乘积计算; 利用第一加法器对包括所述的乘积的期望值和乘积计算结果进行加法计算, 得到包括 所述第一数据的所述第一序列的数据和包括所述第二数据的所。

7、述第二序列的数据的协方 差; 其中, 所述多个加法器包括所述第一加法器阵列中各加法器、 所述第二加法器阵列中 各加法器、 所述第三加法器阵列中各加法器、 及所述第一加法器, 所述多个除法器包括所述 第一除法器、 所述第二除法器、 及所述第三除法器, 所述多个乘法器包括所述第一乘法器和 所述第二乘法器。 4.如权利要求3所述的用于计算序列数据的协方差的方法, 其特征在于, 所述第一加法 权利要求书 1/3 页 2 CN 109800191 A 2 器阵列、 所述第二加法器阵列及所述第三加法器阵列中的至少一个包括多个级加法器, 前 一级加法器的个数是后一级加法器的个数的两倍。 5.如权利要求1所述。

8、的用于计算序列数据的协方差的方法, 其特征在于, 还包括: 接收所述第一序列的第三数据和所述第二序列的第四数据, 并将所述第三数据和所述 第四数据分别存储至所述第一缓冲器和所述第二缓冲器; 将所述第一缓冲器中所述滑动窗口向所述第三数据的存储位置移动滑动步长; 将将所 述第二缓冲器中所述滑动窗口向所述第四数据的存储位置移动所述滑动步长; 根据所述第一缓冲器中移动所述滑动步长后的所述滑动窗口所在位置重新从所述第 一缓冲器读取数量为所述滑动窗口的大小的所述第一序列的数据, 根据所述第二缓冲器中 移动所述滑动步长后的所述滑动窗口所在位置重新从所述第二缓冲器读取数量为所述滑 动窗口的大小的所述第二序列的。

9、数据; 计算重新读取的数量为所述滑动窗口的大小的所述第一序列的数据和重新读取的数 量为所述滑动窗口的大小的所述第二序列的数据的协方差, 用于分析包含所述第三数据的 所述第一序列和包含所述第四数据的所述第二序列数据的相关性。 6.如权利要求1所述的用于计算序列数据的协方差的方法, 其特征在于, 计算读取的数量为所述滑动窗口的大小的所述第一序列的数据和读取的数量为所述 滑动窗口的大小的所述第二序列的数据的协方差, 包括: 计算并记录读取的数量为所述滑动窗口的大小的所述第一序列的数据中排除最早存 储至所述第一缓冲器且数量为所述滑动步长的数据后的剩余数据之和, 计算并记录读取的 数量为所述滑动窗口的大。

10、小的所述第二序列的数据中排除最早存储至所述第二缓冲器且 数量为所述滑动步长的数据后的剩余数据之和; 计算重新读取的数量为所述滑动窗口的大小的所述第一序列的数据和重新读取的数 量为所述滑动窗口的大小的所述第二序列的数据的协方差, 包括: 利用记录的所述的排除最早存储至所述第一缓冲器且数量为所述滑动步长的数据后 的剩余数据之和、 记录的所述的排除最早存储至所述第二缓冲器且数量为所述滑动步长的 数据后的剩余数据之和、 读取的最晚存储至所述第一缓冲器且数量为所述滑动步长的数 据、 及读取的最晚存储至所述第二缓冲器且数量为所述滑动步长的数据, 计算重新读取的 数量为所述滑动窗口的大小的所述第一序列的数据。

11、和重新读取的数量为所述滑动窗口的 大小的所述第二序列的数据的协方差。 7.如权利要求1至6任一项所述的用于计算序列数据的协方差的方法, 其特征在于, 所 述第一缓冲器和/或所述第二缓冲器为环形缓冲器。 8.一种用于计算序列数据的协方差的装置, 其特征在于, 包括: 存储控制单元, 用于接收第一序列的第一数据和第二序列的第二数据, 并将所述第一 数据和所述第二数据分别存储至第一缓冲器和第二缓冲器; 读取控制单元, 用于在所述第一缓冲器中的数据的个数和所述第二缓冲器中的数据的 个数均大于或等于滑动窗口的大小的情况下, 根据所述第一缓冲器中所述滑动窗口所在位 置从所述第一缓冲器读取数量为所述滑动窗口。

12、的大小的所述第一序列的数据, 根据所述第 二缓冲器中所述滑动窗口所在位置从所述第二缓冲器读取数量为所述滑动窗口的大小的 所述第二序列的数据; 权利要求书 2/3 页 3 CN 109800191 A 3 协方差计算单元, 用于计算读取的数量为所述滑动窗口的大小的所述第一序列的数据 和读取的数量为所述滑动窗口的大小的所述第二序列的数据的协方差, 用于分析包含所述 第一数据的所述第一序列和包含所述第二数据的所述第二序列数据的相关性。 9.一种计算机设备, 包括存储器、 处理器及存储在存储器上并可在处理器上运行的计 算机程序, 其特征在于, 所述处理器执行所述程序时实现权利要求1至7任一项所述方法的。

13、 步骤。 10.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 该程序被处理器 执行时实现权利要求1至7任一项所述方法的步骤。 权利要求书 3/3 页 4 CN 109800191 A 4 用于计算序列数据的协方差的方法及装置 技术领域 0001 本发明涉及序列数据处理技术领域, 尤其涉及一种用于计算序列数据的协方差的 方法及装置。 背景技术 0002 大规模数据通常以时间序列的形式呈现。 对时间序列进行分析计算, 寻找其中的 数据变化规律, 并预测其将来的数据变化趋势, 在很多领域都能够起到重要的现实作用。 时 间序列分析作为数理统计学的分支, 一方面, 遵循数理统计学的基本。

14、原理, 另一方面, 由于 时间的不可重复性, 任意时刻只能获得唯一的序列观察值。 这种特殊的数据结构导致时间 序列分析具有很大特殊性。 0003 数理统计学中的协方差能够用于衡量两个时间序列的相互关系, 所以被广泛应用 于金融随机分析和金融工程中。 对于作为随机变量的时间序列X和时间序列Y, 协方差Cov (X,Y)的定义为: 0004 Cov(X,Y)EX-E(X)Y-E(Y)E(XY)-E(X)E(Y) 0005 其中, E(X)、 E(Y)、 E(XY)和EX-E(X)Y-E(Y)分别为时间序列X、 时间序列Y、 时 间序列X*Y和时间序列X-E(X)Y-E(Y)的期望值。 若时间序列X。

15、的长度和时间序列Y的长 度均为n, 且x(i)和y(i)分别为时间序列X的数据元素和时间序列Y的数据元素, 则协方差 Cov(X,Y)可以表示为: 0006 0007 现有的大规模时间序列分析通常采用CPU(Central Processing Unit, 中央处理 器)或GPU(Graphics Processing Unit, 图形处理器)来完成各个序列数据元素之间的复杂 计算, CPU和GPU的运算模式并不完全适合大规模时间序列的处理, 导致系统的数据吞吐率 往往受到限制, 同时系统的能耗也相对较高, 无法满足大数据实时处理的需求。 发明内容 0008 有鉴于此, 本发明提供一种用于计算。

16、序列数据的协方差的方法及装置, 以提高对 序列数据的协方差进行计算处理的实时性。 0009 为了实现上述目的, 本发明采用以下方案: 0010 在本发明一实施例中, 用于计算序列数据的协方差的方法, 包括: 0011 接收第一序列的第一数据和第二序列的第二数据, 并将所述第一数据和所述第二 数据分别存储至第一缓冲器和第二缓冲器; 0012 在所述第一缓冲器中的数据的个数和所述第二缓冲器中的数据的个数均大于或 等于滑动窗口的大小的情况下, 根据所述第一缓冲器中所述滑动窗口所在位置从所述第一 缓冲器读取数量为所述滑动窗口的大小的所述第一序列的数据, 根据所述第二缓冲器中所 述滑动窗口所在位置从所述。

17、第二缓冲器读取数量为所述滑动窗口的大小的所述第二序列 说明书 1/12 页 5 CN 109800191 A 5 的数据; 0013 计算读取的数量为所述滑动窗口的大小的所述第一序列的数据和读取的数量为 所述滑动窗口的大小的所述第二序列的数据的协方差, 用于分析包含所述第一数据的所述 第一序列和包含所述第二数据的所述第二序列数据的相关性。 0014 在本发明一实施例中, 用于计算序列数据的协方差的装置, 包括: 0015 存储控制单元, 用于接收第一序列的第一数据和第二序列的第二数据, 并将所述 第一数据和所述第二数据分别存储至第一缓冲器和第二缓冲器; 0016 读取控制单元, 用于在所述第一。

18、缓冲器中的数据的个数和所述第二缓冲器中的数 据的个数均大于或等于滑动窗口的大小的情况下, 根据所述第一缓冲器中所述滑动窗口所 在位置从所述第一缓冲器读取数量为所述滑动窗口的大小的所述第一序列的数据, 根据所 述第二缓冲器中所述滑动窗口所在位置从所述第二缓冲器读取数量为所述滑动窗口的大 小的所述第二序列的数据; 0017 协方差计算单元, 用于计算读取的数量为所述滑动窗口的大小的所述第一序列的 数据和读取的数量为所述滑动窗口的大小的所述第二序列的数据的协方差, 用于分析包含 所述第一数据的所述第一序列和包含所述第二数据的所述第二序列数据的相关性。 0018 在本发明一实施例中, 计算机设备, 包。

19、括存储器、 处理器及存储在存储器上并可在 处理器上运行的计算机程序, 所述处理器执行所述程序时实现上述实施例所述方法的步 骤。 0019 在本发明一实施例中, 计算机可读存储介质, 其上存储有计算机程序, 该程序被处 理器执行时实现上述实施例所述方法的步骤。 0020 本发明的用于计算序列数据的协方差的方法、 用于计算序列数据的协方差的装 置、 计算机设备及计算机可读存储介质, 通过将串行传输的第一序列和第二序列的数据存 储至各自的缓冲器, 然后根据设置的滑动窗口读取两个缓冲器中的序列数据, 能够以并行 方式计算两列序列数据的协方差。 而且, 在两个序列的新数据存储至各自的缓冲器时, 能够 通。

20、过灵活地移动滑动窗口来选择缓冲器中的新数据, 实现对两个序列的新数据进行协方差 计算。 如此一来, 通过本方案能够针对实时接收的两个序列的数据进行协方差计算, 从而提 高序列数据的协方差计算处理的实时性。 附图说明 0021 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他的附图。 在附图中: 0022 图1是本发明一实施例的用于计算序列数据的协方差的方法的流程示意图; 0023。

21、 图2是本发明一实施例中利用多个加法器、 多个除法器及多个乘法器进行协方差 计算的方法流程示意图; 0024 图3是本发明另一实施例的用于计算序列数据的协方差的方法流程示意图; 0025 图4是本发明一实施例的顶层结构示意图; 0026 图5是本发明一实施例的时序图; 说明书 2/12 页 6 CN 109800191 A 6 0027 图6是本发明一实施例中控制过程的流程示意图; 0028 图7是本发明一实施例中的数据缓冲器的结构示意图; 0029 图8是本发明一实施例中的通用电路的结构示意图; 0030 图9是本发明一实施例中的加法器阵列的结构示意图; 0031 图10是本发明一实施例的用。

22、于计算序列数据的协方差的装置的结构示意图。 具体实施方式 0032 为使本发明实施例的目的、 技术方案和优点更加清楚明白, 下面结合附图对本发 明实施例做进一步详细说明。 在此, 本发明的示意性实施例及其说明用于解释本发明, 但并 不作为对本发明的限定。 0033 图1是本发明一实施例的用于计算序列数据的协方差的方法的流程示意图。 如图1 所示, 一些实施例的用于计算序列数据的协方差的方法, 可包括: 0034 步骤S110: 接收第一序列的第一数据和第二序列的第二数据, 并将所述第一数据 和所述第二数据分别存储至第一缓冲器和第二缓冲器; 0035 步骤S120: 在所述第一缓冲器中的数据的个。

23、数和所述第二缓冲器中的数据的个数 均大于或等于滑动窗口的大小的情况下, 根据所述第一缓冲器中所述滑动窗口所在位置从 所述第一缓冲器读取数量为所述滑动窗口的大小的所述第一序列的数据, 根据所述第二缓 冲器中所述滑动窗口所在位置从所述第二缓冲器读取数量为所述滑动窗口的大小的所述 第二序列的数据; 0036 步骤S130: 计算读取的数量为所述滑动窗口的大小的所述第一序列的数据和读取 的数量为所述滑动窗口的大小的所述第二序列的数据的协方差, 用于分析包含所述第一数 据的所述第一序列和包含所述第二数据的所述第二序列数据的相关性。 0037 在上述步骤S110中, 该第一序列和该第二序列可以是各种包含按。

24、一定顺序排列的 数据元素的序列, 例如, 时间序列、 空间序列等, 可以由外部设备(例如传感器)实时传送过 来, 每个周期可以传送一个数据。 该第一数据中的 “第一” 并不限定为该第一序列中的首个 数据, 也不限定为本方法接收的首个数据, 其仅用于与后续所述的第三数据相区别, 用于表 明第一数据和第三数据在该第一序列中位置(例如时间位置、 空间位置等)不同。 该第二数 据中的 “第二” 并不限定为该第二序列中的首个数据或第二个数据, 也不限定为本方法接收 的首个数据或第二个数据, 其仅用于与后续所述的第四数据相区别, 用于表明第二数据和 第四数据在该第二序列中位置(例如时间位置、 空间位置等)。

25、不同。 0038 在一些情况下, 在接收到该第一数据/该第二数据之前, 可以已经接收了一个或多 个第三数据/第四数据, 并且可以已经分别存储至该第一缓冲器/第二缓冲器。 包括该第一 数据在内的第一序列的数据和包括该第二数据在内的第二序列的数据一般分别按该第一 缓冲器和该第二缓冲器的存储顺序进行存储, 特殊情况下, 可以不按缓冲器的存储顺序进 行存储, 但此时, 需要记录每个数据的存储位置, 便于后续按滑动窗口读取数据。 该第一缓 冲器和该第二缓冲器可以是各种顺序存储的缓冲器, 例如, 环形缓冲器, 环形缓冲器的存储 空间可以重复利用, 以此可以节省存储资源。 0039 在上述步骤S120中, 。

26、该第一缓冲器一般仅用于存储上述第一序列的数据, 该第二 缓冲器一般仅用于存储上述第二序列的数据, 特殊情况下, 该第一缓冲器/该第二缓冲器可 说明书 3/12 页 7 CN 109800191 A 7 以同时用于存储其他数据, 但此时需要标记各数据的存储位置, 便于后续按滑动窗口读取 数据。 0040 该滑动窗口的大小可以根据需要进行设定。 该滑动窗口可以用于标识对存储至该 第一缓冲器和该第二缓冲器的数据进行协方差计算的数据范围的宽度, 该数据范围的宽度 可以根据存储先后顺序或位置顺序界定。 该滑动窗口可以根据设定的滑动步长进行滑动, 从而在不同数据存储位置选取一定数据范围的宽度的数据。 在该。

27、滑动窗口的初始位置只要 满足能够被数据填充满即可, 例如, 可以根据最早存储至该第一缓冲器的数据的位置确定 该滑动窗口的初始位置, 具体地, 例如, 可以覆盖该第一缓冲器中数据序列的第一个数据至 存储次序为该滑动窗口的大小的数据之间的数据范围。 0041 在上述步骤S130中, 用于进行协方差计算的第一序列的数据的个数和第二序列的 数据的个数一般相等。 可以根据统计学中的协方差公式计算第一序列的数据(数据流中的 数据段)和第二序列的数据(数据流中的数据段)的协方差。 协方差的计算结果可以实时输 出, 或暂时存储起来待需要时再传输出去。 根据两个数据段的协方差, 可以判断该两个数据 段的相关性。。

28、 0042 本实施例中, 通过将串行传输的第一序列和第二序列的数据存储至各自的缓冲 器, 然后根据设置的滑动窗口读取两个缓冲器中的序列数据, 能够以并行方式计算两列序 列数据的协方差。 而且, 在两个序列的新数据存储至各自的缓冲器时, 能够通过灵活地移动 滑动窗口来选择缓冲器中的新数据, 实现对两个序列的新数据进行协方差计算。 如此一来, 通过本方案能够针对实时接收的两个序列的数据进行协方差计算, 从而提高序列数据的协 方差计算处理的实时性。 0043 在一些实施例中, 上述步骤S130, 即, 计算读取的数量为所述滑动窗口的大小的所 述第一序列的数据和读取的数量为所述滑动窗口的大小的所述第二。

29、序列的数据的协方差 的具体实施方式, 可包括: 0044 根据所述滑动窗口的大小, 利用多个加法器、 多个除法器及多个乘法器计算读取 的数量为所述滑动窗口的大小的所述第一序列的数据和读取的数量为所述滑动窗口的大 小的所述第二序列的数据的协方差。 0045 具体地, 可以利用多个加法器进行累加计算或其他求和计算, 利用多个乘法器可 以对两个序列的数据一一对应地进行乘积计算, 利用除法器可以进行求平均。 0046 本实施例中, 利用多个加法器、 多个除法器及多个乘法器可以分级、 并行地对两个 序列的多个数据进行计算, 提高协方差计算的速度, 从而提高协方差计算的实时性。 0047 图2是本发明一实。

30、施例中利用多个加法器、 多个除法器及多个乘法器进行协方差 计算的方法流程示意图。 如图2所示, 上述步骤S130的具体实施方式, 即, 根据所述滑动窗口 的大小, 利用多个加法器、 多个除法器及多个乘法器计算读取的数量为所述滑动窗口的大 小的所述第一序列的数据和读取的数量为所述滑动窗口的大小的所述第二序列的数据的 协方差, 可包括: 0048 步骤S131: 利用第一加法器阵列和第一除法器, 根据所述滑动窗口的大小对读取 的数量为所述滑动窗口的大小的所述第一序列的数据进行计算, 得到包括所述第一数据的 所述第一序列的数据的期望值; 利用第二加法器阵列和第二除法器, 根据所述滑动窗口的 大小对读。

31、取的数量为所述滑动窗口的大小的所述第二序列的数据进行计算, 得到包括所述 说明书 4/12 页 8 CN 109800191 A 8 第二数据的所述第二序列的数据的期望值; 利用第一乘法器、 第三加法器阵列及第三除法 器, 根据所述滑动窗口的大小对读取的数量为所述滑动窗口的大小的所述第一序列的数据 和读取的数量为所述滑动窗口的大小的所述第二序列的数据进行计算, 得到包括所述第一 数据的所述第一序列的数据和包括所述第二数据的所述第二序列的数据的乘积的期望值; 0049 步骤S132: 利用第二乘法器对包括所述第一数据的所述第一序列的数据的期望值 和包括所述第二数据的所述第二序列的数据的期望值进行。

32、乘积计算; 0050 步骤S133: 利用第一加法器对包括所述的乘积的期望值和乘积计算结果进行加法 计算, 得到包括所述第一数据的所述第一序列的数据和包括所述第二数据的所述第二序列 的数据的协方差; 0051 其中, 所述多个加法器包括所述第一加法器阵列中各加法器、 所述第二加法器阵 列中各加法器、 所述第三加法器阵列中各加法器、 及所述第一加法器, 所述多个除法器包括 所述第一除法器、 所述第二除法器、 及所述第三除法器, 所述多个乘法器包括所述第一乘法 器和所述第二乘法器。 0052 在上述步骤S131中, 可以利用第一加法器阵列对读取的数量为所述滑动窗口的大 小的所述第一序列的数据进行累。

33、加计算, 利用第一除法器可以将第一序列的累加计算的结 果除以所述滑动窗口的大小, 得到第一序列的数据的期望值。 可以利用第二加法器阵列对 读取的数量为所述滑动窗口的大小的所述第二序列的数据进行累加计算, 利用第二除法器 将第二序列的累加计算的结果除以所述滑动窗口的大小, 得到第二序列的数据的期望值。 可以利用多个第一乘法器可以对第一序列的数据和第二序列的数据一一对应地进行乘积 计算, 利用第三加法器阵列可以对乘积计算的结果进行累加计算, 利用第三除法器可以对 累加计算的结果除以滑动窗口的大小得到两个序列的数据乘积的期望值。 第一加法器阵 列、 第二加法器阵列、 第三加法器阵列的结构可以相同或类。

34、似。 0053 本实施例中, 在协方差计算过程中, 利用加法器阵列和乘法器可以更好地并行计 算, 从而进一步提高协方差计算的速度。 0054 在一些实施例中, 所述第一加法器阵列、 所述第二加法器阵列及所述第三加法器 阵列中的至少一个包括多个级加法器, 前一级加法器的个数是后一级加法器的个数的两 倍。 本实施例中, 通过在加法器阵列中设置多级加法器, 能够更便于协方差计算。 0055 图3是本发明另一实施例的用于计算序列数据的协方差的方法流程示意图。 如图3 所示, 图1所示的用于计算序列数据的协方差的方法, 还可包括: 0056 步骤S140: 接收所述第一序列的第三数据和所述第二序列的第四。

35、数据, 并将所述 第三数据和所述第四数据分别存储至所述第一缓冲器和所述第二缓冲器; 0057 步骤S150: 将所述第一缓冲器中所述滑动窗口向所述第三数据的存储位置移动滑 动步长; 将将所述第二缓冲器中所述滑动窗口向所述第四数据的存储位置移动所述滑动步 长; 0058 步骤S160: 根据所述第一缓冲器中移动所述滑动步长后的所述滑动窗口所在位置 重新从所述第一缓冲器读取数量为所述滑动窗口的大小的所述第一序列的数据, 根据所述 第二缓冲器中移动所述滑动步长后的所述滑动窗口所在位置重新从所述第二缓冲器读取 数量为所述滑动窗口的大小的所述第二序列的数据; 0059 步骤S170: 计算重新读取的数量。

36、为所述滑动窗口的大小的所述第一序列的数据和 说明书 5/12 页 9 CN 109800191 A 9 重新读取的数量为所述滑动窗口的大小的所述第二序列的数据的协方差, 用于分析包含所 述第三数据的所述第一序列和包含所述第四数据的所述第二序列数据的相关性。 0060 在上述步骤S140中, 该第三数据中的 “第三” 用于与前数的第一数据相区分, 用于 表示二者在该第一序列中位置(例如时间位置、 空间位置等)不同。 而且, 该第三数据并不限 定为紧接着前述的第一数据而产生或到来的数据, 换言之, 该第二数据和前述的第一数据 之间可以间隔一个或多个上述数据序列的数据。 类似地, 该第四数据中的 “。

37、第四” 用于与前 数的第二数据相区分, 用于表示二者在该第二序列中位置(例如时间位置、 空间位置等)不 同。 而且, 该第四数据并不限定为紧接着前述的第二数据而产生或到来的数据, 换言之, 该 第四数据和前述的第二数据之间可以间隔一个或多个上述数据序列的数据。 此外, 类似地, 该第一数据和该第二数据也不必是紧邻接收的两个数据, 该第三数据和第四数据也不必是 紧邻接收的两个数据。 0061 在上述步骤S150中, 该滑动步长可以根据需要设定, 例如, 可以设置为1、 2等。 在滑 动步长为1的情况下, 每次移动一个数据, 使得滑动窗口中增加一个新数据, 减少一个最旧 的数据。 通过将滑动窗口向。

38、所述第三数据或所述第四数据的存储位置(最新存储的数据的 位置)移动滑动步长, 可以更实时地对最新接收的序列数据进行协方差计算。 0062 述步骤S140至步骤S170可以不断重复进行, 从而对不断、 实时接收的第一序列和 第二序列的数据进行协方差计算, 例如, 每新接收一个第一序列的新数据和第二序列的新 数据, 可以输出两个序列对应的协方差计算结果。 0063 本实施例中, 通过移动滑动窗口来使滑动窗口包含新接收的第一序列和第二序列 数据, 能够更加实时地对序列数据进行协方差处理。 0064 在一些实施例中, 上述步骤S130, 即, 计算读取的数量为所述滑动窗口的大小的所 述第一序列的数据和。

39、读取的数量为所述滑动窗口的大小的所述第二序列的数据的协方差 的具体实施方式, 可包括: 0065 计算并记录读取的数量为所述滑动窗口的大小的所述第一序列的数据中排除最 早存储至所述第一缓冲器且数量为所述滑动步长的数据后的剩余数据之和, 计算并记录读 取的数量为所述滑动窗口的大小的所述第二序列的数据中排除最早存储至所述第二缓冲 器且数量为所述滑动步长的数据后的剩余数据之和。 0066 上述步骤S170, 即, 计算重新读取的数量为所述滑动窗口的大小的所述第一序列 的数据和重新读取的数量为所述滑动窗口的大小的所述第二序列的数据的协方差的具体 实施方式, 可包括: 0067 利用记录的所述的排除最早。

40、存储至所述第一缓冲器且数量为所述滑动步长的数 据后的剩余数据之和、 记录的所述的排除最早存储至所述第二缓冲器且数量为所述滑动步 长的数据后的剩余数据之和、 读取的最晚存储至所述第一缓冲器且数量为所述滑动步长的 数据、 及读取的最晚存储至所述第二缓冲器且数量为所述滑动步长的数据, 计算重新读取 的数量为所述滑动窗口的大小的所述第一序列的数据和重新读取的数量为所述滑动窗口 的大小的所述第二序列的数据的协方差。 0068 例如, 第一序列X的某一滑动窗口(滑动窗口的大小为winsize)包括数据X(0)、 X (1)、 X(2)、 X(3)、 .、 X(winsize-1), 其中, 数据X(0)为。

41、该滑动窗口内最早存储至第一缓冲 器的数据, 数据X(winsize-1)为最晚存储值第一缓冲器的数据。 第二序列Y的滑动窗口包括 说明书 6/12 页 10 CN 109800191 A 10 数据Y(0)、 Y(1)、 Y(2)、 Y(3)、 .、 Y(winsize-1), 其中, 数据Y(0)为该滑动窗口内最早存储 至第二缓冲器的数据, 数据Y(winsize-1)为最晚存储值第二缓冲器的数据。 在计算第一序 列的数据X(0)、 X(1)、 X(2)、 X(3)、 .、 X(winsize-1)和第二序列的数据Y(0)、 Y(1)、 Y(2)、 Y (3)、 .、 Y(winsize-1。

42、)时, 其中, 在滑动步长为1的情况下, 在累加计算第一序列X的数据 时, 可以从X(winsize-1)累加至X(0), 当累加计算出X(winsize-1)至X(1)之和时, 可以记录 下来, 然后再累加上X(0), 类似地, 可以累加计算出并记录X(winsize-1)至X(1)。 当接收第 一序列的数据X(winsize)并存储至第一缓冲器, 接收第二序列的数据Y(winsize)并存储至 第二缓冲器时, 可以将第一序列X中的滑动窗口向数据X(winsize)移动滑动步长, 即, 一个 数据单位, 移动后的滑动窗口包括第一序列的数据X(1)、 X(2)、 X(3)、 .、 X(wins。

43、ize), 类似 地, 移动后的滑动窗口包括第二序列的数据Y(1)、 Y(2)、 Y(3)、 .、 Y(winsize), 在计算第一 序列中移动后的滑动窗口和第二序列中移动后的滑动窗口的协方差的过程中, 在累加计算 数据X(1)、 X(2)、 X(3)、 .、 X(winsize)时, 可以利用记录的X(1)、 X(2)、 X(3)、 .、 X (winsize-1)之和再加上X(winsize)得到新滑动窗口中的数据之和, 在累加计算数据Y(1)、 Y(2)、 Y(3)、 .、 Y(winsize)时, 可以利用记录的数据Y(1)、 Y(2)、 Y(3)、 .、 Y(winsize-1) 。

44、之和再加上数据Y(winsize)得到新滑动窗口中的数据之和。 0069 本实施例中, 通过将一部分数据累加并记录起来用于滑动后窗口内的数据的协方 差计算, 能够节省计算所花费的时间, 从而进一步提高协方差计算的速度。 0070 在一些实施例中, 所述第一缓冲器和/或所述第二缓冲器为环形缓冲器。 利用环形 缓冲器可以重复利用存储空间, 减少存储空间开销。 0071 为了使本领域技术人员更好地了解本发明, 下面将以一具体实施例说明本发明的 实施过程。 0072 图4是本发明一实施例的顶层结构示意图。 如图4所示, 在一些具体实施例中, 本发 明实施例的用于计算序列数据的协方差的方法所使用装置TS。

45、COV的顶层结构可包括第一数 据缓冲器、 第二数据缓冲器、 控制逻辑、 数据通路、 状态寄存器等。 该第一数据缓冲器可以用 于暂存第一序列X(时间序列)的数据, 该第二数据缓冲器可以用于暂存第二序列Y(时间序 列)的数据。 控制逻辑可以用于控制该第一数据缓冲器和该第二数据缓冲器的数据存取。 该 数据通路可以根据时间序列X的数据和序列Y的数据进行协方差计算。 0073 图5是本发明一实施例的时序图。 如图5所示, 其中, 标1的位置表示复位信号 tscov_rstn有效, 所有内部逻辑和部分端口信号恢复至事先约定的状态, 一切逻辑准备就 绪等待新的计算开启。 标2的位置表示使能信号tscov_e。

46、nable置位, 正式开启新计算。 标3的 位置表示时钟上升沿来临, 内部逻辑采样计算所需要的参数滑动窗口大小winsize(第一参 数tscov_para0)和滑动步长stride(第二参数tscov_para1)。 标4的位置表示时钟上升沿来 临, 内部逻辑采样两个输入时间序列(第二序列的输入信号tscov_tsin1和第一序列的输入 信号tscov_tsin0)的第一个数据元素, 之后每个时钟数据更新一次。 标5的位置表示第一个 计算结果的信号tscov_tsout输出, 之后在输入数据连续的情况下保证每个时钟输出一个 结果。 0074 图6是本发明一实施例中控制过程的流程示意图。 参照。

47、图4至图6, 在一些具体实施 例中, 用于计算序列数据的协方差的方法所需的控制过程可包括: 0075 步骤S1: 在系统复位时, 内部逻辑和寄存器恢复至初始态, 等待时间序列写入。 说明书 7/12 页 11 CN 109800191 A 11 0076 步骤S2: 在参数读取时, 内部逻辑采样计算时间序列协方差所需的参数, 即滑动窗 口大小winsize和滑动步长stride。 0077 步骤S3: 在数据缓冲器写入时, 将第一时间序列X和第二时间序列Y写入各自的数 据缓冲器中, 同时更新状态寄存器。 0078 步骤S4: 在协方差计算时, 根据滑动窗口大小winsize和滑动步长strid。

48、e将两个数 据缓冲器中的时间序列送入数据通路中, 同时更新状态寄存器。 0079 步骤S5: 在计算完毕后, 各寄存器复位, 等待下一次计算开始。 0080 具体地, 例如, 对于第一时间序列X(X(0),X(1),X(2),X(3),.,X(n-1)和第二时 间序列Y(Y(0),Y(1),Y(2),Y(3),.,Y(n-1)进行实时协方差计算时, 其中n可以表示数据 序号。 以滑动窗的形式, 计算每一滑动窗内第一时间序列X的子序列和第二时间序列Y的子 序列之间的协方差, 结果可为Z(Z(0),Z(1),Z(2),Z(3),.,Z(m-1), 其中m可为滑动窗口 的个数。 协方差计算结果Z仍旧。

49、为时间序列, 但和输入序列可能不等长。 其中, 所需参数可包 括滑动窗口的大小winsize、 滑动窗口之间的滑动步长stride, 计算代码例如可包括: 0081 0082 解时间序列协方差的硬件结构, 支持任意窗口和任意步长的时间序列协方差求 解, 其硬件结构可包括: 数据缓冲器, 所述数据缓冲器用于时间序列的缓存; 状态寄存器, 所 述状态寄存器用于指示数据缓冲器中时间序列的存储情况; 控制逻辑, 所述控制逻辑实现 了数据缓冲器的读取、 状态寄存器的更新以及数据通路的控制; 数据通路, 所述数据通路实 现了时间序列协方差的快速求解。 0083 图7是本发明一实施例中的数据缓冲器的结构示意。

50、图。 如图7所示, 其中, Xk表示 序列X的第k个数据元素的值(序列值), Xn-N+1表示序列X的第n-N+1个数据元素的值, 即, 当前窗口的第一个值, Xn表示序列X的第n个数据元素的值, 即, 当前窗口的最后一个值。 数据缓冲器的实现形式可以为环形缓冲器, 所述环形缓冲器301可通过移动指示寄存器302 的单元的指针来替代移动实际的数据, 并且读写指针分离。 为了满足硬件的效率和速度, 环 说明书 8/12 页 12 CN 109800191 A 12 形缓冲器301实现了整个抽样窗的移动, 只有最近的N个时间序列值能够保存在一个N单元 的环形缓冲器中, 地址指针在绕回底部地址(开始。

展开阅读全文
内容关键字: 用于 计算 序列 数据 协方差 方法 装置
关于本文
本文标题:用于计算序列数据的协方差的方法及装置.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10810506.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1