用于自适应滤波器的系统和方法与流程

文档序号:17749086发布日期:2019-05-24 20:50阅读:219来源:国知局
用于自适应滤波器的系统和方法与流程

技术领域

本发明涉及用于滤波的系统和方法,尤其涉及一种用于自适应滤波器的系统和方法。



背景技术:

自适应滤波用于多种情况,包括功率放大器预失真系统。预失真是提高功率放大器的线性度的技术,例如在电信系统中。非线性的功率放大器导致对其它无线电信道的干扰。预失真电路对功率放大器的增益和相位的特性逆向建模,以产生线性更佳的系统。将逆向失真引入功率放大器的输入,抵消放大器中的非线性。自适应滤波器的特性可以由于功率放大器的类型或者功率放大器的子系统的架构的不同而变化。

自适应均衡器提供反馈,例如,用于均衡跨频率带宽的信道增益以补偿在不同频率的不同的增益。自适应滤波器也可用于其它类型的自适应系统中的干扰计算。自适应滤波器基于误差信号的优化算法自调整其传递函数。在一个示例中,自适应过程使用成本函数作为优化算法的输入,其为滤波器的最优性能标准。该算法确定如何修正滤波器传递函数以将下次迭代的成本最小化。



技术实现要素:

用于训练自适应滤波器的方法实施例包括:设备的处理器接收输入信号和训练参考信号,以及根据所述输入信号、所述训练参考信号和滤波器类型,确定相关矩阵。所述方法还包括根据所述相关矩阵确定多个系数,以及根据所述多个系数调整所述自适应滤波器。该方法进一步包括根据所述相关矩阵确定多个系数以及根据所述多个系数调整所述自适应滤波器。

用于训练自适应滤波器的方法实施例包括:设备的处理器接收输入信号和训练参考信号,以及根据所述输入信号和所述训练参考信号确定三角矩阵。所述方法还包括存储所述三角矩阵,以及根据所述三角矩阵确定多个系数。此外,所述方法包括根据所述多个系数调整所述自适应滤波器。

计算机实施例包括处理器以及存储有由所述处理器执行的程序的计算机可读存储介质。所述程序包括指令用于接收输入信号和训练参考信号,以及根据所述输入信号、所述训练参考信号和滤波器类型确定相关矩阵。所述程序还包括指令,用于根据所述相关矩阵确定多个系数以及根据多所述个系数调整自适应滤波器。

为了使后续本发明的详细描述可以更好地被理解,前述内容仅粗略地概述了本发明实施例的特征。本发明实施例的另外的特征以及优点将在下文中予以描述,它们形成本发明的主题。本领域技术人员应当理解,所公开的概念和具体实施例可容易地被用作修改或设计用于实现与本发明相同的目的的其它结构或程序的基础。本领域技术人员还应当意识到,这样的等效结构并不脱离本发明的精神和范围。

附图说明

为了更完整地理解本及其优点,现结合附图并参照以下描述,其中:

图1示出了用于自适应滤波器的系统实施例;

图2示出了用于自适应滤波的方法实施例的流程图;

图3示出了用于自适应滤波的方法实施例的另一流程图;以及

图4示出了通用计算机系统实施例的框图。

除非另有说明,相应的数字和符号在不同的图中通常指代相应的部分。所画附图用于清楚地说明实施例的相关方面,并不必要按比例绘制。

具体实施例

首先应当理解,尽管下面提供了一个或多个实施例的示例性实现方式,所公开的系统和/或方法可以利用任意数量的技术来实现,无论当前是否已知或存在。本公开不应以任何方式被限制于以下示出的示例性实现方式、附图、以及技术,包括这里所示出的以及所描述的示例性设计以及实现方式,而是可以在本发明的范围以及其等同物的全部范围内进行修改。

一实施例利用灵活的自适应架构来以不同的方式实现收敛,以及迅速适应不同类型的训练目标。常见的硬件架构可以用于多种训练算法,如最小二乘(LS)-GIVEN、最小二乘QR分解(LS-QRD)、QR分解递归最小二乘(QRD-RLS)或(QRD)、以及最小均方(LMS)。可配置参数包括训练算法、滤波器类型、矩阵大小、用于相关矩阵计算的样本数、用于基本三角旋转矩阵计算的相关矩阵(相关多个U向量或单个U向量)中的行数、具有遗忘因子λ1、λ2、以及λ3的多层自适应、系数更新参数μ、以及正则因子α。

图1示出了用于自适应滤波器训练的系统100。向量引擎104、旋转引擎106、以及系数引擎110对于LS-GIVEN、LS-QRD、以及QRD滤波器类型是通用的。相关矩阵引擎102和三角矩阵引擎108是可编程的,以方便LS-GIVEN、LS-QRD、QRD和LMS架构。

