在减少的等待时间内确定函数系数的方法

文档序号:738931阅读:157来源:国知局
专利名称:在减少的等待时间内确定函数系数的方法
技术领域
本发明一般涉及函数系数的确定。更具体地,本发明的设备、方法和计算机程序产品涉及当接收到一个输入信号的每个样本时确定用于表示该信号的函数的系数,以便减少确定系数中的等待时间。
背景技术
信号处理是许多电子系统的重要功能。具体地,在许多电子系统中,数据以信号形式传输。此外,某些电子系统通过观察各信号的特性来分析和监视机械和化学系统的运行,这些信号例如是由这些系统输出的振动信号和其他类型的信号。考虑到这点,已经开发了各方法来将各信号特征化以便将信号中的信息或数据提供数据处理之用。
作为一个例子,在许多电子系统中,通常在信号处理之前将时域信号变换为频域信号。将信号变换为频域的典型方法是通过使用傅立叶变换来完成的。信号的傅立叶变换以一定选择的时间周期内获取的时域信号的多个样本为依据,称为基频。傅立叶变换根据信号的这些样本来提供多个系数,其中这些系数分别表示其频率为基频的倍数的幅值。然后电子系统在处理信号中使用这些用于表示频域中的信号的傅立叶变换的系数。
虽然傅立叶变换是用于处理信号的各函数中最广泛地使用的一个,但还有其他函数,或者现在已经使用,或者将来在它们的应用性被更好地认识以后会被使用。只提其中一部分,这些函数包括贝塞耳函数、勒让德多项式、第一类和第二类契贝谢夫多项式、雅可比多项式、一般拉盖尔多项式、埃尔米特多项式、伯努利多项式、欧拉多项式,以及在量子力学、线性分析函数、小波和不规则碎片形中使用的许多矩阵。
虽然傅立叶变换和以上所述的其他函数在数据处理中用于确定信号特性时是有用的,但它们的使用有某些缺点。具体地,这些函数应用于信号时通常计算量非常大。这是不利的,因为它可能要求使用专用的处理器来完成数据处理。此外,更重要的是,在许多数据处理应用场合中为使用这些函数而完成计算次数所花费的时间可能造成无法接受的延迟。事实上,许多数据处理系统的目标是实时地、没有延迟地处理数据信号的能力。
例如,傅立叶级数定义为一个用于表示信号的系数的无穷级数。为使用傅立叶级数将信号变换,将会需要无穷次数的计算。为补救此问题,许多传统的数据处理系统使用不同于无穷傅立叶级数的离散傅立叶变换(DFT)。DFT是傅立叶级数的数字逼近,并且用于处理数字化的模拟信息。重要的是,DFT使用有限周期内获取的N个均匀分布的样本的有限集来代替傅立叶级数的无穷级数。因此DFT的计算能提供与接收到的样本相同数量的系数,而不是傅立叶级数所要求的无穷数量的样本。以此方式,DFT的使用能提供最满意的现有手段来处理信号。
由于减少处理信号所需时间的重要性,已经开发各方法,用于进一步减少为完成信号的DFT所需计算次数。具体地,DFT过程使用类似过程来计算每个系数。一般系数所用过程是将每个样本乘以独立变量的规格化值的正弦和余弦并乘以角频率,然后将所有样本的结果相加。此过程为N个系数中的每一个系数规定N个相乘-相加步骤,这又等于每个DFT的N2个相乘-相加计算。由于通常需要许多信号样本来完成一个合适的信号逼近,一个信号的DFT通常在计算上和时间上是非常大的。
开发出来减少计算次数的方法中的一个是蝴蝶法,它将计算次数从N2减少至N乘以log(N)。蝴蝶法以以下事实为根据由于函数的周期性,DFT的许多三角函数值是相同的。由此,蝴蝶法将与DFT相关联的矩阵减少至N/2个两点变换(即各变换表示每个系数an和bn)。蝴蝶法还减少DFT的冗余三角函数值。虽然蝴蝶法能比更传统的DFT方法减少计算次数,但它也增加信号的傅立叶变换的复杂性。具体地,蝴蝶法使用一个复杂的方法来访问信号的样本以及包含函数的矩阵。这个复杂性要求使用处理器以及增加傅立叶变换的计算时间。从本质上讲,蝴蝶法是一个批处理过程,它在接收到所有样本后才开始确定系数。如以后所描述的,此方法在确定函数系数时造成等待时间。
除所需计算次数之外,使用DFT的附加问题是,DFT的每个系数是信号的所有样本的函数。因此,在处理完所有样本之前无法确定DFT的任何系数。一旦接收到该组的最后样本,即可确定所有系数的值。以此方式,最后样本到达时与系数可供使用时之间的时间称为系统的等待时间。如果用于处理系数的时间大于收集样本组的时间,则该系统无法实时地运行。
虽然在接收到所有样本之前无法确定任何系数,但在现有技术中有一个迄今未被认识的DFT的有利特性。此特性是样本的独立性。在DFT过程中一组正被变换的样本中,每个样本只按照可应用的角度的正弦或余弦对每个系数作出贡献。这阐述于附录1中。具体地,DFT的每个系数(即A0、A1、A2、...和B0、B1、B2、...)是将每个样本在与每个系数相关联的正弦和余弦函数中的应用的总和。例如,系数A1是A11+A12+...+A18之和,它们是每个样本在与A1系数相关联的余弦函数中的应用。由于每个样本通过加法与每个系数相关,所以每个样本独立于其他样本,并且能够在接收到其他样本之前用于更新系数。
许多用于确定信号的傅立叶变换的传统系统并不认识DFT的样本方面的这个独立性。具体地,使用DFT的传统系统通常首先接收信号的一组N个样本,以及只在接收到所有样本之后系统才生成每个系数。以此方式,这些传统系统具有一个相关联的等待时间,它等于系统在接收到最后样本之后用于计算每个系数所需的时间。这个等待时间可能是显著的。例如,如果传统系统使用N=64来确定DFT,则计算次数是N2或4096。对于快速傅立叶变换(FFT),这减少至N乘以log(N)或64(6)等于364。
附录1阐述一个数据处理系统的例子,它在确定DFT系数之前等待接收所有样本。可以看出,附录1中阐述的数据处理系统在开始处理傅立叶变换的任何系数之前首先接收信号的8个样本。只在接收到样本之后,该系统才开始计算系数。等待时间定义为接收到最后样本时与系数可供使用时之间的时间,此数据处理系统具有的等待时间等于为完成所有系数计算所需时间。以此方式,此数据处理系统无法用于实时数据处理。由于实时数据处理或近似的实时数据处理对于许多数据处理系统是有利的,所以希望提供一种用于减少完成信号变换所需时间的设备和方法。
由N.Rama和M.N.S.Swamy所著题为“关于使用收缩体系结构的DFT和DCT实时计算”(IEEE Transactions on Signal Processing Vol.42,No.4,pages 988-991(April 1994))一文描述了一种用于确定信号的DFT的计算系统。此文中建议的体系结构接收作为数据流的输入数据和以输出流的形式输出。它还减少计算中所用边界单元的数量。然而,因为它在确定系数之前要等待直至接收到所有样本,所以该体系结构在确定DFT中并不能减少等待时间。
由于系统的复杂性,许多传统数据处理系统例如蝴蝶法的附加问题是无法独立地观察函数系数。此外,因为蝴蝶法和实时方法背道而驰,它使用批处理方法确定系数,所以当接收每个新样本时,无法观察和跟踪个别系数。因为,分析的批处理方法增加等待时间,使用传统系统时必须进行相当的处理以便在一段时间内观察和跟踪系数。观察和跟踪信号的个别系数在深入彻底的信号分析中是有利的。
许多传统的数据处理系统还有一个问题是这些系统通常不允许改变函数的个别系数的分辨率。例如,蝴蝶法配置为计算每个系数以便产生与样本的数量相同的系数。当只对一个系数或系数的一个子集感兴趣时,这可能是不利的,因为蝴蝶法将时间和资源花费来使用与重要系数相同的分辨率来确定不太重要的系数。考虑到这点,希望提供设备和方法,用于允许跟踪和观察个别系数,并且能够改变用于计算个别系数的分辨率。

