CN117526943A - 一种基于fpga的高速adc性能测试系统及方法 - Google Patents
一种基于fpga的高速adc性能测试系统及方法 Download PDFInfo
- Publication number
- CN117526943A CN117526943A CN202410022697.6A CN202410022697A CN117526943A CN 117526943 A CN117526943 A CN 117526943A CN 202410022697 A CN202410022697 A CN 202410022697A CN 117526943 A CN117526943 A CN 117526943A
- Authority
- CN
- China
- Prior art keywords
- core
- data
- adc
- floating point
- fourier transform
- 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.)
- Granted
Links
- 238000011056 performance test Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 75
- 238000012360 testing method Methods 0.000 claims abstract description 32
- 230000005540 biological transmission Effects 0.000 claims abstract description 24
- 238000005070 sampling Methods 0.000 claims description 30
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/10—Calibration or testing
- H03M1/1071—Measuring or testing
- H03M1/1095—Measuring or testing for ac performance, i.e. dynamic testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
- H03M1/124—Sampling or signal conditioning arrangements specially adapted for A/D converters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明公开了一种基于FPGA的高速ADC性能测试系统及方法,所述系统包括快速傅里叶变换控制状态机、快速傅里叶变换IP核、数据发送控制状态机和性能测试模块,所述性能测试模块包括信噪比SNR计算单元和有效位ENOB计算单元。信噪比SNR计算单元包括从前至后依次设置的乘法器IP核、除法器IP核、定点转浮点数IP核、浮点取自然对数IP核和浮点除法IP核;有效位ENOB计算单元包括从前至后依次设置的浮点减法IP核和浮点除法IP;所述信噪比SNR计算单元的输出端与有效位ENOB计算单元的浮点减法IP核连接。本发明设计的ADC性能测试方案有效节省了FPGA资源,提高了测试效率和准确度,具有较好的实用性。
Description
技术领域
本发明属于航空通信技术领域,具体涉及一种基于FPGA的高速ADC性能测试系统及方法。
背景技术
模数转换器(简称ADC)作为模拟领域与数字领域进行信息交换的桥梁,主要功能是将在频域内连续的电信号转换为时域内离散的数字信号,供从机的数字处理芯片。例如,现场可编程逻辑门阵列(简称FPGA)获取目标信息,ADC电路作为模数转换的重要电路,其性能高低直接影响整个处理系统的指标。所以,对ADC电路进行性能测试可为整个信号处理系统的指标提供依据。
ADC电路的宏观指标,如:采样位数、最高信噪比、采样速率等,是由所选的ADC芯片决定的,通常可通过厂家提供的数据得到。而其实际指标,如:信噪比(简称SNR)、有效位(简称ENOB)等,则是由ADC、ADC外围电路及印制板设计共同决定的,需在产品上进行测试而得到,其中尤为重要的是噪声与干扰源对ADC性能的影响。
在航空航天通信中,如二次雷达、航空管制、机间通信等,广泛应用了ADC。随着ADC的快速发展,其性能测试耗费的代价也越来越大。ADC的性能测试通常有两种方法,一种是通过仪器设备进行测试,将ADC采集到的数字信号送给高精度数模转换器(简称DAC)进行信号重建,通过模拟测试仪器测试DAC输出的模拟信号,通过公式可计算得到ADC的性能指标,但是此测试方法成本较高、精度较低且较为复杂。另一种是利用商业数据软件(MATLABE)或高速数据转换软件(High Speed Data Converter Pro)进行测试,此方法需要有电脑的参与,进行ADC采集数据的导出与导入、软件编程、参数填写、数据运算等步骤,步骤较多且容易出错。同时,随着航空航天通信领域的快速发展,产品的模数转换通道基本上多余4路,甚至多达十几路,若进行通道的性能测试时仍采用借助第三方软件工具进行测试,则较为繁琐,浪费大量人力成本。
发明内容
本发明的目的在于提供一种基于FPGA的高速ADC性能测试系统及方法,旨在解决上述的问题,测试ADC的SNR及ENOB性能指标。
本发明主要通过以下技术方案实现:
一种基于FPGA的高速ADC性能测试系统,包括快速傅里叶变换控制状态机、快速傅里叶变换IP核、数据发送控制状态机和性能测试模块,所述性能测试模块包括信噪比SNR计算单元和有效位ENOB计算单元;所述快速傅里叶变换控制状态机与快速傅里叶变换IP核连接,所述快速傅里叶变换IP核与信噪比SNR计算单元连接,所述快速傅里叶变换控制状态机和快速傅里叶变换IP核分别通过FIFO IP核与数据发送控制状态机连接,所述数据发送控制状态机与性能测试模块连接;FIFOIP核用于实现数据存储和数据跨时钟域变换;
所述信噪比SNR计算单元包括从前至后依次设置的乘法器IP核、除法器IP核、定点转浮点数IP核、浮点取自然对数IP核和浮点除法IP核;所述有效位ENOB计算单元包括从前至后依次设置的浮点减法IP核和浮点除法IP;所述信噪比SNR计算单元的输出端与有效位ENOB计算单元的浮点减法IP核连接。
为了更好地实现本发明,进一步地,所述性能测试模块还包括输入信号功率计算单元,所述输入信号功率计算单元包括从前至后依次设置的排序模块、定点转浮点数IP核、浮点数平方根IP核、浮点数相除IP核、浮点数乘法IP核、浮点数乘法IP核、浮点数取自然对数IP核、浮点数相除IP核、浮点数乘法IP核和浮点转定点IP核。
为了更好地实现本发明,进一步地,所述信噪比SNR计算单元、有效位ENOB计算单元和输入信号功率计算单元分别通过浮点转定点IP核与数据发送控制状态机连接。
为了更好地实现本发明,进一步地,所述系统还包括系统时钟、系统复位、ADC输入数据、ADC数据时钟、ADC数据有效标志、运算标志、通道选择标志、串口忙标志、串口时钟、串口数据及串口使能信号;所述运算标志、通道选择标志分别与快速傅里叶变换控制状态机连接,所述ADC输入数据、ADC数据时钟、ADC数据有效标志分别与快速傅里叶变换IP核连接;
所述系统时钟用于向上位机发送计算结果;
所述系统复位用于为有效位ENOB计算单元的寄存器赋予初值;
所述ADC输入数据为ADC电路采集到的数据;
所述ADC数据时钟为当前ADC电路采样时钟或经高速数据总线传输后的数据时钟;
所述ADC数据有效标志可用于判断经高速数据总线传输后的数据是否有效,若未经高速数据总线传输,此位可置1;
所述运算标志为上位机发送的开始计算有效位的命令;
所述通道选择标志为上位机发送的需计算有效位通道的命令;
所述串口忙标志、串口时钟、串口数据及串口使能信号用于发送计算后的性能测试值。
本发明主要通过以下技术方案实现:
一种基于FPGA的高速ADC性能测试方法,基于上述的系统进行,包括以下步骤:
步骤S5:基于信噪比SNR计算单元,利用量化后的ADC底噪数据和量化后的ADC满量程值进行计算,ADC的信噪比SNR计算公式如下:
(1)
其中:Full为当前ADC芯片满量程值;
N为当前ADC芯片采样位数;
an和bn分别为将ADC采样得到的2048个底噪数据进行快速傅里叶变换,取变换后的第1至第1023个数据的实部值和虚部值,其中a0和b0为当前变换的直流分量,直接舍弃;
步骤S6:基于有效位ENOB计算单元,ADC的有效位ENOB计算公式如下:
(2)。
为了更好地实现本发明,进一步地,在步骤S5之前还包括以下步骤:
步骤S1:上位机下发运算标志和通道选择标志至快速傅里叶变换控制状态机,快速傅里叶变换IP核退出复位状态,进入准备状态;
步骤S2:当快速傅里叶变换IP核输出的准备好信号FFT_S_Ready拉高时,快速傅里叶变换控制状态机向 FIFO IP核依次送入2048个ADC采样数据,将其转换为50MHz时钟数据输入并送入数据发送控制状态机;
同时向快速傅里叶变换IP核输入该2048个ADC采样数据,并在最后一个ADC采样数据输入时将输入最后一个数据标志FFT_S_Tlast置高,然后进入快速傅里叶变换控制状态机最后一步,等待快速傅里叶变换IP核输出2048个运算结果数据;
步骤S3:当快速傅里叶变换IP核输出有效运算结果数据时,输出数据有效指示FFT_M_Valid将会被拉高,根据FFT_M_Valid信号将快速傅里叶变换IP核输出的2048个数据依次送入FIFO IP核,将其转换为50MHz时钟数据输入并送入数据发送控制状态机;
步骤S4:当快速傅里叶变换IP核输出最后一个运算结果数据时,输出最后一个数据标志FFT_M_Tlast将会被置高,此时快速傅里叶变换控制状态机跳转回默认状态并控制快速傅里叶变换IP核进入复位状态,等待下一次上位机下发运算标志和通道选择标志,此时若需计算信噪比SNR及有效位ENOB则进入步骤S5。
为了更好地实现本发明,进一步地,所述步骤S5包括以下步骤:
步骤A1:首先根据FFT_M_Valid信号,将第1至第1023个运算结果数据的实部和虚部通过2个Multiplier IP核分别进行平方运算,并相加,计算得到量化后的噪声数据Noise=a1 2+b1 2+a2 2+b2 2+…+a1023 2+b1023 2;
基于当前ADC芯片输入信号满量程指标Full通过量化公式得到量化后的有效信号数据signal=(Full×(2N-1-1)×1024)2,利用除法器IP核计算得到量化后的有效信号数据与量化后的噪声信号数据比值a=signal/Noise;
步骤A2:然后利用定点转浮点数IP核将a值转换为浮点数,并利用浮点取自然对数IP核计算得到量化后的有效信号数据与量化后的噪声信号数据比值的自然对数值b=Ln(a);而后利用浮点除法IP核计算得到SNR:
SNR=10*log10a=b÷(Ln(e)*10)
其中,e为自然数,且e取值2.718281,则Ln(e)取值2.302585;
步骤A3:最后通过浮点转定点IP核得到定点数的SNR值。
优选地,在实际使用时,signal可由外部手动计算,在程序中通过常量赋值。
为了更好地实现本发明,进一步地,所述步骤S6包括以下步骤:
步骤B1:首先利用浮点减法IP核计算得到信噪比与有效位转换第一步的值c=SNR-1.76;
步骤B2:然后利用浮点数相除IP核计算得到有效位ENOB=c/6.02;
步骤B3:最后利用浮点转定点IP核得到定点数的ENOB值。
为了更好地实现本发明,进一步地,还包括步骤S7:基于输入信号功率计算单元,在FPGA内部利用量化后的ADC信号数据的最大值d进行计算,ADC的输入信号功率计算公式如下:
(3)
其中:Data指当前ADC采样得到的2048个信号数据进行FFT运算,取变换后的最大值d。
为了更好地实现本发明,进一步地,所述步骤S7包括以下步骤:
步骤C1:根据FFT_M_Valid信号,利用排序法得到当前2048个FFT有效数据并得到其量化后的最大值d;
步骤C2:利用定点转浮点数IP核将d值转换为浮点数,
利用浮点数平方根IP核计算得到ADC的输入信号功率计算第一步值h=,
利用浮点数相除IP核计算得到ADC的输入信号功率计算第二步值i=,
利用浮点数乘法IP核计算得到ADC的输入信号功率计算第三步值j=i2,
利用浮点数乘法IP核计算得到ADC的输入信号功率计算第四步值k=j*20,
利用浮点数取自然对数IP核计算得到ADC的输入信号功率计算第五步值L=Ln(k),
利用浮点数相除IP核计算得到ADC的输入信号功率计算第六步值m=L÷(Ln(e)*10);其中e为自然数,取值2.718281,Ln(e)取值2.302585;
利用浮点数乘法IP核计算得到ADC的输入信号功率Power=m*10;
步骤C3:最后利用浮点转定点IP核得到定点数的功率值。
本发明的有益效果如下:
(1)本发明的测试方法可直接嵌入到FPGA的逻辑软件中,在完成ADC数据采集的同时,对ADC采集到的数据进行一系列运算,即可得到SNR及ENOB的实际性能指标,也可得到当前ADC输入端口信号的幅度值,还可以上传ADC采样的原始时域数据以及进行转换后的频域数据,具有较好的实用性。
(2)本发明的测试系统无需人工操作,无需借助仪器设备或第三方软件工具,节约测试成本,所有计算结果精确到小数点后三位,测试精度高,极大地减少了测试人员的工作量。而且在有上位机的使用环境中,可以观测ADC的原始采样数据波形和转换后的频域波形,可以协助使用者快速进行故障定位和故障排除,同时本发明采用模块化设计,功能端口较少且清晰,对逻辑设计者也相当友好,具有较好的实用性。
附图说明
图1为本发明基于FPGA的高速ADC性能测试系统的结构框图;
图2为本发明基于FPGA的高速ADC性能测试方法的流程图;
图3为实施例3中输出的ADC底噪时域波形;
图4为实施例3中输出的ADC底噪频域波形。
具体实施方式
实施例1:
一种基于FPGA的高速ADC性能测试系统,如图1所示,在运算模块顶层端口设置系统时钟、系统复位、ADC输入数据、ADC数据时钟、ADC数据有效标志、运算标志、通道选择标志、串口忙标志、串口时钟、串口数据及串口使能信号。
其中,系统时钟用于向上位机发送计算结果;系统复位用于为整个有效位计算模块的寄存器赋予初值;ADC输入数据为ADC电路采集到的数据;ADC数据时钟为当前ADC电路采样时钟或经高速数据总线传输后的数据时钟;ADC数据有效标志可用于判断经高速数据总线传输后的数据是否有效,若未经高速数据总线传输,此位可置1;运算标志为上位机发送的开始计算有效位的命令,单脉冲;通道选择标志为上位机发送的需计算有效位通道的命令;串口忙标志、串口时钟、串口数据及串口使能信号用于发送计算后的SNR及ENOB值。
在运算模块内例化快速傅里叶变换(FFT)IP核、乘法器(Multiplier)IP核、除法器(Divider)IP核、先入先出(FIFO)IP核、浮点数(Floating-point)IP核。
所述FFT IP核将时域信号转换为频域信号,得到各个频率分量,MultiplierIP核用于计算FFT计算结果实部和虚部的平方值,Divider IP核将信号量化平方值与噪声量化平方和进行除法运算,FIFO IP核具有数据存储和数据跨时钟域变换的作用,Floating-point IP核具有定点数和浮点数互相转换、浮点数开根、浮点数相乘、浮点数相除、浮点数取对数的功能,在本实例中,例化2个定点数转浮点数Floating-point IP核,1个浮点数平方根Floating-point IP核,3个浮点数乘法Floating-point IP核,4个浮点数相除Floating-point IP核,1个浮点数减法Floating-point IP核, 2个浮点数取自然对数Floating-point IP核及3个浮点数转定点数Floating-point IP核,主要完成发明内容中信噪比SNR、有效位ENOB和输入信号功率的计算。
本发明的测试系统无需人工操作,无需借助仪器设备或第三方软件工具,节约测试成本,所有计算结果精确到小数点后三位,测试精度高,极大地减少了测试人员的工作量。而且在有上位机的使用环境中,可以观测ADC的原始采样数据波形和转换后的频域波形,可以协助使用者快速进行故障定位和故障排除,同时本发明采用模块化设计,功能端口较少且清晰,对逻辑设计者也相当友好,具有较好的实用性。
实施例2:
一种基于FPGA的高速ADC性能测试方法,基于上述的系统进行,在FPGA内部,利用量化后的ADC底噪数据和量化后的ADC满量程值进行计算,信噪比SNR的计算公式如下:
(1)
其中Full指当前ADC芯片满量程值,单位为峰峰值(Vp-p);
N指当前ADC芯片采样位数,单位为比特(bit);
Full及N可从ADC芯片的数据手册上得到,对固定的ADC芯片来说,量化后的满量程值是一个固定的值,无需多次计算。
an和bn分别为将ADC采样得到的2048个底噪数据进行快速傅里叶变换(FFT),取变换后的第1至第1023个数据的实部值和虚部值。
此计算公式与现有技术相比,无需进行有效信号判断,无需计算任何信号的均方根值,最大化利用FPGA内部计算的数据格式,简化计算步骤,节约FPGA资源。
其次,ENOB的定义是指在当前硬件环境中ADC的实际转换位数,且EONB与SNR关系密切,两者的计算关系公式如下:
(2)
在FPGA内部,利用量化后的ADC信号数据的最大值进行计算,计算公式如下:
(3)
其中Data指当前ADC采样得到的2048个信号数据进行FFT运算,取变换后的最大值;
Full值当前ADC芯片满量程;
N指当前ADC芯片采样位数,计算后的功率单位为dBm。
实施例3:
一种基于FPGA的高速ADC性能测试方法,本实施例选用串口向上位机发送计算结果和波形数据。
在图1中:
FFT_RST为输入快速傅里叶变换IP核的复位信号;
FFT_S_Ready为快速傅里叶变换IP核输出的准备好信号,此时可向快速傅里叶变换IP核传输ADC采集数据;
FFT_S_Tlast为输入快速傅里叶变换IP核的最后一个有效数据指示,表明向快速傅里叶变换IP核传输ADC采集数据完成;
FFT_M_Tlast为快速傅里叶变换IP核输出的最后一个有效数据指示,表明快速傅里叶变换IP核输出数据完成;
Noise为ADC采样数据经快速傅里叶变换IP核量化后输出的第1至第1023个数据实部与虚部的平方和,Noise=a1 2+b1 2+a2 2+b2 2+…+a1023 2+b1023 2;
Signal为当前ADC芯片量化后的有效信号数据,Signal=(Full×(2N-1-1)×1024)2,Full为当前ADC芯片满量程值,N为当前ADC芯片采样位数;
Fix_a为量化后的有效信号数据与量化后的噪声信号数据比值,是定点数,Fix_a=Signal/Noise;
Flo_a为量化后的有效信号数据与量化后的噪声信号数据比值,是浮点数;
Flo_b为浮点数Flo_a取自然对数,Flo_b=Ln(Flo_a);
Flo_SNR为计算出的信噪比值,是浮点数,Flo_SNR=Flo_b÷(Ln(e)*10);
Fix_SNR为计算出的信噪比值,是定点数,此值直接发送到外部上位机,供用户使用观测;
Flo_c为信噪比与浮点数转换公式的第一步,是浮点数,即Flo_c=Flo_SNR-1.76;
Flo_ENOB为计算出的有效位数,是浮点数,即Flo_ENOB=Flo_c/6.02;
Fix_ENOB为计算出的有效位数,定点数,此值直接发送到外部上位机,供用户使用观测。
如图1和图2所示,具体包括以下步骤:
步骤一、在FFT IP核控制状态机内,上位机下发运算标志和通道选择标志,FFT IP核退出复位状态,进入准备状态,待FFT IP核输出的准备好信号FFT_S_Ready拉高,向ADCFIFO IP核依次送入2048个ADC采样数据,将其转换为50MHz时钟数据输入送入串口发送状态机,同时向FFT IP核输入该2048个ADC采样数据,并在最后一个ADC采样数据输入时将输入最后一个数据标志(FFT_S_Tlast)置高,然后进入该状态机最后一步,等待FFT IP核输出2048个运算结果数据,当输出有效运算结果数据时,输出数据有效指示(FFT_M_Valid)将会被拉高,根据FFT_M_Valid信号将FFTIP核输出的2048个数据依次送入FFT FIFO IP核,将其转换为50MHz时钟数据输入送入串口发送状态机,当FFTIP核输出最后一个运算结果数据时,输出最后一个数据标志(FFT_M_Tlast)将会被置高,此时状态机跳转回默认状态并发送FFT_RST信号至FFT IP核,以控制FFT IP核进入复位状态,等待下一次上位机下发运算标志和通道选择标志,此时若需计算SNR及ENOB则进行步骤三,若需计算当前输入信号的功率值则进行步骤五。
步骤二、根据FFT_M_Valid信号,将第2至第1024个运算结果数据的实部和虚部通过2个Multiplier IP核分别进行平方运算,并相加,得到每个频率分量的量化平方和Noise,通过ADC芯片数据手册计算得到该ADC芯片满量程时的量化平方值。
步骤三、参照公式(1),首先利用Divider IP核计算得到量化后的有效信号数据与量化后的噪声信号数据比值a=signal/Noise ,
Noise为ADC采样数据经快速傅里叶变换IP核量化后输出的第1至第1023个数据实部与虚部的平方和,Noise=a1 2+b1 2+a2 2+b2 2+…+a1023 2+b1023 2;
Signal为当前ADC芯片量化后的有效信号数据,Signal=(Full×(2N-1-1)×1024)2,Full为当前ADC芯片满量程值,N为当前ADC芯片采样位数。
其中a[63:8]为计算结果的整数部分,a[7:0]为计算结果的小数部分;然后利用定点数转浮点数Floating-point IP核将a值转换为浮点数,其次利用浮点数取自然对数Floating-point IP核计算得到量化后的有效信号数据与量化后的噪声信号数据比值的自然对数b=Ln(a),而后利用浮点数相除Floating-point IP核计算得到:
SNR=10*log10a=b÷(Ln(e)*10)
其中e为自然数,取值2.718281,Ln(e)取值2.302585,
最后通过浮点数转定点数Floating-point IP核即可得到定点数的SNR值,其中SNR[31:16]代表信噪比整数部分,SNR[15:0]代表有效位小数部分,小数部分转换为十进制的公式为:HEX2DEC(SNR[15:0])÷65536,此计算步骤可交由上位机进行。
步骤四、参照公式(2),首先利用浮点数减法Floating-point IP核计算得到信噪比与有效位转换第一步的值c=SNR-1.76,然后利用浮点数相除Floating-point IP核计算得到有效位ENOB=c/6.02,最后利用浮点数转定点数Floating-point IP核即可得到定点数的ENOB值,其中ENOB [31:16]代表信噪比整数部分,ENOB [15:0]代表有效位小数部分,小数部分转换为十进制的公式为:HEX2DEC(ENOB [15:0])÷65536,此计算步骤可交由上位机进行。
步骤五、参照公式(3),根据FFT_M_Valid信号,利用排序法得到当前2048个FFT有效数据得到其量化后的最大值d,利用定点数转浮点数Floating-point IP核将d值转换为浮点数,利用浮点数平方根Floating-pointIP核计算得到ADC的输入信号功率计算第一步值h=,利用浮点数相除Floating-point IP核计算得到ADC的输入信号功率计算第二步值i=/>(在本例中采样位数N=16,满量程Full=2.5Vp-p),利用浮点数乘法Floating-point IP核计算得到ADC的输入信号功率计算第三步值j=i2,利用浮点数乘法Floating-point IP核计算得到ADC的输入信号功率计算第四步值k=j*20,利用浮点数取自然对数Floating-point IP核计算得到ADC的输入信号功率计算第五步值L=Ln(k),利用浮点数相除Floating-point IP核计算得到ADC的输入信号功率计算第六步值m=L÷(Ln(e)*10),其中e为自然数,取值2.718281,Ln(e)取值2.302585,利用浮点数乘法Floating-pointIP核计算得到ADC的输入信号功率Power=m*10,最后利用浮点数转定点数Floating-pointIP核即可得到定点数的功率值, 其中Power[31:16]代表信噪比整数部分,Power[15:0]代表有效位小数部分,小数部分转换为十进制的公式为:HEX2DEC(Power [15:0])÷65536,此计算步骤可交由上位机进行。
步骤六、在运模块接收到ADC有效位计算标志和通道选择标志时,串口发送状态已跳转到发送状态,运算完成后,串口发送状态机首先判断串口发送时钟是否为高电平,是则进行下一步,否则等待,此步是为了保证首个8bit数据发送完整,随后通过判断串口忙标志,将ADC采样数据、FFT时域数据、SNR、ENOB和功率值依次按照每次8bit的内容发送给串口发送端口,发送完成后,串口发送状态机跳转回默认状态等待下一次的运算标志和通道选择标志。
图3所示波形为ADC底噪时域波形,由2048个上传的ADC数据组成,上位机将接收到的2048个16进制ADC采样数据转换为有符号十进制整数,按数据的接收顺序依次排列,即可得到当前时域的曲线图,由图3可知,当前ADC采样时域波形无明显信号,底噪较为干净。图4所示波形为ADC底噪频域波形,由2048个ADC数据经快速傅里叶变换得到,由图4可知,当前ADC采样频域波形无明显信号,底噪较为干净,其中第0点信号为ADC采样的直流分量,符合快速傅里叶变换的规律。
本发明的测试方法可直接嵌入到FPGA的逻辑软件中,在完成ADC数据采集的同时,对ADC采集到的数据进行一系列运算,即可得到SNR及ENOB的实际性能指标,也可得到当前ADC输入端口信号的幅度值,还可以上传ADC采样的原始时域数据以及进行转换后的频域数据,如图3和图4所示,可以观测ADC的原始采样数据波形和转换后的频域波形,可以协助使用者快速进行故障定位和故障排除,具有较好的实用性。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (10)
1.一种基于FPGA的高速ADC性能测试系统,其特征在于,包括快速傅里叶变换控制状态机、快速傅里叶变换IP核、数据发送控制状态机和性能测试模块,所述性能测试模块包括信噪比SNR计算单元和有效位ENOB计算单元;所述快速傅里叶变换控制状态机与快速傅里叶变换IP核连接,所述快速傅里叶变换IP核与信噪比SNR计算单元连接,所述快速傅里叶变换控制状态机和快速傅里叶变换IP核分别通过FIFO IP核与数据发送控制状态机连接,所述数据发送控制状态机与性能测试模块连接;FIFO IP核用于实现数据存储和数据跨时钟域变换;
所述信噪比SNR计算单元包括从前至后依次设置的乘法器IP核、除法器IP核、定点转浮点数IP核、浮点取自然对数IP核和浮点除法IP核;所述有效位ENOB计算单元包括从前至后依次设置的浮点减法IP核和浮点除法IP;所述信噪比SNR计算单元的输出端与有效位ENOB计算单元的浮点减法IP核连接。
2.根据权利要求1所述的一种基于FPGA的高速ADC性能测试系统,其特征在于,所述性能测试模块还包括输入信号功率计算单元,所述输入信号功率计算单元包括从前至后依次设置的排序模块、定点转浮点数IP核、浮点数平方根IP核、浮点数相除IP核、浮点数乘法IP核、浮点数乘法IP核、浮点数取自然对数IP核、浮点数相除IP核、浮点数乘法IP核和浮点转定点IP核。
3.根据权利要求2所述的一种基于FPGA的高速ADC性能测试系统,其特征在于,所述信噪比SNR计算单元、有效位ENOB计算单元和输入信号功率计算单元分别通过浮点转定点IP核与数据发送控制状态机连接。
4.根据权利要求1-3任一项所述的一种基于FPGA的高速ADC性能测试系统,其特征在于,所述系统还包括系统时钟、系统复位、ADC输入数据、ADC数据时钟、ADC数据有效标志、运算标志、通道选择标志、串口忙标志、串口时钟、串口数据及串口使能信号;所述运算标志、通道选择标志分别与快速傅里叶变换控制状态机连接,所述ADC输入数据、ADC数据时钟、ADC数据有效标志分别与快速傅里叶变换IP核连接;
所述系统时钟用于向上位机发送计算结果;
所述系统复位用于为有效位ENOB计算单元的寄存器赋予初值;
所述ADC输入数据为ADC电路采集到的数据;
所述ADC数据时钟为当前ADC电路采样时钟或经高速数据总线传输后的数据时钟;
所述ADC数据有效标志可用于判断经高速数据总线传输后的数据是否有效,若未经高速数据总线传输,此位可置1;
所述运算标志为上位机发送的开始计算有效位的命令;
所述通道选择标志为上位机发送的需计算有效位通道的命令;
所述串口忙标志、串口时钟、串口数据及串口使能信号用于发送计算后的性能测试值。
5.一种基于FPGA的高速ADC性能测试方法,基于权利要求1-4任一项所述的系统进行,其特征在于,包括以下步骤:
步骤S5:基于信噪比SNR计算单元,利用量化后的ADC底噪数据和量化后的ADC满量程值进行计算,ADC的信噪比SNR计算公式如下:
(1)
其中:Full为当前ADC芯片满量程值;
N为当前ADC芯片采样位数;
an和bn分别为将ADC采样得到的2048个底噪数据进行快速傅里叶变换,取变换后的第1至第1023个数据的实部值和虚部值,其中a0和b0为当前变换的直流分量,直接舍弃;
步骤S6:基于有效位ENOB计算单元,ADC的有效位ENOB计算公式如下:
(2)。
6.根据权利要求5所述的一种基于FPGA的高速ADC性能测试方法,其特征在于,在步骤S5之前还包括以下步骤:
步骤S1:上位机下发运算标志和通道选择标志至快速傅里叶变换控制状态机,快速傅里叶变换IP核退出复位状态,进入准备状态;
步骤S2:当快速傅里叶变换IP核输出的准备好信号FFT_S_Ready拉高时,快速傅里叶变换控制状态机向 FIFO IP核依次送入2048个ADC采样数据,将其转换为50MHz时钟数据输入并送入数据发送控制状态机;
同时向快速傅里叶变换IP核输入该2048个ADC采样数据,并在最后一个ADC采样数据输入时将输入最后一个数据标志FFT_S_Tlast置高,然后进入快速傅里叶变换控制状态机最后一步,等待快速傅里叶变换IP核输出2048个运算结果数据;
步骤S3:当快速傅里叶变换IP核输出有效运算结果数据时,输出数据有效指示FFT_M_Valid将会被拉高,根据FFT_M_Valid信号将快速傅里叶变换IP核输出的2048个数据依次送入FIFO IP核,将其转换为50MHz时钟数据输入并送入数据发送控制状态机;
步骤S4:当快速傅里叶变换IP核输出最后一个运算结果数据时,输出最后一个数据标志FFT_M_Tlast将会被置高,此时快速傅里叶变换控制状态机跳转回默认状态并控制快速傅里叶变换IP核进入复位状态,等待下一次上位机下发运算标志和通道选择标志,此时若需计算信噪比SNR及有效位ENOB则进入步骤S5。
7.根据权利要求5或6所述的一种基于FPGA的高速ADC性能测试方法,其特征在于,所述步骤S5包括以下步骤:
步骤A1:首先根据FFT_M_Valid信号,将第1至第1023个运算结果数据的实部和虚部通过2个Multiplier IP核分别进行平方运算,并相加,计算得到量化后的噪声数据Noise=a1 2+b1 2+a2 2+b2 2+…+a1023 2+b1023 2;
基于当前ADC芯片输入信号满量程指标Full通过量化公式得到量化后的有效信号数据signal=(Full×(2N-1-1)×1024)2,利用除法器IP核计算得到量化后的有效信号数据与量化后的噪声信号数据比值a=signal/Noise;
步骤A2:然后利用定点转浮点数IP核将a值转换为浮点数,并利用浮点取自然对数IP核计算得到量化后的有效信号数据与量化后的噪声信号数据比值的自然对数值b=Ln(a);而后利用浮点除法IP核计算得到SNR:
SNR=10*log10a=b÷(Ln(e)*10)
其中,e为自然数,且e取值2.718281,则Ln(e)取值2.302585;
步骤A3:最后通过浮点转定点IP核得到定点数的SNR值。
8.根据权利要求7所述的一种基于FPGA的高速ADC性能测试方法,其特征在于,所述步骤S6包括以下步骤:
步骤B1:首先利用浮点减法IP核计算得到信噪比与有效位转换第一步的值c=SNR-1.76;
步骤B2:然后利用浮点数相除IP核计算得到有效位ENOB=c/6.02;
步骤B3:最后利用浮点转定点IP核得到定点数的ENOB值。
9.根据权利要求5或6所述的一种基于FPGA的高速ADC性能测试方法,其特征在于,还包括步骤S7:基于输入信号功率计算单元,在FPGA内部利用量化后的ADC信号数据的最大值d进行计算,ADC的输入信号功率计算公式如下:
(3)
其中:Data指当前ADC采样得到的2048个信号数据进行FFT运算,取变换后的最大值d。
10.根据权利要求9所述的一种基于FPGA的高速ADC性能测试方法,其特征在于,所述步骤S7包括以下步骤:
步骤C1:根据FFT_M_Valid信号,利用排序法得到当前2048个FFT有效数据并得到其量化后的最大值d;
步骤C2:利用定点转浮点数IP核将d值转换为浮点数,
利用浮点数平方根IP核计算得到ADC的输入信号功率计算第一步值h=,
利用浮点数相除IP核计算得到ADC的输入信号功率计算第二步值i=,
利用浮点数乘法IP核计算得到ADC的输入信号功率计算第三步值j=i2,
利用浮点数乘法IP核计算得到ADC的输入信号功率计算第四步值k=j*20,
利用浮点数取自然对数IP核计算得到ADC的输入信号功率计算第五步值L=Ln(k),
利用浮点数相除IP核计算得到ADC的输入信号功率计算第六步值m=L÷(Ln(e)*10);其中e为自然数,取值2.718281,Ln(e)取值2.302585;
利用浮点数乘法IP核计算得到ADC的输入信号功率Power=m*10;
步骤C3:最后利用浮点转定点IP核得到定点数的功率值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410022697.6A CN117526943B (zh) | 2024-01-08 | 2024-01-08 | 一种基于fpga的高速adc性能测试系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410022697.6A CN117526943B (zh) | 2024-01-08 | 2024-01-08 | 一种基于fpga的高速adc性能测试系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117526943A true CN117526943A (zh) | 2024-02-06 |
CN117526943B CN117526943B (zh) | 2024-03-29 |
Family
ID=89763065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410022697.6A Active CN117526943B (zh) | 2024-01-08 | 2024-01-08 | 一种基于fpga的高速adc性能测试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117526943B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999020006A2 (en) * | 1997-10-14 | 1999-04-22 | Crystal Semiconductor Corp. | Single-chip audio circuits, methods, and systems using the same |
US20040161028A1 (en) * | 2003-02-13 | 2004-08-19 | Gordon Roberts | Method and apparatus for use in DSP-based testing |
CN103457603A (zh) * | 2013-09-09 | 2013-12-18 | 江南大学 | 一种基于平均频谱测试adc动态参数的方法 |
US9739827B1 (en) * | 2016-12-23 | 2017-08-22 | Advanced Testing Technologies, Inc. | Automated waveform analysis using a parallel automated development system |
US20170277656A1 (en) * | 2016-03-22 | 2017-09-28 | Eugene Britto John | Method and apparatus for reducing power and cycle requirement for fft of ecg signals |
CN107390109A (zh) * | 2017-06-09 | 2017-11-24 | 苏州迅芯微电子有限公司 | 高速adc芯片的自动测试平台及其软件架构设计方法 |
KR101980649B1 (ko) * | 2018-09-13 | 2019-05-21 | 한화시스템 주식회사 | 디지털 신호 처리 장치 |
CN111431533A (zh) * | 2020-04-26 | 2020-07-17 | 杭州电子科技大学富阳电子信息研究院有限公司 | 一种高速lvds接口adc数据与时钟同步的方法 |
CN113346901A (zh) * | 2021-05-28 | 2021-09-03 | 中国科学技术大学 | 一种交替并行采样系统变温条件下修正系数自动适配方法 |
WO2021208186A1 (zh) * | 2020-04-13 | 2021-10-21 | 中国科学院自动化研究所 | 基于块浮点的fblms算法的fpga实现装置及方法 |
CN115238232A (zh) * | 2022-08-01 | 2022-10-25 | 电子科技大学 | 一种基于fpga的快速傅里叶变换数字信号噪声处理方法 |
CN116743169A (zh) * | 2023-06-19 | 2023-09-12 | 同济大学 | 一种用于测试高速adc芯片参数的测试方法 |
CN117150310A (zh) * | 2023-08-03 | 2023-12-01 | 济南大学 | 一种基于fpga的快速傅里叶变换频谱提取优化方法 |
-
2024
- 2024-01-08 CN CN202410022697.6A patent/CN117526943B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999020006A2 (en) * | 1997-10-14 | 1999-04-22 | Crystal Semiconductor Corp. | Single-chip audio circuits, methods, and systems using the same |
US20040161028A1 (en) * | 2003-02-13 | 2004-08-19 | Gordon Roberts | Method and apparatus for use in DSP-based testing |
CN103457603A (zh) * | 2013-09-09 | 2013-12-18 | 江南大学 | 一种基于平均频谱测试adc动态参数的方法 |
US20170277656A1 (en) * | 2016-03-22 | 2017-09-28 | Eugene Britto John | Method and apparatus for reducing power and cycle requirement for fft of ecg signals |
US9739827B1 (en) * | 2016-12-23 | 2017-08-22 | Advanced Testing Technologies, Inc. | Automated waveform analysis using a parallel automated development system |
CN107390109A (zh) * | 2017-06-09 | 2017-11-24 | 苏州迅芯微电子有限公司 | 高速adc芯片的自动测试平台及其软件架构设计方法 |
KR101980649B1 (ko) * | 2018-09-13 | 2019-05-21 | 한화시스템 주식회사 | 디지털 신호 처리 장치 |
WO2021208186A1 (zh) * | 2020-04-13 | 2021-10-21 | 中国科学院自动化研究所 | 基于块浮点的fblms算法的fpga实现装置及方法 |
CN111431533A (zh) * | 2020-04-26 | 2020-07-17 | 杭州电子科技大学富阳电子信息研究院有限公司 | 一种高速lvds接口adc数据与时钟同步的方法 |
CN113346901A (zh) * | 2021-05-28 | 2021-09-03 | 中国科学技术大学 | 一种交替并行采样系统变温条件下修正系数自动适配方法 |
CN115238232A (zh) * | 2022-08-01 | 2022-10-25 | 电子科技大学 | 一种基于fpga的快速傅里叶变换数字信号噪声处理方法 |
CN116743169A (zh) * | 2023-06-19 | 2023-09-12 | 同济大学 | 一种用于测试高速adc芯片参数的测试方法 |
CN117150310A (zh) * | 2023-08-03 | 2023-12-01 | 济南大学 | 一种基于fpga的快速傅里叶变换频谱提取优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117526943B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111965447B (zh) | 一种硬件可组态的模拟信号综合测试系统 | |
CN110579642A (zh) | 基于Zynq的机载交流电多路并行采集处理系统 | |
CN103471473B (zh) | 一种便携式导弹综合测试车自动计量检定装置及检定方法 | |
CN101262303A (zh) | 一种新型误码率测量装置 | |
CN116743169A (zh) | 一种用于测试高速adc芯片参数的测试方法 | |
CN117526943B (zh) | 一种基于fpga的高速adc性能测试系统及方法 | |
CN104569899B (zh) | 一种高精度高压直流互感器校验仪 | |
CN110324041B (zh) | 一种宽带交叉采样系统通道失配估计方法 | |
CN106645942A (zh) | 一种低成本高精度嵌入式信号采集分析系统和方法 | |
CN103532550A (zh) | 一种基于虚拟仪器的电流频率转换器测试方法 | |
CN105182080B (zh) | 一种测量网线阻抗的装置和方法、以及网络设备 | |
CN108873786B (zh) | 基于数字量调理的数据采集系统 | |
CN114184941A (zh) | 一种针对含有adc芯片的模块的测试系统及方法 | |
CN207181570U (zh) | 一种电子测量集成系统 | |
CN112910463A (zh) | Adc静态参数和噪声指标的数据采集与分析测试平台及方法 | |
CN219718216U (zh) | 模数转换器评估板以及模数转换器测试装置 | |
CN112311399A (zh) | 一种模数转换器测试装置和方法 | |
CN104698307A (zh) | 一种基于pxi总线的频率特性测试装置和方法 | |
CN218387509U (zh) | 一种基于PXIe总线的射频信号综合测试模块 | |
CN115001494B (zh) | 一种交织采样的后台自适应自校准方法 | |
Velásquez-Aguilar et al. | Multi-channel data acquisition and wireless communication FPGA-based system, to real-time remote monitoring | |
CN209858719U (zh) | 一种直流互感器暂态校验仪的校验装置 | |
JP3167472B2 (ja) | アナログ−ディジタルコンバータのsn比測定方法 | |
CN202205078U (zh) | 多通道数据采集设备 | |
Xie et al. | A Digital System Design of High-Speed Acquisition Module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |