具有混合的定点或浮点算符和块定标浮点算符的自适应滤波器的制作方法

文档序号:7579666阅读:158来源:国知局
专利名称:具有混合的定点或浮点算符和块定标浮点算符的自适应滤波器的制作方法
技术领域
本发明涉及自适应滤波器,具体而言,涉及数据和系数在自适应滤波器中的储存方法。
与本发明相关的现有技术在典型的对讲机系统中使用的自适应滤波器可用于消除回声路径的特征以及产生来自远端用户的数字信号的模拟回声信号。它包括一个减法器,该减法器将该模拟的回声信号从近端回声信号中减去并产生一残留信号或误差。这种自适应滤波器可以使模拟的回声信号尽可能地接近实际的回声信号,以便迫使残留信号的覆盖范围尽可能地接近零。
大多数自适应滤波器利用脉冲响应滤波器,这种滤波器要求将数据和系数储存在存储器中并且依据这些数据和相关联的系数完成大量的乘法运算和加法运算。该滤波器的精度取决于被用于表示数据和系数的数字字的长度和格式。定点表示法以附加硬件为代价给出最高的精度,而浮点表示法牺牲精度以获取更大的数据范围。块定标浮点(block scale floating point)表示法使用单一指数值,该指数用同一数值给所有的尾数定标。这个指数的数值取决于在任何给定的时间储存在该存储器中的最大数值的大小。在使用音频信号的应用中,块定标浮点表示法不适合储存数据,因为在短暂的时间周期内输入信号幅度的显著变化将使该指数变大并且使储存在存储器中的小数值按比例下降到值得重视的程度。这将导致储存在存储器中的数据的精度显著下降。浮点表示法最适合这种应用,因为它允许将最高精度赋予小数值并舍去大数值的最小有效位。
本发明概述在此揭示并提出权利要求的这项发明包括自适应滤波器。这个自适应滤波器包括以定点或浮点格式储存数据的数据存储器和以块定标浮点格式储存系数尾数的系数存储器,其中所述块定标浮点格式用一个关联寄存器储存所有系数尾数的公用指数。数字滤波引擎可用于接收储存在数据存储器中的输入数据并处理储存的数据和系数,以便产生数字滤波输出。这个滤波引擎是一个用于完成有限脉冲响应滤波算法的有限脉冲响应滤波引擎。系数更新部件可按照预定的算法更新储存在系数存储器中的尾数值。然后,可以用系数检验部件确定储存在系数存储器中的最大数值以及确定在下一个滤波周期中需要对系数做的指数和尾数校正。如果任何一个尾数值大于门限值并且该系数指数小于允许的最大值,那么所有的系数尾数都在下一个滤波周期中按算法右移1位并且指数加1。如果所有系数尾数值都小于门限值而且指数大于零,那么尾数在下一个滤波周期中按算法左移1位并且指数减1。
在本发明的另一方面,数据存储器可用于按浮点格式储存数据,而且尾数和指数两者都与每个储存的数据字有关。
附图的简要说明