相关矩阵引擎102生成U向量和相关矩阵Rxd。在一个示例中,U向量由输入信号x组成,当使用直接训练时,输入信号x是预致动器模型的输出,当使用非直接训练时,输入信号x是装置的输出。用于训练输入U向量的一般公式是输入信号的函数,并由下式给出:

U=f(x0,x1,...,xi)

其中,i表示训练模型参数的总数。在一般情况下,第k个相关矩阵由递归关系式定义:

是第(k-1)个相关矩阵,λ1是矩阵Rxd的遗忘因子,以及是在第k个相关矩阵块的基本相关矩阵。相关矩阵是由相关矩阵UH×U以及交叉相关矩阵向量UH×d组成,其中,d是训练参考信号。即:

U向量的相关矩阵被重命名为:

Ru=[UH×U]M×M+αIM

可编程的正则因子α控制矩阵病态。U向量矩阵由下式给出:

M是系数的数量,上标i是第k个相关矩阵中的第i个样本,N是用于相关矩阵计算的样本数。用于Rxd矩阵计算的样本数N可以是可编程的。交叉相关向量U和d由下式给出:

Rd=[UH×d]N×1

其中,d是训练参考信号。在直接学习算法中,d是致动器输入信号与反馈信号之间的误差信号。对于间接学习,d为致动器输出信号,由下式给出:

对于QRD和LMS算法,相关矩阵等于U向量矩阵和d向量,由下式给出:

向量引擎104为三角矩阵引擎108计算对角R元素以及为旋转引擎106计算旋转矩阵Gn。对于第n个旋转,旋转矩阵Gn被定义为:

其中,cn由下式给出:

以及sn由下式给出:

然后,Rud矩阵的对角元素由下式计算:

旋转引擎106计算三角矩阵Rud中的剩余元素。附加元素包括和附加元素可由下式获得:

三角矩阵引擎108实现了三角矩阵Rud。三角矩阵引擎存储中间的以及最终的三角矩阵结果。第j个一般递归三角矩阵由下式给出:

其中,是基本三角矩阵。基本三角矩阵由下式表示:

初始的基本三角矩阵基于过滤器类型进行配置。对于LS-GIVEN,初始的三角矩阵等于相关矩阵在LS-GIVEN的旋转中,旋转在全相关矩阵上执行。在LS-QRD和QRD中,基本三角矩阵由下式给出:

对于QRD或LS-QRD,旋转在相关矩阵内的单排或块行上执行。旋转i次后,三角矩阵变为:

对于LMS配置,不使用三角矩阵。三角矩阵引擎块108可被禁用,并且用于存储三角矩阵元素的存储器可被分配用于扩展相关矩阵的大小。

系数引擎110执行回代,并更新系数。系数计算和更新基于矩阵更新配置。这可以基于所选算法以及训练系统要求在单个U向量、基本块、或若干基本块上执行。下面的表1示出了多种矩阵更新配置。

表1

对于LS-GIVEN,可以使用单个基本块相关矩阵或多个基本块相关矩阵。无论对于是单个基本块相关矩阵还是多个基本块相关矩阵,三角矩阵可以是一个基本旋转矩阵或多个基本旋转矩阵。在一个基本旋转矩阵中,矩阵旋转和系数计算是基于基本相关矩阵和基本三角矩阵。在基本旋转中,λ1=0,λ2=1,λ3=0。对于多个基本旋转矩阵,计算是基于该基本相关矩阵和多个基本三角矩阵,其中,λ1=0,λ2=1,λ3=(0,1]。当多个基本块被用于相关矩阵时,一个基本旋转矩阵或多个基本旋转矩阵可以用于三角矩阵。对于一个基本旋转矩阵作为三角矩阵,矩阵旋转和系数计算是基于多个基本相关矩阵,和该基本三角矩阵,其中λ1=(0,1],λ2=1,λ3=0。对于多个基本旋转矩阵,矩阵旋转和系数计算是基于多个基本相关矩阵,和多个基本三角矩阵,并且λ1=(0,1],λ2=1,λ3=(0,1]。

