一种数字信号固定插值倍数的线性插值方法和装置与流程

文档序号:12732940阅读:432来源:国知局
一种数字信号固定插值倍数的线性插值方法和装置与流程

本申请涉及电子仪器领域,尤其涉及一种数字信号固定插值倍数的线性插值方法和装置。



背景技术:

数字信号的线性插值是一种常用的多抽样率数字信号处理办法,通过将较短的低速数字信号序列扩展为较长的高速数字信号序列,以获得更好的时间和幅度上的分辨率和精度,广泛用于测试测量、软件定义无线电、无线通信中。例如,在数字示波器中,就提供线性插值将示波器采样并转换下来的时间分辨率较低的待处理数字信号,转换为时间分辨率较高的待处理数字信号,在屏幕上显示为波形,便于使用者进行放大以观察细节。

对于固定插值倍数的线性内插系统,传统的方法采取如图1所示的原理,要对原始数据y0、y*进行固定倍数的内插,先利用加法器进行加法运算得到Δy=y*-y0,再利用乘法器对Δy与系数ci进行乘法运算,最后再利用加法器对ci.Δy与y0进行加法运算,从而得到所需的内插值yi,其中,系数ci为可变量,由此可见,每得到一个内插值yi,需要进行一次乘法运算。

现有技术需要反复用到乘法运算,而乘法运算在软件运算中其运算量非常大、在硬件运算中消耗FPGA资源非常多,电路实现成本较高。



技术实现要素:

本申请提供一种数字信号固定插值倍数的线性插值的方法和装置,硬件实现时不使用乘法器得到每个内插值,减少耗费的FPGA资源和运算量,降低电路实现成本;软件实现时不使用乘法运算,可降低运算量,提高实时性。

根据本申请第一方面,本申请提供的一种数字信号固定插值倍数的线性插值方法,包括:先对待处理数字信号的初始数据y0、y*进行加法运算,得到Δy=y*-y0,然后根据拟插值的固定插值倍数生成待处理数字信号插值倍数数据ci,并求出ci与Δy之积ci.Δy,再对ci.Δy与y0进行加法运算,得到所需要的内插值yi=ci·Δy+y0

所述求出待处理数字信号插值倍数数据ci与Δy之积ci·Δy包括:先对Δy进行移位运算生成至少一个移位数据,再对所述至少一个移位数据进行加法运算,得出ci与Δy之积ci.Δy。

在一些实施例中,所述对Δy进行移位运算生成至少一个移位数据,再对所述至少一个移位数据进行加法运算包括:

先根据ci的值,进行至少一次移位运算,多次移位运算生成的移位数据分别存储,再读取每次移位运算生成的移位数据,进行加法运算;或

先进行一次移动n位的移位运算,移动n位过程中每移动一位生成一个移动数据并存储,n+1为待处理数字信号的位宽,再根据ci的值,有选择地读取相应移动数据进行加法运算。

在一些实施例中,所述处理器先根据ci的值,进行至少一次移位运算,其中,多次移位运算同时进行。

在一些实施例中,对于至少两个或全部ci,移位运算同时进行。

根据本申请第二方面,本申请提供的一种数字信号固定插值倍数的线性插值装置,用于电子仪器的多抽样率数字信号处理,将较短的低速待处理数字信号扩展为较长的高速待处理数字信号,包括:

存储器,用于存放程序;

处理器,执行所述程序,以用于:对待处理数字信号的初始数据y0、y*进行加法运算,得到Δy=y*-y0;根据拟插值的固定插值倍数生成待处理数字信号插值倍数数据ci,根据ci的值,对Δy进行至少一次移位运算,生成至少一个移位数据,再对所述至少一个移位数据进行加法运算,得出ci与Δy之积ci·Δy;对ci·Δy与y0进行加法运算,得到所需要的内插值yi=ci·Δy+y0

在一些实施例中,所述处理器对Δy进行至少一次移位运算,生成至少一个移位数据,再对所述至少一个移位数据进行加法运算包括:

所述处理器先根据ci的值,进行至少一次移位运算,每一次移位运算生成一个移位数据并存储,再读取每次移位运算生成的移位数据,进行加法运算;或

