一种实现互相关运算的装置及方法与流程

文档序号:24430596发布日期:2021-03-27 00:24阅读:210来源:国知局
一种实现互相关运算的装置及方法与流程

1.本发明涉及但不限于计算机领域,尤其涉及实现互相关运算的装置及方法。


背景技术:

2.fpga(field programmable gate array,可编程门阵列),可以无限次进行重复编程,从而减少硬件的开销。在数字电路当中,有一些复杂的功能模块能够被重复性使用,所以为了降低设计者的重复劳动,ip核(intellectual property core)即知识产权核应运而生。设计者可以通过调用ip核来实现其所需的功能,而不需要再自行设计,从而设计者可以在短时间内实现复杂的功能,并且提高设计的质量。
3.互相关(crosscorrelation)表示的是两个信号序列的相关程度。有很多的应用需要互相关来判断两个信号序列之间的相关性,例如回声消除、声音方向的判别、输油管破损位置的判断等等,所以互相关ip核被设计出来。但是现有的计算序列互相关性的方法较为复杂。


技术实现要素:

4.本申请所要解决的技术是提供一种实现互相关运算装置及方法,可以降低不同延时的互相关计算的复杂度。
5.为了解决上述技术问题,本申请提供了一种实现互相关运算的装置,包括:延时时间产生电路、数据读取电路和乘法累加器;
6.所述延时时间产生电路,设置为确定一个以上延时值,并将每个延时值发送至数据读取电路;
7.所述数据读取电路,设置为根据接收到的每个延时值和第一信号序列确定第一数据,根据所述接收到的每个延时值和第二信号序列确定第二数据,并将所述第一数据和所述第二数据输出至所述乘法累加器;
8.所述乘法累加器,设置为根据所述数据读取电路输出的第一数据和第二数据,得出所述第一信号序列和所述第二信号序列在每个延时值下的互相关值。
9.在一种示例性实例中,所述数据读取电路包括第一地址生成模块、第一数据输出模块、第二地址生成模块和第二数据输出模块;
10.所述第一地址生成模块,设置为接收所述延时时间产生电路发送的延时值;根据接收到的延时值,或者接收到的延时值以及所述第二地址生成模块发送的第二状态信息确定第一状态信息,并将所述第一状态信息发送至所述第一数据输出模块;其中,所述第一状态信息包括:所述第一地址生成模块产生的地址信息以及用于标识自身开始产生地址的第一标志信息,或者用于标识自身未开始产生地址的第一控制信息、或者用于标识当前延时值对应的所述第一信号序列的数据读取完毕的第一结束信息;
11.所述第二地址生成模块,设置为接收所述延时时间产生电路发送的延时值;根据接收到的延时值,或者接收到的延时值以及所述第一地址生成模块发送的所述第一状态信
息确定第二状态信息,并将所述第二状态信息发送至所述第二数据输出模块;其中,所述第二状态信息包括:所述第二地址生成模块产生的地址信息以及用于标识自身开始产生地址的第二标志信息、或者用于标识自身未开始产生地址的第二控制信息、或者用于标识当前延时值对应的所述第二信号序列的数据读取完毕的第二结束信息;
12.所述第一数据输出模块,设置为根据接收到的所述第一状态信息以及自身存储的所述第一信号序列,确定所述第一数据,并将所述第一数据输出至所述乘法累加器;
13.所述第二数据输出模块,设置为根据接收到的所述第二状态信息以及自身存储的所述第二信号序列,确定所述第二数据,并将所述第二数据输出至所述乘法累加器。
14.在一种示例性实例中,所述第一地址生成模块包括第一判断子电路和第一地址产生器;所述第二地址生成模块包括第二判断子电路和第二地址产生器;
15.所述第一判断子电路,设置为根据接收到的延时值确定该延时值下所述第一地址产生器与所述第二地址产生器开始产生地址的先后顺序;当确定第一地址产生器先产生地址时,将所述第一标志信息发送至所述第一地址产生器和所述第一数据输出模块;当该延时值对应的第一信号序列的数据读取完毕时,将所述第一结束信息发送至所述第一地址产生器和所述第一数据输出模块;当确定所述第一地址产生器后产生地址时,在向所述第一地址产生器发送所述第一标志信息之前,将所述第一控制信息发送至所述第一地址产生器和所述第一数据输出模块;
16.所述第一地址产生器,设置为当接收到所述第一判断子电路发送的所述第一标志信息时开始产生地址,并将产生的地址信息发送至所述第一数据输出模块,以使所述第一数据输出模块根据所述地址信息从所述第一信号序列读取数据;
17.所述第二判断子电路,设置为根据接收到的延时值确定该延时值下所述第二地址产生器与所述第一地址产生器开始产生地址的先后顺序;当确定第二地址产生器先产生地址,则将所述第二标志信息发送至所述第二地址产生器和所述第二数据输出模块;当该延时值对应的所述第二信号序列的数据读取完毕时,将所述第二结束信息发送至所述第二地址产生器和所述第二数据输出模块;当确定所述第二地址产生器后产生地址时,在向所述第二地址产生器发送所述第二标志信息之前,将所述第二控制信息发送至所述第二地址产生器和所述第二数据输出模块;
18.所述第二地址产生器,设置为当接收到所述第二判断子电路发送的所述第二标志信息时开始产生地址,并将产生的地址信息发送至所述第二数据输出模块,以使所述第二数据输出模块根据所述地址信息从所述第二信号序列读取数据。
19.需要说明的是,第一标志信息为标识第一地址产生器开始产生地址的信息,在其它实施例中,还可以使用其它名称的信息来标识第一地址产生器开始产生地址,第一标志信息为本实施例中一个示例性的名称。对于第一控制信息、第一结束信息、第二标志信息、第二控制信息以及第二结束信息与第一标志信息类似,在其它实施例中也可以使用其它名称来标识。
20.在一种示例性实例中,所述第一数据输出模块包括第一存储器和第一输出子电路;所述第二数据输出模块包括第二存储器和第二输出子电路;
21.所述第一存储器,设置为当接收到所述第一地址产生器发送的地址信息时,根据所述地址信息从自身存储的所述第一信号序列中读取数据,并将读取的数据发送至所述第
一输出子电路;
22.所述第一输出子电路,设置为根据所述第一判断子电路发送的所述第一标志信息、所述第一控制信息、所述第一结束信息以及所述第一存储器发送的数据中的一个或者多个,确定第一数据,并将所述第一数据发送至所述乘法累加器;
23.所述第二存储器,设置为当接收到所述第二地址产生器发送的地址信息时,根据所述地址信息从自身存储的所述第二信号序列中读取数据,并将读取的数据发送至所述第二输出子电路;
24.所述第二输出子电路,设置为根据所述第二判断子电路发送的所述第二标志信息、所述第二控制信息、所述第二结束信息以及所述第二存储器发送的数据中的一个或者多个,确定第二数据,并将所述第二数据发送至所述乘法累加器。
25.在一种示例性实例中,所述第一输出子电路具体设置为:
26.如果接收到所述第一判断子电路发送的所述第一标志信息以及所述第一存储器发送的数据,则将所述第一存储器发送的数据作为第一数据输出至所述乘法累加器;
27.如果接收到所述第一判断子电路发送的第一控制信息,则将数据零作为第一数据输出至所述乘法累加器;
28.如果接收到所述第一判断子电路发送的第一结束信息,则将数据零作为第一数据输出至所述乘法累加器;
29.所述第二输出子电路具体设置为:
30.如果接收到所述第二判断子电路发送的所述第二标志信息以及所述第二存储器发送的数据,则将所述第二存储器发送的数据作为第二数据输出至所述乘法累加器;
31.如果接收到所述第二判断子电路发送的第二控制信息,则将数据零作为第二数据输出至所述乘法累加器;
32.如果接收到所述第二判断子电路发送的第二结束信息,则将数据零作为第二数据输出至所述乘法累加器。
33.在一种示例性实例中,所述第一地址产生器,还设置为将产生的地址信息发送至所述第二判断子电路;
34.所述第二地址产生器,还设置为将产生的地址信息发送至所述第一判断子电路;
35.所述第一判断子电路,还设置为当确定所述第一地址产生器后产生地址时,根据接收到的所述第二地址产生器发送的地址信息以及当前的延时值,确定向所述第一地址产生器发送所述第一标志信息的时间点;
36.所述第二判断子电路,还设置为当确定所述第二地址产生器后产生地址时,根据接收到的所述第一地址产生器发送的地址信息以及当前的延时值,确定向所述第二地址产生器发送所述第二标志信息的时间点。
37.在一种示例性实例中,所述第一判断子电路具体设置为:
38.对于当前的延时值i,当i为负数时,确定所述第一地址产生器先开始产生地址,并向所述第一地址产生器发送所述第一标志信息;当i为正数时,确定所述第一地址产生器后产生地址,当确定所述第一地址产生器后产生地址,并且所述第二地址产生器发送的地址信息中包含的地址的数值为|i|