在用LS-QRD滤波器的一个示例中,相关矩阵可以是局部基本块矩阵、单个基本块矩阵、或多个基本块矩阵。三角矩阵可以是一个基本旋转矩阵或多个基本旋转矩阵。可能有相关矩阵和三角矩阵的任意组合。当局部基本块相关矩阵与一个基本旋转三角矩阵被一起使用时,矩阵旋转和系数计算是基于一个基本相关矩阵或多个基本相关矩阵内的若干行和该基本三角矩阵,其中,λ1=0,λ2=(0,1],λ3=0。在另一方面,当一个部分基本块相关矩阵与多个基本旋转三角矩阵被一起使用时,矩阵和旋转系数计算是基于一个基本相关矩阵或多个基本相关矩阵内的若干个行和多个基本三角矩阵,其中,λ1=0,λ2=(0,1],λ3=(0,1]。另外,当单个基本块相关矩阵与一个基本旋转三角矩阵被一起使用时,矩阵旋转和系数计算是基于该基本相关矩阵内的全部行和该基本三角矩阵,其中,λ1=0,λ2=(0,1],λ3=0。当单个基本块相关矩阵与多个基本旋转矩阵被一起使用时,矩阵旋转和系数计算是基于一个基本相关矩阵的全部行和多个基本旋转矩阵。其中,λ1=0,λ2=(0,1],λ3=(0,1]。此外,当多个基本块相关矩阵与一个基本旋转三角矩阵一起使用时,矩阵旋转和系数计算是基于多个基本相关矩阵的全部行和一个基本三角矩阵,其中,λ1=(0,1],λ2=(0,1],λ3=0。当多个基本块相关矩阵与多个基本旋转三角矩阵被一起使用时,矩阵旋转和系数计算是基于多个基本相关矩阵的全部行和多个基本三角矩阵,其中λ1=(0,1],λ2=(0,1],λ3=(0,1]。

在另一示例中,使用了QRD滤波器,并且相关矩阵是单个U向量矩阵。三角矩阵可以是一个基本旋转矩阵或多个基本旋转矩阵。当一个基本旋转矩阵被用作三角矩阵时,矩阵旋转和系数计算是基于多个基本相关矩阵的单行和一个基本三角矩阵,其中,λ1=0,λ2=(0,1],λ3=0。在另一方面,当多个基本旋转矩阵被使用时,矩阵旋转和系数计算是基于多个基本相关矩阵的单行和多个基本三角矩阵,其中,λ1=0,λ2=(0,1],λ3=(0,1]。

对于LMS滤波器,相关矩阵可以是单个U向量矩阵或单个基本块矩阵。没有用于LMS的三角矩阵。当相关矩阵是单个的U向量时,系数计算和更新是基于单个基本相关矩阵的单个U向量用于逐个样本更新,其中,λ1=0,并且λ2和λ3不适用。当单个基本块相关矩阵被使用时,一些或全部单个基本相关矩阵内的U向量被用于计算和更新,采用基于块的更新,其中,λ1=0,并且λ2和λ3不适用。

图2示出了矩阵和系数更新的关系。用于矩阵旋转的相关矩阵的行数取决于训练算法。对于LS-GIVEN,相关矩阵内的全部行被用于矩阵旋转,而对于LS-QRD或QRD,单个行或块行可被用于矩阵旋转,这取决于配置。另一方面,对于LMS,不使用三角矩阵,并且系数更新可基于单个或块U向量。可以使用多种不同的步长大小。较小的步较慢,但比较大的步有更好的表现。多步长和多矩阵大小可以自适应使用。

在块122中,生成相关矩阵。如等式(1)中所定义λ1是用于相关矩阵计算的遗忘因子。当λ1为零时,当前相关矩阵Rxdi计算时不将自身作为先前相关矩阵信息的基础。在给定时间i,可独立计算相关矩阵Rxdi或基于来自由遗忘因子加权的先前迭代的部分相关矩阵信息进行计算。

然后,在块124中,λ2是用于单个三角矩阵的遗忘因子,以及λ3是三角矩阵之间的遗忘因子。在给定时间,可独立计算三角形矩阵Rxdi或基于由相应遗忘因子值加权的先前三角矩阵Rxdi-1的部分信息进行计算。

最后,在块126中更新系数。在块140中,系数1从三角矩阵计算得到。需注意的是,μ是系数遗忘因子。在给定的时间i(或样本),系数可被独立地计算或基于先前迭代的加权系数进行计算。根据不同的配置,在当前迭代中可不将该系数用于致动器,即在进行系数更新之前可以发生多次迭代。

图3示出了用于自适应滤波方法的流程图150。最初,在步骤152中,生成U向量。在一个示例中,使用直接训练,并且U向量由从致动器输出的输入信号x组成的。或者,当使用间接训练时,U向量由目标设备的输出组成。用于训练输入U向量的通用方程由下式给出:

U=f(x0,x1,...,xi)

其中,i为整数,表示训练模型参数的数量。

接着,在步骤154中,生成相关矩阵。在一般情况下,第k个相关矩阵由递归关系式定义:

