資源簡介
C語言編寫的1024點的FFT,以前做國賽的時候自己寫的,分享出來大家一起用吧,里面寫了基本的用法,有編程基礎的人很快就看懂了,使用查表法做的,內存占用也做了極大優化,目前在STM32上,72M的計算速度為200-300ms,因為用的是1024點全局變量,所以在計算的時候會用到 8 * 1024 B = 8.192k 的內存,建議單片機 RAM 至少在 10 k以上,以免導致程序無法運行,因為點數比較大,內存占用較多,所以建議選用STM32這種運行速度較快的單片機
代碼片段和文件信息
#include?“bsp_fft.h“
#include?“bsp_tab_fft.h“
Complex_TypeDef?Complex_Mult(Complex_TypeDef?com1Complex_TypeDef?com2)
{
Complex_TypeDef?temp;
temp.real?=?com1.real?*?com2.real?-?com1.image?*?com2.image;
temp.image?=?com1.real?*?com2.image?+?com1.image?*?com2.real;
return?temp;
}
Complex_TypeDef?Complex_Add(Complex_TypeDef?com1Complex_TypeDef?com2)
{
Complex_TypeDef?temp;
temp.real?=?com1.real?+?com2.real;
temp.image?=?com1.image?+?com2.image;
return?temp;
}
Complex_TypeDef?Complex_Sub(Complex_TypeDef?com1Complex_TypeDef?com2)
{
Complex_TypeDef?temp;
temp.real?=?com1.real?-?com2.real;
temp.image?=?com1.image?-?com2.image;
return?temp;
}
Complex_TypeDef?FFT_Wnk(int?nint?k)
{
Complex_TypeDef?temp;
//temp.real?=?cos(2?*?PI?*?(float)k?/?(float)n);
//temp.image?=?-sin(2?*?PI?*?(float)k?/?(float)n);
int?nk?=?(int)(FFT_N?*?k?/?n); //計算一次,加快運算速度
temp.real?=?Cos_Wnk_Tab[nk]; //使用查表法,加快運行速度
temp.image
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1255??2017-09-04?21:31??bsp_fft.h
?????文件???????14077??2017-08-08?14:36??bsp_tab_fft.h
?????文件????????1148??2017-09-04?21:33??main.c
?????文件????????3340??2017-09-04?21:20??bsp_fft.c
- 上一篇:c語言編程源代碼 集合 1000個
- 下一篇:中國象棋源代碼(c語言版)
評論
共有 條評論