发明内容
如以下所述,本发明的设备、方法和计算机程序产品能够克服使用函数例如傅立叶变换处理信号时遇到的许多缺点。具体地,本发明提供设备、方法和计算机程序产品,用于在减少的等待时间内确定表示输入信号的函数的系数,从而在自接收到信号的最后样本后的减少的时间内使函数系数可供使用。本发明还提供设备、方法和计算机程序产品,用于减少为确定函数系数所必须存储的数据量,从而能够实施较少复杂性的硬件设计。此外,本发明提供设备、方法和计算机程序产品,允许跟踪和观察个别系数,并且还允许使用不同级别的分辨率来确定个别系数或系数的子集。
具体地,在一个实施例中,本发明提供设备、方法和计算机程序产品,用于在接收到信号的最后样本之前更新至少一个函数系数,以便在减少的等待时间内确定函数系数。此外,在另一个实施例中,本发明的设备、方法和计算机程序产品在接收到信号的每个样本时将每个函数系数都更新。如前所述,信号的每个样本独立于其他样本地影响各函数系数。样本的独立特性允许重新安排每个系数的方程从而分别地将所有来自每个样本的贡献组合起来。其结果是当接收到每个样本时能够计算每个样本的贡献,然后加至每个系数上。
考虑到这点,在一个实施例中,本发明提供了一种用于确定函数的系数(A0、A1、A2、...和B0、B1、B2、...)的数据处理设备,所述系数表示输入信号,并且被表示为一系列的数值,诸如离散傅立叶变换(DFT),包括用于接收所述输入信号的多个样本值的输入端,以及用于生成所述函数的系数的系数发生器,其中所述系数发生器包括与所述输入端通信的第一设备(14,22),包括存储设备(22)、乘法器、加法器或者其他选通门设备(14)中的至少一个,用于生成表示样本值对于将被计算的所述函数系数的贡献的信号,以备所述系数发生器接收最后样本(Sn),以及与所述第一设备(14,22)通信的第二设备(16,24),包括存储设备(22)、乘法器、加法器或者其他选通门设备(14)中的至少一个,用于基于在所述第二设备中接收到的样本成员(S1-Sn)以及系数成员(Cn),生成诸如DFT的旋转因子的函数因子,其中对于给定的样本(S1-Sn)以及系数成员(Cn),所述系数发生器被这样设置,即所述第二设备将与所述样本以及系数成员相关联的函数因子传送给所述第一设备,所述第一设备将所述样本值(S1-Sn)乘以对应的函数因子,以便确定所述样本值对于所述系数的贡献,以备所述系数发生器接收最后样本(Sn),从而使确定所述函数的系数所要求的等待时间实现最小化。
在另一个实施例中,基于外部时钟将所述样本提供给所述输入端,并且所述第一和第二设备使用所述外部时钟来更新所述系数。
在另一个实施例中,本发明的设备包括一个系数发生器,该系数发生器具有一个第一设备,该第一设备每次接收一个样本并且当接收到样本时根据每个样本来更新函数系数而不等待接收所有样本。所以每次在下一个样本到达之前就更新系数。以此方式,当接收到最后样本时,唯一剩余的计算是确定最后样本对每个系数的贡献。因此,从接收到最后样本到系数可提供使用的等待时间减少了。
在本发明的又一个实施例中,该系数发生器的第一设备当接收到一个样本时同时地使用该样本来更新每个系数。以此方式,当接收到最后样本时,该系数发生器的第一设备同时地更新每个系数,因而减少接收到最后样本与系数提供使用之间的等待时间。
除减少接收到最后样本与系数的可利用性之间的时间之外,本发明的设备、方法和计算机程序产品还减少实施中所需硬件。具体地,如所讨论的,本发明的设备、方法和计算机程序产品当接收到样本时更新每个样本对系数的贡献。以此方式,不必在已经更新每个系数之后再保留该样本,从而减少存储量。
此外,本发明的系数发生器还通过预先计算与每个系数相关联的至少一部分函数以及将这些预先计算的值存于存储器内以备用于确定给定信号的系数,从而减少用于完成计算的时间。具体地,如上所述和在附录1中阐述的,每个样本通过三角函数与每个系数相关,其中三角函数的值以系数和多个样本中接收到样本的顺序为依据。由于系数和多个样本中接收到样本的顺序是事先已知的,本发明的系数发生器能够为每个样本和系数预先计算这部分三角函数。以此方式,当接收到每个样本时,本发明的系数发生器只需将样本乘以与样本和系数相关联的预先计算的值。
具体地,在一个实施例中,该系数发生器的第二设备包括一个存储设备。存于存储设备中的是用于表示与每个样本和系数相关联的算术函数的预先计算的值。在本发明的一个实施例中,当接收到一个样本时,系数发生器的第一设备访问存储设备,并且将该样本乘以用于表示与样本和系数相关联的算术函数的值,从而定义系数的一项。系数发生器还通过将该项加至系数的先前值而更新该系数。
在一个附加实施例中,该系数存储器的第二设备包括一个存储设备,该存储设备包括具有多个单元的阵列,其中该阵列的每个单元存储一个用于表示与相应的样本和系数相关联的算术函数的值。此外,在这个实施例中,阵列的每个单元具有一个唯一的地址,它由相应的系数和样本所规定。以此方式,对于每个样本和系数,本发明的这个实施例的系数发生器的第一设备使用与样本和系数相关联的地址访问存储器单元,将该样本乘以所存值,从而定义系数的一项,然后将该项加至系数的先前值而更新该系数。
除通过预先计算与每个样本和系数相关联的函数从而减少所需计算次数之外,在一个实施例中,本发明的系数发生器还预先使用与每个系数和样本相关联的三角函数来计算所有可能的样本幅值。以此方式,当接收到样本时,该系数发生器的第一设备只需估计样本值并且从该第二设备的存储设备中检索与样本相关联的预先计算值及用于样本和系数的算术函数,以及使用该预先计算值来更新该系数。
例如,在一个实施例中,该系数发生器的第一和第二设备包括第一和第二存储设备。第一存储设备包括一个单元阵列,其中每个单元与相应的样本和系数相关联。每个单元包含一个预先计算值,该值对应于有限数量的样本的可能值中的一个值以及与相应的系数和样本相关联的算术函数的组合。第二存储设备还具有一个用于存储令牌的单元的阵列。每个令牌表示一个相应的系数和样本。
在运行中,当接收到一个样本时,系数发生器访问第二存储设备,以及为每个系数检索与该系数和样本相关联的令牌并且将该令牌提供给第一存储设备。此外,系数发生器接收样本值,并且根据来自第二存储设备的令牌和该样本值来检索存于第一存储设备的单元中的预先计算值,其中该第一存储设备具有一个包括令牌和样本值在内的地址。系数发生器还通过把来自第一存储设备的预先计算值加至系数的先前值而更新该系数。
在另一个实施例中,该系数发生器的第二设备包括一个乘法器、加法器、除法器或其他选通门功能而不是第二存储设备。在此实施例中,由选通门提供令牌给第一存储设备,以供访问第一存储设备各单元。在又一个实施例中,在将计数器解码为令牌从而访问第二存储设备时使用或不使用选通门,它可能转换为一个用于馈送给除法器、加法器、除法器或其他选通门功能而不是存储设备的值。
在一些实施例中,本发明还提供这样的技术优势,即将必须存于存储设备中的值的数量以及为访问第一存储设备所需令牌的大小减至最小。具体地,由于某些函数的三角函数特性,某些样本的某些系数将会具有零的算术值。由于三角函数决定于系数号和样本,能够预先确定这些实例。此外,因为这些实例的值是零,因此不必要在第一存储设备中为这些值提供存储器,从而减少存储设备的阵列大小以及为访问第一存储设备所需令牌的大小。
在该实施例中,该令牌还标示与相应的样本和系数相关联的算术函数的值是否为零。当接收到一个其三角函数和系数为零的样本时,与该样本和系数相关联的令牌将会标示这一点。以此方式,当系数发生器访问与该样本和系数相关联的令牌时,系数发生器将会观察该令牌并且通过将一个零值加至系数的先前值而更新该系数。
在某些实施例中,系数发生器还包括一个空设备,例如下拉电路。在此实施例中,如果令牌标示算术函数为零,则该空设备将第一存储设备的输出值替换为零值以便加至该系数上。
为进一步使存储器最小,在一个实施例中,该系数发生器只存储对应于相应的样本和相应的算术函数的幅值的组合的预先计算值,而不考虑到算术函数的符号。具体地,由于某些函数的周期特性,某些与相应的样本和系数相关联的算术函数具有相同幅值但不同符号。在本发明的此实施例中,只有每个值的幅值存于存储设备中。此外,该值的符号标示于令牌上。以此方式,各值所需存储器较少。
在本发明的一个实施例中,系数发生器还包括一个加法器,它具有与第一存储设备输出端的电气连接。如果该令牌标示算术函数为负,则加法器使用二进制补码表示由第一存储设备输出的算术函数的幅值的负值。
如以上详细地描述的,本发明通过将每个接收到的样本以及与该样本和系数相关联的算术函数加以组合来确定用于表示一个信号的函数系数。此外,如以上详细地描述的,可以将样本和系数的不同组合预先计算并且存于可寻址存储设备中。通常用于访问存储设备各单元的各令牌具有用于标示系数的各位和用于标示样本的各位。由于在正常运行中令牌和存储设备用于确定一个用于表示信号的函数系数,这些令牌和存储设备也可用于确定一个信号的逆函数的系数。具体地,在一个实施例中,系数发生器还包括一个选择器,它或与选通门、或与计数器、或与用于生成令牌以便访问第一存储设备的第二存储设备具有电气连接。如果希望有一个信号的逆函数的系数,则该选择器改变由令牌标示的地址以使令牌访问第一存储设备的一个单元,它包含一个表示信号的逆算术函数的预先计算值。
如以上详细地描述的,本发明通过将每个接收到的样本以及与该样本和系数相关联的算术函数加以组合来确定用于表示一个信号的函数系数。此外,如以上详细地描述的,可以将样本和系数的不同组合预先计算并且存于可寻址存储设备中或者由一个选通门功能参照与令牌相关联的值来进行计算。通常用于访问存储设备各单元的各令牌是从由用于标示系数和样本的计数器中获取的状态信息中取得的。由于在正常运行中令牌和存储设备用于确定一个用于表示信号的函数系数,这些令牌和存储设备也可通过将各位加至计数器的合适位置而重复地使用,从而为多个信道服务。在此实施例中,附加的系数存储单元保持附加系数,并且为了用户的方便而输出一个信道号。还可能利用一个电气信号来取得前向系数或确定输入的逆函数。
此外,由于在正常运行中令牌和存储设备用于确定一个用于表示信号的函数系数,这些令牌和存储设备也可通过将各位加至计数器的合适位置而重复地使用,从而为多个信道服务。在此实施例中,附加的系数存储单元保持附加系数,并且为了用户的方便而输出一个信道号。通过使连续的样本被作为不同信道对待,有可能产生交错变换。作为一个例子,该交错的变换可以送至第二个类似的过程以便产生双维变换。
在又一个实施例中,系数发生器自不同信道上的多个不同信号中接收样本。在此实施例中,系数发生器可以通过选择器提供表示一个信号的函数系数,而且还能提供另一个信号的逆函数系数。
如以上详细地描述的,本发明的系数发生器处理多个样本和根据这些样本生成各函数系数。在本发明的某些实施例中,在接收到多个样本之后,本发明的系数发生器输出所生成的系数、将系数复位,并且再次获取信号样本。然而,在某些实施例中,当每次接收到新样本并将它处理时,同时生成和输出一个完整的系数集可能是有利的。这称为滑动孔傅立叶变换(SAFT)。
在此实施例中,本发明的系数发生器在已经接收到多个样本中的最后样本和已经输出系数之后并不将每个系数复位至零。相反,本发明的系数发生器将先前多个样本中的第一样本替换为下一个接收到的样本。本发明的系数发生器使用此新样本来输出下一个系数集。以此方式,本发明的系数发生器每当接收到一个新样本时就生成一个系数集而不是为每一“批”样本生成一个系数集,从而每当接收到一个新样本时就提供新系数集。
本发明提供多个不同的系数发生器的实例,用于每当接收到新样本时生成一个系数集。在这些实施例中的每一个中,本发明的系数发生器使用下一个接收到的样本来替代先前多个样本中的第一样本,然后输出各新系数。例如,在一个实施例中,本发明的系数发生器当接收到多个样本时初始地存储接收到的每个样本,并且当接收到多个样本中的最后样本时生成第一个系数集。此外,当已经接收到预定多个样本之后接收到输入信号的一个新样本时,本发明的系数发生器将与系数相关联的算术函数应用于该样本并且根据新样本为每个系数生成一项。为将多个样本中的第一样本替代新样本,自与先前存于存储设备中的预定多个样本中的第一样本相关联的项中减去所生成的新样本的项。在减法之后,使用根据新样本和根据预定多个样本中的第一样本所得两项的差别将系数更新。
在本发明的另一个实施例中,为将多个样本中的第一样本替代新样本,系数发生器自每个系数中减去根据预定多个样本中的第一样本所得的项,然后将根据新样本所得的项加至每个系数中。
除为每个接收到的新样本输出系数之外,系数发生器还允许在一定时间内观察和跟踪系数子集的个别系数。具体地,如上所述,一个实施例的系数发生器为每个新样本输出系数。这向用户实时地或者近似实时地提供新系数集以供观察之用。
此外,如所讨论的,当接收到每个样本时,系数发生器更新函数的每个系数。由于个别地更新系数。它们更容易个别地用于观察。此外,因为每个系数是个别地更新的,对每个个别系数的更新次数可以变动。以此方式,在一个实施例中,系数发生器能够通过相对于其他系数而变动更新一个系数或者一个系数子集时所用样本数量而改变用于确定它们时所用的分辨率。
此外,本发明还可以提供用于减少必须存储以便表示函数的可能的算术项的值的数量的方法。具体地,如上所述,可以通过预先计算和存储与一个系统相关联的一部分或所有的值来保存用于完成计算的时间。然而通常希望把需要存储器的值的数量减至最小以便使用标准设备。
这些存储较少方法涉及生成函数的所有可能的算术项的第一表格。对于每个算术项,本方法将表格中的每个算术项与表格中的所有其他算术项进行比较以便确定哪些算术项是冗余的。此外,函数的唯一的算术项存于函数的所有唯一的算术项的第二表格中,以使第二表格中没有冗余的函数算术项。
在某些范例中,该函数至少是周期的或反相的以使函数的某些算术项具有相同幅值但不同符号。在此实施例中,该方法将表格中的每个算术项的幅值与表格中其他算术项中的每一项的幅值进行比较以便确定哪些算术项具有相同幅值。此外,具有唯一的幅值的算术项存于第二表格内。该方法还包括建立一个与每个算术项相关联的令牌,其中该令牌标示存于第二表格中的与算术项相关联的幅值和与算术项相关联的符号。
在某些范例中,至少一项算术项具有零幅值。在此实施例中,本方法产生一个与算术项相关联的令牌,用于标示该算术项为零以便不将该算术项存于第二表格中。
在某些范例中,函数用于表示一个信号并且由信号样本定义,其中信号的一个样本是有限数量的可能值中的一个。在这种情况下,本方法生成样本各可能值与函数的算术项的所有可能组合的第一表格。此外,将表格中的每个组合与表格中的所有其他组合系统地进行比较以便确定哪些组合是冗余的。根据此比较结果,将所有唯一的组合存于的第二表格中,以使第二表格中没有冗余的组合。


