首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
在MSP430F1611上 实现周期图谱分析及校正
来源:本站整理  作者:佚名  2009-06-30 14:01:12



摘要 基于FFT的周期图谱分析方法可以有效地从含有噪声的信号中提取有用信息;但是,由于低功耗单片机的速度和内存有限,所以无法实时地完成FFT运算。为此,我们采用汇编语言编制FFT程序。采用定点运算来减少运算量和存储量;采用先判断再移位的方式,既防止了数据溢出,又保证了足够的计算精度,从而在MSP430F1611上实现了2048点FFT。其精度和实时性满足仪表的要求,并成功应用于低功耗、两线制数字涡街流量计。
关键词 功率谱估计 定点计算 MSP430F1611


引 言
    基于FFT的频谱分析方法可以从含有噪声的信号中提取有用的信息,在仪器仪表的数据处理中具有重要的应用价值。为了保证频谱分析的精度,往往进行多点的FFT运算,例如,1024点、2048点等,这样运算量大、所占内存也大,只有采用DSP(数字信号处理器)才能实现实时的处理。目前,在工业现场普遍使用的两线制、低功耗自动化仪表,由于仪表本身消耗电流必须控制在4 mA之内,所以无法采用DSP等运算能力强的芯片,只能采用低功耗单片机;而低功耗单片机的运算速度和内存容量都很有限,所以,至今未见用其进行多点数FFT运算的报道。为了能够用低功耗单片机实时做FFT运算,以提高自动化仪表信息处理的能力,我们用汇编语言编制FFT程序,在程序中用定点数运算(以下简称定点FFT),采取措施防止数据溢出,保证计算精度,合理分配内存。测试结果表明,我们编制的程序在MSP430F、1611单片机上,完成一次2048点的基于FFT的频谱分析和校正只需要500 ms,精度也达到要求,可以用于以低功耗单片机为核心的仪表中,实时完成信号处理任务。


1 定点运算
1.1 数据表示
    在MSP430中使用C语言实现FFT运算,其乘法和加法运算都是默认使用浮点实现的。于MSP430属于定点单片机,因此浮点运算必须由大量的定点指令模拟,这将耗费大量的时间。因此我们针对MSP430的特点,使用汇编语言编制FFT程序,在程序中用定点数运算,并将数据统一使用16位定点数表示。16位定点数中最高位(左边的第1位)作为符号位,剩下的15位用于存放数值。数据格式如图1所示.

                                           

1.2 数据定标
    定点单片机参与数值运算的数都是16位的整型数,但是运算过程中的数不一定都是整数。那么,定点计算过程中如何处理小数呢?这其中的关键就是由程序员来确定一个数的小数点处于16位中的哪一位。这就是数的定标。
    通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。数的定标有Q表示法和S表示法两种。表1列出了一个16位数的16种Q表示、S表示及它们所能表示的十进制数值范围。
    从表1中可以看出,同样一个16位数,若小数点设定的位置不同,它所表示的数也就不同。例如,十六进制数2000H=8192,用Q0表示;十六进制数2000H=O.25,用Q15表示;但对于定点运算来说,处理方法是完全相同的。下面简要介绍如何使用定点数乘法运算模拟浮点数乘法。

[1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:74,984.38000 毫秒