掌桥专利:专业的专利平台
掌桥专利
首页

LMS自适应滤波器的性能测试方法和性能测试装置

文献发布时间:2023-06-19 19:30:30


LMS自适应滤波器的性能测试方法和性能测试装置

技术领域

本申请涉及滤波器性能测试技术领域,尤其涉及一种LMS自适应滤波器的性能测试方法和性能测试装置。

背景技术

自适应滤波技术在工业、军事、生物技术及医疗卫生、通信及计算机方面有非常广泛的应用。自适应滤波技术虽然应用在不相关的领域中,但它们的基本原理是相同的:用输入信号和期望信号用来计算误差,得用误差来调节滤波器系数,从而调整整个滤波过程。而区别则在于:不同的应用选取不同的输入和期望信号,以及最后选择的不同的量作为输出信号。

而对滤波器算法的性能进行全面、系统地测试是滤波器设计阶段必不可少的环节。检验滤波器性能的关键在于算法输入参数的选取,这些参数包含滤波器长度、步长、参考信号及误差信号。通常采用应用场景实地采集数据进行滤波器测试。而采用实测数据进行测试是不妥当的,主要有两个原因:一是实测数据量少,想要采集足够的测试数据所需花费的时间过长;二是实测数据不够灵活,很难获取到设定参数连续变化时的原始数据,也就不可能实现对LMS自适应滤波器的全方位测试。因此如何生产大量且符合测试要求的原始数据,简单高效的完成对滤波器性能的测试是亟待解决的问题。

发明内容

有鉴于此,本申请的目的在于提出一种LMS自适应滤波器的性能测试方法和性能测试装置,能够解决或部分解决上述技术问题。

基于上述目的,本申请的第一方面提供了一种LMS自适应滤波器的性能测试方法,包括:

根据实测数据和预定的参数构建仿真模型;

通过所述仿真模型将所述参数随机组合后生成的仿真数据发送给LMS自适应滤波器;

响应于所述LMS自适应滤波器接收仿真数据,根据LMS算法计算所述LMS自适应滤波器的输出,并记录输出信号;

根据参考信号、误差信号,以及所述输出信号,进行可视化处理,以评估所述LMS自适应滤波器的性能。

本申请的第二方面提供了一种LMS自适应滤波器的性能测试装置,包括:

建模仿真模块,被配置成:根据实测数据和预定的参数构建仿真模型,将所述参数随机组合后生成的仿真数据发送给LMS自适应滤波器。

LMS算法模块,被配置成:响应于所述LMS自适应滤波器接收仿真数据,根据LMS算法计算所述LMS自适应滤波器的输出,并记录输出信号。

可视化模块,被配置成:根据参考信号、误差信号,以及所述输出信号,进行可视化处理,以评估所述LMS自适应滤波器的性能。

从上面所述可以看出,本申请提供的LMS自适应滤波器的性能测试方法和性能测试装置,参照LMS自适应滤波器应用场景中外界环境变化导致的干扰的因素,采集少量实测数据作为仿真模型的标本,达到提高仿真数据可信度的技术效果。利用信号正弦波形公式,可以模拟生成足够多的现场应用场景中仿真数据,为测试提供大量的仿真测试样本,利用随机选取函数,对特定范围内的参数进行随机选取和组合,提高测试样本的多样性,提高了测试结果的可信度;通过参照实测数据,选定LMS自适应滤波器算法参数类型以及范围,可以有效控制测试输入,达到测试滤波器性能边界的技术效果;根据参考信号、误差信号,以及输出信号,进行可视化处理,便于清晰高效的评估LMS自适应滤波器的性能。在增加测试类型的情况下,节省了测试时间,提高了测试效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的LMS自适应滤波器的性能测试方法的流程图;

图2为本申请实施例提供的LMS自适应滤波器的性能测试方法步骤100的展开流程图;

图3为本申请实施例提供的LMS自适应滤波器的性能测试方法步骤130的展开流程图;

图4为本申请实施例提供的LMS自适应滤波器的性能测试装置的框图;