图1是一个根据本发明的一个实施例的使用选通设备根据输入信号的样本而确定用于表示输入信号的函数系数的设备的框图。
图2是一个根据本发明的一个实施例的根据输入信号的样本来确定用于表示输入信号的函数系数而完成的操作的框图。
图3是一个根据本发明的一个实施例的使用至少一个存储设备根据输入信号的样本而确定用于表示输入信号的函数系数的设备的框图。
图4是一个根据本发明的一个实施例的为减少必须存储以便表示一个函数的可能算术项的值的数量而完成的操作的框图。
图5是使用傅立叶变换确定的系数图表的图形表示。
图6是一个根据本发明的一个实施例的为建立一个令牌表格以使每个令牌表示一个函数的值而完成的操作的框图。
图7是一个根据本发明的一个实施例的为建立一个可寻址值的表格而完成的操作的框图。
图8是一个根据本发明的一个实施例的为根据各令牌从一个表格中检索各值而完成的操作的框图。
图9是一个根据本发明的一个实施例的使用存储设备和选通门根据输入信号的样本而确定用于表示输入信号的函数系数的设备的框图。
图10是一个根据本发明的一个实施例的使用存储设备和选通门根据输入信号的样本而确定用于表示输入信号的函数系数而完成的操作的框图。
图11是一个根据本发明的一个实施例的根据输入信号的多个样本而确定用于表示输入信号的函数系数的设备的框图。
图12是一个根据本发明的一个实施例的根据输入信号的多个样本为确定用于表示输入信号的函数系数而完成的操作的框图。
图13是一个根据本发明的一个实施例的使用存储设备和选通门根据输入信号的多个样本而确定用于表示输入信号的函数系数的设备的框图。
图14是一个根据本发明的一个实施例的使用存储设备和选通门根据输入信号的多个样本为确定用于表示输入信号的函数系数而完成的操作的框图。
图15是一个根据本发明的一个实施例的使用存储设备和选通门根据输入信号的多个样本而确定用于表示输入信号的函数系数的设备的框图,其中为每个接收到的样本输出一个系数集。
图16是一个根据本发明的一个实施例的使用存储设备和选通门根据输入信号的多个样本为确定用于表示输入信号的函数系数而完成的操作的框图,其中为每个接收到的样本输出一个系数集。
具体实施例方式
此后将参照附图更全面地描述本发明,附图中显示了本发明的优选实施例。整个说明中相同数字系指相同元素。
如上所述,已经开发了用于确定表示一个信号的函数系数的数据处理系统。然而因为许多这些系统是复杂的,并且直至接收到信号的所有样本后才计算系数,这些系统并不对信号提供即时分析。此外,因为这些传统系统是复杂的,不容易提供个别系数作为观察和跟踪之用。此外,这些系统不允许改变个别系数或所选系数子集的分辨率。
另一方面,本发明提供设备、方法和计算机程序产品,能够减少在确定用于表示信号的函数的系数中的等待时间。具体地,本发明的设备、方法和计算机程序产品利用样本的独立性,在接收到最后样本之前至少更新一个系数,从而减少在确定系数中的等待时间。
此外,在另一个实施例中,本发明的设备、方法和计算机程序产品在接收到信号的每个样本时将每个函数系数更新。以此方式,当接收到最后样本时,本发明的设备、方法和计算机程序产品只需在输出系数之前使用最后样本的贡献来更新每个系数。由此,减少了从最后样本到达时到系数可供使用时的等待时间。
为进一步减少等待时间,在一个实施例中,本发明的设备、方法和计算机程序产品预先存储样本对每个系数的贡献的可能值的全部或一部分。以此方式,当接收到样本尤其是最后样本时,本发明的设备、方法和计算机程序产品估计样本值并且从预先存储的值中检索对应于该系数、样本和样本值的合适值,从而减少确定系数中所需时间。更进一步,在另一个实施例中,本发明的设备、方法和计算机程序产品同时地更新每个系数。以此方式,当接收到最后样本时,使用最后样本的贡献来同时地更新系数,并且输出所有系数。
本发明的设备、方法和计算机程序产品还允许观察个别系数或系数子集,以及还允许使用变动的分辨率来确定个别系数或系数子集。具体地,如上所述,本发明的设备、方法和计算机程序产品当接收到每个样本时更新每个系数。以此方式,当需要时每个样本可用于输出。此外,因为本发明的设备、方法和计算机程序产品独立于其他系数地更新每个系数,由此可以用不同分辨率更新每个系数。例如,可以使用每个样本来更新一个感兴趣的系数,而只是每次隔三个样本来更新另一个系数。
本发明的设备、方法和计算机程序产品还可以减少为实施处理系统所需硬件的数量和大小。具体地,如前所述,当接收到一个样本时,本发明的设备、方法和计算机程序产品立即使用样本的贡献来更新每个系数。由于样本是彼此独立的,在已经使用该样本的贡献来更新系数之后已不再需要它,以此方式,可以删去该样本。通过在使用后删去样本,处理系统不需要用于存储样本的附加存储设备或者用于检索数据的附加处理。
本发明还提供方法和计算机程序产品,用于减少必须存储以便表示函数的可能的算术项的值的数量。具体地,本发明实施例的方法和计算机程序产品将函数的可能算术项与其他算术项进行比较。根据此比较结果,该方法和计算机程序产品减少应该存储的值的数量。例如,在一个实施例中,算术函数可能是周期性的,以致函数的不同值具有相同幅值但不同符号。在此实例中,本发明的方法和计算机程序产品只存储各项幅值并且使用一个令牌来表示符号。在另一个实施例中,函数的各值可能是零(即cos(π/2)和sinπ=0)。在此实施例中,本方法和计算机程序产品不存储零值,而是使用一个表示零值的令牌。
为阐述目的,下面结合傅立叶级数的特性阐述和说明本发明的不同设备、方法和计算机程序产品。然而,显然本发明的设备、方法和计算机程序产品能够使用许多不同类型的函数。例如,本设备、方法和计算机程序产品能够使用例如贝塞耳函数、勒让德多项式、第一类和第二类契贝谢夫多项式、雅可比多项式、一般拉盖尔多项式、埃尔米特多项式、伯努利多项式、欧拉多项式,以及在量子力学、线性分析函数、小波和不规则碎片形中使用的不同矩阵。这个清单根本不是全部内容,而只是提供用作例子。本方案可以应用于任何可以表示为值的序列的函数。没有列出的这些和其他函数的可用性是非常普通的。本方法提供条件来开发以常规方式进行平行计算和删去冗余的设备和各方法,这与机器执行是兼容的。本发明的一个实施例将是一个通用计算机程序,用于检查每一类问题以及编写最小执行程序或者设计相同功能的设备。在此应用中,它将是编程助手。
如参照附录1所讨论的,本发明的一个重要概念是用于确定函数系数的样本的独立性。样本的独立性能够阐述于傅立叶变换的上下文中。傅立叶变换以正交性原理为依据。由于傅立叶变换应用于DFT中,它提供一种手段来完全独立地估计信号的每个频率分量的幅值。计算中所用频率是基频的连续整倍数。基频是用于获取一组样本所需时间周期。信号的样本乘以一组正交函数的每个成员,然后在基频的一个或多个周期内相加。每个所得系数是一个测试频率的实部或虚部的幅值。重要的是,一个系数的计算是独立于其他系数的计算的。在一组由DFT变换的N个样本中,每个样本根据可应用角度的正弦或余弦值和规格化常数对函数的每个系数作出贡献。离散傅立叶变换的一般方程提供如下n:=0,1..∞an:=1L·∫-LLf(x)·cos(n·π·xL)dx]]>n:=1,2..∞bn:=1L·∫-LLf(x)·sin(n·π·xL)dx]]>f(x):a02+[Σn=-∞∞(an·cos(n·π·xL)+bn·sin(n·π·xL))]]]>参照附录1,阐述了使用常规DFT确定函数系数的过程。初始地,DFT接收一个信号的一组预定的样本(此例中N=8)。然后DFT计算所有系数,(A0、A1、A2、A3、A4、B1、B2、B3和B4),每次计算一个。每次在计算系数时使用每个样本的值。每个样本乘以与每个系数相关联的独立变量的正弦和余弦两者,再乘以一个规格化速率。例如,系数A1是A11+A12+...+A18的和,这是每个样本对与A1系数相关联的余弦函数的应用。由于每个样本通过加法与每个系数相关,每个样本独立于其他样本,并且能够在接收其他样本之前用于更新系数。
考虑到样本的这个独立性,本发明的设备、方法和计算机程序产品如附录2所示地重新安排各项,以便在接收到信号的每个样本时更新每个系数。这与附录1的常规方法不同,前者是批处理方法,它在计算系数之前要等待接收完所有样本。如以上所述和以下将详细地描述的,当接收到每个样本时通过更新每个系数,本发明的设备、方法和计算机程序产品能够在生成系数中减少等待时间,允许跟踪或观察个别系数,以及使用不同分辨率确定系数。
现在参照图1,其中显示根据附录2中阐述的方法的根据输入信号的样本而确定用于表示输入信号的函数系数的一个实施例。本发明的此实施例的设备包括一个系数发生器10。系数发生器包括一个接收器12,用于接收输入信号的样本,系数发生器还包括一个与接收器进行电气通信的第一选通门14,以及一个与第一选通门进行电气通信的第二选通门16。
参照图2和附录2,其中阐述系数发生器的操作。在此阐述中,系数发生器根据信号的N=8个样本而生成系数。对于每个样本,接收器接收信号的一个样本,并且输入该样本至第一选通门12中。(见步骤100)。对于每个系数,第二选通门接收两个值,一个值18表示系数号及另一个值20表示样本号。根据系数号和样本号,第二选通门生成信号的正交函数部分。(见步骤110)。
例如,如附录2中所示,对于第零个系数A0,将样本值加至系数中,(即A0+A01)。对于第一样本和系数A11,正交函数为cos(2πCnSn/N)其中Cn=系数号;Sn=样本号;及N=样本数量。
为计算第一系数和第一样本的项,第二选通门接收系数号18和样本号20。根据这些,对于第一样本Sn和第一系数Cn,第二选通门生成cos(2π·1·1/8)或cos(2π/8)并且输出此值至第一选通门。(见步骤110)。
接下来第一选通门又自第二选通门接收该值和自接收器接收样本值。根据这些值,第一选通门生成用于表示样本对系数的贡献的一项(即S1cos(2π/8))。(见步骤120)。此项然后加至系数A1中,(即A1+A11)。(见步骤130)。为每个系数重复这些步骤。(见步骤140和150)。
以上的讨论阐述了每次使用每个样本来更新每个系数。然而,必须理解,系数发生器只能在接收到最后系数之前更新系数中的一个,因而减少确定系数时的等待时间。此外,必须理解,系数发生器能够同时使用每个样本更新所有系数。例如,系数发生器能够包含全都连至接收器的多个第一和第二选通门。在此实施例中,同时将样本提供给每组选通门,而每组选通门又同时为每个系数生成一项,用于表示样本对每个系数的贡献,还同时更新每个系数。这称为平行性,并且由于它允许同时更新所有系数,它是有利的。平行性是系数发生器的典型用途。具体地,系数发生器通常实施为同时更新所有系数。此外,在某些实施例中,系数发生器配置为自数个信道接收输入,其中系数发生器为每个信道生成一组系数。然而,在下面的许多实施例中,为清晰起见,将系数发生器阐述为顺序地更新每个系数并且只有一个信道。
图1阐述根据选通门例如乘法器、加法器、除法器或其他选通门功能的使用来确定系数。图3阐述使用至少一个存储设备来确定系数。当可以将必须计算以便确定系数的许多值预先存于存储设备中时,使用存储设备可能比使用选通门有利。这还能节省确定系数时的时间。
参照图3,此实施例的系数发生器包括一个接收器12,用于接收信号样本。系数发生器还包括一个与接收器进行电气通信的第一存储设备22,以及一个与第一存储设备进行电气通信的第二存储设备24。在本发明的一个实施例中,第二存储设备包括一个单元阵列,其中每个单元包含一个用于为每个样本和系数表示信号的正交函数部分的预先计算值。例如,第二存储设备包括一个用于表示第一样本和系数的信号正交函数部分的单元,等于cos(2πCnSn/N)或cos(2π/8)。在此实施例中,第一存储设备可以是一个乘法器、
参照图2和附录2,在此实施例的操作中,对于每个样本,接收器接收一个信号样本并且将该样本输入至第一存储设备22中。(见步骤100)。对于每个系数,第二存储设备接收一个用于为样本和系数表示包含信号的正交函数部分的单元的地址的令牌。此令牌由输入18和20提供,其中令牌的一部分是系数号Cn,而其他部分是样本号Sn。根据该令牌,第二存储设备检索与系数和样本相关联的值并且将该值输出至第一存储设备。(见步骤110)。第一存储设备又自第二存储设备中接收该值以及自接收器接收样本值。根据这些值,第一存储设备生成一个用于表示样本对系数的贡献的项,(即第一样本和系数的S1cos(2π/8))。(见步骤120)。然后将该项加至系数中,(即A1+A11)。(见步骤130)。为每个系数重复这些步骤。(见步骤140和150)。
在本发明的某些实施例中,自接收器接收到的样本是一系列有限值中的一个。由于预先知道每个样本和系数的正交函数部分,(即cos(2πCnSn/N)),以及该样本只能是有限数量的值中的一个,可以预先计算和预先存储用于表示每个样本值、样本号和系数号的各值。以此方式,当接收到一个样本时,可以根据样本值、样本号和系数号在存储设备中寻找该值而确定样本对每个系数的贡献的项。
考虑到这点,在又一个实施例中,第一存储设备是一个包含一个单元阵列的存储设备。第一存储设备的每个单元包括一个用于表示每个样本值、样本号和系数号的预先计算值。对于每个系数和样本,该存储设备包含一组单元,其中每个单元具有与该系数和样本相关联的正交函数并且乘以样本的可能值。例如,对于第一样本和系数,存在一组具有S1cos(2π/8)值的单元,其中每个单元表示S1的不同可能值的值。附加地,第二存储设备具有一个单元阵列,其中每个单元具有一个用于表示每个样本和系数的正交函数部分的令牌。
参照图2,在运行中,对于每个样本,接收器接收一个样本并且将该样本输入至第一存储设备22中。(见步骤100)。对于每个系数,第二存储设备自输入18和20接收各个用于表示单元地址的值,该单元包含用于表示样本和系数的信号正交函数部分的令牌。第二存储设备检索与系数和样本相关联的令牌,并且输出令牌至第一存储设备。(见步骤110)。第一存储设备又自第二存储设备接收该令牌和自接收器接收样本值。根据该令牌和样本值,第一存储设备在阵列中寻找对应于这些值的单元,并且输出用于表示样本对系数的贡献的项,(即第一样本和系数的S1cos(2π/8))(见步骤120)。然后将此项加至系数中,(即A1+A11)。(见步骤130)。为每个系数重复这些步骤。(见步骤140和150)。
再次,必须理解,此实施例的设备可能以平行配置操作,即为每个系数提供多个全部连至接收器的第一和第二存储设备而同时更新每个系数。在此实施例中,每个第一和第二存储设备同时接收样本以及合适地被访问以使第一和第二存储设备中的每一组能访问不同系数的值。由此,样本对每个系数的贡献是平行地和同时地确定的。
参照图3,在一个附加实施例中,系数发生器可能包括一个与第二存储设备24进行电气通信的计数器26。该计数器可由一个时钟将其增量(未示出),该时钟定时为允许进行计算。该计数器可以包括两个输出18和20,它们表示用于访问第二存储设备的系数号和样本号。在运行中,对于每个样本,将样本号保持不变,而在时钟的每个周期或多个周期内由计数器将系数号增量。而这又访问第二存储设备以便确定样本对每个系数的贡献。此后,已经为该样本计算了所有系数,并且将系数号复位以便现在为每个系数对下一个样本进行估计。
如上面详细地讨论的,为减少用于计算的时间,本发明的一个实施例将存储设备用于存储预先计算值和令牌以便访问存储设备。许多电子设计中很关心的事是希望使操作电路所需部件数最少以及需要在任何可能的地方都使用现成的部件。考虑到这点,本发明可以使用使部件数量最少以及允许使用标准部件的方法。
该方法参照图4加以阐述,以及图3中显示一种用于减少必须存于系数发生器的存储设备中的值的数量的方法的例子。
参照图4,用于减少所要求存储值的数量的方法包括首先建立一个空表格,(见步骤200),以及将函数的所有可能算术项存于矩阵内。(见步骤210)。例如,在许多算术函数例如傅立叶级数中,一个值的特定阵列必须乘以一组数据。如果这些数据是N位二进制数以及阵列中有M个数,则可能形成的可能乘积的数量是2的N乘以M方,(2N×M)。例如,如果一个傅立叶级数根据64个样本来生成64个系数,则将有4096个三角函数需要估计和乘以样本。如果这些样本每个是12位长,则有4906个可能样本值。为所有4096个可能样本值预先计算和存储每个可能样本值与三角函数值的乘积,将会需要16,777,216个存储的乘积,这将要求一个相当大的存储设备。
参照图4,为减少存储值的数量,该方法将所有可能值放置于一个矩阵中,(见步骤210),并且系统地将表格中的每个算术项与表格中的所有其他算术项进行比较,以便确定哪些算术项是冗余的。(见步骤220和240)。如果值是唯一的,则将它存于生成的表格中。(见步骤250)。为所有值重复这些步骤,(见步骤260),并且输出值的总数量,(见步骤270)。
例如,对于傅立叶级数,由于正弦和余弦的特性,只有32个不同实际值需要存储。这个分析以傅立叶变换中通常使用的正弦和余弦函数的估计为根据。具体地,图5阐述两个图形表示,画出使用64个样本和64个系数的傅立叶变换的系数的4096个正弦和余弦的估计。这些图形表示阐明只有值的有限集合。此分析以以下事实为根据每个值与一个极性相关,正或负。如果各值的正或负由令牌规定,则函数绝对值就是全部需要存储的值。以此方式,对存储器的要求能够从256K减至128K。
如果用于表示样本值的输入样本值代码具有符号形式,(即正或负),为零值,则12位输入中有一个符号位和11位的绝对值。11位的数时只要求存储12位的数时的一半存储位置。以此方式,能够通过将12位值变换为11位值和1位符号而将存储器的大小减少至64K,而该符号位则用某些能够类似地支持令牌的逻辑电路进行处理。
如上所述,有32个不同值,这要求32个必须存储的不同令牌。如果令牌数量能够减至16,则将有16个值乘以2048个可能样本值,这是32K。这可通过观察到一个值为零和与它相关联的4096个值都成为零而完成。相反,在为零值提供的令牌中,令牌本身能够包含一个专用于零的位,以此方式,可以使用一组16个令牌,其中4位是地址,一个符号位用于表示值的符号,以及一个零位用于表示何时该值为零。
如上所述,本发明的方法能够用于减少必须存储的值的数量。这又允许使用最少的和标准的硬件。例如,在以上例子中,使用12位样本代码来获取信号的64个样本,用于存储所有预先计算值的第一存储设备能够减至128K存储器,以及用于存储令牌的第二存储器能够减至8K存储器。
虽然用于减少存储值数量的方法是在具有规定数量的样本和样本位大小的傅立叶级数的上下文中阐述的,但应该理解,该可以使用任何函数、预定的样本数量和/或样本位大小。
在已经确定存储值数量之后,应该使用存于第二存储设备中的令牌来访问这些值。参照图6,为建立存储器的地址/令牌,该方法初始地将一个地址应用于一个值,(见步骤300和310)。然后选择一个与该地址相关的令牌。(见步骤320)。该方法然后查看是否已经访问过所有值。(见步骤330)。如果没有,则该方法以任何顺序将地址增量,(见步骤340)。一旦已经访问所有值,则将它们装载入存储器内。(见步骤350)。类似地,一旦知道令牌的一组值,普通做法是寻找加法器或其他选通门的安排,以便使用对每个地址的响应来替代表格,以及节省半导体数量或者采取在实施技术中最有意义的措施。这称为选通门功能而不是表格。
参照图7,除建立和存储令牌之外,也应该将预先计算的值装载入第一存储设备中。具体地,对于每个可能样本值,该方法获取一个第一令牌并且将令牌值和样本的可能值应用于函数以便为该样本值建立一个函数的预先计算值,(见步骤400和410)。该预先计算值然后存于存储器内。(见步骤420)。本方法接着查看是否已经访问过所有值。(见步骤430)。如果没有,则本方法以任何顺序将地址增量,(见步骤440)。一旦已经访问所有值,则将它们装载入存储器内。(见步骤450)。类似地,一旦知道令牌的一组值,普通做法是寻找乘法器或其他选通门的安排,以便使用对每个地址的响应来替代表格,以及节省半导体数量或者采取在实施技术中最有意义的措施。这称为选通门功能而不是表格。
如上所述,图3阐述存储设备和令牌的使用以便确定函数系数。然而图8阐述图4和图6-7中所开发的存储设备和令牌的更一般的用途。具体地,为使用存储设备和令牌来确定一个值,将用于表示所需令牌的地址应用于第二存储设备,(见步骤500),以及检索该令牌。(见步骤510)。然后将该令牌与样本值一起应用于第一存储设备以便建立用于访问第一存储设备的地址。(见步骤520和530)。如果该令牌包括一个已经设置的符号位或零位,则将第一存储设备中与令牌相关联的值合适地改变。(见步骤540)。最后将该值输出。(见步骤550)。
如上所述,可以删去冗余值、只存储各值的幅值以及使用令牌位来标志等于零的值或值的符号,从而减少为计算函数系数必须存储的值的数量。图9提供一个阐述性实施例,使用第一存储设备和第二存储设备以及带符号的输入值来确定函数系数,其中第一存储设备具有最少数量的存储值,第二存储设备具有的令牌包括用于标示符号和零值和一个带符号的值的各位。如同先前的实施例,此实施例的系数发生器10包括第一和第二存储设备22和24。这两个存储设备都包括用于存储各值的单元阵列。第二存储设备包括用于表示系数号和样本号的令牌,以及第一存储设备包括每个样本的所有可能唯一值与每个样本和系数的正交函数部分的组合。例如,对于第一样本S1和第二系数C1,存于第二存储设备中的令牌规定样本号和系数号S1和C1。存于第一存储设备中的是一系列单元,它们中每一个具有一个由方程S1cos(2πCnSn/N)或S1cos(2π/8)定义的值,每个单元存储样本S1的可能值对方程的应用。
另外,此实施例的系数发生器还包括一个与接收器12、第二存储设备的输出端和第一存储设备的一个输入端进行电气通信的第一AND门28。系数发生器还包括一个连至第一AND门28的输出端的第二AND门30和一个XOR门32。连至第二AND门30输出端的是一个加法器36,它通常实施为采取信号的二进制补码。XOR门32与第二存储设备的输出端和一个门组合40进行电气通信,门组合40将在稍后讨论。此实施例的系数发生器还包括一个与第一存储设备的输出端进行电气通信的空设备或下拉电路34。
重要的是,为减少必须存储的值的数量,由接收器接收的样本具有12位代码,其中这些位之中的一位是符号位。如上所述,通过将样本的位表示内容减少至11位同时将一位用于符号,可以节省存储空间。为此目的,在某些实施例中,系数发生器还包括一个与接收器12进行电气通信的代码转换器38。如果由接收器输出的样本不是合适的12位格式,则代码转换器将该样本转换为其中11位表示该值及一位表示符号的12位。
此实施例的系数发生器还使用一个存于第二存储设备中的6位令牌,用于访问存于第一存储设备中的各值。重要的是,为减少必须存储的值的数量,各位中一位表示数的符号及一位表示该值是否为零。当令牌的符号位标示负值时,令牌与第二AND门30和加法器36一起操作以便获取第一存储设备输出中的负值。此外,如果令牌标示该值应该为零,则空设备或下拉设备34、令牌的零位以及AND门28一起操作以便使第一存储设备的输出成为零。
参照图10,在此实施例的操作中,对于每个样本。接收器接收一个信号样本并且将该样本输入至第一存储设备22中。(见步骤600)。对于每个系数,输入18和20被提供给第二存储设备,用于表示样本号和系数号。(见步骤610)。根据输入,第二存储设备输出一个令牌,它具有4位用于标示样本号和系数号、一位标示该值是否为负、以及一位标示该值是否为零。(见步骤620)。第一存储设备又自第二存储设备中接收该令牌及自接收器中接收样本值。根据这些值,第一存储设备生成一个表示样本对系数的贡献的项,(即第一样本和系数的S1cos(2π/8))。(见步骤630)。
另外,样本的符号位和令牌的符号位的输出都提供给第二AND门30。如果或者信号的符号为负或者令牌的符号位已设置,则第二AND门输出一个进位位至加法器36中。加法器将使第一存储设备的输出变负。(见步骤640和650)。
类似地,令牌和信号两者都提供给第一AND门28。如果或者信号或者令牌标示一个零值,则由第一AND门28输出一个零值。该零值被送至第二AND门30,以便禁止第二AND门30将信号变负。此外,将一个零值输出至第一存储设备,以便禁止第一存储设备工作。由于禁止第一存储设备工作,该空设备或下拉设备34输出一个表示系数值的零值。(见步骤660和670)。然后输出该系数的项。(见步骤680)。
如图9中阐述的,在一个实施例中,系数发生器还包括一个与第二存储设备电气通信的计数器26。该计数器可以由一个时钟增量(未示出),该时钟被定时以便进行计算。该计数器可以包括两个输出18和20,它们表示用于访问第二存储设备的系数号和样本号。在运行中,对于每个样本,将样本号保持不变,而在时钟的每个周期或多个周期内,计数器将系数号增量。而这又访问第二存储设备以便确定样本对每个系数的贡献。在已经为该样本计算过所有系数后,将计数器的样本号增量,以及将系数号复位,以便现在为每个系数估计下一个样本。
此外,也是重要的,图9还阐述本发明的另一方面,如上所述,本发明的设备、方法和计算机程序产品根据输入信号的多个样本来确定用于表示一个输入信号的函数的系数。然而,本设备、方法和计算机程序产品也能确定用于表示信号的逆函数的系数。例如,许多数据处理系统配备为用于既完成信号的DFT和又完成逆DFT。
逆DFT主要地在反演的意义上完成DFT。由于第一存储设备包括DFT的所有可能值,可以只访问第一存储设备中对应于逆DFT各值的值来确定逆DFT。参照图9,为实施一个逆DFT,系数发生器还包括一个具有XOR和NOT门的第三选通门40。第三选通门具有连至12位信号的符号位的输入以及一个用于表示何时完成逆函数44的输入。第三选通门的输出连同第二存储设备的输出一起连至XOR门32。此外,系数发生器还包括一个与输入18和20和第二存储设备进行电气通信的选择器或交叉开关42。该交叉开关也连至用于标示是否完成逆函数的输入44。
在运行中,逆函数(例如逆DFT)的操作类似于用于确定函数的操作(例如DFT),如图10中所讨论的。其不同点只是选择器或交叉开关将地址输入线切换至第一存储设备。具体地,如果需要信号的逆函数的系数,则该选择器将由令牌标示的地址加以改变以使该令牌访问第一存储设备中包含一个用于表示信号逆算术函数的预先计算值的一个单元。此外,第三选通门40与第二AND门30一起操作以便当或者算术函数或者输入信号为负时使信号变负,以此方式,本发明的设备、方法和计算机程序产品能够使用相同部件和所存值来确定函数或逆函数,只需将为完成逆函数而访问的各值进行切换即可。
如上所述,本发明的设备、方法和计算机程序产品通过当接收到每个样本时将每个系数更新来确定用于表示信号的函数系数。图1、3和9阐述一个样本的系数的更新。如以下所讨论的,图11阐述根据多个样本来确定系数,具体地阐述为每个接收到的样本来更新每个系数。
类似于先前的实施例,此实施例的系数发生器10包括第一和第二存储设备22和24。这两个存储设备都包括用于存储各值的单元阵列。第二存储设备包括用于表示系数号和样本号的令牌,以及第一存储设备包括每个样本的所有可能唯一值与每个样本和系数的正交函数部分的组合。虽然任何系统和设备都可用于访问第二存储设备,但本实施例阐述一个用于访问第二存储设备的计数器26。
此实施例的系数发生器还包括一个与第一存储设备的输出进行电气通信的加法器44。连至加法器44的是一个交叉开关46和一个第三存储设备48。系数发生器还包括一个与交叉开关、AND门52和54进行电气通信的连至计数器输出的空设备或下拉电路50。
参照图11,在此实施例的运行中,对于每个样本,接收器接收一个信号样本以及输入该样本值至第一存储设备22中。(见步骤700)。对于每个系数,将输入18和20自计数器提供给第二存储设备,用于表示样本号和系数号。(见步骤710)。根据这些输入,第二存储设备输出一个令牌。(见步骤720)。第一存储设备又自第二存储设备接收该令牌以及自计数器接收样本值。根据这些值,第一存储设备生成一个表示样本对系数的贡献的一项。(见步骤730)。接着将该项提供给加法器44,它还自第三存储设备48接收系数的先前值。第三存储设备也连至第二存储设备。来自第二存储设备的令牌访问存于第三存储设备中的系数,然后它被输出至加法器以便增加该项。由加法器将该项加至现有系数上。(见步骤740)。
此后,将系数更新,接着系数发生器判断是否已经处理过最后样本。(见步骤750)。具体地,AND门52连至计数器用于规定样本号的六个最高有效位。如果样本号是该组的最后样本号,(在此情况下是第64个样本),则计数器的六个最高有效位都是1。当所有1都输入至AND门52中时,AND门输出一个一,用于标示已经接收到最后样本。
如果尚未接收到最后样本,则交叉开关46将更新的系数自加法器44引向第三存储设备48,在其中存储更新的系数。(见步骤760)。空设备或下拉设备50也在输出端上输出一个零,用于标示尚未计算的系数。
另一方面,如果已经接收到最后样本,则交叉开关46将更新的系数自加法器44引向输出端。(见步骤770)。此外,空设备或下拉设备50由交叉开关引向零或者将存于第三存储设备中的值复位为零。此外,AND门54标示系数值输出是一个有效值而不是零。
为每个系数重复以上步骤,直至已经更新该样本的所有系数。(见步骤780和790)。此外,为每个样本重复该过程,直至接收到所有样本并且更新了每个系数,(见步骤795)。
图11还阐述本发明的另一方面。具体地,在一个实施例中,本发明的系数发生器连至多个信号信道,以使系数发生器为用于表示位于每条信道上的信号的函数确定系数。在此实施例中,计数器也输出一个用于标示信道的计数值,该信道是系数发生器当今正在处理信号的信道。在线56和58上输出信道号和系数号。系数发生器的操作类似于先前的各实施例。具体地,系数发生器首先连至第一信道,其中它接收一个样本并且更新与第一信道相关联的系数。系数发生器连至每个信道并且接收一个样本以及更新该信道上与信号相关联的系数。重复这些步骤,直至已经接收到所有信道的所有样本以及已经更新每个信道上信号的系数。在另一个实施例中,系数发生器可以在切换至下一个信道之前接收和处理一个信道的所有样本。
如上所述,有时候删除冗余值、只存储各值的幅值以及使用令牌来规定符号或标示该值是否为零,从而减少必须存储的数据量是有利的。以此方式,图13阐述用于减少必须存储的值的数量的图11的系数发生器再加上选通门。具体地,类似于先前的实施例,此实施例的系数发生器10包括第一和第二存储设备22和24。这两个存储设备都包括用于存储各值的单元阵列。第二存储设备包括用于表示系数号和样本号的令牌,以及第一存储设备包括每个样本的所有可能唯一值与每个样本和系数的正交函数部分的组合。虽然任何系统和设备都可用于访问第二存储设备,但本实施例阐述一个用于访问第二存储设备的计数器26。
此实施例的系数发生器还包括一个与第一存储设备的输出进行电气通信的加法器44。连至加法器44的是一个交叉开关或选择器46和第三存储设备48。系数发生器还包括一个与交叉开关、NAND门52和AND门54进行电气通信的连至计数器输出的空设备或下拉电路50。
另外,此实施例的系数发生器还包括一个第一AND门28、一个第二AND门30和一个XOR门32。连至第二AND门30的输出的是一个加法器36,它通常实施为采取信号的二进制补码。XOR门32与第二存储设备的输出和一个门组合40进行电气通信。此实施例的系数发生器还包括一个与第一存储设备的输出进行电气通信的空设备或下拉电路34。
系数发生器还包括一个与接收器12进行电气通信的代码转换器38,如果需要,则代码转换器将输入信号转换为其中11位表示该值及一位表示符号的12位。此实施例的系数发生器还使用一个存于第二存储设备中的6位令牌,用于访问存于第一存储设备中的各值。如同先前的实施例,当令牌的符号位标示负值时,令牌与第二AND门30和加法器36一起操作以便获取第一存储设备输出中的负值。此外,如果令牌标示该值应该为零,则空设备或下拉设备34、令牌的零位一起操作以便使第一存储设备的输出成为零。
还有,系数发生器包括一个用于锁存输入信号的第一锁存器60和用于锁存输出系数值的第二锁存器62。系数发生器还包括一个输入44和门组合40,用于使用系数发生器来确定信号的逆函数的系数。此外,系数发生器包括复位设备64,用于将存储器复位以及输出系数号和信道号56和58。
参照图14,在此实施例的运行中,对于每个样本,接收器接收一个信号样本并且输入该样本至第一存储设备22中。(见步骤800)。对于每个系数,将输入18和20提供给第二存储设备,用于表示样本号和系数号。(见步骤810)。根据这些输入,第二存储设备输出一个令牌,其中4位表示样本号和系数号,1位表示该值是否为负,以及1位表示该值是否为零。(见步骤820)。第一存储设备又自第二存储设备接收该令牌以及自计数器接收样本值。根据这些值,第一存储设备生成用于表示样本对系数的贡献的一项。(见步骤830)。
附加地,将样本的符号位和令牌符号位的输出提供给第二AND门30。如果或者信号符号为负或者已经设置令牌的符号位,则第二AND门输出一个进位位至加法器36。加法器将使第一存储设备的输出变负。(见步骤840和850)。
类似地,将令牌和信号两者都提供给第一AND门28。如果信号或令牌标示一个零值,则将由第一AND门28输出一个零值。该零值送至第二AND门,以便禁止第二AND门30使信号变负。此外,将零值输出至第一存储设备,以便禁止第一存储设备工作。由于禁止第一存储设备工作,空或下拉设备34输出一个用于表示系数值的零值。(见步骤860和870)。然后输出该系数项。
接着将该项提供给加法器44,它还自第三存储设备48中接收系数的先前值。第三存储设备也连至第二存储设备。来自第二存储设备的令牌访问存于第三存储设备中的系数,然后它被输出至加法器以便增加至该项。由加法器将该项加至现有系数上。(见步骤880)。
此后将系数更新,接着系数发生器判断是否已经处理过最后样本。(见步骤900)。具体地,AND门52连至计数器用于规定样本号的六个最高有效位。如果样本号是该组的最后样本号,(在此情况下是第64个样本),则计数器的六个最高有效位都是1。当所有1都输入至AND门52中时,AND门输出一个一,用于标示已经接收到最后样本。
如果尚未接收到最后样本,则交叉开关或选择器46将更新的系数自加法器44引向第三存储设备48,在其中存储更新的系数。(见步骤900)。空设备或下拉设备50也在输出端上输出一个零,用于标示尚未计算的系数。
另一方面,如果已经接收到最后样本,则交叉开关46将更新的系数自加法器44引向输出端。(见步骤910)。此外,空设备或下拉设备50由交叉开关引向零或者将存于第三存储设备中的值复位为零。此外,AND门54标示系数值输出是一个有效值而不是零。
为每个系数重复以上步骤,直至已经更新该样本的所有系数。(见步骤920和930)。此外,为每个样本重复该过程,直至接收到所有样本并且更新了每个系数,(见步骤940)。
附加地,第一和第二锁存器60和62与计数器同步以便根据时钟周期输出系数和接收新样本。此外,复位设备64将存储器复位。
如上所述,本发明的设备、方法和计算机程序产品处理多个样本和根据这些样本生成各函数系数。在本发明的某些实施例中,在接收到多个样本之后,本发明的设备、方法和计算机程序产品输出所生成的系数、将系数复位,并且再次获取信号样本。然而,在某些实施例中,当每次接收到新样本并将它处理时,同时生成和输出一个完整的系数集可能是有利的。这称为滑动孔傅立叶变换(SAFT)。
在此实施例中,本发明的设备、方法和计算机程序产品在已经接收到多个样本中的最后样本和已经输出系数之后并不将每个系数复位至零。相反,本发明的设备、方法和计算机程序产品将先前多个样本中的第一样本替换为下一个接收到的样本。本发明的设备、方法和计算机程序产品使用此新样本输出下一个系数集。以此方式,本发明的设备、方法和计算机程序产品每当接收到一个新样本时就生成一个系数集而不是为每一“批”样本生成一个系数集,从而每当接收到一个新样本时就提供新系数集。
本发明提供数个设备、方法和计算机程序产品,用于每当接收到新样本时生成一个系数集。在这些实施例中的每一个中,本发明的设备、方法和计算机程序产品使用下一个接收到的样本的贡献来替代先前多个样本中的第一样本的贡献,然后输出各新系数。例如,在一个实施例中,本发明的设备、方法和计算机程序产品当接收到样本时初始地存储它们中的每一个,并且当接收到多个样本中的最后样本时生成第一个系数集。此外,当已经接收到预定多个样本之后又接收到输入信号的一个新样本时,本发明的设备、方法和计算机程序产品将与系数相关联的算术函数应用于该样本并且根据新样本为每个系数各生成一项。为将多个样本中的第一样本替代新样本,自与先前存于存储设备中的预定多个样本中的第一样本相关联的项中减去所生成的新样本的项。在减法之后,根据新样本和根据预定多个样本中的第一样本所得的两项而使用两项的差别将系数更新。
在本发明的另一个实施例中,为将多个样本中的第一样本替代新样本,本发明的设备、方法和计算机程序产品自每个系数中减去根据预定多个样本中的第一样本所得的项,然后将根据新样本所得的项加至每个系数中。以此方式,在一个实施例中,新的和最旧的样本的项首先彼此相减,并且将余数加至系数中,而在另一个实施例中,将与最旧样本相关联的项自每个系数中减去,然后将与新样本相关联的项加至系数中。这第二实施例通常较少经受漂移不定的计算,它阐述于图15中。
具体地,图15的系数发生器10包括阐述和说明于图13中的系数发生器的所有部件。然而,图15的系数发生器还包括一个与第三存储设备48进行电气通信的第四存储设备66,用于存储与多个样本中的每个样本相关联的各项。系数发生器还包括一个与第三和第四存储设备进行电气通信的加法器68,用于自与接收到的新样本相关联的项中减去与先前多个样本中的第一样本相关联的项。
参照图16,在此实施例的操作中,类似于先前实施例,对于每个样本,接收器接收一个信号样本以及输入该样本至第一存储设备22中。(见步骤1000)。对于每个系数,将输入18和20提供给第二存储设备,用于表示样本号和系数号。(见步骤1010)。根据这些输入,第二存储设备输出一个令牌。(见步骤1020)。根据令牌和样本,第一存储设备生成一个表示样本对系数的贡献的项。(见步骤1030)。
如果或者信号的符号为负或者令牌的符号位已设置,则第二AND门输出一个进位位至加法器36中。加法器将使第一存储设备的输出变负。(见步骤1040和1050)。类似地,如果或者信号或者令牌标示一个零值,则由第一AND门28输出一个零值。该零值被输出至第一存储设备,用于禁止第一存储设备工作。由于禁止第一存储设备工作,空设备或下拉设备34输出一个表示系数值的零值。(见步骤1060和1070)。对于零的情况,可以忽略符号。然后输出该系数的项。
接着将该项提供给加法器44,它还自第三存储设备48接收系数的先前值。第三存储设备也连至第二存储设备。来自第二存储设备的令牌访问存于第三存储设备中的系数,然后它又被输出至加法器以便增加至该项。由加法器将该项加至现有系数上。(见步骤1080)。
第四存储设备也连至第二存储设备。来自第二存储设备的令牌访问存于第四存储设备中的项,该项用于表示与多个样本中的第一样本(即最旧样本)相关联的项。该项被提供给加法器68,其中自更新的系数中减去该项。(见步骤1090)。与新样本相关联的项存于第四存储设备中,(见步骤1100),更新的系数存于第三存储设备中,(见步骤1110),同时被输出。(见步骤1120)。为每个系数重复以上各步骤,直至已经为该样本更新所有系数。(见步骤1130和1140)如以上某些实施例中所述,本发明的设备、方法和计算机程序产品可以平行地用于一系列信道,其中本发明为每条信道生成表示该信道上的信号的函数系数。如上所述,本发明将接收到的每个样本和与样本和系数相关联的算术函数组合起来,从而确定用于表示信号的函数系数,此外,如上详述的,可以预先计算和在可寻址存储设备中存储样本和系数的不同组合,或者可以由选通门功能参照与令牌相关联的值进行计算。通常可从自用于标示系数和样本的计数器中获取的状态信息中导得对存储设备的各单元进行访问的各令牌。在正常运行中,各令牌和存储设备用于确定标示信号的函数系数,这些令牌和存储设备也可通过将各位加至计数器的合适位置而重复使用,从而服务于多个信道。在此实施例中,附加系数存储单元保持附加系数,以及可以输出信道号以便于用户操作。还可能利用一个电气信号来确定输入的前向系数或确定逆函数。
此外,在正常运行中,各令牌和存储设备用于确定标示信号的函数系数,这些令牌和存储设备也可通过将各位加至计数器的合适位置而重复使用,从而服务于多个信道。在此实施例中,附加系数存储单元用于保持附加系数,以及可以输出信道号以便于用户操作。有可能将连续样本作为不同信道对待而产生交错变换。该交错变换可以送至第二个类似的过程以便产生例如双维变换。
如以上详细地描述的,本发明的设备、方法和计算机程序产品不但能够确定一个函数的系数,也能确定一个逆函数的系数。在许多例子中,这是通过切换令牌地址以使令牌访问表示逆函数的值而完成的。在某些例子中系数发生器应用于多个信道。可以有利地控制系数发生器,以使它为一个信道提供用于表示一个信号的函数系数,而同时为另一个信道提供另一个信号的逆函数系数。
如以上详细地描述的,在不同实施例中,本发明的设备、方法和计算机程序产品当接收到每个样本时更新每个系数。此外,在某些实施例中,本发明的设备、方法和计算机程序产品每当接收到新样本时输出系数。由于它允许观察和跟踪感兴趣的个别系数,这是有利的。可以控制系数发生器而跟踪感兴趣的个别系数以便输出这些系数。这可向用户实时地或者近似实时地提供新系数集以供观察之用。
一个附加优点是可以使用不同分辨率更新系数。具体地,在某些例子中,对某些系数更感兴趣或者由于硬件资源有限而无法恰当地处理和存储所有系数。在这些例子中,能够控制系数发生器以便在接收到每个样本时只更新一定的系数或者只更新某些系数,而重要性较低的系数则只使用较少样本来更新。
除提供设备和方法之外,本发明还提供计算机程序产品,用于根据输入信号的预定多个样本来确定表示输入信号的函数的系数。该计算机程序产品具有一个计算机可读存储媒体,它具有埋嵌于该媒体中的计算机可读程序代码装置。该计算机可读存储媒体可以替代系数发生器而通过软件完成系数发生器的功能。此外,计算机可读存储媒体可以通过提供用于确定系数的地址而控制系数发生器。
计算机可读程序代码装置包括第一计算机指令装置,用于一次接收每一个样本。此外,计算机可读程序代码装置包括第二计算机指令装置,当接收到每个样本时用于根据该样本更新函数系数而不等待接收到所有样本,从而减少为确定函数系数所需等待时间。在又一个实施例中,每个系数至少包括一项至少部分地决定于样本和算术函数的组合的项。在此实施例中,计算机可读程序代码装置还包括第三计算机指令装置,用于当接收到每个样本时通过将该样本和与该样本和系数相关联的算术函数组合而确定每个系数的相应项。在还有一个实施例中,每个样本只对每个系数的一项作出贡献。在此实施例中,第二计算机指令装置当接收到每个样本时根据该样本更新每个系数而不要求此后存储该样本。
本发明还使用用于减少必须存储以便表示函数的可能的算术项的值的数量的方法。在此实施例中,计算机程序产品包括一个计算机可读存储媒体,具有埋嵌于该媒体内的计算机可读程序代码装置。该计算机可读程序代码装置包括第一计算机指令装置,用于生成一个函数的所有可能算术项的第一表格。第二计算机指令装置系统地将表格中每个算术项与表格中所有其他算术项进行比较以便确定哪些算术项是冗余的。该计算机可读程序代码还包括第三计算机指令装置,用于在第二表格中存储函数的所有唯一的算术项,以使第二表格中没有函数的冗余算术项。
在某些范例中,函数是周期的以及对零对称的,因此函数的某些算术项具有相同幅值但不同符号。在此实施例中,第二计算机指令装置将表格中每个算术项的幅值与表格中其他算术项中的每一个的幅值进行比较,以便确定哪些算术项具有相同幅值。此外,第三计算机指令装置在第二表格中存储所有具有唯一幅值的算术项。此实施例的计算机可读程序代码装置还包括第四计算机指令装置,用于建立一个与每个算术项相关联的令牌,其中该令牌标示存于第二表格中的与算术项相关联的幅值以及与算术项相关联的符号。
在某些范例中,至少一个算术项具有一个零幅值。在该范例中,计算机可读程序代码装置还包括第四计算机指令装置,用于建立一个与用于标示算术项为零的算术项相关联的令牌,以使所述存储步骤不在第二表格中存储算术项。
在某些实施例中,计算机可读程序代码装置还包括第四计算机指令装置,用于访问第二表格中每个算术项,以便检索各算术项。在又一个范例中,该函数表示一个信号并且由信号样本所定义,其中信号的一个样本是有限数量的可能值中的一个。在该范例中,第一计算机指令装置生成一个第一表格,它具有样本的可能值与函数的各算术项的所有可能组合。此外,第二计算机指令装置系统地将表格中的每个组合与表格中的所有其他组合进行比较以便确定哪些组合是冗余的,以及第三计算机指令装置将所有唯一的组合存于的第二表格中,以使第二表格中没有冗余的组合。
除提供用于生成函数系数的计算机程序产品之外,本发明还可以使用用于生成电路设计的计算机程序产品或用于在接收到最后样本之前更新至少一个系数从而确定函数系数的计算机程序。具体地,如技术中熟知的,有用于允许输入规定的参数和输出电路设计的计算机程序或用于实施由各参数定义的函数的计算机软件。该计算机程序产品用于接收涉及准备由系统完成的功能的参数以及用于生成用于实施该功能的电路设计或计算机程序。例如,在一个实施例中,计算机程序产品接收函数的所有可能算术项以及生成一个电路或计算机程序,它在减少的硬件或减少的数据存储器的情况下使用可能算术项来生成函数系数。
在此方面,图1-16是根据本发明的方法、系统和程序产品的框图、流程图和控制流说明。应该理解,框图、流程图和控制流说明的每一块或步骤以及框图、流程图和控制流说明中各决的组合可以由计算机程序指令实施。这些计算机程序指令可以装载入计算机或其他可编程设备中以便实现一个机器,以使在计算机或其他可编程设备上执行的指令能够建立用于实施在框图、流程图和控制流的块或步骤中规定的功能的装置。这些计算机程序指令也可存于计算机可读存储器中,它能够引导一个计算机或其他可编程设备以特定方式发挥作用,以使存于计算机可读存储器中的各指令产生一件制造产品,包括用于实施在框图、流程图和控制流的块或步骤中规定的功能的指令装置。计算机程序指令也可装载入一个计算机或其他可编程设备中以便在计算机或其他可编程设备上完成一系列操作步骤来产生一个计算机实施的过程,以使在计算机或其他可编程设备上执行的指令能够提供步骤用于实施在框图、流程图和控制流的块或步骤中规定的功能。
相应地,框图、流程图和控制流说明的各块或步骤支持用于完成规定功能的装置的组合,用于完成规定功能的各步骤与用于完成规定功能的计算机指令装置的组合。也应该理解,框图、流程图和控制流说明的每一块或步骤,以及框图、流程图和控制流说明的各块或步骤的组合能够由专用的基于硬件的用于完成规定功能或步骤的计算机系统或者专用硬件和计算机指令的组合来实施。
熟悉技术的人知道在具有以上说明和相关联的附图中呈现的原理的优点的本发明中可以考虑许多修改和其他实施例。因此,应该理解,本发明不应限制于所公开的特定实施例,以及各种修改和其他实施例本应包括于所附权利要求书的范围之内。虽然此处采用了具体名词,但它们只是在一般和描述的意义上使用而并不用于限制的目的。
附录1用于估计标准傅立叶级数的程序的例子S1=1 S2=2 S3=-1 S4=3 S5=-4 S6=1 S7=0 S8=2估计A0值A01=S1 A02=S2 A03=S3 A04=S4A05=S5 A06=S6 A07=S7 A08=S8A0=A01+A02+A03+A04+A05+A06+A07+A08A0=4估计A1A11:=S1·cos(2·π·1·18)]]>A12:=S2·cos(2·π·1·28)]]>A13:=S3·cos(2·π·1·38)]]>A14:=S4·cos(2·π·1·48)]]>A15:=S5·cos(2·π·1·58)]]>A16:=S6·cos(2·π·1·68)]]>A17:=S7·cos(2·π·1·78)]]>A18:=S8·cos(2·π·1·88)]]>A1=A11+A12+A13+A14+A15+A16+A17+A18A1=3.243估计A2A21:=S1·cos(2·π·2·18)]]>A22:=S2·cos(2·π·2·28)]]>A23:=S3·cos(2·π·2·38)]]>A24:=S4·cos(2·π·2·48)]]>A25:=S5·cos(2·π·2·58)]]>A26:=S6·cos(2·π·2·68)]]>A27:=S7·cos(2·π·2·78)]]>A28:=S8·cos(2·π·2·88)]]>A2=A21+A22+A23+A24+A25+A26+A27+A28A2=2估计A3A31:=S1·cos(2·π·3·18)]]>A32:=S2·cos(2·π·3·28)]]>A33:=S3·cos(2·π·3·38)]]>A34:=S4·cos(2·π·3·48)]]>A35:=S5·cos(2·π·3·58)]]>A36:=S6·cos(2·π·3·68)]]>A37:=S7·cos(2·π·3·78)]]>A38:=S8·cos(2·π·3·88)]]>A3=A31+A32+A33+A34+A35+A36+A37+A38A3=-5.243估计A4A41:=S1·cos(2·π·4·18)]]>A42:=S2·cos(2·π·4·28)]]>A43:=S3·cos(2·π·4·38)]]>A44:=S4·cos(2·π·4·48)]]>A45:=S5·cos(2·π·4·58)]]>A46:=S6·cos(2·π·4·68)]]>A47:=S7·cos(2·π·4·78)]]>A48:=S8·cos(2·π·4·88)]]>A4=A41+A42+A43+A44+A45+A46+A47+A48A4=12
估计B1B11:=S1·sin(2·π·1·18)]]>B12:=S2·sin(2·π·1·28)]]>B13:=S3·sin(2·π·1·38)]]>B14:=S4·sin(2·π·1·48)]]>B15:=S5·sin(2·π·1·58)]]>B16:=S6·sin(2·π·1·68)]]>B17:=S7·sin(2·π·1·78)]]>B18:=S8·sin(2·π·1·88)]]>B1=B11+B12+B13+B14+B15+B16+B17+B18B1=3.828估计B2B21:=S1·sin(2·π·2·18)]]>B22:=S2·sin(2·π·2·28)]]>B23:=S3·sin(2·π·2·38)]]>B24:=S4·sin(2·π·2·48)]]>B25:=S5·sin(2·π·2·58)]]>B26:=S6·sin(2·π·2·68)]]>B27:=S7·sin(2·π·2·78)]]>B28:=S8·sin(2·π·2·88)]]>B2=B21+B22+B23+B24+B25+B26+B27+B28B2=-2估计B3B31:=S1·sin(2·π·3·18)]]>B32:=S2·sin(2·π·3·28)]]>B33:=S3·sin(2·π·3·38)]]>B34:S4·sin(2·π·3·48)]]>B35:=S5·sin(2·π·3·58)]]>B36:=S6·sin(2·π·3·68)]]>B37:=S7·sin(2·π·3·78)]]>B38:=S8·sin(2·π·3·88)]]>B3=B31+B32+B33+B34+B35+B36+B37+B38B3=1.828估计B4,对于任何偶数的样本,所有项都是零B41:=S1·sin(2·π·4·18)]]>B42:=S2·sin(2·π·4·28)]]>B43:=S3·sin(2·π·4·38)]]>B44:=S4·sin(2·π·4·48)]]>B45:=S5·sin(2·π·4·58)]]>B46:=S6·sin(2·π·4·68)]]>B47:=S7·sin(2·π·4·78)]]>B48:=S8·sin(2·π·4·88)]]>B4=B41+B42+B43+B44+B45+B46+B47+B48B4=-7.348·10-15将标准系数调整至所用形式DC值=A0/NADC:=A08]]>截尾值;用2除A4A4T:=A42]]>它给出傅立叶变换ADC=0.5A1=3.243 A2=2 A3=-5.243 A4T=6B1=3.828 B2=-2 B3=1.828FT:=A1A2A3A4B1B2B3ADC]]>FT=3.2432-5.24363.828-21.8280.5]]>
附录2根据本发明的一个实施例的用于估计一个快速傅立叶级数的程序的例子在逐个样本的基础上进行所有计算,其中一个寄存器专用于每个系数,并且对于每个连续的样本都进行更新S1=1 当第一样本到达时,使用它处理所有系数A01=S1A11:=S1·cos(2·π·1·18)]]>A21:=S1·cos(2·π·2·18)]]>A31:=S1·cos(2·π·3·18)]]>A41:=S1·cos(2·π·4·18)]]>B11:=S1·sin(2·π·1·18)]]>B21:=S1·sin(2·π·2·18)]]>B31:=S1·sin(2·π·3·18)]]>B41:=S1·sin(2·π·4·18)]]>S2=2 当第二样本到达时,使用它更新所有系数A02=S2A12:=S2·cos(2·π·1·28)]]>A22:=S2·cos(2·π·2·28)]]>A32:=S2·cos(2·π·3·28)]]>A42:=S2·cos(2·π·4·28)]]>B12:=S2·sin(2·π·1·28)]]>B22:=S2·sin(2·π·2·28)]]>B32:=S2·sin(2·π·3·28)]]>B42:=S2·sin(2·π·4·28)]]>A012=A01+A02A112=A11+A12 A212=A21+A22 A312=A31+A32 A412=A41+A42B112=B11+B12 B212=B21+B22 B312=B31+B32 B412=B41+B42S3=-1 当第三样本到达时,使用它更新所有系数A03=S3A12:=S2·cos(2·π·1·28)]]>A23:=S3·cos(2·π·2·38)]]>A33:=S3·cos(2·π·3·38)]]>A43:=S3·cos(2·π·4·38)]]>B13:=S3·sin(2·π·1·38)]]>B23:=S3·sin(2·π·2·38)]]>B33:=S3·sin(2·π·3·38)]]>B43:=S3·sin(2·π·4·38)]]>A013=A012+A03A113=A112+A13 A213=A212+A23 A313=A312+A33A413=A412+A43B113=B112+B13B213=B212+B23 B313=B312+B33B413=B412+B43
S4=3当第四样本到达时,使用它处理所有系数A04=S4A14:=S4·cos(2·π·1·48)]]>A24:=S4·cos(2·π·2·48)]]>A34:=S4·cos(2·π·3·48)]]>A44:=S4·cos(2·π·4·48)]]>B14:=S4·sin(2·π·1·48)]]>B24:=S4·sin(2·π·2·48)]]>B34:=S4·sin(2·π·3·48)]]>B44:=S4·sin(2·π·4·48)]]>A014=A013+A04A114=A113+A14 A214=A213+A24A314=A313+A34A414=A413+A44B114=B113+B14 B214=B213+B24B314=B313+B34B414=B413+B44S5=-4当第五样本到达时,使用它更新所有系数A05=S5A15:=S5·cos(2·π·1·58)]]>A25:=S5·cos(2·π·2·58)]]>A35:=S5·cos(2·π·3·58)]]>A45:=S5·cos(2·π·4·58)]]>B15:=S5·sin(2·π·1·58)]]>B25:=S5·sin(2·π·2·58)]]>B35:=S5·sin(2·π·3·58)]]>B45:=S5·sin(2·π·4·58)]]>A015=A014+A05A115=A114+A15 A215=A214+A25A315=A314+A35A415=A414+A45B115=B114+B15 B215=B214+B25B315=B314+B35B415=B414+B45S6=1 当第六样本到达时,使用它更新所有系数A06=S6A16:=S6·cos(2·π·1·68)]]>A26:=S6·cos(2·π·2·68)]]>A36:=S6·cos(2·π·3·68)]]>A46:=S6·cos(2·π·4·68)]]>B16:=S6·sin(2·π·1·68)]]>B26:=S6·sin(2·π·2·68)]]>B36:=S6·sin(2·π·3·68)]]>B46:=S6·sin(2·π·4·68)]]>A016=A015+A06A116=A115+A16A216=A215+A26A316=A315+A36A416=A415+A46B116=B115+B16B216=B215+B26B316=B315+B36B416=B415+B46
S7=0当第七样本到达时,使用它处理所有系数A07=S7A17:=S7·cos(2·π·1·78)]]>A27:=S7·cos(2·π·2·78)]]>A37:=S7·cos(2·π·3·78)]]>A47:=S7·cos(2·π·4·78)]]>B17:=S7·sin(2·π·1·78)]]>B27:=S7·sin(2·π·2·78)]]>B37:=S7·sin(2·π·3·78)]]>B47:=S7·sin(2·π·4·78)]]>A017=A016+A07A117=A116+A17 A217=A216+A27 A317=A316+A37A417=A416+A47B117=B116+B17 B217=B216+B27 B317=B316+B37B417=B416+B47S8=2当第八样本到达时,在单次更新中所有系数都已齐全。
使用下标“F”而不是18来标定最后系数A08=S8A18:=S8·cos(2·π·1·88)]]>A28:=S8·cos(2·π·2·88)]]>A38:=S8·cos(2·π·3·88)]]>A48:=S8·cos(2·π·4·88)]]>B18:=S8·sin(2·π·1·88)]]>B28:=S8·sin(2·π·2·88)]]>B38:=S8·sin(2·π·3·88)]]>B48:=S8·sin(2·π·4·88)]]>F=18 A0F=A017+A08A1F=A117+A18 A2F=A217+A28 A3F=A317+A38A4F=A417+A48B1F=B117+B18 B2F=B217+B28 B3F=B317+B38B4F=B417+B48将标准系数调整至所用形式DC值=A0/NADC:=A0F8]]>截尾值用2除A4A4T:=A4F2]]>B4F=0(任何偶数的样本的识别数)因此估计所得快速傅立叶变换ADC=0.5 A1F=3.243 A2F=2 A3F=-5.243A4T=6B1F=3.828 B2F=-2 B3F=1.828为变换值规定一个阵列FT:=A1FA2FA3FA4TB1FB2FB3FADC]]>显示各值FT=3.2432-5.24363.828-21.8280.5]]>
以下列出各增量值的完整集A01=1 A11=0.707A21=0 A31=-0.707 A41=-1B11=0.707B21=1 B31=0.707B41=0A02=2 A12 A22=-2A32=0A42=2B12=2B22=0 B32=-2 B42=0A03=-1 A13=0.707A23=0 A33=-0.707 A43=1B13=-0.707 B23=1 B33=-0.707 B43=0A04=3 A14=-3 A24=3 A34=-3 A44=3B14=0B24=0 B34=1.1·10-15B44=-1.47·10-15A05=-4 A15=2.828A25=-1.225·10-15A35=-2.828 A45=4B15=2.828B25=-4B35=2.828B45=-2.449·10-15A06=1 A16=0A26=-1A36=0A46=1B16=-1 B26=0 B36=1B46=0A07=0 A17=0A27=0 A37=0A47=0B17=0B27=0 B37=0B47=0A08=2 A18=2A28=2 A38=2A48=2B18=0B28=0 B38=-1.47·10-15B48=-1.959·10-15。
权利要求
1.一种用于减少必须存储以便表示函数的可能算术项的值的数量的方法,所述方法包括以下步骤生成所述函数的所有可能算术项的第一表格;如果存在冗余项,则确定至少一个冗余项;及将所述函数的所有唯一的算术项存于第二表格中,以使所述第二表格中不包括至少一个冗余的算术项。
2.根据权利要求1的方法,其中所述生成步骤生成所述函数的所有可能算术项的第一表格,其中所述确定步骤将所述表格中的每个算术项与所述表格中的所有其他算术项系统地进行比较,以便确定哪些算术项是冗余的;其中所述存储步骤在所述第二表格中存储所述函数的所有唯一的算术项,以使所述第二表格中所述没有函数的冗余算术项。
3.根据权利要求2的方法,其中所述函数是周期的,以使所述函数的一些算术项具有相同幅值但具有不同符号,其中所述确定步骤将所述表格中的每个算术项的幅值与所述表格中其他算术项中的每一项的幅值进行比较,以便确定哪些算术项具有相同幅值,其中所述存储步骤在所述第二表格内存储所有具有唯一幅值的算术项,其中所述方法还包括产生与每个算术项相关联的令牌的步骤,其中所述令牌标示存于所述第二表格中的、与算术项相关联的幅值以及与算术项相关联的符号。
4.根据权利要求2的方法,其中至少一项所述算术项具有零幅值,其中所述方法还包括产生与算术项相关联的令牌,用于标示所述算术项为零,以使所述存储步骤不将所述算术项存于所述第二表格中。
5.根据权利要求2的方法,还包括访问所述第二表格中每个算术项,以便检索各个算术项的步骤。
6.根据权利要求2的方法,其中所述函数用于表示信号并且由所述信号的样本定义,所述信号的样本是有限数量的可能值中的一个,其中所述生成步骤包括生成样本可能值与所述函数的算术项的所有可能组合的第一表格,其中所述确定步骤将表格中的每个组合与表格中的所有其他组合系统地进行比较,以便确定哪些组合是冗余的,以及其中所述存储步骤包括在所述第二表格中存储所有唯一的组合,以使所述第二表格中没有冗余的组合。
全文摘要
本发明提供了一种用于确定函数的系数的数据处理设备,包括用于接收输入信号的多个样本值的输入端,用于生成函数系数的系数发生器,其中系数发生器包括与输入端通信的第一设备,用于生成表示样本值对于将被计算的函数系数的贡献的信号,以备系数发生器接收最后样本,与第一设备通信的第二设备,用于基于在第二设备中接收到的样本成员以及系数成员,生成函数因子,其中对于给定的样本以及系数成员,系数发生器被这样设置,即第二设备将与样本以及系数成员相关联的函数因子传送给第一设备,第一设备将样本值乘以对应的函数因子,以便确定样本值对于系数的贡献,以备系数发生器接收最后样本,从而使确定函数的系数所要求的等待时间实现最小化。
文档编号G06F17/14GK1702648SQ200510083378
公开日2005年11月30日 申请日期2000年4月28日 优先权日1999年4月29日
发明者沃尔特·E·佩尔顿 申请人:沃尔特·E·佩尔顿
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1