本帖最后由 Tekmarine 于 2017-3-19 11:24 编辑
FFT.rar
(3.77 KB, 下载次数: 200)
2017-3-19 10:57 上传
点击文件名下载附件
这个本来是我的数字示波器的FFT,所以设计时只考虑了最大支持2048点,输入数据为8位,不过要改成更高的也没问题,改正弦表和移位量常数就行.
另外,这个把输入的数据缩放过,就是那个用了VDIV指令的地方,如果不要缩放,可以把那部分指令去掉
正弦表决定了最大支持的点数,现在这个就是最大2048,最小8点,可以计算8,16,32,64,128,256,512,1024,2048点的FFT。
在头文件里面的那个声明就是由C来调用的,参数data_sample是输入是原始数据,仅限于8位的实数,参数FFT_length可以控制计算的点数,
raw_data是复数数组,不过由于设计数字示波器时,在FFT计算完毕后还计算幅度值,因此输出的raw_data的实部就变成的幅度值,虚部保持不变........所以输出结果不是原始的FFT计算结果,如果想要全部的原始结果,可以把源代码中最后那部分算幅度值的指令去掉
一周热门 更多>