[发明专利]一种基于FPGA芯片计算信号频谱的方法及系统有效
申请号: | 202010612970.2 | 申请日: | 2020-06-30 |
公开(公告)号: | CN111753249B | 公开(公告)日: | 2023-09-19 |
发明(设计)人: | 陈永星 | 申请(专利权)人: | 成都博宇利华科技有限公司 |
主分类号: | G06F17/14 | 分类号: | G06F17/14;G06F7/556 |
代理公司: | 四川省天策知识产权代理有限公司 51213 | 代理人: | 张秀敏 |
地址: | 610000 四川省成都市中国(四川)自由贸易*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 芯片 计算 信号 频谱 方法 系统 | ||
本发明公开了一种基于FPGA芯片计算信号频谱的方法,包括:步骤S100:选择窗函数,设置加窗点数,对输入信号进行加窗处理;步骤S200:对加窗后的信号进行快速傅里叶变换,将时域信号转换到频域;步骤S300:对快速傅里叶变换后的数据取模,并求对数,通过换底公式得到信号功率谱。还公开了一种基于FPGA芯片计算信号频谱的系统,包括控制模块、加窗模块、FFT变换模块和功率谱计算模块。本发明综合利用了窗函数、快速傅里叶变换、基于反向双曲正切cordic求对数,使得FPGA可以直接计算出频谱数据,并且有着计算速度快、消耗硬件资源少、计算结果精度高等优点。
技术领域
本发明涉及频谱分析技术领域,具体的说,是一种基于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)采用移位相加的方法实现,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都博宇利华科技有限公司,未经成都博宇利华科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010612970.2/2.html,转载请声明来源钻瓜专利网。