1时,向所述第一地址产生器发送所述第一标志信息;当i为零时,确定所述第一地址产生器与所述第二地址产生器同时产生地址,并向所述第一地
址产生器发送所述第一标志信息;
39.所述第二判断子电路具体设置为:
40.对于当前的延时值i,当i为正数时,确定所述第二地址产生器先开始产生地址,并向所述第二地址产生器发送所述第二标志信息;当i为负数时,确定所述第二地址产生器后产生地址,当确定所述第二地址产生器后产生地址,并且所述第一地址产生器发送的地址信息中包含的地址的数值为|i|

1时,向所述第二地址产生器发送所述第二标志信息;当i为零时,确定所述第二地址产生器与所述第一地址产生器同时产生地址,并向所述第二地址产生器发送所述第二标志信息;
41.其中,

m≤i≤m,m为预先设定的正整数,所述第一地址产生器和所述第二地址产生器开始产生的地址的初始数值为零,每个时钟周期地址的数值增加1。
42.在一种示例性实例中,所述第一地址产生器,还设置为将产生的地址信息发送至所述第一判断子电路;
43.所述第二地址产生器,还设置为将产生的地址信息发送至所述第二判断子电路;
44.所述第一判断子电路设置为当该延时值对应的第一信号序列的数据读取完毕时,将所述第一结束信息发送至所述第一地址产生器和所述第一数据输出模块包括:
45.当接收到的所述第一地址产生器发送的地址信息中包含的地址的数值等于a