所述处理器先进行一次移动n位的移位运算,移动n位过程中每移动一位生成一个移动数据并存储,n+1为待处理数字信号的位宽,再根据ci的值,读取相应移动数据进行加法运算。

在一些实施例中,所述处理器先根据ci的值,进行至少一次移位运算中,多次移位运算同时进行。

在一些实施例中,对于至少两个或全部ci,移位运算同时进行。

根据本申请第三方面,本申请提供的一种数字信号固定插值倍数的线性插值装置,用于电子仪器的多抽样率待处理数字信号处理,将较短的低速待处理数字信号数字序列扩展为较长的高速待处理数字信号数字序列,包括:

第一加法器,用于接收初始数据y0、y*,并对y0、y*进行加法运算,输出Δy,Δy=y*-y0

至少一个移位寄存器,用于对Δy进行至少一次移位运算,生成至少一个移位数据,并将所述至少一个移位数据存储于存储器中;

控制器,用于接收线性插值装置输入端输入的固定插值倍数,并将其转换为待处理数字信号插值倍数数据ci,再根据ci的值,控制所述移位寄存器进行相应的移位运算,或在所述存储器内有选择地读取相应的移位数据发送至第二加法器;

存储器,用于存储所述至少一个移位数据;

至少一个第二加法器,用于对所述移位数据进行加法运算,得到ci和Δy之积;

至少一个第三加法器,用于接收所述ci和Δy之积与y0,对二者进行加法运算,得到并输出所需要的内插值yi=ci·Δy+y0

根据本申请第四方面,本申请提供的一种示波器,包括:ADC采样模块、FPGA线性插值模块、数据输出模块、CPU和显示器,所述ADC采样模块对模拟信号进行采样和模数转换为待处理数字信号,所述FPGA线性插值模块为如权利要求9所述的线性插值装置,对所述待处理数字信号进行固定倍数的线性插值,插值之后的待处理数字信号经所述数据输出模块输出至CPU,CPU对所述插值之后的待处理数字信号进行数据处理后,在显示器上显示波形。

根据本申请的第四方面,本申请提供了一种示波器,包括:ADC采样模块、FPGA线性插值模块、数据输出模块、CPU和显示器,所述ADC采样模块对模拟信号进行采样和模数转换为待处理数字信号,所述FPGA线性插值模块为上述线性插值装置,对所述待处理数字信号进行固定倍数的线性插值,插值之后的待处理数字信号经所述数据输出模块输出至CPU,CPU对所述插值之后的待处理数字信号进行数据处理后,在显示器上显示波形。

本申请的有益效果是:本申请提供的数字信号固定插值倍数的线性插值方法巧妙地通过移位运算和加法运算实现乘法运算,在软件运算时,减少耗费的运算量,加快运算速度,提高数字信号线性插值计算的实时性;在电路实现时,本申请的线性插值装置利用移位寄存器和加法器实现乘法运算,避免使用乘法器,减少耗费的FPGA资源,降低了电路的实现成本,还可以快速地进行并行运行,并行获得各线性插值,运算速度快实时性好。

附图说明

图1为现有技术的固定插值倍数的线性插值原理图;

图2为现有技术的线性插值示意图;

图3为本申请提供的一种数字信号固定插值倍数的线性插值装置结构框图;

图4为本申请提供的一种示波器结构示意图;

图5为本申请提供的数字信号固定插值倍数的线性插值方法流程图;

图6为本申请提供的另一种数字信号固定插值倍数的线性插值装置结构框图;

图7为本申请提供的一种数字信号串行固定插值倍数的线性插值方法示意图;

图8为本申请提供的另一种数字信号串行固定插值倍数的线性插值方法示意图;

图9为本申请提供的一种数字信号并行固定插值倍数的线性插值方法示意图;

图10为本申请提供的另一种数字信号并行固定插值倍数的线性插值方法示意图。

具体实施方式

如图2所示,在直角坐标系上给定的两点(t0,y0)、(t*,y*)之间用直线连接,求该直线上任意一点(t,y)坐标,可利用公式:

其中,t即为待处理数字信号数字序列的序号。

对于固定内插倍数的线性内插,以20倍内插为例,t0=0,t*=20,内插的过程,可认为是求在t=1,2,3...,19时的y值。此时可转化为:

令Δy=y*-y0,则:

