基于128点FFT算法制作频谱仪+LCD12864驱动
本次创新基金我是要做一个简易的频谱仪,核心就是要进行一个FFT运算。大家知道,如果采用DSP芯片效果那是相当...
本次创新基金我是要做一个简易的频谱仪,核心就是要进行一个FFT运算。大家知道,如果采用DSP芯片效果那是相当好的。但由于项目资金以及时间不够等情况,我采用的是ATMEL公司的AVR单片机,这款单片机的FLASH存储和内存比51单片机犀利得多。
由于采用的是12864液晶,也就是一个横128点*竖64点的一个点阵,因而采用128点FFT运算已然够了,因为即使得到再多的数据也无法在液晶上可视化显示出来。
程序如下:(不完整)
#include
#include
#include
#define N 128
#define PI 3.141592653589
#define uchar unsigned char
#define uint unsigned int
typedef struct
{
int real;
int img;
}complex;
void initw(); //初始化旋转因子
void bitReverse(); //比特反转
void FFT();
complex x[N];
uchar vis[N];
void delayms(uint ms)
{uint i,j;for(i=0 i
关注 知识青年
微信扫一扫关注公众号