技术支持Microchip产品专区Microchip 16bit产品应用 [经验分享]教你如何使用dsPIC Lib中的FFT,附件有程序

1  /  1  页   1 跳转 查看:11834

[经验分享]教你如何使用dsPIC Lib中的FFT,附件有程序

[经验分享]教你如何使用dsPIC Lib中的FFT,附件有程序

介绍一下FFT库函数的使用, 顺便给出一个64点的FFT变换程序。
许多应用中都需要对信号的频谱,谐波,畸变,谐波功率等进行分析,这都需要使用FFT变换。dsPIC LIB中已经定义了FFT计算所需要的一些函数, 这些函数包括
TwidFactorInit() – 用来计算蝶形因子,初始化蝶形因子。通常为了加快运算速度以及节省RAM空间,可将蝶型因子计算好存储在FLASH里。实际上是一个COS和SIN表。
FFTComplexIP () – 快速傅立叶变换计算。
BitReverseComplex () – 对FFTComplexIP() 函数的输出数据重新排序。
详细资料可参考应用手册-“16-BIT LANGUAGE TOOLS LIBRARIES”

实际上,为了分析频谱和谐波等参数,需要计算出各次谐波的幅值,dsPIC LIB库中没有提供该函数,但该函数在一些dsPIC中应用例子中已经给出函数,我的附件的程序中也提供了该函数-ComputeMagnitude()。

为了大家学习FFT库函数,附件是一个64点的FFT变换的例子程序,用来计算信号中的谐波含有率,供大伙参考。另外,为了能产生一些原始数据,我用EXCEL来产生ADC数据,一并附上。
程序中-data[]数组是ADC输出的数据,或者待分析的数据,由EXCEL文件产生并存入到.mch文件中。在程序运行时,将data[]值从.mch文件载入ADC数据。
需要注意的是,ADC数据为fractional形式,由于FFT运算使用的是16位宽的数据,表示的精度有限,如果输入幅值太小,将可能严重影响计算结果。因此,在我们做FFT运算前需要对原始数据进行预处理,使得所有数据的最大绝对值不大于0.5并且不小于0.25。

附件附件:

您所在的用户组无法下载或查看附件

附件附件:

您所在的用户组无法下载或查看附件

贝能国际智能电子产品解决方案专家
 

回复:[经验分享]教你如何使用dsPIC Lib中的FFT,附件有程序

谢谢指导
正需要
 

回复:[经验分享]教你如何使用dsPIC Lib中的FFT,附件有程序

楼主这个真是太好了,正要用,赶快好好学习
 

回复:[经验分享]教你如何使用dsPIC Lib中的FFT,附件有程序

lz你好,学习了你的程序之后有2个问题:
1、我换成我的芯片33fj64gp802,依然用sim调试,出现很多问题,调试很久都不通过,是不是33f和30f移植方面有什么没注意到的?
2、我按照excel的数据放入程序中,得到的幅值的数据似乎与excel中的不匹配,麻烦lz再指导下
 

回复:[经验分享]教你如何使用dsPIC Lib中的FFT,附件有程序

多谢,女侠!
 

dsp30F做 FFT,回复: [经验分享]教你如何使用dsPIC Lib中的FFT,附件有程序

同样的问题我也碰到了,FFT后的幅值对不上,不知道前人是怎么解决的?
 

回复:[经验分享]教你如何使用dsPIC Lib中的FFT,附件有程序

非常感谢,学习中
 
1  /  1  页   1 跳转

版权所有 贝能国际  Burnon国际  Sitemap

Powered by Discuz!NT 2.1.202    Copyright © 2001-2012 Comsenz Inc.
Processed in 0.0156248 second(s) , 7 queries. 闽ICP备05003850号
返顶部