示波器及其支持多插值倍数的滤波方法、系统、数字芯片与流程

文档序号:13212391阅读:282来源:国知局
示波器及其支持多插值倍数的滤波方法、系统、数字芯片与流程

本发明涉及数字示波器领域,具体涉及示波器及其支持多插值倍数的滤波方法、系统、数字芯片。



背景技术:

在数字示波器的实现架构中,通常采用可编程逻辑器件,例如fpga,来实现对adc(模数转换器)输出数据的采集、存储以及显示等处理。在小时基下,当示波器水平方向每个网格对应时间内所采集的点数小于网格水平像素点的时候,就需要对所采集的原始数据进行插值滤波处理,使点数等于或者大于网格像素点数,从而使显示出来的波形能够连续。对于这种插值处理,一般采取多相滤波结构来实现;不同的时基,对应不同的插值倍数,因此,对应不同的插值滤波器的设计和实现。由于可编程逻辑器件内部资源有限,因此应尽量减少滤波器系数的存储空间以及优化滤波实现过程,从而达到节省成本的目的。

现有技术方案:如图1所示,现有技术方案在小时基下实现插值滤波时,不同的时基各自对应一套独立的滤波器系数,所有的滤波器系数按顺序存储在ram或者rom中。一般的数字示波器中,小时基下需要支持的插值倍数有2、4、5、8、10、20、25、40、50、100、200等几种,滤波器系数占用的地址空间等于相应的插值倍数,例如,2倍插值时,将占用两个地址空间;4倍插值时,将占用四个地址空间,以此类推;每个地址空间的数据位宽与滤波器的阶数相关。现有技术方案中各插值倍数下都会单独设计一套滤波器系数,因此,总的存储空间就是所有的插值倍数加在一起。例如,需要支持的插值倍数为2、4、5、8、10、20、25、40、50、100、200时,需要的存储空间(地址范围)就等于2+4+5+......+200=464,假设滤波器多相分解后的子滤波器阶数为16,每个滤波器系数量化为16bit,那么需要的总存储空间就是464*16*16bit,如图1所示。

在现有方案中,由于每一种插值倍数都单独对应一套滤波器系数,因此,需要设计多个插值滤波器,同时需要较多的存储空间来存储滤波器系数,尤其是在需要支持较大的插值倍数时(比如插值倍数大于1000),会消耗过多的存储资源,不利于提高系统的集成度以及降低产品的成本。

因此,现有技术有待改进和提高。



技术实现要素:

本申请提供一种示波器及其支持多插值倍数的滤波方法、系统、数字芯片,通过复用一个多相滤波器来支持多个插值倍数的滤波,以节省存储空间。

根据本发明的第一方面,本发明提供一种支持多插值倍数的滤波方法,包括如下步骤:

滤波器系数提取步骤,存储预设插值倍数对应的多组滤波器系数;根据预设插值倍数与当前的插值倍数之间的倍数关系,在所述多组滤波器系数中找出当前插值倍数对应的滤波器系数;其中,所述预设插值倍数为多相滤波器支持的多个插值倍数的公倍数;

插值滤波步骤,根据滤波控制模块得到的当前插值倍数对应的滤波器系数进行插值滤波。

所述的支持多插值倍数的滤波方法,其中,所述滤波器系数提取步骤具体包括:

预先存储预设插值倍数对应的多组滤波器系数;每组滤波器系数均包括多个分支滤波器系数;

根据预设插值倍数与当前的插值倍数之间的倍数关系,得到差值递增量,从原始点开始每次以差值递增量作为增量从所述多个滤波器系数中提取当前插值倍数对应的滤波器系数,并将得到的滤波器系数输出给多相滤波器。

所述的支持多插值倍数的滤波方法,其中,所述插值滤波步骤具体包括:根据滤波控制器输出的滤波器系数,将输入的数字序列中的多个点对应与滤波器系数的各个分支滤波器系数相乘,并将各乘积累加以得到一个输出结果。

根据本发明的第二方面,本发明提供一种支持多插值倍数的滤波系统,其中,包括:

滤波控制模块,用于存储预设插值倍数对应的多组滤波器系数;根据预设插值倍数与当前的插值倍数之间的倍数关系,在所述多组滤波器系数中找出当前插值倍数对应的滤波器系数;其中,所述预设插值倍数为多相滤波器支持的多个插值倍数的公倍数;