1时,停止向所述第一地址产生器和所述第一输出子电路发送所述标志信息,并将所述第一结束信息发送至所述第一地址产生器和所述第一输出子电路;其中,a为所述第一信号序列中数据的个数,a为正整数;
46.所述第二判断子电路设置为当该延时值对应的第二信号序列的数据读取完毕时,将所述第二结束信息发送至所述第二地址产生器和所述第二数据输出模块包括:
47.当接收到的所述第二地址产生器发送的地址信息中包含的地址的数值等于b

1时,停止向所述第二地址产生器和所述第二输出子电路发送所述标志信息,并将所述第二结束信息发送至所述第二地址产生器和所述第二输出子电路;其中,b为所述第二信号序列中数据的个数,b为正整数。
48.在一种示例性实例中,所述第一判断子电路,还设置为当接收到的所述第一地址产生器发送的地址信息中包含的地址的数值等于a

1时,将所述第一结束信息发送至所述延时时间产生电路;
49.所述第二判断子电路,还设置为当接收到的所述第二地址产生器发送的地址信息中包含的地址的数值等于b

1时,将所述第二结束信息发送至所述延时时间产生电路;
50.所述延时时间产生电路,设置为将每个延时值发送至数据读取电路,包括:
51.当接收到所述第一判断子电路发送的所述第一结束信息,并且接收到所述第二判断子电路发送的所述第二结束信息时,发送下一个延时值,直至所有延时值均发送至所述数据读取电路。
52.本申请还提供一种实现互相关运算的方法,应用于前述任一所述的实现互相关运算的装置,包括:
53.确定一个以上延时值;
54.根据接收到的每个延时值和第一信号序列确定第一数据,根据所述接收到的每个延时值和第二信号序列确定第二数据;
55.根据第一数据和第二数据,得出所述第一信号序列和所述第二信号序列在每个延时值下的互相关值。
56.本申请提供一种实现互相关运算的装置及方法,其中装置包括:延时时间产生电路、数据读取电路和乘法累加器;所述延时时间产生电路,设置为确定一个以上延时值,并将每个延时值发送至数据读取电路;所述数据读取电路,设置为根据接收到的每个延时值和第一信号序列确定第一数据,根据所述接收到的每个延时值和第二信号序列确定第二数据,并将所述第一数据和所述第二数据输出至所述乘法累加器;所述乘法累加器,设置为根据所述数据读取电路输出的第一数据和第二数据,得出所述第一信号序列和所述第二信号序列在每个延时值下的互相关值。上述技术方案通过延时时间产生电路以及数据读取电路可以实现不同延时的互相关计算,有效降低了不同延时的互相关计算的复杂度。
附图说明
57.附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
58.图1是本申请实施例一的实现互相关运算的第一装置示意图;
59.图2是本申请实施例一的实现互相关运算的第二装置示意图;
60.图3是本申请实施例一的实现互相关运算的第三装置示意图;
61.图4是本申请实施例一的实现互相关运算的第四装置示意图;
62.图5是本申请实施例一的实现互相关运算的第五装置示意图;
63.图6是本申请实施例一的实现互相关运算的方法的流程图;
64.图7是本申请实施例二的实现互相关运算的电路示意图。
具体实施方式
65.本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
66.本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
67.此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺
序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
68.实施例一
69.如图1所示,本实施例提供一种实现互相关运算的装置,包括:延时时间产生电路1、数据读取电路2和乘法累加器3;
70.所述延时时间产生电路1,设置为确定一个以上延时值,并将每个延时值发送至数据读取电路;
71.所述数据读取电路2,设置为根据接收到的每个延时值和第一信号序列确定第一数据,根据所述接收到的每个延时值和第二信号序列确定第二数据,并将所述第一数据和所述第二数据输出至所述乘法累加器;
72.所述乘法累加器3,设置为根据所述数据读取电路输出的第一数据和第二数据,得出所述第一信号序列和所述第二信号序列在每个延时值下的互相关值。
73.上述技术方案通过延时时间产生电路以及数据读取电路可以实现不同延时的互相关计算,有效降低了不同延时的互相关计算的复杂度。
74.如图2所示,在一种示例性实例中,所述数据读取电路2包括第一地址生成模块21、第一数据输出模块22、第二地址生成模块23和第二数据输出模块24;
75.所述第一地址生成模块21,设置为接收所述延时时间产生电路发送的延时值;根据接收到的延时值,或者接收到的延时值以及所述第二地址生成模块发送的第二状态信息确定第一状态信息,并将所述第一状态信息发送至所述第一数据输出模块;其中,所述第一状态信息包括:所述第一地址生成模块产生的地址信息以及用于标识自身开始产生地址的第一标志信息,或者用于标识自身未开始产生地址的第一控制信息、或者用于标识当前延时值对应的所述第一信号序列的数据读取完毕的第一结束信息;
76.所述第二地址生成模块23,设置为接收所述延时时间产生电路发送的延时值;根据接收到的延时值,或者接收到的延时值以及所述第一地址生成模块发送的所述第一状态信息确定所述第二状态信息,并将所述第二状态信息发送至所述第二数据输出模块;其中,所述第二状态信息包括:所述第二地址生成模块产生的地址信息以及用于标识自身开始产生地址的第二标志信息、或者用于标识自身未开始产生地址的第二控制信息、或者用于标识当前延时值对应的所述第二信号序列的数据读取完毕的第二结束信息;
77.所述第一数据输出模块22,设置为根据接收到的所述第一状态信息以及自身存储的所述第一信号序列,确定所述第一数据,并将所述第一数据输出至所述乘法累加器;
78.所述第二数据输出模块24,设置为根据接收到的所述第二状态信息以及自身存储的所述第二信号序列,确定所述第二数据,并将所述第二数据输出至所述乘法累加器。
79.如图3所示,在一种示例性实例中,所述第一地址生成模块21包括第一判断子电路211和第一地址产生器212;所述第二地址生成模块23包括第二判断子电路231和第二地址产生器232;
80.所述第一判断子电路211,设置为根据接收到的延时值确定该延时值下所述第一地址产生器与所述第二地址产生器开始产生地址的先后顺序;当确定第一地址产生器先产生地址时,将所述第一标志信息发送至所述第一地址产生器和所述第一数据输出模块;当
该延时值对应的第一信号序列的数据读取完毕时,将所述第一结束信息发送至所述第一地址产生器和所述第一数据输出模块;当确定所述第一地址产生器后产生地址时,在向所述第一地址产生器发送所述第一标志信息之前,将所述第一控制信息发送至所述第一地址产生器和所述第一数据输出模块;
81.所述第一地址产生器212,设置为当接收到所述第一判断子电路发送的所述第一标志信息时开始产生地址,并将产生的地址信息发送至所述第一数据输出模块,以使所述第一数据输出模块根据所述地址信息从所述第一信号序列读取数据;
82.所述第二判断子电路231,设置为根据接收到的延时值确定该延时值下所述第二地址产生器与所述第一地址产生器开始产生地址的先后顺序;当确定第二地址产生器先产生地址,则将所述第二标志信息发送至所述第二地址产生器和所述第二数据输出模块;当该延时值对应的所述第二信号序列的数据读取完毕时,将所述第二结束信息发送至所述第二地址产生器和所述第二数据输出模块;当确定所述第二地址产生器后产生地址时,在向所述第二地址产生器发送所述第二标志信息之前,将第二控制信息发送至所述第二地址产生器和所述第二数据输出模块;
83.所述第二地址产生器232,设置为当接收到所述第二判断子电路发送的所述第二标志信息时开始产生地址,并将产生的地址信息发送至所述第二数据输出模块,以使所述第二数据输出模块根据所述地址信息从所述第二信号序列读取数据。
84.如图4所示和图5所示,在一种示例性实例中,所述第一数据输出模块22包括第一存储器221和第一输出子电路222;所述第二数据输出模块24包括第二存储器241和第二输出子电路242;
85.所述第一存储器221,设置为当接收到所述第一地址产生器发送的地址信息时,根据所述地址信息从自身存储的所述第一信号序列中读取数据,并将读取的数据发送至所述第一输出子电路;
86.所述第一输出子电路222,设置为根据所述第一判断子电路发送的所述第一标志信息、所述第一控制信息、所述第一结束信息以及所述第一存储器发送的数据中的一个或者多个,确定第一数据,并将所述第一数据发送至所述乘法累加器;
87.所述第二存储器241,设置为当接收到所述第二地址产生器发送的地址信息时,根据所述地址信息从自身存储的所述第二信号序列中读取数据,并将读取的数据发送至所述第二输出子电路;
88.所述第二输出子电路242,设置为根据所述第二判断子电路发送的所述第二标志信息、所述第二控制信息、所述第二结束信息以及所述第二存储器发送的数据中的一个或者多个,确定第二数据,并将所述第二数据发送至所述乘法累加器。
89.在一种示例性实例中,所述第一输出子电路具体设置为:
90.如果接收到所述第一判断子电路发送的所述第一标志信息以及所述第一存储器发送的数据,则将所述第一存储器发送的数据作为第一数据输出至所述乘法累加器;
91.如果接收到所述第一判断子电路发送的第一控制信息,则将数据零作为第一数据输出至所述乘法累加器;
92.如果接收到所述第一判断子电路发送的第一结束信息,则将数据零作为第一数据输出至所述乘法累加器;
93.所述第二输出子电路具体设置为:
94.如果接收到所述第二判断子电路发送的所述第二标志信息以及所述第二存储器发送的数据,则将所述第二存储器发送的数据作为第二数据输出至所述乘法累加器;
95.如果接收到所述第二判断子电路发送的第二控制信息,则将数据零作为第二数据输出至所述乘法累加器;
96.如果接收到所述第二判断子电路发送的第二结束信息,则将数据零作为第二数据输出至所述乘法累加器。
97.本实施例中,以第一判断子电路为例,第一判断子电路可以每个时钟周期均向第一输出子电路发送一个信息,这个信息可以是第一标志信息,或者第一结束信息,或者第一控制信息,也就是说,在每个时钟周期,第一输出子电路根据接收到的信息,确定第一数据。第一判断子电路还可以是每种类型的信息仅发送一次。例如,在第一地址产生器未开始产生地址时,仅向第一输出子电路发送一次第一控制信息,第一输出子电路在接收到其它信息之前,默认一直以第一控制信息对应的状态确定第一数据,这样第一输出子电路一直将数据零作为第一数据输出至乘法累加器。当第一判断子电路确定第一地址产生器开始产生地址时,仅向第一输出子电路发送一次第一标志信息,同样,在接收到其它信息之前,默认一直以第一标志信息对应的状态确定第一数据,即将第一存储器发送的数据作为第一数据输出至乘法累加器。当第一判断子电路确定第一信号序列的数据读取完时,仅向第一输出子电路发送一次第一结束信息,第一输出子电路在接收到其它信息之前,默认一直以第一结束信息对应的状态确定第一数据,即将数据零作为第一数据输出至乘法累加器。
98.当第一判断子电路确定第一地址产生器开始产生地址时,可以在每个时钟周期均向第一地址产生器发送第一标志信息,也就是说第一地址产生器根据是否接收到第一标志信息确定是否需要产生地址。第一判断子电路还可以仅向第一地址产生器发送一次第一标志信息,只要第一地址产生器接收到第一标志信息,就自动产生地址,并在每个时钟周期将地址数值增加1,直到接收到第一判断子电路发送的第一结束信息,第一地址产生器停止产生地址,当第一地址产生器停止产生地址时,也就不再向第一存储器发送地址信息。
99.第二判断子电路发送信息的方式与第一判断子电路类似,在此不再赘述。
100.在一种示例性实例中,所述第一地址产生器,还设置为将产生的地址信息发送至所述第二判断子电路;
101.所述第二地址产生器,还设置为将产生的地址信息发送至所述第一判断子电路;
102.所述第一判断子电路,还设置为当确定所述第一地址产生器后产生地址时,根据接收到的所述第二地址产生器发送的地址信息以及当前的延时值,确定向所述第一地址产生器发送所述第一标志信息的时间点;
103.所述第二判断子电路,还设置为当确定所述第二地址产生器后产生地址时,根据接收到的所述第一地址产生器发送的地址信息以及当前的延时值,确定向所述第二地址产生器发送所述第二标志信息的时间点。
104.在一种示例性实例中,所述第一判断子电路具体设置为:
105.对于当前的延时值i,当i为负数时,确定所述第一地址产生器先开始产生地址,并向所述第一地址产生器发送所述第一标志信息;当i为正数时,确定所述第一地址产生器后产生地址,当确定所述第一地址产生器后产生地址,并且所述第二地址产生器发送的地址
信息中包含的地址的数值为|i|