其中,ci表示待处理数字信号插值倍数数据。

综上所述,对原始数据y0、y*进行固定倍数内插,每个内插值yi的确定都需要进行一次乘法,使用乘法会耗费较多的运算资源,运算量较大、成本较高。

有鉴于此,本申请提出了一种不使用乘法求出每个内插值yi方法,减少耗费的运算资源和运算量,降低成本。根据极限理论,由于ci为常数,ci的值可以采用2的连续次幂序列求和来逼近,任意一个小于等于1常数c,都可以用下式来表示:

例如,

那么对于来说,

因此,可以将ci与Δy之间的乘法转化为利用一系列的移位运算和加法运算。

请参考图3,本申请提供了一种数字信号固定插值倍数的线性插值装置,用于电子仪器的多抽样率数字信号处理,将较短的低速待处理数字信号数字序列扩展为较长的高速待处理数字信号数字序列,依次连接的第一加法器1、移位寄存器4、存储器6、第二加法器2、第三加法器3以及与移位寄存器4和存储器6相连接的控制器5。该电子仪器包括示波器、频谱分析仪或信号发生器等图形显示的测试测量仪器。

第一加法器1,用于接收初始数据y0、y*,并对y0、y*进行加法运算,输出Δy,Δy=y*-y0

至少一个移位寄存器4,用于对Δy进行移位运算并将移位数据存储于存储器6中;

控制器5,用于接收线性插值装置输入端输入的固定插值倍数,并将其转换为待处理数字信号插值倍数数据ci,再根据ci的值,控制所述移位寄存器4进行相应的移位运算,或在所述存储器6内有选择地读取相应的移位数据发送至第二加法器;

存储器6,用于存储所述移位数据;

至少一个第二加法器2,用于对所述移位数据进行加法运算,得到ci和Δy之积;

至少一个第三加法器3,用于接收所述ci和Δy之积与y0,对二者进行加法运算,得到并输出所需要的内插值yi=ci·Δy+y0

该装置的工作原理为:先对原始数据y0、y*进行加法运算得到Δy=y*-y0,再对Δy进行一系列移位运算,之后再对移位运算的结果进行加法运算,得到ci.Δy,最后再对ci.Δy与y0进行加法运算,从而得到所需要的内插值yi

该装置包括加法器和移位寄存器,不包括乘法器,利用移位寄存器4和第二加法器2得到了ci与Δy之间的乘积,消除对乘法器的需求,大大降低对运算资源的消耗和成本。

参考图4,基于上述线性插值装置,本申请提供了一种示波器,包括ADC采样模块、FPGA线性插值模块、数据输出模块、CPU和显示器。ADC采样模块对模拟信号进行采样和模数转换为待处理数字信号,FPGA线性插值模块为上述的线性插值装置,对待处理数字信号进行固定倍数的线性插值,插值之后的待处理数字信号经数据输出模块输出至CPU,CPU对插值之后的待处理数字信号进行数据处理后,在显示器上显示波形。

参考图5,相应地,本申请提出一种数字信号固定插值倍数的线性插值方法,包括步骤:

首先,对待处理数字信号的初始数据y0、y*进行加法运算,得到Δy=y*-y0

然后,根据拟插值的固定插值倍数生成待处理数字信号插值倍数数据ci

其次,先根据ci的值,进行至少两次不同位数的相应移位运算,每次移位运算生成一个移位数据并存储,再读取每次移位运算生成的移位数据,进行加法运算得到ci与Δy之积ci.Δy;或

先进行一次移动n位的移位运算,移动n位过程中每移动一位生成一个移动数据并存储,n+1为待处理数字信号的位宽,再根据ci的值,有选择地读取相应移动数据进行加法运算得到ci与Δy之积ci·Δy;

最后,对ci·Δy与y0进行加法运算,得到所需要的内插值yi=ci·Δy+y0

上述线性插值方法通常利用软件实现,参考图6,本申请提供了一种固定插值倍数的线性插值装置,包括:

存储器6,用于存放程序;

