分享

想知道有限精度对FFT的影响?Matlab仿真看看

 zztangzz 2019-09-06

 GrowthNudge 

  你的成长,我来助推!

公众号《成长助推》致力于分享实用工具、必备技能、思维方法,以助推成长为目标,长期有效的提供价值内容。

今日助推小目标:

1. Matlab对定点算法问题的仿真。模拟实际中会出现的问题。

2. 基于时间抽选(DIT)的FFT算法实现。给出仿真源码,可发送关键词“fi_FFT”直接下载,长期有效。

我们在分析一个信号的频谱时,通常会用到离散时间序列的DFT,而FFT则是DFT的快速算法。平时你在Matlab中采用FFT函数直接计算时,似乎并没有关系其精度问题。

而在实际的工程中,算法的处理是有限精度的,另外,DFT的系数也是有限字长的。这些因素都会影响离散时间信号DFT的最终结果。

定点FFT的算法不同,运算的有限字长效应也会不同。通常有两种评估有限精度算法影响的方法。一种是,采用详细的分析来预测对最终输出的影响;另一种则是通过采用有限精度算法来仿真系统的实现。

通常一般会采用后者,因为简单方便低成本,这就需要先对Matlab进行定点运算的设置。

Matlab程序实现了基于时间抽取(DIT)的FFT算法,采用了有限精度的定点算法。算法还计算了输入序列的全精度DFT,以及全精度和有限精度的差值。并绘图直观表现出来:


左边图是时域信号,基本看不出全精度和8位定点精度的差别。右图上面是对左边时域信号做的FFT,红色线表示全精度,蓝色线表示有限精度,下面就是二种方法的差值,并计算了最大绝对误差是0.018。

当把定点精度从8位改成4位,差别就比较明显了,最大绝对误差也扩大到了0.199。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多