是第(k-1)个相关矩阵,λ1是矩阵Rxd的遗忘因子,以及是在第k个相关矩阵块的基本相关矩阵。相关矩阵是由相关矩阵UH×U和交叉相关向量UH×d组成的。

然后,在步骤156中,计算旋转矩阵Gn。对于第n次转动,旋转矩阵Gn被定义为:

其中,cn由下式给出:

以及sn由下式给出:

在步骤158中,计算三角矩阵的对角元素。例如,三角矩阵的对角元素可以根据下式计算:

在步骤160中计算三角矩阵的其余元素。附加元素包括和例如通过下式计算这些附加元素:

接着,在步骤164中,实现三角矩阵。三角矩阵引擎存储中间和最终三角矩阵结果。初始基本三角矩阵基于过滤器类型进行配置。对于LS-GIVEN,初始的三角矩阵等于相关矩阵另一方面,在全部相关矩阵上进行LS-GIVEN的旋转。在使用LS-QRD和QRD的另一示例中,在相关矩阵内的单个行或块行上执行旋转。对于LMS配置,不使用三角矩阵。三角矩阵引擎块108可被禁用,并且用于存储三角矩阵元素的存储器可被分配用于扩展相关矩阵的大小。

最后,在步骤166中,执行回代和系数更新。系数计算和更新基于矩阵更新配置。这可根据所选算法和训练系统需求在单个U向量、基本块、或若干个基本块上执行。

实施例可以具有多种物理实现方式。例如,可以使用现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器、或通用计算机。这些都被认为是作为处理器的一般类别的示例。

图4示出了处理系统270的框图,处理系统270可用于实现本文所公开的设备和方法。特定设备可利用示出的所有组件或仅一部分组件,并且各个设备的集成度可能有所不同。此外,设备可包含组件的多个示例,例如,多个处理单元,处理器,存储器,发送器,接收器等。处理系统可以包括配备有一个或多个输入设备,例如,麦克风,鼠标,触摸屏,小键盘,键盘等的处理单元。此外,处理系统270可配备有一个或多个输出设备,诸如扬声器,打印机,显示器等。该处理单元可以包括连接到总线的中央处理单元(CPU)274,存储器276,大容量存储器278,视频适配器280,以及I/O接口288。

所述总线可以是各种总线架构中的任意一个或多个类型,包括存储器总线或存储器控制器,外围总线,视频总线等。CPU 274可以包括任何类型的电子数据处理器。存储器276可以包括任何类型的非临时性系统存储器,例如静态随机存取存储器(SRAM),动态随机存取存储器(DRAM),同步DRAM(SDRAM),只读存储器(ROM)以及它们的组合等。在一个实施例中,存储器可包括在启动时使用的ROM,以及在执行程序时用于存储程序及数据的DRAM。

大容量存储器278可包括任何类型的用于存储数据、程序以及其它信息并且能够使得数据、程序以及其它信息可通过总线被读取的非临时性存储装置。大容量存储器278可以包括,例如,一个或多个固态驱动器,硬盘驱动器,磁盘驱动器,光盘驱动器等。

视频适配器280以及I/O接口288提供将外部输入输出设备耦合至处理单元的接口。如图所示,输入输出设备的示例包括耦合到视频适配器的显示器以及耦合到I/O接口的鼠标/键盘/打印机。其它设备可耦合到处理单元,并且可以使用更多或者更少的接口卡。例如,可使用串行接口卡(未示出)为打印机提供串行接口。

处理单元还包括一个或多个网络接口284,网络接口284可以包括有线链路,例如以太网电缆等,和/或无线链路以访问接入节点或不同网络。网络接口284允许处理单元通过网络与远程单元通信。例如,网络接口可以经由一个或多个发送器/发送天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,处理单元被耦合到局域网或广域网,用于数据处理以及与例如其它处理单元、互联网、远程存储设备等远程设备通信。

尽管本公开提供了几个实施例,应该理解的是,所公开的系统和方法可以多种其它特定形式来体现,而不脱离本公开的精神或范围。所呈现的示例应被认为是说明性的而不是限制性的,并且其意图不应限于本文所给出的细节。例如,各种元件或组件可以组合或集成在另一系统中,或者可以省略特定特征或不予实现。

此外,在多个实施例中分离或单独描述并示出的技术、系统、子系统和方法可与其它系统、模块、技术或方法组合或集成,而不脱离本公开的范围。示出或讨论的耦合或直接耦合或相互通信等其它术语可以是间接耦合或通过一些接口、设备或中间组件通信,可为电的、机械的或其它形式的。本领域技术人员可确定和作出其它改变、替换和变更,而不脱离本公开的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1