基于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


    关注 知识青年


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册