泉州易尔通网站建设国外网页设计分享网站
2026/4/18 9:36:58 网站建设 项目流程
泉州易尔通网站建设,国外网页设计分享网站,商洛做网站,新网域名管理平台目录 前言 1.快速傅里叶变换#xff08;FFT#xff09; 1.1 FFT的来源 1.2 FFT IP 缩放因子设置实例 缩放配置的底层含义#xff1a;16haaaa 每一级的计算与“减肥”过程 输入准备#xff1a;24 位原始数据 Stage 1#xff1a;第一次蝶形运算 Stage 2#x…目录前言1.快速傅里叶变换FFT1.1 FFT的来源1.2 FFT IP 缩放因子设置实例缩放配置的底层含义16haaaa每一级的计算与“减肥”过程输入准备24 位原始数据Stage 1第一次蝶形运算Stage 2第二次蝶形运算Stage 3 4持续压缩Stage 5最后一级第 1024 个点对齐与MATLAB对比缩放因子过大的后果1.3 进阶探索Block Floating Point (BFP) 模式1.3.1 什么是块浮点1.3.2 BFP 的运行机制逐级动态监测1.3.3 BFP 模式的优势分析1.3.4 工程实现要点前言记录一下对在vivado FFT IP核中如何设置缩放因子的理解。1.快速傅里叶变换FFT1.1 FFT的来源传感器的信号是数字信号所以无法进行连续时间的傅里叶变换离散时间傅里叶变换针对长度为无穷长的信号其得到的频谱是连续的与实际信号的情况也不一致 离散时间傅里叶级数针对离散的信号频谱的结果也是离散的最有可能由计算机实现但其针对周期信号。 实际上计算机采用“离散傅里叶变换DFT”对信号开展分析—基本原理将采集到的信号信号长度为看成周期为的离散时间周期信号并计算其DTFS。所以有离散傅里叶变换DFT的出现对于长度为的信号将其看成周期为的周期信号这种做法是合理结果会有误差但不影响分析其公式为正变换逆变换其物理含义为将信号分解为一系列简单的复指数序列...,.DFT的计算量N个点直接计算DFT的总运算量为次复数乘法次复数加法。分析1024个点的序列需要进行百万次的复乘,消耗的资源比较多。因此有了快速傅里叶的诞生。FFT是其中一种常用的方法。它是快速实现DFT的一种算法有效降低了计算量。FFT简单的理解就是2分法因为将N个点分为两组个点计算仅需要次复数乘法相当于减少一半依次类推FFT复数乘法运算量,两者对比具体的计算就不阐述了。从 DFT 的定义式可见由于计算过程中缺少的归一化系数其运算结果的幅值规模会随点数呈线性增长。在基于 FPGA 的定点化实现中这意味着动态范围的逐级扩张基-2 架构的 FFT 每一级蝶形运算会导致数值放大 2 倍共需进行级运算相应地基-4 架构每一级会放大 4 倍共进行级。因此必须在 IP 核中合理配置缩放因子Scaling Factor以抑制各级运算中的位宽增长防止定点数溢出导致的结果失真。1.2 FFT IP 缩放因子设置实例在代码中FFT IP配置是16384点 FFT、Radix-4 架构、缩放系数16haaaa这是因为FFT IP最大点数是65536,Radix-4 架构最大有8级从而IP核预留的位数。因为设置的FFT IP核点数可配因此可设置NFFT1024。对于 1024点的 Radix-4 算法计算一共分为 5级因为。缩放配置的底层含义16haaaaconfig_SCALE_SCH 16haaaa转换成二进制是[10] [10] [10] [10] [10] [10] [10] [10]在 Xilinx FFT IP 中每 2位控制一个计算级的缩放00: 不移位可能溢出但精度最高。01: 右移 1 位数值除以 2。10:右移 2 位数值除以 4。11: 右移 3 位数值除以 8。每一级的计算与“减肥”过程输入准备24 位原始数据ADC 数据进入 FFT 模块实部和虚部各占24位。此时数据的动态范围是。Stage 1第一次蝶形运算计算Radix-4 蝶形单元同时读取 4 个样点乘以旋转因子并相加。位宽增长4个数相加理论最大值会变为原来的 4倍即位宽增加 2位从 24 位变成 26 位。缩放10硬件执行 2右移 2 位。结果26 位 - 2 位 24 位。数据大小回到了安全范围防止溢出。Stage 2第二次蝶形运算计算处理 Stage 1 输出的中间结果。位宽增长数值再次面临潜在的 $4$ 倍增长。缩放10再次执行 2。结果维持在24位}。Stage 3 4持续压缩过程同上。每一级都允许数值翻 4$倍但随即被 2砍掉。这两级完成后已经处理了 4^4 256个点之间的相关性。Stage 5最后一级第 1024 个点对齐计算完成最后的复数加减。缩放10执行最后一次 2。最终输出输出的data_out_Real依然是24 位。与MATLAB对比整个过程可以用一个公式来表达你的输出幅值与理论真值的关系这意味着你为了保证在100% 满量程正弦波输入时硬件不溢出将最终的计算结果缩小了 1024倍。维度输入 (Input)输出 (Output)损失 (Loss)位宽24 bit24 bit0 bit数值精度原生精度有效信息被右移了 10 位丢失了低 10 位的细节动态范围~144 dB~144 dB约 60 dB 被推入噪声层这里需要区分MATLAB的FFT运算。尽管二者均涉及 1/N 的归一化处理但 MATLAB 基于浮点运算能够完整保留计算过程中的微弱细节相比之下FPGA 的定点运算在逐级缩放过程中不可避免地会引入量化损失。因此缩放因子Scaling Factor的配置必须根据输入信号的动态范围进行‘动态适配’针对满量程Full-scale信号应优先采用保守的缩放策略以确保数值不溢出而对于非满量程信号如幅值减半则可适当降低缩放比例如每级仅缩小 2 倍从而在动态范围与系统稳定性之间取得最优平衡。”举个例子如果信号不是占满全量程ADC 没爆表可以尝试“前松后紧”的策略。修改config_SCALE_SCH建议方案16h5555即01 01 01 01 01 01 01 01效果每一级只右移 1 位除以 2。这样总共只缩小了 2^5 32 倍。好处能多找回5 位的精度让 10Hz 附近的微弱扫频信号更加清晰。最后在MATLAB中处理的时候再做除以2^5即可。缩放因子过大的后果信号太弱如果你观测的扫频信号本身就很微弱经过这 5 级 2的连续截断信号的能量可能直接被移成了 0。这就是为什么有时候背景看起来非常干净全是蓝色因为微弱的噪声和信号都被“缩放”没了。量化噪声每一级右移都会产生舍入误差。由于可能没有开启Convergent Rounding收敛舍入这些误差会累积导致频谱的底部并不平整。在你的“星载数字系统”笔记中Block Floating Point (BFP块浮点)模式可以作为解决“弱信号丢失”与“强干扰溢出”矛盾的高级方案。它在硬件开销与计算精度之间取得了一种近乎完美的平衡。以下是为你整理的详细介绍可直接填入你的笔记1.3 章节1.3 进阶探索Block Floating Point (BFP) 模式1.3.1 什么是块浮点块浮点是一种特殊的定点运算模式。如果说手动缩放Scaled是每一步都“切掉”固定的位数那么块浮点就是“按需剪裁”。在每一级蝶形运算开始前硬件会实时扫描该块数据Block中的最大值根据其量级动态决定本级是否需要右移缩放。核心公式MMantissaFFT 输出的尾数即 24-bit 数据。EExponent块阶码BLK_EXP记录了整帧数据总共缩放的位数。1.3.2 BFP 的运行机制逐级动态监测对于1024点5 级Radix-4 FFT峰值检测在 Stage 1 计算前硬件检测输入数据的峰值。自适应缩放若信号极弱如空间背景噪声硬件检测到没有溢出风险本级执行00不移位保留全部 24 bit 精度。若信号极强如强电磁干扰硬件检测到峰值接近饱和本级自动执行10右移 2 位防溢出。阶码累加每一级自动缩放的位数都会累加到BLK_EXP中。最终输出时所有频点共享这一个阶码。1.3.3 BFP 模式的优势分析在“波动探测”任务中BFP 模式相比16haaaa手动缩放具有显著优势最大化信噪比 (SNR)它能在处理微弱扫频信号时自动找回因手动缩放丢失的低 10 位精度动态范围提升最高可达60 dB.防止系统“致盲”手动缩放如16h5555在遇到突发强干扰时会溢出导致数据错乱BFP 则能瞬间收缩量程保证系统不崩溃。数学归一化它在输出时自动完成了类似 1/N 的量级调整且该调整是基于信号实际功率动态进行的。1.3.4 工程实现要点接口变化没有了缩放因子但需要监听m_axis_data_tuser总线从中提取BLK_EXP字段。资源权衡BFP 需要额外的逻辑进行峰值比较可能会增加Hold 违例的修复难度。后端还原在 MATLAB 解析时真实的幅值需补回阶码以上就是本次的笔记记录。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询