一种信号分析仪器多次测量数据的实时计算装置
技术领域
本发明涉及一种信号分析仪器多次测量数据的实时计算装置。
背景技术
在信号分析仪器中经常需要将多次测量数据进行数学运算,这些多次测量数据可表示为一个M×N的矩阵A:
矩阵中的第m行的数据表示第m次测量的结果,每一次测量得到N个数据。对矩阵A的运算通常包括求出矩阵所有列的最大值,最小值或平均值等。这些运算可以使仪器提供多次测量的统计结果或平均结果,是仪器常见的功能之一。随着仪器测量速度的提高,出现了许多实时信号分析仪器,例如实时频谱分析仪、实时示波器、宽带接收机等,这些仪器测量速度快,上述要求的运算采用软件方式,已经无法满足实时处理的要求。为此通常采用可编程器件进行实时计算。以求解最大值为例,常规的计算结构如图1所示。
输入的测量数据流从端口101输入,其数据速率可表示为CLK1,数据可表示为(A11,A12,......,A1N;A21,A22,......,A2N;......;AM1,AM2,......,AMN),进入数据分配器102,该分配器将数据分成N个分支,每一个分支可表示为(A1n,A2n,......,Amn),数据速度为CLK2,CLK2通过CLK1进行M分频得到,图中表示了第一分103、第二分支104和第N分支105,其余省略。每一个分支分别采用一个比较器和一个寄存器经过M个CLK2时钟求出每一个分支的最大值MAXAn,图中标出了第一个分支的最大值(106)MAXA1,第二个分支的最大值(107)MAXA2和第N个分支的最大值(108)MAXAN,最后通过数据选择器(109)输出,最终输出数据序列(1010)为(MAXA1,MAXA2,......,MAXAN)。求解最小值和平均值的方案结构类似,不再详述。
该方案在N较小时,需要的数据比较器和寄存器数目较少,但是当N数值较大,例如1024,需要的数据比较器和寄存器数据庞大,且编程复杂。
发明内容
针对上述缺点,本发明给出了一种利用存储器的方案进行,只需要一个数据比较器和1个存储器即可完成。实现简单,不影响计算效率。
本发明的目的之一是通过以下技术方案来实现的:
本实时运算装置利用双口RAM的地址和数据同时访问的能力,以求解最大值为例:
输入的测量数据流从端口(101)输入到数据比较器(103),其数据速率可表示为CLK1,数据可表示为(A11,A12,......,A1N;A21,A22,......,A2N;......;AM1,AM2,......,AMN)。
当第一组数据(A11,A12,......,A1N)输入时,不进行比较,依据地址循环累加器(102)指示的地址端口(109)直接存储到双口RAM中,对应的数据端口为(1010),地址循环累加器(102)按照模N进行循环。
当第二组数据(A21,A22,......,A2N)开始输入时,在A21数据到来的时刻,依据地址循环累加器(105)开始将地址端口(1011)指示为A11对应的地址,同时将A11数据(104)读出并输入到比较器(103),与A21进行比较,并将其中较大的数据存储到原来A11存储的地址。在A22数据到来时,依据地址循环累加器(105)同时将地址指示为A12对应的地址,同时将A12数据(104)读出并输入到比较器(103),与A22进行比较,并将其中较大的数据存储到原来A12存储的地址。依次类推,完成第二组的数据比较。
当第三组数据(A31,A32,......,A3N)输入时,在A31数据到来的时刻,地址循环累加器(105)开始将地址端口(1011)指示为A11对应的地址,同时将上次比较的数据(104)读出并输入到比较器(103),与A31进行比较,并将其中较大的数据依然存储到原来A11存储的地址。在A32数据到来时,依据地址循环累加器(105)同时将地址指示为A12对应的地址,同时将其中较大的数据依然存储到原来A12数据(104)读出并输入到比较器(103),与A32进行比较,并将其中较大的数据存储到原来A12存储的地址。依次类推,完成第三组的数据比较。
依照上述描述,直到比较完成M组数据。模M计数器(107)的计数时钟为CLK2,CLK2通过CLK1进行N分频得到。当比较完成完成M组数据后,模M计数器(107)输出一个有效信号,该有效信号作用一是将RAM数据复位,作用二是用来控制寄存器(108)将数据(104)锁存下来。这样每当比较完成M组数据后,都会得到N个数据结果。
求解最小值和平均值的方案结构类似,不再详述。
附图说明
下面结合附图对本发明的具体实施例作进一步详细的说明。
图1常规的计算结构;
图2本发明的计算结构,
具体实施方式
以下将结合附图,对本发明的优选实施例进行详细的描述;应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
输入的测量数据流从端口(101)输入到数据比较器(103),其数据速率可表示为CLK1,数据可表示为(A11,A12,......,A1N;A21,A22,......,A2N;AM1,AM2,......,AMN)。
当第一组数据(A11,A12,......,A1N)输入时,不进行比较,依据地址循环累加器(102)指示的地址端口(109)直接存储到双口RAM中,对应的数据端口为(1010),地址循环累加器(102)按照模N进行循环。
当第二组数据(A21,A22,......,A2N)开始输入时,在A21数据到来的时刻,依据地址循环累加器(105)开始将地址端口(1011)指示为A11对应的地址,同时将A11数据(104)读出并输入到比较器(103),与A21进行比较,并将其中较大的数据存储到原来A11存储的地址。在A22数据到来时,依据地址循环累加器(105)同时将地址指示为A12对应的地址,同时将A12数据(104)读出并输入到比较器(103),与A22进行比较,并将其中较大的数据存储到原来A12存储的地址。依次类推,完成第二组的数据比较。
当第三组数据(A31,A32,......,A3N)输入时,在A31数据到来的时刻,地址循环累加器(105)开始将地址端口(1011)指示为A11对应的地址,同时将上次比较的数据(104)读出并输入到比较器(103),与A31进行比较,并将其中较大的数据依然存储到原来A11存储的地址。在A32数据到来时,依据地址循环累加器(105)同时将地址指示为A12对应的地址,同时将其中较大的数据依然存储到原来A12数据(104)读出并输入到比较器(103),与A32进行比较,并将其中较大的数据存储到原来A12存储的地址。依次类推,完成第三组的数据比较。
依照上述描述,直到比较完成M组数据。模M计数器(107)的计数时钟为CLK2,CLK2通过CLK1进行N分频得到。当比较完成完成M组数据后,模M计数器(107)输出一个有效信号,该有效信号作用一是将RAM数据复位,作用二是用来控制寄存器(108)将数据(104)锁存下来。这样每当比较完成M组数据后,都会得到N个数据结果。求解最小值和平均值的方案结构类似。