1时,向所述第一地址产生器发送所述第一标志信息;当i为零时,确定所述第一地址产生器与所述第二地址产生器同时产生地址,并向所述第一地址产生器发送所述第一标志信息;
106.所述第二判断子电路具体设置为:
107.对于当前的延时值i,当i为正数时,确定所述第二地址产生器先开始产生地址,并向所述第二地址产生器发送所述第二标志信息;当i为负数时,确定所述第二地址产生器后产生地址,当确定所述第二地址产生器后产生地址,并且所述第一地址产生器发送的地址信息中包含的地址的数值为|i|

1时,向所述第二地址产生器发送所述第二标志信息;当i为零时,确定所述第二地址产生器与所述第一地址产生器同时产生地址,并向所述第二地址产生器发送所述第二标志信息;
108.其中,

m≤i≤m,m为预先设定的正整数,所述第一地址产生器和所述第二地址产生器开始产生的地址的初始数值为零,每个时钟周期地址的数值增加1。
109.在一种示例性实例中,所述第一地址产生器,还设置为将产生的地址信息发送至所述第一判断子电路;
110.所述第二地址产生器,还设置为将产生的地址信息发送至所述第二判断子电路;
111.所述第一判断子电路设置为当该延时值对应的第一信号序列的数据读取完毕时,将所述第一结束信息发送至所述第一地址产生器和所述第一数据输出模块包括:
112.当接收到的所述第一地址产生器发送的地址信息中包含的地址的数值等于a

1时,停止向所述第一地址产生器和所述第一输出子电路发送所述标志信息,并将所述第一结束信息发送至所述第一地址产生器和所述第一输出子电路;其中,a为所述第一信号序列中数据的个数,a为正整数;
113.所述第二判断子电路设置为当该延时值对应的第二信号序列的数据读取完毕时,将所述第二结束信息发送至所述第二地址产生器和所述第二数据输出模块包括:
114.当接收到的所述第二地址产生器发送的地址信息中包含的地址的数值等于b

1时,停止向所述第二地址产生器和所述第二输出子电路发送所述标志信息,并将所述第二结束信息发送至所述第二地址产生器和所述第二输出子电路;其中,b为所述第二信号序列中数据的个数,b为正整数。
115.在一种示例性实例中,所述第一判断子电路,还设置为当接收到的所述第一地址产生器发送的地址信息中包含的地址的数值等于a

1时,将所述第一结束信息发送至所述延时时间产生电路;
116.所述第二判断子电路,还设置为当接收到的所述第二地址产生器发送的地址信息中包含的地址的数值等于b

1时,将所述第二结束信息发送至所述延时时间产生电路;
117.所述延时时间产生电路,设置为将每个延时值发送至数据读取电路,包括:
118.当接收到所述第一判断子电路发送的所述第一结束信息,并且接收到所述第二判断子电路发送的所述第二结束信息时,发送下一个延时值,直至所有延时值均发送至所述数据读取电路。
119.在一种示例性实例中,所述延时时间产生电路,设置为确定一个以上延时值包括:
120.根据接收到的设定的正整数m,得出的一个以上延时值为所有满足下述条件的整数的集合:大于或者等于