处理器10,执行所述程序,以用于:对待处理数字信号的初始数据y0、y*进行加法运算,得到Δy=y*-y0;根据拟插值的固定插值倍数生成待处理数字信号插值倍数数据ci;先根据ci的值,进行至少两次不同位数的相应移位运算,每次移位运算生成一个移位数据并存储,再读取每次移位运算生成的移位数据,进行加法运算得到ci与Δy之积ci.Δy;或先进行一次移动n位的移位运算,移动n位过程中每移动一位生成一个移动数据并存储,n+1为待处理数字信号的位宽,再根据ci的值,有选择地读取相应移动数据进行加法运算得到ci与Δy之积ci.Δy;对ci·Δy与y0进行加法运算,得到所需要的内插值yi=ci·Δy+y0

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

实施例一:

本申请实施例提供的固定插值倍数的线性插值方法包括:

步骤100,对待处理数字信号原始数据y0、y*进行加法运算得到Δy=y*-y0

步骤101,将拟插值的固定插值倍数生成待处理数字信号插值倍数数据ci,根据ci的值,控制器5控制移位寄存器4对Δy进行相应的移位运算,每移位依次生成一个移位数据,并将移位数据存储于存储器6。

比如,对于8bit的数据,若进行20倍的线性插值,如图7所示,计算第一个内插值y1时,移位寄存器4对Δy进行一次4位移位和一次6位移位,分别生成移位数据(Δy>>4)和(Δy>>6),将其存储于存储器6;依此类推,根据c1~c19,依次进行相应的移位运算。

步骤102,对于不同ci的值,在存储器6读取相应移位数据进行加法运算,依次求出全部ci·Δy。

如步骤101中示例,计算第一个内插值y1时,对移位数据(Δy>>4)和(Δy>>6)进行加法运算,得到c1·Δy=(Δy>>4)-(Δy>>6),依此类推,根据c1~c19的移位数据,依次求出全部ci·Δy。

步骤103,对ci.Δy与y0依次进行加法运算,得出待处理数字信号所需要的内插值yi

如步骤102中示例,对移位数据ci·Δy和y0依次进行加法运算,得到:

y1=(Δy>>4)-(Δy>>6)+y0

y2=(Δy>>3)-(Δy>>5)+(Δy>>7)+y0

……

y19=(Δy>>0)-(Δy>>4)+(Δy>>6)+y0

实施例二:

本申请实施例提供的固定插值倍数的线性插值方法包括:

步骤200,对待处理数字信号原始数据y0、y*进行加法运算得到Δy=y*-y0

步骤201,将拟插值的固定插值倍数生成待处理数字信号插值倍数数据ci,移位寄存器4对Δy进行n位的移位运算,每移动一位均生成相应的移位数据,并将移位数据存储于存储器6,n+1为待处理数字信号的位宽,n=2η-1,η为大于等于3的正整数。

比如,对于8bit的数据,若进行20倍的线性插值,如图8所示,移位寄存器4对Δy进行7位移位,每移动一位均生成相应的移位数据,将7位移位过程中的移位数据(Δy>>0)~(Δy>>7)全部存储于存储器6。

步骤202,根据不同ci的值,控制器5在存储器6依次读取相应的移位数据进行加法运算。

如步骤201中示例,计算第一个内插值y1时,控制器5在存储器6中读取移位数据(Δy>>4)和(Δy>>6)进行加法运算,得到c1.Δy=(Δy>>4)-(Δy>>6),依此类推,根据c1~c19,读取相应的移位数据进行加法运算,依次求出全部ci.Δy。

步骤203,对ci·Δy与y0依次进行加法运算,得出所需要的待处理数字信号内插值yi

如步骤202中示例,对移位数据ci·Δy和y0依次进行加法运算,得到:

y1=(Δy>>4)-(Δy>>6)+y0

y2=(Δy>>3)-(Δy>>5)+(Δy>>7)+y0

……

y19=(Δy>>0)-(Δy>>4)+(Δy>>6)+y0

实施例一和实施例二中均采用的是串行运算,ci.Δy和yi的值被逐个求出,为了加快运算速度,在一些实施例中,固定插值倍数的线性插值装置包括至少2个移位寄存器、至少2个第二加法器和至少2个加法器,同时进行并行运算,更快得出每个内插值yi,下面介绍并行运算的情况。

实施例三:

本申请实施例提供的固定插值倍数的线性插值方法包括:

步骤300,对待处理数字信号原始数据y0、y*进行加法运算得到Δy=y*-y0

