当前位置:首页 > 电源 > 数字电源
[导读]本文讨论一种快速傅立叶变换(FFT)应用,并在一个含有单周期硬件乘法器的低功耗μC上实现该应用。这个FFT应用实时计算一路输入电压(图l中VIN)的频谱。

1 概述
    如今的低功耗微控制器(μC)也开始集成原先只存在于大型微处理器、ASIC和DSP中的外设功能,使我们有可能以很低的功耗实现复杂的算术运算。本文讨论一种快速傅立叶变换(FFT)应用,并在一个含有单周期硬件乘法器的低功耗μC上实现该应用。这个FFT应用实时计算一路输入电压(图l中VIN)的频谱。为完成该任务,用一片模数转换器(ADC)对VIN进行采样,获得的采样传送给μC。然后,μC对这些采样执行256点FFT运算,获得输入电压的频谱。为便于检测,μC将计算出的频谱数据传送给PC,由PC实时显示出来。
    该FFT应用的固件针对MAXQ2000系列中的一款16位、低功耗μC用C语言编写。有兴趣的读者可以下载该项目的固件和电路原理图(http:∥www.maxim -ic.corn.cn/images/appnotes/3722/3722Firm -ware.zip)。编写FFT代码绝非易事。低功耗μC的一些局限又进一步使该任务复杂化。
    存储器:我们所选的μC有2 kB的RAM。已经知道该算法需要用到2N个16位变量来存储FFT数据,这样,μC可以执行N最高为512的FFT。然而,固件的其他部分也要用到一些RAM。因此,在此项目中,限制N于256。若采用16位变量来表示每个值的实部和虚部,FFT数据总共需要1 024字节的RAM。

    速度:低功耗μC尽管具有高MI/s/mA性能,仍然需要一些优化手段来使运行FFT的指令数尽可能少。好在本应用所用的C编译器(IAR的Em-bedded Workbeneh for MAXQ,见www.iar.com)可提供多种级别的优化和设置。高效地使用硬件乘法器可使代码优化到可以接受的水平。
    无浮点能力:所选的μC不具备浮点能力(低功耗产品一般都不具备浮点能力)。因此,所有运算都必须采用定点算法。为了表示小数,固件采用带符号的Q 8.7表示法。这样,在固件中假定:
    ●第O位至第6位代表小数部分;
    ●第7位至第14位代表整数部分;
    ●第15位代表符号位(二的补码)。
    这样的安排对于加法和减法没有影响,但在做乘法时必须注意将数据按照Q8.7格式对齐。

   
    所选的数据表示法还要适应FFT算法可能遇到的最大数值,同时又要提供足够的精度。例如,我们的ADC可提供带符号的8位采样,以二的补码表示。如果输入为最大幅度(对于带符号8位采样为127)的直流电压,则其能谱全部包含于X(0)中,用Q8.7表示为32 512。这个数值能够用单个带符号的16位数据表示。


2 固件
   
以下部分讨论在低功耗μC上执行Radix-2FFT的固件实现。信号采样由ADC读出后被存储在x_n_re数组中。这个数组代表X(n)的实部。虚部存储在x_n_im数组中,在开始运行FFT前初始化为零。完成FFT后,计算结果取代原始采样数据,被存储在x_n_re和x_n_im中。
2.1 获取采样
    FFT算法假定采样是以固定的取样频率获得的。在为FFT获取采样时如果不加小心将会产生一些问题。例如,采样间隔的抖动就会给FFT结果引入误差,应尽力减小。

    清单1.两种ADC采样伪码算法
    ADC采样循环中的判决语句会造成采样间隔的抖动。例如,系统从ADC读取带符号的8位采样,并将其存储在一组16位变量中。程序清单1中给出了两种伪码算法,执行ADC读取-存储功能。算法l给出的方法会造成采样间隔的抖动,因为负采样比正采样需要更多的时间来读取并存储。
2.2 三角函数表
    本FFT算法通过查表(LUT)而非计算得到正弦或余弦函数值。程序清单2给出了对于正弦和余弦LUT的声明。实际固件的注释中包含了自动生成这些LUT的源代码,可由程序调用。两个LUT均含有N/2分量,因为旋转因子的索引号变化范围为0至N/2-1(见图2)。

    这些LUT中的数组被声明为const,强制编译器将它们存储于代码空间而非数据空间。由于LUT数值须采用Q8.7表示法,它们由正弦和余弦的实际值乘以27后得到。
2.3 位反转
    位反转排序(N已知)可在运行时通过计算、查表或直接利用展开循环编写。所有这些方法都需要在源代码的尺寸和运行速度间进行折衷。本FFT应用利用展开循环进行位反转,其源代码较长,但运行速度快。程序清单3显示了该展开循环的实现。本应用固件的注释中包含了用于程序自动生成展开循环的源代码。

    清单3.用于实现N=256的位反转的展开循环
2.4 Radix-2 FFT算法
    采样按照位反转方式重新排序后就可进行FFT运算了。本Radix-2 FFT应用的固件通过三个主循环执行图2所示的蝶型运算。外循环计数log2(N)级FFT运算。内循环执行每一级的蝶型运算。


    FFT算法的核心部分是执行蝶型运算的一小块代码。程序清单4给出了这一块代码,遗憾的是,它是本应用中唯一“不可移植”的固件。宏MUL_1和MUL_2利用C的硬件乘法器执行单指令周期乘法运算。这些宏的内容专用于MAXQ2000,可在实际固件中全部看到。
2.5 复数的极坐标转换
    为了便于确定VIN频谱的幅度,必须将复数形式的X(K)转换为极坐标形式。实现该转换的固件示于程序清单5。幅度值取代了原始的FFT结果,因为固件不再需要这些数据。


    频谱幅度通过一个二维LUT查表得到。第一索引为频谱实部的高4位(MSB),第二索引为频谱虚部的高4位。为得到这些数据,可将带符号的16位数据右移11次。在从频谱的实部和虚部取得索引号前,需首先将它们转换为绝对值。因此,符号位为
零。
    频谱的幅度是关于X(N/2)对称的,因此只需将前(N/2)+1个频谱数据转换为极坐标形式。还有,我们可以看到,对于实数输入采样,X(0)和X(N/2)的虚部总为零,因此这两条谱线的幅度被单独计算。本项目实际固件的注释中包含了用于自动生成该LUT的源代码,可由程序调用来计算X(k)的幅度。
2.6 Hamming或Hann窗
    此项目固件还包括了对输入采样加Hamming或Hann窗的LUT(Q8.7格式)。加窗函数可有效降低对时域采样X(n)的舍入操作所引起的频谱泄漏。Hamming和Hann窗函数分别如式l和2所示。

   
    程序清单6给出了实现这些函数的代码。同样,本项目实际固件的注释中包含了用于自动生成这些LUT的源代码,可由程序调用来实现这些窗函数。


3 测试结果
   
为了测试该FFT应用的性能,固件将X(K)幅度通过μC的UART端口上传给PC。专门编写的FFTGraph软件(随该项目固件一起提供)用于从PC串口读取这些幅值,并以图形方式实时显示频谱。图3显示了μC以200 kS/s采样四种不同输入信号并处理后,由FFT Graph所显示出来的结果。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

南京2022年10月17日 /美通社/ -- 日前《2022第三届中国高端家电品牌G50峰会》于浙江宁波落幕,来自两百余名行业大咖、专家学者共同探讨了在形势依然严峻的当下,如何以科技创新、高端化转型等手段,帮助...

关键字: LINK AI BSP 智能家电

数字电源

15504 篇文章

关注

发布文章

编辑精选

技术子站

关闭