m并且小于或者等于m。
121.在一种示例性实例中,所述乘法累加器具体设置为:
122.对每个时钟周期接收到的第一数据和第二数据进行乘加计算;
123.根据每个延时值对应所有乘加计算结果得出所述第一信号序列和所述第二信号序列在每个延时值下的互相关值。
124.如图6所示,本实施例还提供一种实现互相关运算的方法,应用于前述任一所述的实现互相关运算的装置,包括:
125.步骤s101、确定一个以上延时值;
126.步骤s102、根据接收到的每个延时值和第一信号序列确定第一数据,根据所述接收到的每个延时值和第二信号序列确定第二数据;
127.步骤s103、根据第一数据和第二数据,得出所述第一信号序列和所述第二信号序列在每个延时值下的互相关值。
128.实施例二
129.下面进一步说明本申请实现互相关计算的方法。
130.如图7所示,为实现互相关计算的电路示意图,包括延时时间产生电路、判断子电路a、地址产生器a、块状存储器a、输出子电路a、判断子电路b、地址产生器b、块状存储器b、输出子电路b以及乘法累加器。(本实施例中,a和b相当于前述的第一和第二,例如判断子电路a相当于第一判断子电路)
131.延时时间产生电路分别与判断子电路a和判断子电路b相连接,地址产生器a与判断子电路b相连接,判断子电路a和地址产生器b相连接,判断子电路a和地址产生器a相连接,判断子电路b和地址产生器b相连接,地址产生器a与块状存储器a相连接,地址产生器b与块状存储器b相连接;块状存储器a与输出子电路a相连接,块状存储器b与输出子电路b相连接;输出子电路a和输出子电路b分别与乘法累加器相连接;判断子电路a与输出子电路a相连接,判断子电路b与输出子电路b相连接。
132.下面进一步说明延时时间产生电路以及数据读取电路(包括判断子电路a、地址产生器a、块状存储器a、输出子电路a、判断子电路b、地址产生器b、块状存储器b、输出子电路b)的工作原理:
133.互相关ip是实现两个信号序列在不同延时情况下的乘加操作,计算完成后再将结果输出。本实施例中,可以将信号序列a存储到块状存储器a中,将信号序列b存储到块状存储器b中。
134.假设,需要计算信号序列a和信号序列b在不同延时情况下的互相关值。首先设定最大延时数为m(m为正整数),则将最大延时数m输入到延时时间产生电路,延时时间产生电路根据m得出所有需要输出的延时值包括

m、

(m

1)
……0……
、m

1、m,一共时是2m

1个,相应可以得出2m

1个互相关计算结果。
135.假设当前延时时间产生电路将延时值为分别输出至判断子电路,判断子电路接收到延时值后则会根据延时值的数值确定与自身连接的地址产生器与另一地址产生器之间谁先产生地址,如果确定与自身连接的地址产生器后生成地址,则根据延时值的数值以及另一地址产生器产生的地址的数值,确定与自身连接的地址产生器何时开始产生地址。本示例中,判断子电路通过向与自身连接的地址产生器发送标志信息,以指示地址产生器开始生成地址。
136.本示例中,地址产生器会在接收到标志信息之后立即产生地址,初始地址的数值为0,每个时钟周期地址的数值增加1,后产生地址的地址产生器会在另一个地址产生器产生地址的数值为延时值的绝对值减一时开始产生地址,也就是,后产生地址的地址产生器会在先产生地址的地址产生器连接的存储器读出延时值的绝对值个数据之后才会产生地址。
137.每个块状存储器根据对应连接的地址产生器产生的地址,读取自身存储的数据,当块状存储器a和块状存储器b中的数据均全部读出后,也就是用于计算信号序列a和信号序列b在当前延时值下的互相关值的数据读取完毕,延时时间产生电路会发送下一个延时值,以此类推,直到所有的延时值全部发送给数据读取电路。
138.本实施例中,延时时间产生电路可以从