步骤301,将拟插值的固定插值倍数生成待处理数字信号插值倍数数据ci,根据ci的值,控制器5控制不同的移位寄存器同时对Δy进行相应的移位运算。

比如,对于8bit的数据,若进行20倍的线性插值,如图9所示,计算第一个内插值y1时,移位寄存器44对Δy进行4位移位,得到移位数据(Δy>>4),同时,移位寄存器46对Δy进行6位移位,得到移位数据(Δy>>6);依此类推,根据c1~c19,进行相应移位运算。

步骤302,对移位数据进行加法运算,得到全部ci·Δy。

如步骤301中示例,对移位数据(Δy>>4)和(Δy>>6)进行加法运算,得到c1.Δy=(Δy>>4)-(Δy>>6);依此类推,根据c1~c19的移位数据,依次求出全部ci.Δy。

步骤303,对不同ci.Δy依次与y0进行加法运算,得出所需要的待处理数字信号全部内插值yi

如步骤302中示例,对移位数据ci·Δy和y0依次进行加法运算,分别求出:

y1=(Δy>>4)-(Δy>>6)+y0

y2=(Δy>>3)-(Δy>>5)+(Δy>>7)+y0

……

y19=(Δy>>0)-(Δy>>4)+(Δy>>6)+y0

实施例四:

本申请实施例提供的固定插值倍数的线性插值方法包括:

步骤400,对待处理数字信号原始数据y0、y*进行加法运算得到Δy=y*-y0

步骤401将拟插值的固定插值倍数生成待处理数字信号插值倍数数据ci,针对部分或全部的ci的值,控制器5控制不同的移位寄存器4同时对Δy进行相应的移位运算。

比如,对于8bit的数据,若进行20倍的线性插值,如图10所示,对每个ci,移位寄存器4同时对Δy进行相应的移位运算,包括:

移位寄存器44对Δy进行4位移位,得到移位数据(Δy>>4),移位寄存器46对Δy进行6位移位,得到移位数据(Δy>>6);

移位寄存器43对Δy进行3位移位,得到移位数据(Δy>>3),移位寄存器45对Δy进行5位移位,得到移位数据(Δy>>5),移位寄存器47对Δy进行7位移位,得到移位数据(Δy>>7);

……

移位寄存器40对Δy进行0位移位,得到移位数据(Δy>>0),移位寄存器44对Δy进行4位移位,得到移位数据(Δy>>4),移位寄存器46对Δy进行6位移位,得到移位数据(Δy>>6);

从而,针对全部ci同时进行相应移位运算。

步骤402,对移位数据同时进行加法运算,得到全部ci·Δy。

如步骤401中示例,同时求出:

c1.Δy=(Δy>>4)-(Δy>>6),

c2.Δy=(Δy>>3)-(Δy>>5)+(Δy>>7),

……

c19.Δy=(Δy>>0)-(Δy>>4)+(Δy>>6)。

步骤403,对全部ci.Δy与y0同时进行加法运算,得出所需要的待处理数字信号全部内插值yi

如步骤402中示例,对移位数据ci·Δy和y0分别进行加法运算,同时求出:

y1=(Δy>>4)-(Δy>>6)+y0

y2=(Δy>>3)-(Δy>>5)+(Δy>>7)+y0

……

y19=(Δy>>0)-(Δy>>4)+(Δy>>6)+y0

相比而言,实施例三仅对移位运算进行并行运算,而实施例四在实施例三的基础上,对移位运算之后的移位数据加法运算也进行并行运算,可同时求出不同ci条件下的内插值yi

综上所述,本申请提供的固定插值倍数的线性插值方法巧妙地通过移位运算和加法运算代替传统的乘法运算,在软件运算的情况下,减少运算量,加快运算速度,提高线性插值计算的实时性;在电路实现的情况下,本申请的线性插值装置利用移位寄存器和加法器实现乘法运算,避免使用乘法器,降低了电路的实现成本,且能够并行地获得各线性插值,运算速度快实时性好。

本领域技术人员可以理解,上述实施方式中各种方法的全部或部分步骤可以通过程序来指令相关硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存取存储器、磁盘或光盘等。

以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请发明构思的前提下,还可以做出若干简单推演或替换。

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