影响FFT运算精度的主要配置项

news/2024/7/6 1:49:58 标签: fpga, matlab, fft

对FFT运算精度影响较大的因素包括
 FFT架构;Radix-4、Radix-2、Pipeline、Radix-2 Lite
 输入数据位宽
 旋转因子位宽
 每个阶段的缩放因子
 FFT点数
1、 FFT架构对FFT运算精度的影响
整体而言,Radix-2精度最高,Pipeline次之,Radix-4较低,但是并非绝对如何,与其他因素也有较大关系。
2、 输入数据位宽对FFT运算精度的影响
以12bit数据位宽、14bit数据位宽、16bit数据位宽测试FFT运算得到的实部虚部数据误差,测试结果如下图所示。
在这里插入图片描述

图2.1 12bit数据位宽条件下测试结果
在这里插入图片描述

图2.2 14bit数据位宽条件下测试结果
在这里插入图片描述

图2.3 16bit数据位宽条件下测试结果
由上图可知,输入数据位宽越高,FFT运算结果精度越高
3、 旋转因子位宽对FFT运算精度的影响
配置为Fixed Point FFT时,旋转因子位宽范围为8-34,旋转因子位宽越高,FFT精度越高。
配置为Float Point FFT时,旋转因子位数可选值为24和25,两种位数条件下FFT运算的精度如下图所示。
在这里插入图片描述

图3.1
由上图可知,25位旋转因子的RMS噪声比24位旋转因子的RAM噪声低约5个dB。
4、 每个阶段缩放因子对FFT运算精度的影响
配置为Fixed Point FFT时,有三种缩放因子配置方式:Scaled(外部动态配置)、Unscaled(无缩放)、Block Floating Point(FFT核根据运算过程数据的值动态调整)。
由于Block Floating Point方式会自动检测过程数据的值,确定是否需要缩放,因此精度优于其他方式。
配置为Floating Point FFT时,默认无缩放,且不支持配置。
5、 FFT点数
每次FFT的点数会影响FFT运算的精度,以64点FFT和8192点FFT为例,两种情况下的测试误差如下图所示。
在这里插入图片描述
在这里插入图片描述

	由图可知,8912点FFT精度整体比64点精度高,由图3.1可知,FFT点数对运算精度有较大影响,不呈现明显的正反相关性。

http://www.niftyadmin.cn/n/962752.html

相关文章

4.PCIe协议分析2-PIO XAPP1052 XDMA三者联系和区别详谈

目录 1.回顾 2.PIO XAPP1052 XDMA三者联系和区别详谈 2.1 PIO 2.2 XAPP1052 2.3 XDMA 3.总结 1.回顾 上一节我们讲了PCIe协议分析的一些预备知识点&

优秀的人都在悄悄开始改变,今天你改变了吗?

今天偶尔看到一句话,“优秀的人都在悄悄开始改变,今天你改变了吗?”。这句话让我陷入沉思,2020年给自己定两个大目标,第一个是身材要和张翰一样,第二个是成为FPGA界高速接口的大神。

OpenStack Ocata Telemetry 数据收集服务

1 安装配置计算服务 在所有计算节点上: 1.1 安装配置组件 安装包: # yum install -y openstack-ceilometer-compute 编辑配置文件/etc/ceilometer/ceilometer.conf: [DEFAULT] ... transport_url rabbit://openstack:pass123456controller3 …

Matlab单精度数据转换成IEEE754单精度数据及误差分析

Matlab单精度数据转换成IEEE754单精度数据及误差分析 考虑四种转换方式 1、 Matlab中默认的Double类型转换为IEEE单精度,在求分数部分的值时,四舍五入采用floor方式。 2、 Matlab中默认的Double类型转换为IEEE单精度,在求分数部分的值时&…

5.PCIe协议分析3-PCIe TLP包详解1

目录 1.回顾 2.PCIe TLP简介 3.PCIe TLP Header结构 4.总结 1.回顾 上一节我们讲解了PIO XAPP1052 XDMA三者联系和区别,大家具体知道了PIO XAPP1052 XDMA实现的基本功能后,就可以进入本节的学习。 2.PCIe TLP简介 Host与PCIe设备之间,或者PCIe设备与设备之间,数据传…

php+mysql开发账号注册/登录/登陆后才可以查看/登陆后才可以下载功能

几乎大部分的网站都有注册账号,登录系统,这是非常需要的一个模块。本人这次的案例就是做一个注册账号,登录账号,登陆后才可以查看某些资源的功能,其实就是简单的php操作数据库。 首先讲注册账号。注册账号的逻辑是&…

Vivado导入浮点数据

1、MATLAB生成double类型数据,并导出到文件中。 signal randn(1000,1); writematrix(sinwave,‘signal.dat’,‘Delimiter’,’ ‘); 2、Vivado导入浮点数据 DataSource_Inputfopen("signal.txt","r");while(fopen("signal.txt",&qu…

6.PCIe协议分析3-PCIe TLP包详解2

1.回顾 上一篇博文我们讲解了TLP简介以及TLP Header结构,并列出了TLP的所有类型,如下图。本篇博文讲解核心几个TLP类型的具体结构(下图标注红色的),这些核心的TLP包结构,就是我们下章在分析PIO、XAPP1052例程里面实现的所有传输事务使用的TLP包类型。 2.核心事务类型的T…