m开始依次将每个延时值发送给据读取电路。假设,延时数为负数时,将块状存储器b中的信号序列b向后滑动再进行乘加操作,延时数为正数时,将块状存储器b中的信号序列b向前滑动再进行乘加操作。因此,当延时数为正数时,由地址产生器b先产生地址,以此来达到块状存储器b中的序列向前滑动的目的;当延时数为负数时,由地址产生器a先产生地址,以此来达到块状存储器b中的序列向后滑动的目的。
139.下面举例说明数据读取的过程:
140.1、假设当前延时时间产生电路发送的延时值为

m
141.延时时间产生电路将

m发送至判断子电路a和判断子电路b,由于延时值为负数,则判断子电路a确定地址产生器a先开始产生地址,因此立即向地址产生器a发送第一标志信息,同时,判断子电路a还将第一标志信息发送至输出子电路a。地址产生器a接收到第一标志信息后开始生成地址,并将生成的地址发送给块状存储器a(地址产生器生成的地址的初始数值为0,每个时钟周期地址加一),块状存储器a根据地址产生器a发送的地址读取信号序列a中的数据,然后将读取出的数据输出至乘法累加器,直到块状存储器a中的数据读取完为止。在读取过程中,由于先读取块状存储器a中的数据,使得块状存储器a中的数据会在块状存储器b中的数据读取完之前就会被读取完,也就是说,块状存储器a中的数据读取完时,块状存储器b中的数据还未读取完,因此,在块状存储器a中的数据读取完之后,判断子电路a会向地址产生器a和输出子电路a发送第一结束信息,以标识当前延时值下块状存储器a中的数据读取完,同时,判断子电路a也会将第一结束信息发送至延时时间产生电路。输出子电路a会根据接收到的判断子电路a发送的信息确定向乘法累加器输出的数据,如果接收到判断子电路a发送的第一标志信息,则将块状存储器a发送的数据作为第一数据输出至乘法累加器,如果接收到判断子电路a发送的第一结束信息,说明块状存储器a中的数据已经读取完,则将数据零作为第一数据输出至乘法累加器,并且在块状存储器b中的数据读取完之前,一直将数据零输出至乘法累加器。地址产生器a会根据接收到的判断子电路a发送的信息确定是否产生地址,如果接收到判断子电路a发送的第一标志信息,则产生地址,如果接收到判断子电路a发送的第一结束信息,则不再产生地址。
142.本示例中,地址产生器a还将每个生成的地址发送至判断子电路a和判断子电路b,判断子电路a会根据地址产生器a发送的地址的数值确定当前延时值下块状存储器a中的数据是否读取完,如果地址产生器a发送的地址的数值为信号序列a中的数据的个数减一时,确定块状存储器a中的数据读取完,此时向地址产生器a和输出子电路a发送第一结束信息。
143.由于判断子电路b确定地址产生器b为后生成地址,因此,地址产生b在向地址产生器b发送第二标志信息之前,会向地址产生器b和输出子电路b发送第二控制信息,来使地址产生器b不产生地址并标识地址产生器b未开始生成地址。当输出子电路b接收到第二控制信息时,由于此时块状存储器b中的数据未开始读取,因此输出子电路b将数据零作为第二数据输出至乘法累加器,并且在接收到第二标志信息之前,每个时钟周期均会将数据零输出至乘法累加器。
144.同时,判断子电路b会根据接收到的地址产生器a发送的地址确定向地址产生器b发送第二标志信息的时间点,本示例中,当地址产生器a发送的地址的数值为当前延时值的绝对值减一时,判断子电路b向地址产生器b发送第二标志信息,地址产生器b在接收到第二标志信息后开始生成地址,生成地址的初始数值为零,每个时钟周期地址加一。地址产生器b会将生成的地址发送至块状存储器b,块状存储器b根据接收到的地址从信号序列b中读取数据,并将读取到的数据输出至乘法累加器,直到块状存储器b中的数据全部被读完,判断子电路b会将第二结束信息发送至延时时间产生电路。此时延时值为

m对应的信号序列a和信号序列b的数据均读取完成,同时乘法累加器也计算出延时值