多相滤波器,用于根据滤波控制模块得到的当前插值倍数对应的滤波器系数进行插值滤波。

所述的支持多插值倍数的滤波系统,其中,所述滤波控制模块包括:

存储单元,用于存储预设插值倍数对应的多组滤波器系数;每组滤波器系数均包括多个分支滤波器系数;

滤波控制器,用于根据预设插值倍数与当前的插值倍数之间的倍数关系,得到差值递增量,从原始采样点对应的第一组滤波器系数开始每次以差值递增量作为增量从所述多组滤波器系数中提取当前插值倍数对应的滤波器系数,并将得到的滤波器系数输出给多相滤波器。

所述的支持多插值倍数的滤波系统,其中,所述多相滤波器,具体用于根据滤波控制器输出的滤波器系数,将输入的数字序列中的多个点对应与滤波器系数的各个分支滤波器系数相乘,并将各乘积累加以得到一个输出结果。

所述的支持多插值倍数的滤波系统,其中,所述差值递增量为预设插值倍数与当前插值倍数之间的倍数。

所述的支持多插值倍数的滤波系统,其中,所述预设插值倍数为多相滤波器支持的多个插值倍数的最小公倍数。

根据本发明的第三方面,本发明提供一种数字芯片,其中,包括:

滤波控制模块,用于存储预设插值倍数对应的多组滤波器系数;根据预设插值倍数与当前的插值倍数之间的倍数关系,在所述多组滤波器系数中找出当前插值倍数对应的滤波器系数;其中,所述预设插值倍数为多相滤波器支持的多个插值倍数的公倍数;

多相滤波器,用于根据滤波控制模块得到的当前插值倍数对应的滤波器系数进行插值滤波。

根据本发明的第四方面,本发明提供一种示波器,其中,包括如上所述的支持多插值倍数的滤波系统,或者包括如上所述的数字芯片。

本发明的有益效果:根据插值和多相滤波的原理,利用插值倍数之间存在的倍数关系,通过复用滤波器系数来减少需要的滤波器系数,从而达到节省存储空间的目的;同时,减少了设计不同插值滤波器的工作量。

附图说明

图1为现有技术中多个插值倍数对应的滤波器系数的存储结构示意图;

图2为本发明提供的支持多插值倍数的滤波系统的一实施例的结构框图;

图3为本发明提供的支持多插值倍数的滤波系统的一实施例的具体结构框图;

图4为本发明提供的支持多插值倍数的滤波系统中,滤波器系数的存储结构示意图;

图5为2倍插值时原始点和插值点的分布图;

图6为4倍插值时原始点和插值点的分布图;

图7为8倍插值时原始点和插值点的分布图;

图8为本发明提供的支持多插值倍数的滤波方法的流程图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。

本发明根据插值和多相滤波的原理,利用插值倍数之间可能存在的倍数关系,通过复用滤波器系数来减少需要的滤波器系数,从而达到节省存储空间的目的;同时,减少了设计不同插值滤波器的工作量。极限情况下,只需要设计一个插值滤波器就可以应对各种小时基下可能存在的插值倍数。

下面通过具体实施例进行说明。本发明提供一种数字示波器,其包括支持多插值倍数的滤波系统,请参阅图2和图3,所述滤波系统包括:滤波控制模块10和多相滤波器20。

滤波控制模块10,用于存储预设插值倍数对应的多组滤波器系数;根据预设插值倍数与当前的插值倍数之间的倍数关系,在所述多组滤波器系数中找出当前插值倍数对应的一组或多组滤波器系数;其中,所述预设插值倍数为多相滤波器支持的多个插值倍数的公倍数。为最大限度节省存储空间,本实施例中,预设插值倍数为多相滤波器支持的多个插值倍数的最小公倍数。

多相滤波器20,用于根据滤波控制模块10得到的当前插值倍数对应的滤波器系数进行插值滤波。多相滤波器20包括多个分支滤波器,如图4所示,本实施例包括200个分支滤波器。各个分支滤波器的阶数为m+1,m为15;即,一个分支滤波器对应一组滤波器系数,一个分支滤波器包括m+1个分支滤波器系数。多相滤波器20根据接收的滤波器系数,将输入的数字序列(数字信号)中的多个点(数据)对应与滤波器系数的各个分支滤波器系数相乘,并将各乘积累加以得到一个输出结果。