图1是按照本发明运行的对讲机系统的方框图。
图2是利用自适应滤波器的双向通话检测器的详细的方框图。
图3是自适应滤波器的高级方框图。
图4是本发明的自适应滤波器的体系结构的总体方框图。
图5是说明系数更新计算的数据流的体系结构方框图。
图6是在卷积计算期间与数据流有关的体系结构的方框图。
图7是系数检验作业的流程图。
本发明的详细描述现在参照图1说明包括按本发明运行的自适应滤波器(未示出)的对讲机系统。四线制系统包括连接在四线二线混合电路12一侧的干线10。混合电路12的另一侧通过双线制用户线24与对讲机16连接。到达对讲机16的输入信号(即入境信号)通过导线18驱动扬声器20。毗邻扬声器20的是用导线24连接在对讲机16上的话筒22。来自对讲机16的输出信号通过导线26输入混合电路12。
在运行时,产生从扬声器20到话筒22的回声路径。从输出到输入的网络回声路径14来自用户线26。阻断回声路径的简单方法是关闭话筒,以防止反射信号返回到最终将听到这个“回声”的远端用户。就网络回声路径而论,这是由于并入混合电路12的混合线圈与用户线16匹配不完美。因此,混合线圈不仅将从四线制线路10收到的远端用户信号经用户线26传送到近端用户,而且允许来自近端用户的信号泄漏到输入。
现在参照图2说明利用本发明的自适应滤波器的双向通话检测器的方框图。在1995年9月25日申请的美国专利申请第08/536,986号“用于回声消除器的双向通话探测器(Double Talk Detector forEcho Canceller)”中对双向通话检测器的操作做了介绍,在此通过引证将它并入。通过接收线14接收来自远端源的远端声频信号,该信号被输入到A/D转换器28,以便在A/D转换器的输出端将接收值子样Rin(k)加载到线30上。这个子样被输入到D/A转换器32,以便将数字值再转换成模拟值Rout加载在线34上。这个模拟值被输入到近端部件20。这个近端部件由接收线路组成,其中线34是下承缓冲器36的输入,该缓冲器的输出可用于在线18上驱动扬声器20。传输线路是借助话筒22提供的,话筒的输出在线24上是可用的并且连接到缓冲器/驱动器38上,该缓冲器/驱动器驱动输出线40提供输出信号Sin。
连接Sin输出端的传输线路是A/D转换器42的输入线,该A/D转换器在线44上提供数字输出子样Sin(k)。这个输出被送到减法运算电路46的正输入端。提供自适应滤波器50,该滤波器的输入与线30上的Rin(k)连接,并且在其输出端提供经过滤波的输出信号,该信号输入减法运算电路46的负输入端。这样提供一个差值,即加载在线44上的信号子样Sin(k)与自适应滤波器50的输出信号之间的差值。这个差值作为残留信号Res(k)在线48上输出,这是一个采样信号。这条线48和信号Res(k)被输入D/A转换器54以便向远端提供输出信号。
自适应滤波器50可用于提供消除回声的基本操作。如图1所示,在扬声器20与话筒22之间有一个回声路径。因此,一部分Rin信号将被接收并反馈到传输线路,导致一部分Rin信号被施加到Sout上。自适应滤波器50可用于依据预估的脉冲响应和接收线路的信号改进和定期更新近端线路的经过调整的预估脉冲响应,即依据接收线路信号推算的发生在输入线路上的回声信号估计值。用减法运算电路46将这个回声信号的估计值与输入信号Sin(k)按代数方法合并,在线48上得到输出信号Res(k)。自适应滤波器还接收Res(k)作为输入,以便在自适应运算中使用。
在正常运行中回声路径不变,回声消除器将估算反射信号,这个估算值的质量决定回声减少的程度。该估算值的质量的度量被称为混响输入损失增强(ERLE)。它被定义为回声消除器带来的回声功率下降率,与其等价的是在回声消除器输出端的信号预估功率与预估的回声功率之比,即[安装公式编辑器并双击以便查看公式]其中E是预定值运算符。回声功率下降率对降低回路增益也是重要的。远端和近端通过声学回路被链接起来。如果在这个回路中回路增益太高,那么该回路将变成不稳定的并将产生音响啸声。如果在远端的系统是全双工对讲机,只有依赖近端回声消除器降低回路增益,该对讲机才能够在较高的输出和输入增益下运行。
回声消除器产生估算值的方法是用自适应滤波器50为来自远端的信号滤波,其中自适应滤波器可用于有效地模拟回声路径并提供回声信号的预测结果。在新式回声消除器中,这个滤波器是借助最小均方(LMS)算法进行训练的。在这种系统中,来自远端的信号即“训练信号”被用于“说明”回声路径;这就是说,最小均方算法能够估算路径响应,其方法是一旦在近端话筒22处收到远端信号,就立即观察路径对该信号的影响。
现在参照图3说明自适应滤波器50的方框图。在滤波器50中,远端信号的输入子样序列Rin(k)提供给自适应FIR滤波器部分56,这个部分完成输入子样序列的卷积计算,产生滤波输出y(k)。然后确定误差项Res(k),其方法是用减法运算电路64计算滤波输出y(k)与近端信号子样Sin(k)之间的差值。接下来,将这个误差项Res(k)施加给最小均方自适应算法模块68,以便计算新的加权系数供自适应FIR滤波器56使用。
在本发明的滤波器中(该滤波器采用带N个抽头的FIR滤波器),最小均方估算技术被用于权的更新计算。具体地说,该系统针对输入子样序列Rin(k)计算输出值,然后利用最小均方算法更新权Wn(k)。优选的是,该系统使用N级的自适应滤波器,该滤波器有在第k个采样瞬间用于抽头n的可调的权Wn(k)和n个并行处理单元,每个单元按照最小均方算法计算每个抽头的权的修正量。
理论上,滤波器的输出y(k)将等于参照值Sin(k),否则将产生误差信号[安装公式编辑器并双击,以便查看公式]然后,按照最小均方算法或某种迭代算法使误差功率(the errorpower)最小。
现在参照图4说明自适应滤波器56的方框图,以说明计算引擎和存储部件。在输入总线72上接收数据,将该数据输入新数据寄存器74。这个新数据寄存器与总线76接口。总线76允许利用新数据寄存器74和与总线76接口的数据寄存器80将数据传送到数据随机存取存储器78或接收来自数据随机存取存储器78的数据。数据随机存取存储器78被用于以定点或浮点格式储存数据。采用浮点格式,数据由带符号的尾数(Mb)和不带符号的指数(Eb)组成。FIR滤波系数被储存在系数随机存取存储器84中,该随机存取存储器与总线86接口,以便从系数随机存取存储器读出数据输入系数寄存器88和将来自更新模块100的数据写入系数随机存取存储器。在系数随机存取存储器84中的数据是块定标浮点值,这些浮点值与一个不带符号的指数相关联。但是,这个指数不储存在系数随机存取存储器84中;而是仅仅将尾数(Mc)储存在系数随机存取存储器84中。正象在后面将介绍的那样,这个指数值是可以改变的,取决于储存在系数随机存取存储器84中的系数数据。系数指数的范围在“0”至Ec,max之间,其中Ec,max取决于准备作为尾数储存在随机存取存储器84中的系数范围和有效位数的选择。例如,对于24位的系数范围,如果有16个有效位储存在随机存取存储器84中,那么Ec,max等于“8”。
除了数据和滤波系数之外,为了用图3所示的模块68按照自适应算法完成系数更新运算还需要误差分量,该分量储存在误差寄存器92中。这个寄存器与总线94接口。
为了完成卷积和更新系数,提供一个FIR/更新引擎96,该引擎可用于分别从随机存取存储器78和84(通过数据寄存器80)以及系数寄存器88提取适当的数据,并且用这些数值和储存在误差寄存器92中的数值完成卷积运算在线102上产生滤波输出或者用更新模块100产生更新的系数值。更新模块100(下面将详细介绍)产生更新的尾数值Mc和一个指数值Ec。这个指数值Ec被储存在FIR/更新引擎96在处理期间使用的模块98中。由于指数Ec是供所有储存在系数随机存取存储器84中的尾数值Mc使用的单值,所以只需要较少的存储器作为储存每个尾数的指数的系统元件。但是,应当注意,与指数Ec不同的尾数值Mc可以被储存在系数随机存取存储器84中。例如,一半尾数Mc1可能具有与其相关的第一指数Ec1,而其余的尾数Mc2可能具有与其相关的第二指数Ec2。这种情况将在下面更详细地介绍。
在诸如消除回声的应用中,系数更新可以以这样的方式进行控制,以致这些系数在依次相连的数个周期中没有明显的改变。再者,这些系数的性质致使大系数与回声路径产生的延迟相对应而且是最有意义的,而其余的系数不携带如此有用的信息。这使这些系数在理论上适合块定标浮点表示法。这导致大大地节约了保存全部系数所需的存储空间,因为存储器只需要储存尾数,而用一个寄存器就可以储存那个公用指数。这种情况也将在下面更详细地介绍。
现在参照图5说明用FIR/更新引擎96进行系数更新运算时使用的数据流示意图。误差尾数Me从本质上是误差寄存器92的存储区110得以恢复并且被放到总线94上。同时,数据尾数Mb从数据存储器78得以恢复并且通过数据尾数寄存器104被放到总线106上。用乘法器108将误差尾数Me乘以数据尾数Mb以便将乘积提供给总线114。这个中间的乘积值用乘积寄存器116储存。乘积寄存器116的输出被送到受移位控制模块136控制的桶形移位器120。这个移位控制模块136接收数据指数Eb、误差指数Ee、系数指数Ec的负值和系数移位Cs。然后,将桶形移位器120用于提供移位值,该移位值等于数据指数Eb、误差指数Ee、系数指数Ec的负值和系数移位Cs的和,该系数移位值是在最后一次采样的系数更新运算期间由系数检验部件确定的移位量(下面予以介绍)。然后,桶形移位器120的输出被放到总线154上送往累加器158。累加器158可用于将桶形移位器120的输出与总线152上的值相加。总线152上的值是推演出来的,其方法是将旧的系数尾数Mc从寄存器88通过总线90输入移位模块146。该移位模块146可用于借助值“+1”或“-1”使尾数移位。这个移位量无论是左移还是右移都是前面已经介绍过的系数移位值。这个移位值被输出到总线148上,然后输入符号位扩展模块150,该模块可用于扩展符号位,以便将所需字长的数值提供给总线152。在总线152上的数值被加到更新项上,该更新项是储存在中间寄存器160中的桶形移位器120的输出。此后,新系数尾数被送入系数存储器84,在那里覆盖旧的系数尾数值。
在随机存取存储器84中的全部系数尾数都被更新之后,如果Cs具有等于“+1”的值,即在更新周期期间所有的系数值都被右移,那么系数指数Ec的值加1。如果Cs具有等于“-1”的值,即在更新周期期间所有的系数值都被左移,系数指数Ec的值则减1。
借助桶形移位器120能够完成的最大移位是数据指数Eb的最大值加上误差指数Ee的最大值,然后从中减去系数指数Ec的最小值再加上Cs等于“+1”的系数移位的最大值。最小移位将是数据指数Eb的最小值加上误差指数Ee的最小值,然后从中减去系数指数Ec的最大值再加上Cs等于“1”的系数移位的最小值。基于这些数值,桶形移位器120应当能够处理的移位范围从(Eb,min+Ee,min-Ec,max+Cs,min)到(Eb,max+Ee,max-Ec,min+Cs,max)。
现在参照图6说明卷积运算的方框图。如上所述,在数据随机存取存储器78中的数据由带符号的尾数Mb和不带符号的指数Eb组成。数据的尾数Mb按顺序从数据随机存取存储器78读出并被储存在寄存器162中。这个尾数在总线164上输出到乘法器170。系数尾数Mc被储存在系数随机存取存储器84中。它们也是按顺序从系数随机存取存储器84读出并储存在寄存器88中。这个寄存器的输出被放在总线99上,以便输入给乘法器170。
对于数据尾数Mb和系数尾数Mc,乘法器170的乘积输出在中间总线172上提供一个数值,然后将该数值输入乘积寄存器174。这个乘积寄存器的输出被传送给桶形移位电路178。数据指数按顺序读出并被储存在寄存器180中。这个寄存器的输出被放在总线182上并被传送给移位控制模块184。移位控制模块184计算输入桶形移位器的数据尾数值的移位量并将结果在总线186上输出。这个数值输入桶形移位器178,该移位器按照移位控制模块计算的移位量将在总线178上的输入值移位并且在总线188上提供移位后的输出值。桶形移位器178的输出被输入加法器190。这个加法器190将针对滤波器所有的抽头累加在总线188上的移位后的输出值。实现该目的的方法是依次读数据随机存取存储器78中的所有位置和相应的加权系数值(读自系数随机存取存储器84),并且针对所有的抽头重复所述方法。在处理完FIR滤波器中的所有抽头之后,加法器178将在总线192上产生尾数的卷积结果,这个结果被储存在寄存器194中。寄存器194还在进行累加运算时被用于储存中间的卷积值。寄存器194的输出端通过总线196与加法器190相连。卷积结果的指数与系数随机存取存储器84的块定标指数相同。
现在参照图7说明系数检验运算的流程图。当新的Rin(k)值产生时流程图在模块198初始化,然后流到功能模块200。在这个功能模块,提供地址确定在系数随机存取存储器84中读数位置的指针I被初始化到0。两个附加变量(左移和右移)也分别被初始化到1和0。从功能模块200,控制流向循环,该循环在功能块202处进入。这个循环以提取与指针I指定的地址相对应的更新系数值为起点并且借助用图5业已说明的系数更新模块更新该系数值再将结果输入系数随机存取存储器84。在读出更新系数值之后,该流程分成两个分支。在第一个分支中,控制流向判断模块204,在这个模块中检验变量“左移”是否为1。如果左移变量为0,那么控制沿着N路径流向功能模块216。但是,如果左移变量为1,那么控制沿着Y路径流向判断模块206,在这个模块中检验指数的最高有效位(MSB)。如果最高有效位对负数为“111”或者对正数为“000”,那么左移变量的值不变并且控制沿着Y路径直接流向功能模块216。但是,如果最高有效位不等于“111”或“000”,那么确定尾数值是大的并且在下一次采样中系数值不应当左移。在这种情况下,控制沿着N路径流向功能模块208,在那里左移变量被赋值等于“0”。如果在系数随机存取存储器84中所有的系数尾数都具有等于“000”或“111”的最高有效位,那么在控制退出循环时左移变量将具有等于0的值。从功能模块208,控制流向功能模块216。
在控制流的另一个分支中,判断模块210检验右移变量,并且如果它等于0,那么该分支处理的其余部分被绕过并且控制沿着Y路径直接流向功能模块216。但是,如果右移变量没有等于0的值,那么控制沿着N路径流动并且借助判断模块212检验系数的最高有效位对于负数是否等于“10”或者对于正数是否对于“01”。如果最高有效位满足上述判据,那么确定系数具有大数值并且在下一次采样时该随机存取存储器中所有的系数都应当被左移。在这个条件下,控制沿着Y路径流向功能模块214,在那里右移变量被设置为1。但是,如果最高有效位不等于“01”或“10”,那么控制沿着N路径直接流向功能模块216。
在控制流的功能模块216中,为随机存取存储器84提供地址的指针I加1。如此设置随机存取存储器84到达下一位置时的地址。从功能模块216,控制流向判断模块218,在那里检验指针I的值,看看它是否等于滤波器中的抽头数。如果这两个数值相等,那么在系数随机存取存储器84中的全部系数都已经经过处理,于是控制沿着Y路径流向功能模块220。但是,如果在这个随机存取存储器中的系数尚未全部处理,那么控制沿着N路径返回循环的起点即功能模块202。
在随机存取存储器中的全部系数都被处理之后,控制流退出循环并且流向功能模块220,在那里变量Cs被初始化到0。在下一步中,检验左移变量,看看在判断模块222中它的值是否等于1。如果左移变量的值等于1,那么储存在随机存取存储器84中的全部系数尾数都是小的并且应当在下一个更新周期中右移1,以便获得最高精度,然后控制沿着Y路径流向判断模块224。但是,如果系数指数的值等于0,那么系数随机存取存储器84正在储存所有系数的全精度并且在下一个更新周期中随机存取存储器84中所有的值不应当左移。在这个条件下,控制沿着N路径直接流向判断模块228。在判断模块224中,如果确定系数指数具有等于0的值,那么控制沿着Y路径流向判断模块228。但是,如果确定系数指数具有不等于0的值,那么控制沿着N路径流向功能模块226,在那里Cs的值被设置等于-1。这将使随机存取存储器84中所有的系数尾数在下一个系数更新周期中左移1。
在判断模块228中,检验右移变量,看看它的值是否等于1。如果发现任何一个系数尾数具有等于“01”或“10”的最高有效位,那么右移变量被设置等于1的值。在这种情况下,系数尾数值已经变大并且在下一个更新周期中有溢出的可能。为了避免溢出,在随机存取存储器84中所有的系数都应当在下一个更新周期中右移。如果右移值不等于1,那么控制沿着N路径流向功能模块234。但是,如果右移值等于1,那么控制沿着Y路径流向判断模块230。在判断模块230中,检验系数指数值,看看它是否等于最大的允许值Ec,max。如果是这样,那么控制沿着Y路径流向功能模块234,否则,沿着N路径流向功能模块232,在那里Cs的值被设置等于“+1”。这将使随机存取存储器84中所有的系数尾数在下一个系数更新周期中右移1。在功能模块234停止系数检验运算控制流。
上述的优选实施方案都只利用一个系数指数来定义所有的系数尾数的指数。通常,对于给定的滤波器应用系数都有一个数值范围,从最小值到最大值。这个最大值通常发生在系数范围的中间。所以,系数将从最小值变化到最大值再从最大值返回最小值。因此,在滤波器最末端系数趋于最小值可以用具有两个指数的系数来解释,一个指数针对不同区域的系数随机存取存储器。例如,这个随机存取存储器的前1/3和后1/3可以有一个与那些系数关联的指数,而系数随机存取存储器的中间部分可以有第二个指数。这样允许系数具有不同的分辨率,而每种分辨率只需要一个指数。所以,可以有多个固定块与一个指数相关联,以致在处理期间为了处理这些给定块的信息只需要了解这个指数。在通过块边界时,只需要在提取尾数时使用不同的指数。唯一重要的是虽然在两个毗邻块之间的块边界可以作为不同块中相关值的函数予以确定,但是块的大小是固定的与给定的尾数值的变化无关。在这个实施方案中应当注意的主要方面是与尾数相比只有有限的数目的指数,以致与对于每个值都要储存尾数和系数两者的系统相比只需要非常少的存储区。
总之,本发明已经提供了一种自适应滤波器,该滤波器将定点或浮点数据与块定标浮点系数结合起来使用。这些系数是可变的,以致滤波器的响应随着误差值的变化而变化,其中所述误差值是通过计算滤波器的输出与近端采样信号的差值来确定的。这个误差值被最小化,其方法是改变这些系数并将更新后的系数存储在系数存储器中。这些系数按块定标浮点格式储存,其中尾数储存在存储器中而公用指数储存在寄存器中。在系数值增加时,固定数量的系数最高有效位被储存在存储器中且指数加1。在系数值减少时,更多的最小有效位被储存在存储器中且指数减1。公用指数用同一数值给系数存储器中所有的数值定标。
虽然已经详细地介绍了优选的实施方案,但是应当理解在不脱离权利要求书所规定的本发明的精神和范围的情况下可以作出各种各样的变化,替代方案和备选方案。
权利要求
1.一种自适应滤波器,包括一个数据存储器,用于储存数据;一个系数存储器,用于按块定标浮点格式储存滤波系数尾数,其中所述块定标浮点格式带有确定的系数指数值;一个数字滤波引擎,用于接收储存在所述数据存储器中的输入数据,并处理所述储存数据和所述储存系数尾数,以便提供数字滤波输出值;一个系数更新部件,用于依据预定的算法改变储存在所述数据存储器中的所述系数尾数值,以便将更新后的系数尾数提供给所述系数存储器中的存储空间;以及一个指数部件,用于针对某个尾数改变滤波系数的指数,以使可以作为尾数储存的值的范围最大化。
2.根据权利要求1所述的自适应滤波器,其中所述数据存储器可用于按浮点格式储存数据,而且尾数和指数两者都与每个储存的数据字有关。
3.根据权利要求1所述的自适应滤波器,其中所述数字滤波引擎包括有限脉冲响应引擎。
4.根据权利要求1所述的自适应滤波器,其中所述系数更新部件改变储存在所述系数存储器中的所述系数值,以使被确定存在于所述FIR滤波引擎的输出与需要的输出之间的误差值最小化。
5.根据权利要求1所述的自适应滤波器,其中所述指数部件包括一个比较电路,该电路将最大的系数尾数与每个储存在所述系数存储器中的系数尾数的期望门限值进行比较;一个右移电路,该电路在数值最大的系数尾数值超过期望门限值时按预定的位数将该系数尾数右移并且按预定的位数增加其指数;以及一个左移电路,该电路在数值最大的系数尾数值小于期望门限值时按预定的位数将该系数尾数左移并且按预定的位数减少其指数。
6.一种自适应滤波器,包括一个储存数据的数据存储器;一个具有至少两节的系数存储器,用于按块定标浮点格式储存滤波系数的尾数,其中所述块定标浮点格式带有确定的系数指数值而且所述系数指数值与所述的至少两节中的每一节以及储存在其中的尾数有关;一个数字滤波引擎,用于接收在所述数据存储器中储存的输入数据,并处理所述的储存数据和所述的储存系数尾数,以便提供数字滤波输出值;一个系数更新部件,用于依据预定的算法改变储存在所述数据存储器中的所述系数尾数值,以便将更新后的系数尾数提供给所述系数存储器中的存储空间;以及一个指数部件,用于针对某个在每个所述的至少两节中具有给定长度的尾数改变滤波系数的指数,以使可以作为尾数储存的值的范围最大化。
7.根据权利要求6所述的自适应滤波器,其中所述数据存储器可用于按浮点格式储存数据,而且尾数和指数两者都与每个储存的数据字有关。
8.根据权利要求6所述的自适应滤波器,其中所述数字滤波引擎包括有限脉冲响应引擎。
9.根据权利要求6所述的自适应滤波器,其中所述系数更新部件改变储存在所述系数存储器的所述至少两节中的所述系数值,以使被确定存在于所述FIR滤波引擎的输出与需要的输出之间的误差值最小化。
10.根据权利要求6所述的自适应滤波器,其中所述指数部件包括一个比较电路,该电路将最大的系数尾数与每个储存在所述系数存储器的每个所述至少两节中的系数尾数的期望门限值进行比较;一个右移电路,该电路在每个至少两节中数值最大的系数尾数值超过期望门限值时按预定的位数将该系数尾数右移并且按预定的位数增加与所述至少两节之一相关的指数;以及一个左移电路,该电路在每个至少两节中数值最大的系数尾数值小于期望门限值时按预定的位数将该系数尾数左移并且按预定的位数减少与所述至少两节之一相关的指数。
11.一种对数据进行自适应滤波的方法,该方法包括下述步骤将数据储存在数据存储器中;将滤波系数尾数按包括确定的系数指数值的块定标浮点格式储存在系数存储器中;用数字滤波引擎接收在数据存储器中储存的输入数据以及处理储存的数据和储存的系数尾数以便提供数字化的滤波器输出值;按照预定的算法用系数更新部件改变储存在数据存储器中的系数尾数值,以便提供经过更新的系数尾数储存在系数存储器中;以及用指数部件针对每个尾数改变滤波系数的指数,以使可以作为尾数储存的数值范围最大化。
12.根据权利要求11所述的方法,其中数据存储器可用于按浮点格式储存数据,而且尾数和指数两者都与每个储存的数据字有关。
13.根据权利要求11所述的方法,其中数字滤波引擎包括有限脉冲响应引擎。
14.根据权利要求11所述的方法,其中系数更新部件改变储存在系数存储器的系数值,以使被确定存在于所述FIR滤波引擎的输出与需要的输出之间的误差值最小化。
15.根据权利要求11所述的方法,其中用指数部件改变滤波系数指数的步骤包括用比较电路对最大的系数尾数与期望门限值进行比较,以便将每个系数尾数储存在系数存储器中;在具有最大数值的系数尾数值超过期望门限值时用右移电路按预定的位数将该系数尾数右移并且按预定的位数增加该指数;以及在具有最大数值的系数尾数值小于期望门限值时用左移电路按预定的位数将该系数尾数左移并且按预定的位数减少该指数。
16.一种对数据进行自适应滤波的方法,该方法包括下述步骤将数据储存在数据存储器中;将滤波系数的尾数按带有确定的系数指数值的块定标浮点格式储存在具有至少两节的系数存储器中,其中所述确定的系数指数值与所述的至少两节中的每一节以及储存在其中的尾数有关;用数字滤波引擎接收在数据存储器中储存的输入数据并且处理储存的数据和储存的系数尾数,以便提供数字滤波输出值;用系数更新部件依据预定的算法改变储存在数据存储器中的系数尾数值,以便将更新后的系数尾数提供给所述系数存储器中的存储空间;以及用指数部件,用于针对某个在每个所述的至少两节中具有给定长度的尾数改变滤波系数的指数,以使作为尾数按至少两节储存的值的范围最大化。
17.根据权利要求16所述的方法,其中数据存储器可用于按浮点格式储存数据,而且尾数和指数两者都与每个储存的数据字有关。
18.根据权利要求16所述的方法,其中数字滤波引擎包括有限脉冲响应引擎。
19.根据权利要求16所述的方法,其中系数更新部件改变储存在系数存储器的至少两节中的系数值,以使被确定存在于FIR滤波引擎的输出与需要的输出之间的误差值最小化。
20.根据权利要求16所述的方法,其中用指数部件改变滤波系数指数的步骤包括用比较电路对最大的系数尾数与期望门限值进行比较,以便将每个系数尾数储存在系数存储器中的每个至少两节中;在每个至少两节中数值最大的系数尾数值超过期望门限值时用右移电路按预定的位数将该系数尾数右移并且按预定的位数增加与至少两节之一相关的指数;以及在每个至少两节中数值最大的系数尾数值小于期望门限值时用左移电路按预定的位数将该系数尾数左移并且按预定的位数减少与所述至少两节之一相关的指数。
21.一种通过配置在远端用户与近端用户之间的干线连接远端用户和近端用户的电话系统,该系统包括近端接收线路,用于接收通过电话线来自远端用户的入境信号;第一声频转换器,用于将到入境信号换成可听信号;第二声频转换器,用于将近端可听信号转换成出境声频信号以便通过电话线传输;传输线路,用于将出境信号传输到远端用户;以及回声消除器,该设备配置在接收线路与传输线路之间的近端并且包括自适应滤波器,所述自适应滤波器具有一个数据存储器,用于储存数据;一个系数存储器,用于按块定标浮点格式储存滤波系数的尾数,其中所述按块定标浮点格式带有确定的系数指数值;一个数字滤波引擎,用于接收在所述数据存储器中储存的输入数据,并处理所述的储存数据和所述的储存系数尾数以便提供数字滤波输出值;一个系数更新部件,用于依据预定的算法改变储存在所述数据存储器中的所述系数尾数值,以便将更新后的系数尾数提供给所述系数存储器中的存储空间;以及一个指数部件,用于针对某个尾数改变滤波系数的指数,以使可以作为尾数储存的值的范围最大化。
22.根据权利要求21所述的系统,其中所述数据存储器可用于按浮点格式储存数据,而且尾数和指数两者都与每个储存的数据字有关。
23.根据权利要求21所述的系统,其中所述数字滤波引擎包括有限脉冲响应引擎。
24.根据权利要求21所述的系统,其中所述系数更新部件改变储存在所述系数存储器中的所述系数值,以使被确定存在于所述FIR滤波引擎的输出与需要的输出之间的误差值最小化。
25.根据权利要求21所述的系统,其中所述指数部件包括一个比较电路,该电路将最大的系数尾数与每个储存在所述系数存储器中的系数尾数的期望门限值进行比较;一个右移电路,该电路在数值最大的系数尾数值超过期望门限值时按预定的位数将该系数尾数右移并且按预定的位数增加其指数;以及一个左移电路,该电路在数值最大的系数尾数值小于期望门限值时按预定的位数将该系数尾数左移并且按预定的位数减少其指数。
26.一种对讲机系统,该系统包括接收线路,用于接收通过用户线来自远端用户的入境信号;第一声频转换器,用于将到入境信号转换成可听信号;第二声频转换器,用于将所述第一声频转换器附近的可听信号转换成出境声频信号以便通过用户线传输;传输线路,用于将出境声频信号传输到远端用户;以及回声消除器,该设备配置在接收线路与传输线路之间并且包括自适应滤波器,所述自适应滤波器具有一个数据存储器,用于储存数据;一个系数存储器,用于按块定标浮点格式储存滤波系数的尾数,其中所述块定标浮点格式带有确定的系数指数值;一个数字滤波引擎,用于接收在所述数据存储器中储存的输入数据,并处理所述的储存数据和所述的储存系数尾数以便提供数字滤波输出值;一个系数更新部件,用于依据预定的算法改变储存在所述数据存储器中的所述系数尾数值,以便将更新后的系数尾数提供给所述系数存储器中的存储空间;以及一个指数部件,用于针对某个尾数改变滤波系数的指数,以使可以作为尾数储存的值的范围最大化。
27.根据权利要求26所述的对讲机系统,其中所述数据存储器可用于按浮点格式储存数据,而且尾数和指数两者都与每个储存的数据字有关。
28.根据权利要求26所述的对讲机系统,其中所述数字滤波引擎包括有限脉冲响应引擎。
29.根据权利要求26所述的对讲机系统,其中所述系数更新部件改变储存在所述系数存储器中的所述系数值,以使被确定存在于所述FIR滤波引擎的输出与需要的输出之间的误差值最小化。
30.根据权利要求26所述的对讲机系统,其中所述指数部件包括一个比较电路,该电路将最大的系数尾数与每个储存在所述系数存储器中的系数尾数的期望门限值进行比较;一个右移电路,该电路在数值最大的系数尾数值超过期望门限值时按预定的位数将该系数尾数右移并且按预定的位数增加其指数;以及一个左移电路,该电路在数值最大的系数尾数值小于期望门限值时按预定的位数将该系数尾数左移并且按预定的位数减少其指数。
31.一种回声消除器,该设备配置在接收线路与传输线路之间并且包括自适应滤波器,所述自适应滤波器具有一个数据存储器,用于储存数据;一个系数存储器,用于按块定标浮点格式储存滤波系数的尾数,其中所述块定标浮点格式带有确定的系数指数值;一个数字滤波引擎,用于接收在所述数据存储器中储存的输入数据,并处理所述的储存数据和所述的储存系数尾数以便提供数字滤波输出值;一个系数更新部件,用于依据预定的算法改变储存在所述数据存储器中的所述系数尾数值,以便将更新后的系数尾数提供给所述系数存储器中的存储空间;以及一个指数部件,用于针对某个尾数改变滤波系数的指数,以使可以作为尾数储存的值的范围最大化。
全文摘要
本发明提供一种自适应滤波器,该滤波器具有储存在数据随机存取存储器(RAM)74中的定点或浮点数据和储存在系数随机存取存储器84中的块定标浮点系数。这些数据和系数被使用在利用乘法器和累加器提供卷积结果的滤波算法中。系数的更新方法是将数据随机存取存储器中的值与误差值相乘的结果加到旧系数值上。对系数随机存取存储器中所有的系数值都进行这种更新计算。误差值表示滤波器的输出与近端采样的回声信号之间的差值。这些新系数将被检验,如果有的系数在期望门限值以上或者所有的系数都在门限值以下,那么所有系数的尾数将被移位而且将在下一个滤波周期中调整指数。
文档编号H04B3/23GK1249081SQ98801778
公开日2000年3月29日 申请日期1998年7月2日 优先权日1997年8月1日
发明者曼蒂·卡得哈, 薛恩·麦卡斯林, 约翰·卡马格纳, 德塔特雷亚·纳瑞安卡都·海姆库马 申请人:塞瑞斯逻辑公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1