图5为基于LMS算法的自适应滤波器的结构图;

图6为本申请实施例提供的另一种实施方式的LMS自适应滤波器的性能测试方法的流程图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。

需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

相关技术中的测试方法一般采用收集实测数据检测或者通过建模仿真检测来,实测数据收集困难,还会因为应用场景的改变而重新收集,检测效率低下,而完全依靠建模仿真来完成测试,仿真数据的可信性较低,影响测试结果的可信度。

本申请提供的LMS自适应滤波器的性能测试方法,参照LMS自适应滤波器应用场景中外界环境变化导致的干扰的因素,采集少量实测数据作为仿真模型的标本,提高了仿真数据可信度。利用信号正弦波形公式模拟生成足够多的现场应用场景中仿真数据,为测试提供大量的仿真测试样本,利用随机选取函数,对特定范围内的参数进行随机选取和组合,提高测试样本的多样性,在增加测试类型的情况下,节省了测试时间,提高测试结果可信度,并通过将参考信号、误差信号,以及LMS自适应滤波器的输出信号进行可视化处理,可以清晰直观的评估LMS自适应滤波的性能,提高了测试效率。

在一些实施例中,如图1所示,一种LMS自适应滤波器的性能测试方法,包括:

步骤100,根据实测数据和预定的参数构建仿真模型。

在该步骤中,实测数据包括工作环境中的干扰噪声、传感器采集数据等数据,这些数据会根据LMS自适应滤波器应用场景的变化而不同,所以以少量实地应用场景采取的数据作为参照样本对于提高仿真数据的可信度具有重要作用,进而根据少量实测数据和预定的参数构建的LMS自适应滤波器工作环境的仿真模型具有较高的仿真性,产生的仿真数据具有很高的可信度。

步骤200,通过仿真模型将参数随机组合后生成的仿真数据发送给LMS自适应滤波器。

在该步骤中,通过C编程环境中自带的随机选取函数,对特定范围内的滤波器长度、步长、参考信号、误差信号、参考信号向量、滤波器权系数向量和传感器信号过滤系数进行随机选取和组合,形成多种多样的仿真数据,提高了测试样本的多样性,进一步的提高了测试结果的可信度。仿真模型产生仿真数据后将仿真数据传输到待检测的LMS自适应滤波器。

步骤300,响应于LMS自适应滤波器接收仿真数据,根据LMS算法计算LMS自适应滤波器的输出,并记录输出信号。

在该步骤中,LMS自适应滤波器接收到仿真模型传输过来的仿数据后,通过自身的LMS算法对仿真数据进行处理,得到对仿真数据处理后的输出信号,将其输出信号进行记录。

其中,如图2所示,在接收到仿真数据后,根据期望信号、滤波器的输出信号、参考信号和误差信号,LMS自适应滤波器首先构建目标函数:

J(n)=E[e

其中d(n)是期望信号,y(n)是滤波器的输出信号,x(n)是参考信号,e(n)是误差信号。

然后通过最小均方算法,使目标函数的值最小。根据参考信号x(n),误差信号e(n)不断调整滤波器权系数w

其中N是滤波器长度。

步骤400,根据参考信号、误差信号,以及输出信号,进行可视化处理,以评估LMS自适应滤波器的性能。

在该步骤中,将参考信号、滤波器的输出信号和误差信号放在一起进行对比,对比的结果可以通过python或matlab等编程语言进行处理并可视化,从而评估LMS自适应滤波器性能。

在一些实施例中,构建仿真模型之前,还包括根据应用场景采集一定量的实测数据;根据实测数据,选定LMS自适应滤波器的参数;其中,参数包括:滤波器长度、步长、参考信号、误差信号、参考信号向量、滤波器权系数向量和传感器信号过滤系数。

其中,实测数据包括工作环境中的干扰噪声、传感器采集数据等数据,这些数据会根据LMS自适应滤波器应用场景的变化而不同,所以以少量实地应用场景采取的数据作为参照样本对于提高仿真数据的可信度具有重要作用。然后根据实测数据选定选定LMS自适应滤波器的参数,参数及参数范围如下:

a、滤波器长度(N):正整数,取值范围为5-1000,精度为1,一般需要根据滤波器的设计要求进行设定。

b、步长(μ):正实数,不得大于

c、参考信号(xn):取值范围没有特别规定,取决于LMS自适应滤波器的float型变量的取值范围,一般取-1至1之间,精度取决于LMS自适应滤波器的最小识别精度。

d、误差信号(en):取值范围没有特别规定,取决于LMS自适应滤波器的float型变量的取值范围,一般取-1至1之间,精度取决于LMS自适应滤波器的最小识别精度。

e、参考信号向量(Xn):初始设定值为0,计算过程中取决于xn。

f、滤波器权系数向量(Wn):初始设定值为0,计算过程中取决于LMS自适应滤波器的实际情况。

在一些实施例中,如图2所示,构建仿真模型具体包括:

步骤110,响应于确定采样时间SineTime和采样次数SampTime,利用三角正弦公式sin(α*3.1415926*β*SineTime)模拟传感器采样数据,其中α为范围为-10~10的整数,β为范围为1~100的正整数。

在该步骤中,首先确定采样时间SineTime,采样时间的取值范围是0.00001-0.001s,采样次数SampTime,采样次数的取值范围是0~10000内的整数,利用三角正弦公式sin(α*3.1415926*β*SineTime)模拟传感器采样数据,其中α为范围为-10~10的整数,β为范围为1~100的正整数,通过三角正弦公式生成参考信号xn。

步骤120,利用编程语言自带math库中的随机函数random(),随机生成滤波器长度和步长。

在该步骤中,通过C编程环境中自带的math库中的随机函数random(),对特定范围内的选定参数进行随便选取和组合,提高了测试样本的多样性。

步骤130,更新参考信号向量和滤波器权系数向量。

其中,如图3所示,更新参考信号向量和滤波器权系数向量,具体包括:

步骤131,更新参考信号向量。

在该步骤中,根据采样时间获取每一采样时刻的参考信号,利用权系数的计算公式X(n)=[x(n),…,x(n-N+1)]

步骤132,更新滤波器权系数向量。

在该步骤中,将初始时刻的滤波器权系数向量W(n)=[w

在一些实施例中,计算LMS自适应滤波器的输出具体包括:根据每一运算时刻更新的参考信号向量和滤波器权系数向量,通过滤波器输出计算公式

其中,在接收到仿真数据后,根据期望信号、滤波器的输出信号、参考信号和误差信号,LMS自适应滤波器首先构建目标函数:

J(n)=E[e

其中d(n)是期望信号,y(n)是滤波器的输出信号,x(n)是参考信号,e(n)是误差信号。

然后通过最小均方算法,使目标函数的值最小。根据参考信号x(n),误差信号e(n)不断调整滤波器权系数w

其中,每一个运算时刻可根据更新的参考信号向量和滤波器权系数向量来计算最新的滤波器的输出信号。

在一些实施例中,可视化处理具体包括:将参考信号、滤波器的输出信号和误差信号进行对比分析;通过python或matlab的编程语言对对比分析后的数据进行处理并可视化。

其中,通过python或者matlab对参考信号、滤波器的输出信号、误差信号和滤波算法计算时间进行分析并可视化,以算法收敛速度及稳态误差曲线图来评估算法性能。

其中,收敛速度是指滤波器权矢量从最初的初始值向其最优解收敛的快慢程度,可认为被测滤波器算法的计算时间。

稳态误差,是指当算法进入稳态后滤波器系数与最优解之间距离的远近情况,可认为是算法收敛过程的参考信号xn、滤波器的输出信号yn及误差信号en比较。

需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

如图4所示,基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种LMS自适应滤波器的性能测试装置,包括:

建模仿真模块01,被配置成:根据实测数据和预定的参数构建仿真模型,将参数随机组合后生成的仿真数据发送给LMS自适应滤波器。

LMS算法模块02,被配置成:响应于LMS自适应滤波器接收仿真数据,根据LMS算法计算LMS自适应滤波器的输出,并记录输出信号。

可视化模块03,被配置成:根据参考信号、误差信号,以及输出信号,进行可视化处理,以评估LMS自适应滤波器的性能。

参考图5,基于LMS算法的自适应滤波器的构成如下:

滤波器:简单来讲就是使输入信号经过变化变成输出信号的模块。

性能评估:通过滤波器的输出、误差,以及在其基础上定义的其它信号判断滤波器当前是否达到设计之初预想的滤波效果。

自适应算法:依据不同的准同,选择不同的性能评估指标。以性能评估为标准,构造关于滤波器输入、输出和期望信号三者(甚至更多描述滤波器的量)之间的函数,寻找改变滤波器参数的方法,最终使滤波器性能评估达标。

如图5所示,滤波器采用FIR(有限脉冲响应)形式。其中d(n)是期望信号,y(n)是滤波器的输出信号,x(n)是参考信号,e(n)是误差信号。构造目标函数:

J(n)=E[e

然后通过最小均方算法,使得目标函数值最小。

其中,LMS算法模块根据参考信号x(n),误差信号e(n),不断地调整滤波器的权系数w

第n时刻,滤波器的输出为:

其中,N是滤波器长度,构造滤波器权系数向量W(n)和经过次级通道的参考信号向量X(n)。

上述实施例的装置用于实现前述任一实施例中相应的LMS自适应滤波器的性能测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

需要说明的是,参考图6,本申请的实施例还可以用以下方式进一步描述:

①实地应用场景采取少量的数据作为仿真模型参照样本,如现场干扰噪声、传感器采集数据等,应用场景不同而采集的数据不同。

②以实测数据为作参照,选定输入的参数及参数范围:

a、滤波器长度(N):正整数,取值范围为5-1000,精度为1,一般需要根据滤波器的设计要求进行设定。

b、步长(μ):正实数,不得大于

c、参考信号(xn):取值范围没有特别规定,取决于LMS自适应滤波器的float型变量的取值范围,一般取-1至1之间,精度取决于LMS自适应滤波器的最小识别精度。

d、误差信号(en):取值范围没有特别规定,取决于LMS自适应滤波器的float型变量的取值范围,一般取-1至1之间,精度取决于LMS自适应滤波器的最小识别精度。

e、参考信号向量(Xn):初始设定值为0,计算过程中取决于xn。

f、滤波器权系数向量(Wn):初始设定值为0,计算过程中取决于LMS自适应滤波器的实际情况。

③构建仿真模型:

a、首先确定采样时间SineTime,采样时间的取值范围是0.00001-0.001s,采样次数SampTime,采样次数的取值范围是0~10000内的整数,利用三角正弦公式sin(α*3.1415926*β*SineTime)模拟传感器采样数据,其中α为范围为-10~10的整数,β为范围为1~100的正整数,通过三角正弦公式生成参考信号xn。

b、利用编程语言自带math库中的随机函数random(),随机生成滤波器长度和步长。

c、更新参考信号向量:

根据采样时间获取每一采样时刻的参考信号,利用权系数的计算公式X(n)=[x(n),…,x(n-N+1)]

d、更新滤波器权系数向量:

将初始时刻的滤波器权系数向量W(n)=[w

④将所有参数随机组合,生成仿真数据。

⑤将生成的仿真数据输入LMS算法,计算滤波器输出,基于滤波器输出的计算公式如下:

每一个运算时刻可根据更新的参考信号向量和权系数向量来计算最新的滤波器的输出信号(yn)。

⑥循环上述步骤④~⑤,生成多组参考信号(xn)、滤波器的输出信号(yn)和误差信号(en)数据。

⑦将参考信号(xn)、滤波器的输出信号(yn)和误差信号(en)数据放在一起对比的结果,可以通过python或matlab等编程语言对数据进行处理并可视化,从而评估LMS自适应滤波器性能。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。

本申请的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术分类

06120115933890