CN111753249B - 一种基于fpga芯片计算信号频谱的方法及系统 - Google Patents
一种基于fpga芯片计算信号频谱的方法及系统 Download PDFInfo
- Publication number
- CN111753249B CN111753249B CN202010612970.2A CN202010612970A CN111753249B CN 111753249 B CN111753249 B CN 111753249B CN 202010612970 A CN202010612970 A CN 202010612970A CN 111753249 B CN111753249 B CN 111753249B
- Authority
- CN
- China
- Prior art keywords
- module
- signal
- power spectrum
- data
- calculating
- 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.)
- Active
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于FPGA芯片计算信号频谱的方法,包括:步骤S100:选择窗函数,设置加窗点数,对输入信号进行加窗处理;步骤S200:对加窗后的信号进行快速傅里叶变换,将时域信号转换到频域;步骤S300:对快速傅里叶变换后的数据取模,并求对数,通过换底公式得到信号功率谱。还公开了一种基于FPGA芯片计算信号频谱的系统,包括控制模块、加窗模块、FFT变换模块和功率谱计算模块。本发明综合利用了窗函数、快速傅里叶变换、基于反向双曲正切cordic求对数,使得FPGA可以直接计算出频谱数据,并且有着计算速度快、消耗硬件资源少、计算结果精度高等优点。
Description
技术领域
本发明涉及频谱分析技术领域,具体的说,是一种基于FPGA芯片计算信号频谱的方法及系统。
背景技术
随着电子信息技术的不断发展,FPGA芯片作为现场可编程逻辑门阵列因其开发费用低,效率高等优点得到广泛运用。在FPGA中直接计算频谱数据,成为了信号处理工作的常见需求。然而FPGA存在的局限性在于并不适合复杂的计算。传统的频谱分析方式是交由上位机进行处理,但是这会加大后端的处理难度,增加总线传输的要求以及处理显示的压力。特别是在频谱计算实时性强、数据量大的情况,由FPGA芯片直接计算频谱并求出功率谱可以大大减轻后端压力。但是,FPGA计算频谱的难点在于求功率谱的步骤,即要计算lg对数值。通常基于FPGA求对数的方法主要有传统实现方式主要有查找表、分段线性近似法、多项式近似法以及数值循环法等,但是这几种方法使用资源较多,精度也相对较低。
发明内容
本发明的目的在于提供一种基于FPGA芯片计算信号频谱的方法及系统,用于解决现有技术中FPGA计算频谱时求对数采用传统方法占用资源较多、精度较低的问题。
本发明通过下述技术方案解决上述问题:
一种基于FPGA芯片计算信号频谱的方法,包括:
步骤S100:选择窗函数,设置加窗点数,对输入信号进行加窗处理;
步骤S200:对加窗后的信号进行快速傅里叶变换,将时域信号转换到频域;
步骤S300:对快速傅里叶变换后的数据取模,并求对数,通过换底公式得到信号功率谱,具体步骤为:
(a)对于输入数据进行平方和计算,将输入的复数I/Q数据且为定点数数据转换为实数,通过二分法找到数据最高位,并得到最高位所在位数L1,将位数L1加1后得到L,将L×ln(2)缓存;
(b)将输入数据平移操作后与反双曲函数cordic ip核输入端小数位第一位对齐,整数位全部赋值为零,输入数据的格式变换为0.r×2L;采用反正切双曲函数cordic求对数,得到ln(0.r);
(c)将步骤(a)和步骤(b)的计算结果相加,得到:
ln(r)=ln(0.r)+L×ln(2);
(d)将步骤(c)的计算结果与log10(e)相乘,得到:
log10(r)=log10(e)×ln(r)
=log10(e)×[ln(0.r)+L×ln(2)]。
上述方法,可以直接在FPGA中实现,使得FPGA可以直接计算出频谱数据,并且有着计算速度快、消耗硬件资源少、计算结果精度高等优点。
所述(d)中的log10(e)和(a)中的ln(2)采用移位相加的方法实现,
Log10(e)≈2-2+2-3+2-5+2-6+2-7+2-8+2-10;
ln(2)≈2-1+2-4+2-8+2-10+2-11+2-12。
还包括步骤S400:利用FPGA芯片的ram资源存储一帧或者多帧数据的功率谱,求取平均值和/或最大值。
一种基于FPGA芯片计算信号频谱的系统,包括控制模块、加窗模块、FFT变换模块和功率谱计算模块,其中:
控制模块,用于设置FFT变换模块中FFT点数和加窗模块中的窗函数点数以及控制系统工作使能;
加窗模块,用于在控制模块的使能信号到来时,对输入信号执行加窗操作;
FFT变换模块,用于对加窗模块输出的数据进行FFT变换;
功率谱计算模块,对FFT变换模块输出的信号求功率谱。
所述功率谱计算模块包括连接的求平方和模块和二分法查找数据最高位位数模块,所述二分法查找数据最高位位数模块的输出端分别连接加1模块和反双曲函数cordic,所述加1模块依次连接乘ln(2)模块和缓存模块后与所述反双曲函数cordic在加法模块相加后输入乘log10(e)模块。
还包括与功率谱计算模块输出端连接的平均值计算模块和/或最大值计算模块,平均值计算模块用于对功率谱计算模块输出的功率谱求平均值;最大值计算模块用于对功率谱计算模块输出的功率谱求最大值。
本发明与现有技术相比,具有以下优点及有益效果:
本发明综合利用了窗函数、FFT(快速傅里叶变换)、基于反向双曲正切cordic求对数,使得FPGA可以直接计算出频谱数据,并且有着计算速度快、消耗硬件资源少、计算结果精度高等优点。并且能够实时的计算频谱、在通信信号处理领域有广泛的适用性。
附图说明
图1为本发明的系统框图;
图2为计算功率谱的流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例:
一种基于FPGA芯片计算信号频谱的方法,包括:
步骤S100:选择窗函数,设置加窗点数,对输入信号进行加窗处理;
步骤S200:对加窗后的信号进行快速傅里叶变换,将时域信号转换到频域;
步骤S300:对快速傅里叶变换后的数据取模,并求对数,通过换底公式得到信号功率谱,具体步骤如图2所示:
(a)对于输入数据进行平方和计算,将输入的复数I/Q数据且为定点数数据转换为实数,通过二分法找到数据最高位,并得到最高位所在位数L1,将位数L1加1后得到L,将L×ln(2)缓存;
(b)将输入数据平移操作后与反双曲函数cordic ip核输入端小数位第一位对齐,整数位全部赋值为零,输入数据的格式变换为0.r×2L;采用反正切双曲函数cordic求对数,得到ln(0.r);
(c)将步骤(a)和步骤(b)的计算结果相加,得到:
ln(r)=ln(0.r)+L×ln(2);
(d)将步骤(c)的计算结果与log10(e)相乘,得到:
log10(r)=log10(e)×ln(r)
=log10(e)×[ln(0.r)+L×ln(2)]。
所述(d)中的log10(e)和(a)中的ln(2)采用移位相加的方法实现,
Log10(e)≈2-2+2-3+2-5+2-6+2-7+2-8+2-10;
ln(2)≈2-1+2-4+2-8+2-10+2-11+2-12。
还包括步骤S400:利用FPGA芯片的ram资源存储一帧或者多帧数据的功率谱,求取平均值和/或最大值。
实施例2:
结合附图1所示,一种基于FPGA芯片计算信号频谱的系统,包括控制模块、加窗模块、FFT变换模块和功率谱计算模块,其中:
控制模块,用于设置FFT变换模块中FFT点数和加窗模块中的窗函数点数以及控制系统工作使能;
加窗模块,用于在控制模块的使能信号到来时,对输入信号执行加窗操作;
FFT变换模块,用于对加窗模块输出的数据进行FFT变换;
功率谱计算模块,对FFT变换模块输出的信号求功率谱。
所述功率谱计算模块包括连接的求平方和模块和二分法查找数据最高位位数模块,所述二分法查找数据最高位位数模块的输出端分别连接加1模块和反双曲函数cordic,所述加1模块依次连接乘ln(2)模块和缓存模块后与反双曲函数cordic在加法模块相加后输入乘log10(e)模块,还包括平均值计算模块和/或最大值计算模块,平均值计算模块用于对功率谱计算模块输出的功率谱求平均值;最大值计算模块用于对功率谱计算模块输出的功率谱求最大值。求出功率谱后利用FPGA芯片的ram资源存储一帧或多帧数据,求取平均值和最大值,方便实际运用中更加直观的分析与观察。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (4)
1.一种基于FPGA芯片计算信号频谱的方法,其特征在于,包括:
步骤S100:选择窗函数,设置加窗点数,对输入信号进行加窗处理;
步骤S200:对加窗后的信号进行快速傅里叶变换,将时域信号转换到频域;
步骤S300:对快速傅里叶变换后的数据取模并求对数,计算信号功率谱,具体步骤为:
(a)对于输入数据进行平方和计算,将输入的复数I/Q数据且为定点数数据转换为实数,通过二分法找到数据最高位,并得到最高位所在位数L1,将位数L1加1后得到L,将L×ln(2)缓存;
(b)将输入数据平移操作后与反双曲函数cordic ip核输入端小数位第一位对齐,整数位全部赋值为零,输入数据的格式变换为0.r×2L;采用反正切双曲函数cordic求对数,得到ln(0.r);
(c)将步骤(a)和步骤(b)的计算结果相加,得到:
ln(r)=ln(0.r)+L×ln(2);
(d)将步骤(c)的计算结果与log10(e)相乘,得到:
log10(r)=log10(e)×ln(r)
=log10(e)×[ln(0.r)+L×ln(2)];
所述(d)中的log10(e)和(a)中的ln(2)采用移位相加的方法实现,
Log10(e)≈2-2+2-3+2-5+2-6+2-7+2-8+2-10;
ln(2)≈2-1+2-4+2-8+2-10+2-11+2-12。
2.根据权利要求1所述的一种基于FPGA芯片计算信号频谱的方法,其特征在于,还包括步骤S400:利用FPGA芯片的ram资源存储一帧或者多帧数据的功率谱,求取平均值和/或最大值。
3.一种基于FPGA芯片计算信号频谱的系统,其特征在于,包括控制模块、加窗模块、FFT变换模块和功率谱计算模块,其中:
控制模块,用于设置FFT变换模块中FFT点数和加窗模块中的窗函数点数以及控制系统工作使能;
加窗模块,用于在控制模块的使能信号到来时,对输入信号执行加窗操作;
FFT变换模块,用于对加窗模块输出的数据进行FFT变换;
功率谱计算模块,对FFT变换模块输出的信号求功率谱;
所述功率谱计算模块包括连接的求平方和模块和二分法查找数据最高位位数模块,所述二分法查找数据最高位位数模块的输出端分别连接加1模块和反双曲函数cordic,所述加1模块依次连接乘ln(2)模块和缓存模块后与所述反双曲函数cordic在加法模块相加后输入乘log10(e)模块。
4.根据权利要求3所述的一种基于FPGA芯片计算信号频谱的系统,其特征在于,还包括与所述功率谱计算模块连接的平均值计算模块和/或最大值计算模块,所述平均值计算模块用于对功率谱计算模块输出的功率谱求平均值;所述最大值计算模块用于对功率谱计算模块输出的功率谱求最大值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010612970.2A CN111753249B (zh) | 2020-06-30 | 2020-06-30 | 一种基于fpga芯片计算信号频谱的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010612970.2A CN111753249B (zh) | 2020-06-30 | 2020-06-30 | 一种基于fpga芯片计算信号频谱的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111753249A CN111753249A (zh) | 2020-10-09 |
CN111753249B true CN111753249B (zh) | 2023-09-19 |
Family
ID=72678222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010612970.2A Active CN111753249B (zh) | 2020-06-30 | 2020-06-30 | 一种基于fpga芯片计算信号频谱的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111753249B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112986677B (zh) * | 2021-02-04 | 2022-01-28 | 电子科技大学 | 一种基于SoC动态可配的频谱分析的系统及实现方法 |
CN115128563B (zh) * | 2022-08-31 | 2022-11-29 | 中国科学院空天信息创新研究院 | 一种星载合成孔径雷达系统幅相误差补偿方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257319A (zh) * | 2008-04-09 | 2008-09-03 | 浙江大学 | 一种全数字对数自动增益控制装置及方法 |
JP2011502289A (ja) * | 2007-09-26 | 2011-01-20 | 日本電気株式会社 | Cordicに基づいたfft及びifft装置並びに方法 |
JPWO2011162310A1 (ja) * | 2010-06-23 | 2013-08-22 | 日本電気株式会社 | プロセッサおよび演算方法 |
CN105915296A (zh) * | 2016-04-07 | 2016-08-31 | 成都华日通讯技术有限公司 | 基于fpga调幅解调的射频电平值计算方法及装置 |
CN106199631A (zh) * | 2016-09-28 | 2016-12-07 | 成都凯天电子股份有限公司 | 相干测风雷达风速测量方法 |
CN108680787A (zh) * | 2018-05-23 | 2018-10-19 | 成都玖锦科技有限公司 | 基于fpga的实时频谱分析方法 |
CN110187866A (zh) * | 2019-06-03 | 2019-08-30 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于双曲cordic的对数乘法计算系统及方法 |
CN110222305A (zh) * | 2019-06-03 | 2019-09-10 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于双曲cordic的对数函数计算系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5514572B2 (ja) * | 2010-02-09 | 2014-06-04 | 富士フイルム株式会社 | シーズニング装置 |
-
2020
- 2020-06-30 CN CN202010612970.2A patent/CN111753249B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011502289A (ja) * | 2007-09-26 | 2011-01-20 | 日本電気株式会社 | Cordicに基づいたfft及びifft装置並びに方法 |
CN101257319A (zh) * | 2008-04-09 | 2008-09-03 | 浙江大学 | 一种全数字对数自动增益控制装置及方法 |
JPWO2011162310A1 (ja) * | 2010-06-23 | 2013-08-22 | 日本電気株式会社 | プロセッサおよび演算方法 |
CN105915296A (zh) * | 2016-04-07 | 2016-08-31 | 成都华日通讯技术有限公司 | 基于fpga调幅解调的射频电平值计算方法及装置 |
CN106199631A (zh) * | 2016-09-28 | 2016-12-07 | 成都凯天电子股份有限公司 | 相干测风雷达风速测量方法 |
CN108680787A (zh) * | 2018-05-23 | 2018-10-19 | 成都玖锦科技有限公司 | 基于fpga的实时频谱分析方法 |
CN110187866A (zh) * | 2019-06-03 | 2019-08-30 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于双曲cordic的对数乘法计算系统及方法 |
CN110222305A (zh) * | 2019-06-03 | 2019-09-10 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于双曲cordic的对数函数计算系统及方法 |
Non-Patent Citations (1)
Title |
---|
基于改进 SF-CORDIC 的指数和对数函数求值算法;黄晓可 等;《计算机应用与软件》;第31卷(第2期);279-282 * |
Also Published As
Publication number | Publication date |
---|---|
CN111753249A (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111753249B (zh) | 一种基于fpga芯片计算信号频谱的方法及系统 | |
EP3144805B1 (en) | Method and processing apparatus for performing arithmetic operation | |
Juang et al. | A lower error and ROM-free logarithmic converter for digital signal processing applications | |
CN110688088A (zh) | 一种面向神经网络的通用非线性激活函数计算装置和方法 | |
CN110187866B (zh) | 一种基于双曲cordic的对数乘法计算系统及方法 | |
JP4251484B2 (ja) | ヒストグラム計算システム、電子試験装置及びヒストグラム計算方法 | |
CN112200299B (zh) | 神经网络计算装置、数据处理方法及装置 | |
CN110222305B (zh) | 一种基于双曲cordic的对数函数计算系统及方法 | |
CN109614073B (zh) | 四象限反正切函数硬件实现电路 | |
CN111078187A (zh) | 一种针对单精度浮点数的任意次方根求解方法及其求解器 | |
CN109977348A (zh) | 数据压缩方法及装置、存储介质、雷达系统 | |
CN111984226B (zh) | 一种基于双曲cordic的立方根求解装置及求解方法 | |
CN110840483B (zh) | 一种用于数字超声诊断仪的实时对数压缩方法、系统 | |
CN111767993A (zh) | 卷积神经网络int8量化方法、系统、设备及存储介质 | |
CN112163185B (zh) | Fft/ifft运算装置及基于该装置的fft/ifft运算方法 | |
CN103926567B (zh) | 高速实时脉冲压缩算法 | |
CN110297199B (zh) | 一种基于全相位fft的铯光泵磁力仪频率测量方法及系统 | |
CN113515259B (zh) | 一种适用于浮点格式的复数的近似取模实现电路及方法 | |
CN113778378A (zh) | 一种求解复数n次方根的装置和方法 | |
WO2024045060A1 (zh) | 一种自适应建表方法、装置,电子设备及存储介质 | |
CN102609236A (zh) | 一种应用于gpu中的幂指数运算装置和运算方法 | |
JPH0314128A (ja) | 対数表現数値利用の演算装置 | |
CN116560733B (zh) | 一种空间目标特征在轨实时并行lu分解计算系统及方法 | |
CN117372296B (zh) | 一种经济型gamma校正方法及装置 | |
Sun et al. | An Approximating Twiddle Factor Coefficient Based Multiplier for Fixed-Point FFT |
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 |