资深版主
- 积分
- 839
- 金钱
- 839
- 注册时间
- 2018-7-29
- 在线时间
- 128 小时
|
之前给别人做的一个小项目,对通过音频模块(WM8731)输入的音频信号进行快速傅立叶变换(IP核FFT), 并将变换后得到的频谱通过LCD(ILI9341)显示。
效果图如下所示:
设计要点:
一、FFT输入输出端都要加FIFO!!!
输入端:利用FIFO将音频数据同步至系统时钟,并按照FFT IP核要求的输入时序读FIFO,以128个数据为一帧,给出SOP/EOP/VALID信号。
输出端:定义深度为64的FIFO,用于实现FFT输出到LCD显示的缓存。严格控制输入输出时序,先缓存一帧数据(只需前64位,后64位为前64位的镜像),按照LCD
驱动模块的接口要求读FIFO,待一帧图像显示完毕,FIFO中的数据刚好读完。然后再根据FFT输出数据的SOP信号缓存下一帧数据,LCD显示期间忽略FFT输出的数据。
三、FFT输入输出数据分为实部与虚部,输入时虚部为0,输出数据用于显示频谱时对实部与虚部取模(平方和开根号)。
后续:
在这个项目的基础上添加了滤波器,实现了带 “高通/低通/中通” 滤波功能的音频频谱仪,过两天也分享出来,分享是一种快乐。
|
|