进一步的,滤波控制模块10包括:滤波控制器110、存储单元120和数据存取控制器130。

存储单元120,用于存储预设插值倍数对应的多组滤波器系数。存储单元120可以是随机存储器(ram)或者只读存储器(rom)。

滤波控制器110,用于根据预设插值倍数与当前的插值倍数之间的倍数关系,得到差值递增量,从原始采样点对应的第一组滤波器系数开始每次以差值递增量作为增量从所述多组滤波器系数中提取当前插值倍数对应的一组或多组滤波器系数,并将得到的滤波器系数通过存储单元120输出给多相滤波器。本实施例中,差值递增量为预设插值倍数与当前插值倍数之间的倍数。滤波控制器110还用于通过数据存取控制器130来控制多相滤波器的数据的输入节奏(频率)。

数据存取控制器130,用于根据时钟周期在滤波控制器110的控制下,接收模数转换器输出的数字信号(adc数据),并按预设速率输出给多相滤波器20。

本发明利用插值倍数之间存在的倍数关系,不同的插值倍数通过复用一个多相滤波器来实现,减少了需要存储的滤波器系数,从而达到节省存储空间的目的;同时,减少了设计不同插值滤波器的工作量。

复用插值多相滤波器系数的原理可以通过一个相位累加器来加以说明,如图5、6、7所示。对于通过任意采样率采样得到的任意两个相邻的原始采样点(原始点),可以认为这两个点之间的相位差为2π,当在这两个点之间进行整数倍插值时,那么插值点所在的相位将均匀分布在[0,2π]之间。当不同的插值倍数彼此之间存在整数倍数关系时,那么它们的插值点在[0,2π]上的相位分布必然会有重合的地方。例如,以最简单的2倍插值(图5)和4倍插值(图6)为例:2倍插值时,插值点的相位为π(n倍插值对应n-1个插值点);4倍插值时,3个插值点的相位分别为π/2、π和3π/2,因此,2倍插值时的插值点与4倍插值时的第二个插值点的相位是重合的,因此,计算2倍插值时的插值点就可以使用4倍插值时第二个插值点对应的滤波器系数;同理,4倍插值时的插值点滤波系数也可以复用8倍插值时的对应插值点滤波器系数。对于原始采样点,其总是位于相位为零的位置上,也就是图中的实心黑圆点(插值点用空心圆点表示)。

因此,当不同时基下各插值倍数存在一定的倍数关系时,即可只按最大插值倍数来设计一个滤波器,而不需要单独设计各个滤波器。本实施例中,所述预设插值倍数为200,即可覆盖2、4、5、8、10、20、25、40、50、100、200这几种插值倍数。这时候在[0,2π]的相位圆上等间隔的分布200个点;而其他插值倍数下的全部插值点都可以在这200个点中有规律的找到,从而可以复用相应点上的滤波器系数。这时候,只需要存储200插值倍数时对应的滤波器系数,相对于现有技术(图1)中的方案,可以节省一半以上的存储空间,如图4所示。

以需要支持的插值倍数为2、4、5、8、10、20、25、40、50、100、200为例,预先在存储单元120中存储一个滤波器系数表,如图4所示,所述滤波器系数表包括了预设插值倍数(200倍插值)对应的多组(200组)滤波器系数。每组滤波器系数包括16个分支滤波器系数。各组滤波器系数存储的地址根据相位的递增而递增。预先在存储单元120中设置一个支持的各个插值倍数对应的地址递增量表,如下表一所示:

表一给出了各种插值倍数下,从同一个滤波器系数表中读取各插值点对应滤波器系数时的地址递增值,各插值倍数下,原始点对应的第一组滤波器系数地址均为零地址。根据插值倍数,以地址递增量为增量在滤波器系数表中读取对应地址的滤波器系数,即可得到对应插值倍数下的一组或多组滤波器系数。

