李乐吟 沈莹莹 南京邮电大学通信与信息工程学院 马意彭 南京邮电大学电子与光学工程学院
随着电子科技的快速发展,人们对于电子产品的需求和功能越来越高。在生活中人们已经不仅仅满足于单一的音乐播放器,多功能的播放器更受到大众的青睐。因此需要设计一款简单实用、多功能、跟随时代潮流的音乐播放器。基于人们对生活娱乐的需求,本文介绍一种基于FPGA的频谱音乐播放显示系统。该音乐播放显示系统不仅可以实现简单的音乐播放、循环、停止、切换等基本操作,还具有将炫彩灯光和音乐结合的功能,根据音乐分贝的高低显示不同的灯阵列频谱。且该音乐播放显示系统设计成本较低,具有多样化的功能,操作简单。
基于FPGA的频谱音乐播放显示系统主要由两大部分构成,STM32读取内存卡中存储的音乐,将音乐信号分为两路,其中一路通过功率放大电路送至扬声器使得能够外放音乐。另一路通过ALINX高速12位双通道AD模块送至ALTERA FPGA CYCLONE IV核心板。FPGA对音乐信号进行32KHZ的采样,并进行快速离散傅里叶变换。不同的音符和音调组成的不同的频率频谱不同,对声音信号进行快速傅里叶变换后通过WS2812程控彩灯阵列的强度显示音乐的频谱。我们一共设置了八个灯来表示频谱的强度,八个灯均亮的时候表示频谱强度最大。16排灯来表示一个阵列。放音乐时16排灯上的WS2812程控彩灯均会亮起,从而达到显示音乐频谱的效果。STM32通过按键来控制歌曲的播放、暂停、切换、快进快退等操作,并将显示的歌词通过屏幕显示出来,其系统结构图如图1所示:
图1 系统结构图
在信号处理和信息分析中,DFT的计算具有非常重要的地位。根据DFT的定义可以分析,求解一个N点的DFT需要次复数乘法和次复数加法,即计算量很大。对于有限长离散信号的离散傅里叶变换定义为:
快速傅里叶变换是利用的周期性和对称性,构造了DFT的快速算法。在本文中我们利用FPGA对音乐信号采样并进行快速离散傅里叶变换。首先调用QuartusII的FFT MegaCore Function v13.1 IP核,对AD采进来的12位数据进行FFT变换,为节省资源,IP核设置成16点的10位精度的流模式,并使用乘法器来实现其中的4路乘法2路累加器的并行模式。IP核以每16个数据为一组,数据处理与输出交错进行,然后将每一组输出存储到RAM中,对其进行归一化运算之后驱动WS2812LED灯的驱动程序中,最终得到灯的实际控制信号,并通过FPGA的多路IO口分别对每一路灯进行控制。从而实现炫彩的音乐播放效果。
科技的快速发展,带来了更高的消费需求,因此设计一款多功能的音乐播放器是至关重要的。通过以上分析可以看到,利用快速离散傅立叶变换可以将音乐的乐谱信息通过WS2812程控彩灯阵列展示出来,当分贝高时,WS2812程控彩灯阵列更亮,给人们更好的视觉效果。
本装置的STM32使用的是STM32F103ZET6开发板,采用8002音频功放芯片作为音频放大电路。选择ALINX高速12位双通道AD模块作为AD转换器,ALTERA FPGA CYCLONE IV 核心板用作信号处理。装置中所有元器件均以低功耗、微型化的理念为核心且该音乐播放器设计可以支持多种格式下的音乐文件,可以有效的改善音质。且操作简单,成本较低,具有较强的应用价值。
[1]杨雪梅,张慧.《基于STM32的音乐播放器》. [J].信息通信.2016.3
[2]杨丽娟,张白桦,叶旭桢.《快速傅里叶变换FFT及其应用》. [J].光电工程.2004.12