資源簡介
msp430f5529計算fft程序,可用,實測,還可結合ADC多次采樣計算
代碼片段和文件信息
#include
//#include?
#include?
/*********************************************************************
快速福利葉變換C函數
函數簡介:此函數是通用的快速傅里葉變換C
語言函數,移植性強,以下部分不依賴硬件。此函數采用聯合體的形式表示一個復數,輸入為自然順序的復數(輸入實數是可令復數虛部為0),輸出為經過FFT變換的自然順序的復數
使用說明:使用此函數只需更改宏定義FFT_N的值即可實現點數的改變,FFT_N的?應該為2的N次方,不滿足此條件時應在后面補0
函數調用:FFT(s);
時間:2010-2-20
版本:Ver1.0?參考文獻:
**********************************************************************/
#include
#define?PI?3.1415926535897932384626433832795028841971? //定義圓周率值
#define??FFT_N??512? //定義福利葉變換的點數
struct?compx?{float?realimag;};? //定義一個復數結構struct?compx?s[FFT_N];
struct?compx?s[FFT_N];? ? ? ? ? ? ? //FFT輸入和輸出:從S[1]開始存放,根據大小自己定義
float?result[FFT_N];
/*******************************************************************
函數原型:
struct?compx?EE(struct?compx?b1struct?compx?b2)
函數功能:對兩個復數進行乘法運算
輸入參數:兩個以聯合體定義的復數ab
輸出參數:a和b的乘積,以聯合體的形式輸出
*******************************************************************/
struct?compx?EE(struct?compx?astruct?compx?b)
{
struct?compx?c;
c.real=a.real*b.real-a.imag*b.imag;
c.imag=a.real*b.imag+a.imag*b.real;
return(c);
}
/*****************************************************************
函數原型:void?FFT(struct?compx?*xinint?N)
函數功能:對輸入的復數組進行快速傅里葉變換(FFT)
輸入參數:*xin復數結構體組的首地址指針,struct型
*****************************************************************/
void?FFT(struct?compx?*xin)
{
int?fmnv2nm1iklj=0;
struct?compx?uwt;
nv2=FFT_N/2;
//變址運算,即把自然順序變成倒位序,采用雷德算法
nm1=FFT_N-1;
for(i=0;i {
if(i {
t=xin[j];
xin
- 上一篇:WebSocket 常用工具類
- 下一篇:5529ADC采樣進行fft計算
評論
共有 條評論