预设插值倍数即为最大插值倍数,以200为例,假设在某个时基下,当前的插值倍数为4,也就是每两个原始采样点之间需要插入3个点。滤波控制器110根据表一,插值倍数为4时,产生该插值倍数下的滤波器系数表读取地址,4倍插值时,原始点和3个插值点对应的滤波器系数地址分别为0,50,100,150。每个地址包含有(m+1)个滤波器系数,在时钟信号的控制下,这(m+1)个滤波器系数与数据存取控制器130获取的输入序列x(n)中的(m+1)个点对应相乘,各乘积累加之后得到一个输出点。本实施例中,多相滤波器20采取的是分时复用一路分支滤波器的结构,图3中的输入序列x(n)和输出序列y(n)均是串行的。在时钟信号控制下,每个时钟可以产生一个插值滤波输出点y(n);也可以由滤波控制器110以及数据存取控制器130来控制实现预设数量(p)个时钟周期输出一个点。当插值倍数为n时,如果每个时钟输出一个点,那么数据存取控制器130控制输入序列x(n)每n个时钟更新一个点;如果要求每预设数量p个时钟周期输出一个点,那么数据存取控制器110控制输入序列x(n)每p×n个时钟周期更新一个点。例如,4倍插值时,如果每个时钟产生一个输出点,那么每4个时钟周期x(n)就输出一个新的原始点。当两原始点之间所有插值点输出完毕时,滤波器系数读取地址返回0地址,并重复上述过程。0地址为原始点对应的滤波器系数的存储地址。预设数量为正整数。即,所示滤波系统采用的滤波方法可以总结为以下几个步骤,如图8所示:

s10、滤波器系数提取步骤:滤波控制模块10存储预设插值倍数对应的多组滤波器系数;根据预设插值倍数与当前的插值倍数之间的倍数关系,在所述多组滤波器系数中找出当前插值倍数对应的滤波器系数;其中,所述预设插值倍数为多相滤波器支持的多个插值倍数的公倍数。

具体的,所述步骤s10包括:

s110、预先在存储单元120中存储预设插值倍数对应的多组滤波器系数。

s120、滤波控制器110根据预设插值倍数与当前的插值倍数之间的倍数关系,得到差值递增量,从原始采样点对应的第一组滤波器系数开始每次以差值递增量作为增量从所述多组滤波器系数中提取当前插值倍数对应的滤波器系数,并将得到的滤波器系数输出给多相滤波器。

s20、插值滤波步骤:多项滤波器20根据滤波控制模块得到的当前插值倍数对应的滤波器系数进行插值滤波。

进一步的,所述步骤s110具体包括:预先在存储单元120中存储一个滤波器系数表和地址递增量对应表,该滤波器系数表包括预设插值倍数对应的多组滤波器系数。地址递增量对应表包括每个支持的插值倍数对应的地址递增量,从零地址开始以地址递增量进行递增提取对应地址的滤波器系数组,直到最后一个插值点对应的滤波器系数的地址为止,即可得到对应插值倍数下所有插值点对应的滤波器系数。

步骤s120具体包括:

s121、滤波控制器110根据当前的插值倍数,产生原始点的滤波器系数表读取首地址,以从存储单元120中获取原始点对应的m+1个分支滤波器系数。

s122、存储单元120根据所述读取首地址输出m+1个分支滤波器系数给多相滤波器20。

s20、多相滤波器20根据接收的滤波器系数,将输入的数字序列对应与滤波器系数的各个分支滤波器系数相乘,并将各乘积累加以得到一个输出结果。

步骤s20之后,还包括:

s123、判断两原始点之间的所有插值点是否已经输出,若是,则数据存取控制器110更新一个原始点;否则不更新原始点。

s124、滤波控制器110根据预设插值倍数与当前的插值倍数之间的倍数关系,得到地址递增量,在原始点的地址上增加地址递增量得到第一个插值点的滤波器系数表读取首地址,并返回步骤s122。

以此循环,对两个原始点之间插值滤波完毕后,再进行下一轮插值滤波。

本发明提供的滤波系统,可设置在数字芯片中,如现场可编程门阵列(fpga)中。

可见,利用本发明提出的滤波系统可以较大的节省滤波器系数存储空间,提高资源利用率,有利于提高系统集成度和降低硬件成本。

以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

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