m下的互相关值。
145.延时时间产生电路当接收到第一结束信息并且接收到第二结束信息时,发送下一个延时值。
146.从上述过程可以看出,在每个时钟周期,输出子电路a和输出子电路b分别向乘法累加器输出一个数据,在前m个时钟周期,输出子电路b一直输出数据0,在后m个时钟周期,输出子电路a一直输出数据0,从而实现将块状存储器b中的信号序列向后滑动再进行乘加操作的目的。
147.2、假设当前延时时间产生电路发送的延时值为m
148.延时时间产生电路将m发送至判断子电路a和判断子电路b,由于延时值为正数,则判断子电路b确定地址产生器b先开始产生地址,因此立即向地址产生器b发送第二标志信息,同时,判断子电路b还将第二标志信息发送至输出子电路b。地址产生器b接收到第二标志信息后开始生成地址,并将生成的地址发送给块状存储器b(地址产生器生成的地址的初始数值为0,每个时钟周期地址加一),块状存储器b根据地址产生器b发送的地址读取信号序列b中的数据,然后将读取出的数据输出至乘法累加器,直到块状存储器b中的数据读取完为止。在读取过程中,由于先读取块状存储器b中的数据,使得块状存储器b中的数据会在块状存储器a中的数据读取完之前就会被读取完,也就是说,块状存储器b中的数据读取完时,块状存储器a中的数据还未读取完,因此,在块状存储器b中的数据读取完之后,判断子电路b会向地址产生器b和输出子电路b发送第二结束信息,以标识当前延时值下块状存储器b中的数据读取完,同时,判断子电路b也会将第二结束信息发送至延时时间产生电路。输出子电路b会根据接收到的判断子电路b发送的信息确定向乘法累加器输出的数据,如果接收到判断子电路b发送的第二标志信息,则将块状存储器b发送的数据作为第二数据输出至乘法累加器,如果接收到判断子电路b发送的第二结束信息,说明块状存储器b中的数据已经读取完,则将数据零作为第二数据输出至乘法累加器,并且在块状存储器a中的数据读取完之前,一直将数据零输出至乘法累加器。地址产生器b会根据接收到的判断子电路b发送的信息确定是否产生地址,如果接收到判断子电路b发送的第二标志信息,则产生地址,如果接收到判断子电路b发送的第二结束信息,则不再产生地址。
149.本示例中,地址产生器b还将每个生成的地址发送至判断子电路b和判断子电路a,判断子电路b会根据地址产生器b发送的地址的数值确定当前延时值下块状存储器b中的数据是否读取完,如果地址产生器b发送的地址的数值为信号序列b中的数据的个数减一时,确定块状存储器b中的数据读取完,此时向地址产生器b和输出子电路b发送第二结束信息。
150.由于判断子电路a确定地址产生器a为后生成地址,因此,判断子电路a在向地址产生器a发送第一标志信息之前,会向地址产生器a和输出子电路a发送第一控制信息,来控制地址产生器a不产生地址并标识地址产生器a未开始生成地址。当输出子电路a接收到第一控制信息时,由于此时块状存储器a中的数据未开始读取,因此输出子电路a将数据零作为第一数据输出至乘法累加器,并且在接收到第一标志信息之前,每个时钟周期均会将数据零输出至乘法累加器。
151.同时,判断子电路a会根据接收到的地址产生器b发送的地址确定向地址产生器a发送第一标志信息的时间点,本示例中,当地址产生器b发送的地址的数值为当前延时值的绝对值减一时,判断子电路a向地址产生器a发送第一标志信息,地址产生器a在接收到第一标志信息后开始生成地址,生成地址的初始数值为零,每个时钟周期地址加一,地址产生器a会将生成的地址发送至块状存储器a,块状存储器a根据接收到的地址从信号序列a中读取数据,并将读取到的数据输出至乘法累加器,直到块状存储器a中的数据全部被读完,判断子电路a会将第一结束信息发送至延时时间产生电路。此时延时值为m对应的信号序列a和信号序列b的数据均读取完成,同时乘法累加器也计算出延时值m下的互相关值。
152.延时时间产生电路当接收到第一结束信息并且接收到第二结束信息时,发送下一个延时值。
153.从上述过程可以看出,在每个时钟周期,输出子电路a和输出子电路b分别向乘法累加器输出一个数据,在前m个时钟周期,输出子电路a一直输出数据0,在后m个时钟周期,输出子电路b一直输出数据0,从而实现将块状存储器b中的信号序列向前滑动再进行乘加操作的目的。
154.下面具体说明互相关的计算过程:
155.假设当前延时时间产生电路发送的延时值为i,在每个时钟周期,输出子电路a和输出子电路b分别向乘法累加器输出一个数据,乘法累加器对接收到的每组数据(每组数据包括由输出子电路a输出的数据和由输出子电路b输出的数据)进行乘加计算,当块状存储器a和块状存储器b中的数据均读取完后,延时值i对应的数据的乘加计算过程结束,得出信号序列a和信号序列b在延时值i情况下的互相关值。
156.然后再根据下一个延时值向乘法累加器输出数据,重复上述操作,得出下一个延时值对应的互相关值。直到得出2m

1的互相关值。
157.通过上述技术方案,信号序列a和信号序列b仍然被存储在对应的块状存储器中,但是输出数据已经是具备了延时时间产生器产生的延时值了,这时延时时间产生器产生下一个延时值,从而可以输出不同延时值对应的序列。
158.采用上述技术方案可以减少消耗资源量,只需要很少的硬件资源就可以实现互相关运算、降低了不同延时的互相关运算的复杂度,并且在减少资源消耗的基础上保持了相关性计算的准确性。
159.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装
置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd

rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1