一种基于fpga的采样数据内插方法

文档序号:6233958阅读:183来源:国知局
一种基于fpga的采样数据内插方法
【专利摘要】本发明提出了一种基于FPGA的采样数据内插方法,适用于数字示波器。基于FPGA的采样数据内插方法包括:内插开始阶段:当采集数据结束后要进入内插时,首先通过快速加载使能端将起始数据快速填满FIR滤波器流水线,填入数据的长度等于FIR滤波器的阶数L;两采样点插值计算阶段:内插计算根据内插倍数从滤波器系数存储ROM中选取适当的系数;采样点更新阶段。本发明的方法在FPGA内部实现,充分利用了FPGA并行处理数据的能力,降低了硬件成本,减小了功耗和体积,加上FPGA高速并行特性,可以有效提高数据吞吐率,减少数据等待时间,增加波形捕获率。
【专利说明】—种基于FPGA的采样数据内插方法

【技术领域】
[0001]本发明涉及测试【技术领域】,特别涉及一种应用于数字示波器中对采样点之间进行数据内插的方法。

【背景技术】
[0002]在高时间档位下,传统的示波器多采用随机采样技术或是软件插值方法来显示被测信号波形。
[0003]随机采样是一种等效采样技术。由于每次采样时,触发时刻与其后第一个采样点之间的时间间隔是随机变化的,因此,随机采样需要精确地测量出此时的时间间隔,并根据测量结果将每次采样得到的采样点填入存储器的相应位置,最终通过多次采样来重新组合出原始信号的波形,随机采样原理如图1所示。随机采样技术的关键是如何精确地测量触发时刻与其后第一个采样点之间的时间间隔,测量结果的精度决定了最终重组出波形的实际效果。随机采样技术采用的时间测量方法主要有时间电压转换方法和双斜坡脉冲扩展法。
[0004]软件内插方法,就是在每次采样后,根据内插公式,采用软件来计算采样点之间的插值。但由于插值需要多次乘加运算,因此,软件插值会影响波形捕获率。
[0005]随机采样技术在波形显示方面存在以下几个问题:1)需要额外的电路测量时间间隔,增加了布局空间、成本和功耗;2)时间测量结果的误差会积累到组合后信号中;3)需要多次采样才能组合出信号波形,并且时间测量需要额外时间,降低了信号的波形捕获率。
[0006]软件插值技术由于受CPU处理能力限制,也存在信号波形捕获率低的缺点。


【发明内容】

[0007]针对以上缺点,本发明提出了一种适用于数字示波器的基于FPGA的采样数据内插方法。由于本发明在FPGA内部实现,充分利用了 FPGA并行处理数据的能力,降低了硬件成本,减小了功耗和体积,加上FPGA高速并行特性,可以有效提高数据吞吐率,减少数据等待时间,增加波形捕获率。
[0008]本发明的技术方案是这样实现的:
[0009]一种基于FPGA的采样数据内插方法,包括以下步骤:
[0010]步骤(a),内插开始阶段:
[0011]当采集数据结束后要进入内插时,首先通过快速加载使能端将起始数据快速填满FIR滤波器流水线,填入数据的长度等于FIR滤波器的阶数L ;
[0012]步骤(b),两采样点插值计算阶段:
[0013]内插计算根据内插倍数从滤波器系数存储ROM中选取适当的系数,选取适当的系数的步骤具体为:滤波器系数存储ROM中共存放N组FIR滤波器系数,对应的地址分别为O?(N-1),内插倍数为I,其中I能被N整除,选取系数的地址分别为0,L/I,2*L/1...(1-1)L/1 ;
[0014]步骤(c),采样点更新阶段:
[0015]当计算完I个插值后,将需要载入新采集数据位置“1”,内插控制模块根据采集数据有效位来判断下一步状态,如果采集数据没有准备好,外部逻辑将采集数据有效位置“0”,则暂停插值运算,并将输出数据有效位置“O” ;如果采集数据准备好,外部逻辑将采集数据有效位置“ I ”,则读入采集数据进行内插运算,并将输出数据有效位置“ I ”。
[0016]可选地,所述FIR滤波器采用流水线架构,由L个乘累加单元级联而成。
[0017]可选地,所述L个乘累加单元通过配置FPGA的DSP单元来实现。
[0018]可选地,所述L为偶数。
[0019]可选地,所述滤波器系数存储ROM由L个独立ROM组成,存放的系数分别对应FIR滤波器L个乘累加单元的输入系数。
[0020]本发明的有益效果是:
[0021](I)全部在FPGA内部实现,成本低、功耗小;
[0022](2)内插倍数可变,灵活;
[0023](3)采集数据在FPGA内部并行处理并且数据可快速加载流水线,速度快,使示波器波形捕获率显著提高。

