CN104077492B - 一种基于fpga的采样数据内插方法 - Google Patents
一种基于fpga的采样数据内插方法 Download PDFInfo
- Publication number
- CN104077492B CN104077492B CN201410330675.2A CN201410330675A CN104077492B CN 104077492 B CN104077492 B CN 104077492B CN 201410330675 A CN201410330675 A CN 201410330675A CN 104077492 B CN104077492 B CN 104077492B
- Authority
- CN
- China
- Prior art keywords
- data
- interpolation
- fpga
- sampled
- rom
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Complex Calculations (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明提出了一种基于FPGA的采样数据内插方法,适用于数字示波器。基于FPGA的采样数据内插方法包括:内插开始阶段:当采集数据结束后要进入内插时,首先通过快速加载使能端将起始数据快速填满FIR滤波器流水线,填入数据的长度等于FIR滤波器的阶数L;两采样点插值计算阶段:内插计算根据内插倍数从滤波器系数存储ROM中选取适当的系数;采样点更新阶段。本发明的方法在FPGA内部实现,充分利用了FPGA并行处理数据的能力,降低了硬件成本,减小了功耗和体积,加上FPGA高速并行特性,可以有效提高数据吞吐率,减少数据等待时间,增加波形捕获率。
Description
技术领域
本发明涉及测试技术领域,特别涉及一种应用于数字示波器中对采样点之间进行数据内插的方法。
背景技术
在高时间档位下,传统的示波器多采用随机采样技术或是软件插值方法来显示被测信号波形。
随机采样是一种等效采样技术。由于每次采样时,触发时刻与其后第一个采样点之间的时间间隔是随机变化的,因此,随机采样需要精确地测量出此时的时间间隔,并根据测量结果将每次采样得到的采样点填入存储器的相应位置,最终通过多次采样来重新组合出原始信号的波形,随机采样原理如图1所示。随机采样技术的关键是如何精确地测量触发时刻与其后第一个采样点之间的时间间隔,测量结果的精度决定了最终重组出波形的实际效果。随机采样技术采用的时间测量方法主要有时间电压转换方法和双斜坡脉冲扩展法。
软件内插方法,就是在每次采样后,根据内插公式,采用软件来计算采样点之间的插值。但由于插值需要多次乘加运算,因此,软件插值会影响波形捕获率。
随机采样技术在波形显示方面存在以下几个问题:1)需要额外的电路测量时间间隔,增加了布局空间、成本和功耗;2)时间测量结果的误差会积累到组合后信号中;3)需要多次采样才能组合出信号波形,并且时间测量需要额外时间,降低了信号的波形捕获率。
软件插值技术由于受CPU处理能力限制,也存在信号波形捕获率低的缺点。
发明内容
针对以上缺点,本发明提出了一种适用于数字示波器的基于FPGA的采样数据内插方法。由于本发明在FPGA内部实现,充分利用了FPGA并行处理数据的能力,降低了硬件成本,减小了功耗和体积,加上FPGA高速并行特性,可以有效提高数据吞吐率,减少数据等待时间,增加波形捕获率。
本发明的技术方案是这样实现的:
一种基于FPGA的采样数据内插方法,包括以下步骤:
步骤(a),内插开始阶段:
当采集数据结束后要进入内插时,首先通过快速加载使能端将起始数据快速填满FIR滤波器流水线,填入数据的长度等于FIR滤波器的阶数L;
步骤(b),两采样点插值计算阶段:
内插计算根据内插倍数从滤波器系数存储ROM中选取适当的系数,选取适当的系数的步骤具体为:滤波器系数存储ROM中共存放N组FIR滤波器系数,对应的地址分别为0~(N-1),内插倍数为I,其中I能被N整除,选取系数的地址分别为0,L/I,2*L/I...(I-1)L/I;
步骤(c),采样点更新阶段:
当计算完I个插值后,将需要载入新采集数据位置“1”,内插控制模块根据采集数据有效位来判断下一步状态,如果采集数据没有准备好,外部逻辑将采集数据有效位置“0”,则暂停插值运算,并将输出数据有效位置“0”;如果采集数据准备好,外部逻辑将采集数据有效位置“1”,则读入采集数据进行内插运算,并将输出数据有效位置“1”。
可选地,所述FIR滤波器采用流水线架构,由L个乘累加单元级联而成。
可选地,所述L个乘累加单元通过配置FPGA的DSP单元来实现。
可选地,所述L为偶数。
可选地,所述滤波器系数存储ROM由L个独立ROM组成,存放的系数分别对应FIR滤波器L个乘累加单元的输入系数。
本发明的有益效果是:
(1)全部在FPGA内部实现,成本低、功耗小;
(2)内插倍数可变,灵活;
(3)采集数据在FPGA内部并行处理并且数据可快速加载流水线,速度快,使示波器波形捕获率显著提高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为随机采样原理示意图;
图2为本发明基于FPGA的采样数据内插方法原理示意图;
图3为图2中FIR滤波器的结构示意图;
图4为本发明基于FPGA的采样数据内插方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在高时间档位下,传统的示波器多采用随机采样技术或是软件插值方法来显示被测信号波形。随机采样需要额外的电路来精确测量触发点与采样点之间的时间间隔,并根据所测时间间隔将多次采集的采样点进行拼接。然而,额外的时间间隔测量电路有布局空间大、成本高、功耗大等缺点。软件插值是将采集数据通过核心板上的CPU来计算插值,由于插值运算量巨大,此方法会影响示波器的波形捕获率。
本发明提出了一种适用于数字示波器的基于FPGA的采样数据内插方法,由于本发明在FPGA内部实现,因此,降低了硬件成本、减小了功耗和体积,加上FPGA高速并行特性,可以有效提高数据吞吐率,减少数据等待时间,增加波形捕获率。
图2为本发明基于FPGA的采样数据内插方法的原理图,其中的所有模块均在FPGA内部实现。
图2中,内插控制模块,负责内插运算的时序控制及和外部模块的交互。快速加载使能端可以控制采集数据是否按时钟节拍填满FIR滤波器的流水线。由于高档位下,每采集一次波形都需要做内插运算,在新采集数据没装满FIR滤波器流水线之前,由于误差较大,输出的内插数据都是无效的,而正常情况下,要间隔内插倍数I个时钟周期才能读入一个采集数据,当I值很大时,需要较长时间才能装满流水线。因此,每次采集数据后,都需要通过快速加载使能端来加快数据加载。当新数据装满流水线后,输出数据有效位开始置“1”,表示FIR滤波器输出的内插数据有效。在两个采样数据计算完I个内插值后,需要新的采样点,此时需要载入新采集数据位置“1”,然后内插控制模块就根据采集数据有效位来判断下一步状态,如果采集数据还没准备好,则暂停插值运算,并将输出数据有效位置“0”;如果采集数据准备好,则载入采集数据接着进行内插运算,并将输出有效位置“1”。在计算内插时,控制模块通过内插倍数来计算滤波器系数ROM的存储地址。内插控制模块设置内插数据有效、快速加载使能、输出数据有效、需要载入新采集数据、内插倍数等控制端口,方便与外部电路进行交互。
图2中,FIR滤波器采用流水线架构,插值计算采用流水线方式,以增加数据的吞吐速率。
如图3所示,FIR滤波器主要由L个乘累加单元MAC级联而成,而MAC可以通过适当配置FPGA的DSP单元来实现,优选地,为了对称设计,L为偶数。读入新采样数据时,送往MAC的采集数据,在时钟节拍下依次移位到下一阶MAC中,系数则是通过查找滤波器系数存储ROM得到。
图2中,滤波器系数存储ROM由L个独立ROM组成,存放的系数分别对应FIR滤波器L个MAC单元的输入系数。滤波器系数存储ROM依次存放着系统所需要最大内插值所需要的滤波器系数,当需要采用较低内插时,只需要通过控制模块选取适当间隔的子滤波器即可实现。例如ROM中存放1000个子滤波器系数最多实现1000倍内插时,只需选取间隔50的子滤波器就可以实现20倍内插。计算内插数据时,在时钟节拍下,ROM的读取地址依次移位到下一阶ROM的读取地址中,从而实现流水线操作。
图4中示出了基于FPGA的采样数据内插方法的详细流程,包括以下步骤:
步骤(a),内插开始阶段:
当采集数据结束后要进入内插时,外部电路首先通过快速加载使能端将起始数据快速填满FIR滤波器流水线,填入数据的长度等于FIR滤波器的阶数L。当新数据装满流水线后,输出数据有效位开始置“1”,表示FIR滤波器输出的内插数据有效。
步骤(b),两采样点插值计算阶段:
内插计算要根据内插倍数从滤波器系数存储ROM中选取适当的值。ROM中共存放N组滤波器系数,对应的地址分别为0~(N-1),现在需要的内插倍数为I,I能被N整除,则应选取系数的地址分别为0,L/I,2*L/I...(I-1)L/I。
步骤(c),采样点更新阶段:
当计算完I个插值后,滤波器采样点系数需要更新数据,此时将需要载入新采集数据位置“1”,然后内插控制模块根据采集数据有效位来判断下一步状态,如果采集数据没有准备好,外部逻辑将采集数据有效位置“0”,则暂停插值运算,并将输出数据有效位置“0”;如果采集数据准备好,外部逻辑将采集数据有效位置“1”,则读入采集数据进行内插运算,并将输出数据有效位置“1”。
本发明的基于FPGA的采样数据内插方法,全部在FPGA内部实现,成本低、功耗小;内插倍数可变,灵活;采集数据在FPGA内部并行处理并且数据可快速加载流水线,速度快,使示波器波形捕获率显著提高。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于FPGA的采样数据内插方法,其特征在于,包括内插控制模块,负责内插运算的时序控制及和外部模块的交互,快速加载使能端控制采集数据是否按时钟节拍填满FIR滤波器的流水线;当新数据装满流水线后,输出数据有效位开始置“1”,表示FIR滤波器输出的内插数据有效;在两个采样数据计算完I个内插值后,需要更新采样点;在计算内插时,内插控制模块通过内插倍数来计算滤波器系数ROM的存储地址;内插控制模块设置内插数据有效、快速加载使能、输出数据有效、需要载入新采集数据、内插倍数控制端口,方便与外部电路进行交互;
FIR滤波器采用对称设计,由L个乘累加单元MAC级联而成,L为偶数;
滤波器系数存储ROM依次存放着系统所需要最大内插值所需要的滤波器系数,当需要采用较低内插时,通过内插控制模块选取适当间隔的子滤波器来实现;计算内插数据时,在时钟节拍下,ROM的读取地址依次移位到下一阶ROM的读取地址中,从而实现流水线操作;
该采样数据内插方法包括以下步骤:
步骤(a),内插开始阶段:
当采集数据结束后要进入内插时,首先通过快速加载使能端将起始数据快速填满FIR滤波器流水线,填入数据的长度等于FIR滤波器的阶数L;
步骤(b),两采样点插值计算阶段:
内插计算根据内插倍数从滤波器系数存储ROM中选取适当的系数,选取适当的系数的步骤具体为:滤波器系数存储ROM中共存放N组FIR滤波器系数,对应的地址分别为0~(N-1),内插倍数为I,其中I能被N整除,选取系数的地址分别为0,L/I,2*L/I...(I-1)L/I;
步骤(c),采样点更新阶段:
当计算完I个插值后,将需要载入新采集数据位置“1”,内插控制模块根据采集数据有效位来判断下一步状态,如果采集数据没有准备好,外部逻辑将采集数据有效位置“0”,则暂停插值运算,并将输出数据有效位置“0”;如果采集数据准备好,外部逻辑将采集数据有效位置“1”,则载入采集数据进行内插运算,并将输出数据有效位置“1”。
2.如权利要求1所述的基于FPGA的采样数据内插方法,其特征在于,所述FIR滤波器采用流水线架构,由L个乘累加单元级联而成。
3.如权利要求2所述的基于FPGA的采样数据内插方法,其特征在于,所述L个乘累加单元通过配置FPGA的DSP单元来实现。
4.如权利要求1所述的基于FPGA的采样数据内插方法,其特征在于,所述滤波器系数存储ROM由L个独立ROM组成,存放的系数分别对应FIR滤波器L个乘累加单元的输入系数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410330675.2A CN104077492B (zh) | 2014-07-08 | 2014-07-08 | 一种基于fpga的采样数据内插方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410330675.2A CN104077492B (zh) | 2014-07-08 | 2014-07-08 | 一种基于fpga的采样数据内插方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077492A CN104077492A (zh) | 2014-10-01 |
CN104077492B true CN104077492B (zh) | 2018-08-14 |
Family
ID=51598744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410330675.2A Expired - Fee Related CN104077492B (zh) | 2014-07-08 | 2014-07-08 | 一种基于fpga的采样数据内插方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104077492B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104459259B (zh) * | 2014-12-16 | 2017-05-31 | 南京国睿安泰信科技股份有限公司 | 一种用于示波器的改进型波形内插系统 |
CN104506197B (zh) * | 2014-12-16 | 2017-11-03 | 北京航天测控技术有限公司 | 一种定位高速并行数据流触发点位置的方法 |
CN106301287A (zh) * | 2016-08-20 | 2017-01-04 | 航天恒星科技有限公司 | 一种重采样方法及装置 |
CN107483031A (zh) * | 2017-03-17 | 2017-12-15 | 深圳市鼎阳科技有限公司 | 示波器及其支持多插值倍数的滤波方法、系统、数字芯片 |
CN107707820A (zh) * | 2017-09-29 | 2018-02-16 | 中国科学院长春光学精密机械与物理研究所 | 基于fpga的航空相机实时电子变倍系统 |
CN110708070A (zh) * | 2019-08-15 | 2020-01-17 | 北京航天驭星科技有限公司 | 一种重采样方法及装置 |
CN112051442B (zh) * | 2020-08-05 | 2023-08-25 | 中电科思仪科技股份有限公司 | 一种微波峰值功率测量中提高时间参数测量速度的方法 |
-
2014
- 2014-07-08 CN CN201410330675.2A patent/CN104077492B/zh not_active Expired - Fee Related
Non-Patent Citations (5)
Title |
---|
"一种提高DSO插值性能的方法研究";杨扩军等;《电子质量》;20090930;第2009年卷(第9期);第6-9页 * |
"一种改进型整数倍多相滤波器在FPGA中的应用";李备;《电脑与信息技术》;20120229;第20卷(第1期);第9-12页 * |
"三角函数内插法分析及其FPGA实现";惠腾飞等;《空间电子技术》;20100331;第2010年卷(第1期);第26-29页 * |
"数字示波器中高速实时数据处理技术的研究";罗婷婷;《中国优秀硕士学位论文全文数据库 工程科技II辑》;20110415;第2011年卷(第4期);第C042-485页 * |
"正弦内插算法的FPGA实现";张海潮等;《河南大学学报(自然科学版)》;20140131;第44卷(第1期);第94-98页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104077492A (zh) | 2014-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077492B (zh) | 一种基于fpga的采样数据内插方法 | |
CN102053186B (zh) | 一种具有可变阶数数字滤波器的数字示波器 | |
CN102035455B (zh) | 一种变频器m/t测速方法 | |
CN102928772B (zh) | 时序测试系统及其测试方法 | |
CN103257271A (zh) | 一种基于stm32f107vct6的微电网谐波与间谐波检测装置及检测方法 | |
CN105301627B (zh) | 一种能谱分析方法、能谱分析系统及伽马射线探测系统 | |
CN102539864B (zh) | 数字示波器及信号测量方法 | |
CN113157637B (zh) | 一种基于fpga的大容量可重构的fft运算ip核 | |
CN102928677A (zh) | 一种纳米级脉冲信号采集方法 | |
JPH10126218A (ja) | サンプリング周波数変換装置 | |
CN101706521A (zh) | 一种具有时基微调功能的数字存储示波器 | |
CN102565751A (zh) | 可编程的单相电能计量芯片开发装置 | |
CN104007300B (zh) | 数字荧光示波器随机采样扰相电路设计方法 | |
CN102841880B (zh) | 一种基于数字信号处理器快速频谱细化的方法 | |
CN105066990A (zh) | 一种适用于捷联惯性导航的高精度数字滤波器 | |
CN106443115B (zh) | 一种基于深度存储的示波器 | |
CN102508028A (zh) | 一种谐波检测分析装置及方法 | |
CN206223867U (zh) | 一种相位检测装置 | |
CN109991458B (zh) | 一种基于fpga的波形纵向平均系统 | |
CN105892988A (zh) | 一种基于fpga的运算电路、示波器和测量仪器 | |
CN100517968C (zh) | 一种用于电能计量的希尔伯特滤波器 | |
CN206460088U (zh) | 一种基于深度存储的示波器 | |
CN106526269A (zh) | 一种数据测量方法及系统 | |
CN116050319A (zh) | 数字滤波器验证平台和运行方法 | |
CN102571032B (zh) | 用滚动平滑滤波对测量数据进行后处理的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180814 Termination date: 20190708 |