【专利附图】

【附图说明】
[0024]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为随机采样原理示意图;
[0026]图2为本发明基于FPGA的采样数据内插方法原理示意图;
[0027]图3为图2中FIR滤波器的结构示意图;
[0028]图4为本发明基于FPGA的采样数据内插方法的流程图。

【具体实施方式】
[0029]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0030]在高时间档位下,传统的示波器多采用随机采样技术或是软件插值方法来显示被测信号波形。随机采样需要额外的电路来精确测量触发点与采样点之间的时间间隔,并根据所测时间间隔将多次采集的采样点进行拼接。然而,额外的时间间隔测量电路有布局空间大、成本高、功耗大等缺点。软件插值是将采集数据通过核心板上的CPU来计算插值,由于插值运算量巨大,此方法会影响示波器的波形捕获率。
[0031]本发明提出了一种适用于数字示波器的基于FPGA的采样数据内插方法,由于本发明在FPGA内部实现,因此,降低了硬件成本、减小了功耗和体积,加上FPGA高速并行特性,可以有效提高数据吞吐率,减少数据等待时间,增加波形捕获率。
[0032]图2为本发明基于FPGA的采样数据内插方法的原理图,其中的所有模块均在FPGA内部实现。
[0033]图2中,内插控制模块,负责内插运算的时序控制及和外部模块的交互。快速加载使能端可以控制采集数据是否按时钟节拍填满FIR滤波器的流水线。由于高档位下,每采集一次波形都需要做内插运算,在新采集数据没装满FIR滤波器流水线之前,由于误差较大,输出的内插数据都是无效的,而正常情况下,要间隔内插倍数I个时钟周期才能读入一个采集数据,当I值很大时,需要较长时间才能装满流水线。因此,每次采集数据后,都需要通过快速加载使能端来加快数据加载。当新数据装满流水线后,输出数据有效位开始置“1”,表示FIR滤波器输出的内插数据有效。在两个采样数据计算完I个内插值后,需要新的采样点,此时需要载入新采集数据位置“ I ”,然后内插控制模块就根据采集数据有效位来判断下一步状态,如果采集数据还没准备好,则暂停插值运算,并将输出数据有效位置“O” ;如果采集数据准备好,则载入采集数据接着进行内插运算,并将输出有效位置“I”。在计算内插时,控制模块通过内插倍数来计算滤波器系数ROM的存储地址。内插控制模块设置内插数据有效、快速加载使能、输出数据有效、需要载入新采集数据、内插倍数等控制端口,方便与外部电路进行交互。
[0034]图2中,FIR滤波器采用流水线架构,插值计算采用流水线方式,以增加数据的吞吐速率。
[0035]如图3所示,FIR滤波器主要由L个乘累加单元MAC级联而成,而MAC可以通过适当配置FPGA的DSP单元来实现,优选地,为了对称设计,L为偶数。读入新采样数据时,送往MAC的采集数据,在时钟节拍下依次移位到下一阶MAC中,系数则是通过查找滤波器系数存储ROM得到。
[0036]图2中,滤波器系数存储ROM由L个独立ROM组成,存放的系数分别对应FIR滤波器L个MAC单元的输入系数。滤波器系数存储ROM依次存放着系统所需要最大内插值所需要的滤波器系数,当需要采用较低内插时,只需要通过控制模块选取适当间隔的子滤波器即可实现。例如ROM中存放1000个子滤波器系数最多实现1000倍内插时,只需选取间隔50的子滤波器就可以实现20倍内插。计算内插数据时,在时钟节拍下,ROM的读取地址依次移位到下一阶ROM的读取地址中,从而实现流水线操作。
[0037]图4中示出了基于FPGA的采样数据内插方法的详细流程,包括以下步骤:
[0038]步骤(a),内插开始阶段:
[0039]当采集数据结束后要进入内插时,外部电路首先通过快速加载使能端将起始数据快速填满FIR滤波器流水线,填入数据的长度等于FIR滤波器的阶数L。当新数据装满流水线后,输出数据有效位开始置“ I ”,表示FIR滤波器输出的内插数据有效。
[0040]步骤(b),两采样点插值计算阶段:
[0041]内插计算要根据内插倍数从滤波器系数存储ROM中选取适当的值。ROM中共存放N组滤波器系数,对应的地址分别为O?(N-1),现在需要的内插倍数为I,I能被N整除,则应选取系数的地址分别为0,L/I,2*L/1...(1-1)L/I。
[0042]步骤(C),采样点更新阶段:
[0043]当计算完I个插值后,滤波器采样点系数需要更新数据,此时将需要载入新采集数据位置“ 1”,然后内插控制模块根据采集数据有效位来判断下一步状态,如果采集数据没有准备好,外部逻辑将采集数据有效位置“O”,则暂停插值运算,并将输出数据有效位置“O”;如果采集数据准备好,外部逻辑将采集数据有效位置“1”,则读入采集数据进行内插运算,并将输出数据有效位置“I”。
[0044]本发明的基于FPGA的采样数据内插方法,全部在FPGA内部实现,成本低、功耗小;内插倍数可变,灵活;采集数据在FPGA内部并行处理并且数据可快速加载流水线,速度快,使示波器波形捕获率显著提高。
[0045]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于FPGA的采样数据内插方法,其特征在于,包括以下步骤: 步骤(a),内插开始阶段: 当采集数据结束后要进入内插时,首先通过快速加载使能端将起始数据快速填满FIR滤波器流水线,填入数据的长度等于FIR滤波器的阶数L ; 步骤(b),两采样点插值计算阶段: 内插计算根据内插倍数从滤波器系数存储ROM中选取适当的系数,选取适当的系数的步骤具体为:滤波器系数存储ROM中共存放N组FIR滤波器系数,对应的地址分别为O?(N-1),内插倍数为I,其中I能被N整除,选取系数的地址分别为0,L/I,2*L/1...(1-1)L/I ; 步骤(c),采样点更新阶段: 当计算完I个插值后,将需要载入新采集数据位置“1”,内插控制模块根据采集数据有效位来判断下一步状态,如果采集数据没有准备好,外部逻辑将采集数据有效位置“0”,则暂停插值运算,并将输出数据有效位置“O” ;如果采集数据准备好,外部逻辑将采集数据有效位置“ I ”,则载入采集数据进行内插运算,并将输出数据有效位置“ I ”。
2.如权利要求1所述的基于FPGA的采样数据内插方法,其特征在于,所述FIR滤波器采用流水线架构,由L个乘累加单元级联而成。
3.如权利要求2所述的基于FPGA的采样数据内插方法,其特征在于,所述L个乘累加单元通过配置FPGA的DSP单元来实现。
4.如权利要求3所述的基于FPGA的采样数据内插方法,其特征在于,所述L为偶数。
5.如权利要求1所述的基于FPGA的采样数据内插方法,其特征在于,所述滤波器系数存储ROM由L个独立ROM组成,存放的系数分别对应FIR滤波器L个乘累加单元的输入系数。
【文档编号】G01R13/02GK104077492SQ201410330675
【公开日】2014年10月1日 申请日期:2014年7月8日 优先权日:2014年7月8日
【发明者】张成森, 刘洪庆, 郭同华, 李云彬 申请人:中国电子科技集团公司第四十一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1