基于STM32的音频信号分析设计与实现
- 格式:doc
- 大小:19.00 KB
- 文档页数:5
Science &Technology Vision 科技视界0引言本方案采用ST 公司的STM32F103VBT6芯片完成MP3/WMA 音频文件的解码播放功能。
其中STM32F103VBT6为主控芯片,采用VS1003芯片进行硬件解码,MP3/WMA 格式音频文件存储在SD 卡中。
由于采用新的数据压缩标准,MP3文件具有良好的音效和始于传输的体积大小。
本方案完成的功能包括:(1)SD 卡文件的读写(2)FAT32文件系统的读写(3)支持“上一曲/下一曲”、“顺序播放”功能(4)支持歌词同步1硬件设计1.1器件介绍1.1.1Cortex-M3内核Cortex-M3是ARM 公司推出的新一代32位嵌入式微处理器内核。
它采用ARM-V7-M 架构,具有高性能、低功耗、少门数的特点;因此,非常适合嵌入式系统领域的设计和应用。
Cortex-M3具有一个与内核系统紧密耦合的嵌套向量终端控制器NVIC(Nested Vectored Interrupt Controller)。
该NVIC 可配置8级抢占式、256级优先级的1—240个外部中断,同时支持咬尾中断、迟到中断技术,大大缩短了中断响应时间。
1.1.2STM32芯片STM32xxx 系列芯片是ST 公司基于ARM Cortex-M3设计的一个32位微处理器系列。
该系列处理器在继承ARM Cortex-M3内核优点的基础上,扩展了其外部接口、增强其定时器功能、增加了A/D、D/A 模块。
1.1.3VS1003音频解码芯片VS1003是VSL 公司生产的一款单片MP3/WMA/MIDI 音频解码和ADPCM 编码芯片。
VS1003内部包含一个DSP 处理器,为用户提供5KB 的指令RAM 和0.5KB 的数据RAM,提供一个SPI 接口和一个UART 接口,同时支持一个高质量采样频率可变的ADC 和立体声DAC 模块。
1.1.4TDA1308T 数模转换芯片TDA1308是AB 类的数字音频(CD)专用耳机功放IC,具有低电压、低失真、高速率、强输出的优异特性。
福建电脑2012年第12期基于STM32的多功能音频播放器的设计高云红1,刘志群2(1.山东行政学院计算机系山东济南2500142.闽江学院物理学与电子信息工程系福建福州350108)【摘要】:文章设计了一款基于STM32F103RBT6的多功能音频播放器,系统以STM32F103RBT6为控制核心,利用高性能、低功耗的音频解码芯片VS1053B实现音频数据解码,文件管理控制芯片CH376实现SD卡中的音频文件、图片、电子书等内容的读写,并配合2.8寸TFT触摸液晶屏,构建友好的人机交互系统。
整个系统实现了音频的高质量播放、图片和电子书浏览等功能,具有操作方便稳定可靠等特点。
【关键词】:STM32F103RBT6;VS1053B;音频解码;CH3761、引言自从1998年韩国第一款MP3播放器诞生以来,就受到了广大消费者的青睐,MP3播放器以其广阔的市场容量、丰厚的利润和较低的产业门槛等优势,吸引了众多电子企业积极参与,并且成为了IT行业的一个新增长点。
随着电子技术的发展和芯片集成度的提高,现阶段的MP3播放器在维持自身轻巧、时尚、下载方便、存储容量大、高音质等优势的前提下,还应尽可能吸收其它产品的功能,以便增加产品的卖点。
系统包括以下几个电路模块:STM32F103RBT6最小系统模块、VS1053音频解码模块、JTAG下载接口电路、SD卡、EEPROM模块24C04、2.8寸TFT液晶、USB转串口PL2303模块、USB控制芯片CH376等。
其中,STM32F103RBT6最小系统模块是整个系统的控制核心,USB转串口PL2303模块负责将电脑的USB口转换成串口;EEPROM存储器24C04用来存储系统掉电后的一些信息;SD卡模块用来储存音乐文件、汉字字库、图片等资源;TFT触摸液晶模块实现信息显示和触摸屏的控制;VS1053B音频解码模块主要获取STM32F103RBT6传入的音频文件信息与控制信息,同时解码输出音频信号;电源模块提供+3.3V 直流电压。
• 123•基于STM32的多功能音乐播放器设计绵阳职业技术学院 罗金生 王荣海 李 岷 刘 成以音乐播放器为研究对象,提出一种基于STM32的音乐播放器的硬件和软件的设计方法,系统以STM32F103ZET6为控制核心,音频解码芯片VS1053B实现音频数据解码,挂载FATFS文件系统实现对SD卡中的音频文件进行读取,利用FFT快速傅里叶变换将音频信号转为频谱,加入了一个小型GUI显示界面配合OLED显示屏,实时的将界面、播放状态以及频谱生动的展示出来,此外还加入了蓝牙音频功能,通过手机蓝牙即可连接播放器播放音乐。
实验表明,该音乐播放器连接耳机能流畅播放多种格式的音乐文件,具有多功能、高性能、低功耗、操作方便、稳定可靠等特点。
引言:音乐可能是人类史上最古老、最具普遍性以及感染力的艺术形式之一。
音乐能提高人的审美能力,净化人们的心灵,树立崇高的理想。
不论时代怎么发展,人们的生活娱乐都离不开音乐。
因此,设计一款简单实用,多功能化的音乐播放器完全可以符合人们的爱好及需求。
本文介绍一种基于STM32F103处理器的SDIO接口模块及外围音频解码芯片实现一个SD卡的音乐播放器,它读取存储在SD卡里的音频格式文件,并通过立体声音解码芯片输出,能进行频谱显示,还可以通过手机蓝牙与其连接播放音乐等功能。
1.系统硬件电路设计基于STM32F103VET6微控制器所设计的MP3播放器,主要包括:存储模块、蓝牙音频模块、音频解码模块、显示模块。
系统方案设计的系统框图如图1所示。
主控制器芯片,利用其SDIO接口不断读取SD卡音频文件送入缓存区;使用了三组SPI接口,第一组SPI接口将读取的音频数据流送至音频解码芯片VS1053进行解码,第二组SPI接口连接了字库存储芯片,用于显示歌曲名等,第三组SPI接口连接OLED显示屏幕实现人机交互以及显示歌曲信息和频谱等;使用了一个定时器、一个DMA以及一个ADC通道实时快速采集音频输出,并利用FFT将其从时域转换为频域;使用通用IO控制蓝牙以及音频切换芯片和键盘。
《嵌入式系统原理》课程设计说明书题目:利用STM32实现MP3播放器院(系):信息与电气工程学院STM32芯片应用实验设计任务书第一种方案是简易声波播放器,仅使用STM103V100评估板,令计时器TIM4工作在PWM模式下,将wav格式的声波文件从SD卡中读出,由TIM4产生不同频率的方波通过低通滤波器和放大器送喇叭,如图1所示;第二种方案则是简易MP3播放器,还需要使用额外的解码芯片,将MP3格式的文件从SD卡读出,然后送解码芯片解码播放,如图2所示。
本节将先介绍SD卡、FAT16文件格式、VS1003编解码器等关键部分,然后再分别给出两种设计方案的软件设计。
图1 简易声波播放器方案图2 简易MP3 Player方案1 SD卡的结构及读写方法STM103V100评估板有SD连接器,其使用SPI总线与STM32处理器连接,如图3所示。
图3 SD连接器与STM32处理器SPI连接图SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。
本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD 卡,可以参考相关资料。
SD卡内部结构及引脚如图4所示。
图4 SD卡内部结构及引脚SD卡主要引脚和功能为:CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz 之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率;CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。
SD卡以命令形式来控制SD卡的读写等操作。
可根据命令对多块或单块进行读写操作。
基于STM32的嵌入式语音识别模块设计嵌入式语音识别模块是目前人工智能技术的重要组成部分,其应用广泛,包括语音控制、语音导航、语音交互等。
本文基于STM32单片机设计了一款嵌入式语音识别模块,具有高效、稳定、易用等多种优点。
一、方案设计该嵌入式语音识别模块采用STM32F407单片机作为核心,结合语音识别算法和音频处理技术,实现语音识别功能。
具体方案如下:1.采样:采用音频电路将采样音频转化为数字信号,采用PCM编码方式,采样频率为16KHz。
2.预处理:预处理包括去噪、滤波等处理,以消除环境噪音和语音信号之间的干扰。
3.特征提取:利用Mel频率倒谱系数(MFCC)算法将信号的音频特征提取出来,提取后的特征值可以表达出音频的不同特点。
4.模型匹配:根据提取出的特征值与已预设的模型进行匹配,找出最相符的模型。
5.识别、输出:识别出的结果通过串口输出到上位机,上位机对结果进行相应的处理和反馈。
二、实现过程1.硬件设计:由于STM32F407单片机片内有ADC、DAC、TIM3定时器、USART等模块,因此只需要添加少量的外围电路即可满足设计要求。
2.软件设计:主要采用C语言进行编程,使用Keil和STM32CubeMX开发工具,分别进行程序设计和引脚配置。
在嵌入式语音识别模块的整个流程中,程序的实现涉及到多个算法的实现,包括信号的预处理、特征提取、模型匹配等。
三、性能与应用经过多次测试,该嵌入式语音识别模块的识别率达到了95%以上,且实现了较好的去噪和滤波效果,可以满足大多数语音识别应用场景。
此外,该模块的具有硬件条件简单、体积小、功耗低等优势,既可以实现控制指令识别,也可以作为语音交互系统的基础组件使用。
综上所述,本文提出的基于STM32的嵌入式语音识别模块基于成熟的语音识别算法,在设计上更加简便实用,在性能上也能满足大部分嵌入式语音识别应用场景的需求,具有广泛的应用前景。
基于STM32的智能音箱系统设计智能音箱在近年来越来越受到消费者的欢迎,而其中的一大因素就是音箱的功能性越来越强大。
目前的智能音箱不仅仅可以进行音乐播放,还可以进行语音识别、智能家居控制以及智能助理操作等。
本篇文章将介绍一种基于STM32的智能音箱系统设计方案。
1. 智能音箱系统设计思路智能音箱系统的设计主要包括音频采集、语音识别、智能家居操控和音频播放四个模块。
其中,智能家居操控包括对开关、空调、电视等家电设备的控制,这个模块需要添加Wifi模块来实现。
音频采集模块使用麦克风将用户语音录入,并传输到主控芯片——STM32上。
语音识别模块使用现有的语音识别SDK或自行编写,用于将用户的语音转化为文字,并向智能助理发送用户的语音指令。
智能家居操控模块使用Wifi模块连接智能家居设备,并通过命令向设备发送指令以实现操控。
音频播放模块使用扬声器进行声音输出。
2. STM32 MCU选型STM32是意法半导体(ST)公司推出的基于ARM Cortex-M3内核的32位微控制器,集成了模拟与数字、通信接口等多个模块,适用于嵌入式系统中。
在智能音箱系统中,STM32可作为主控芯片,负责控制系统中的多个硬件模块的工作,而工作稳定性和运行速度方面,STM32具有较高的性能价格比。
3. 音频采集模块设计音频采集部分采用全向电容麦克风作为音频采集模块,STM32通过ADC模块将收集到的信号转换为数字信号,并通过DMA方式存储到片内存中,以供语音识别模块使用。
由于语音信号的频率为0.3Hz到4kHz之间,且在过程中伴随许多噪声干扰,需要进行滤波处理。
可以使用一个低通滤波器滤除高频噪声,一个高通滤波器滤除低频噪声,保留中频信号,使语音输入麦克风后能够更加清晰准确地传递到下一模块。
4. 语音识别模块设计在语音识别模块上,可以采用现有的语音识别SDK,如百度、阿里等,实现将用户的语音指令转化为文字指令。
本文以百度语音识别为例,可使用其提供的API接口,将传入的语音数据上传到服务器中,获得语音转文字的结果。
摘要本科毕业设计(论文)基于STM32单片机声源方向识别器设计与实现I燕山大学本科生毕业设计(论文)原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:II摘要学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日III燕山大学本科生毕业设计(论文)摘要近年来,基于麦克风阵列的声源定位系统被广泛地应用于电话会议、视频会议、语音增强、助听器等系统中,因此受到了越来越多的关注,已经成为一大研究热点。
基于STM32的音频信号分析设计与实现
作者:梁方舟李金泉黄训磊王玉花
来源:《现代电子技术》2014年第01期
摘要:基于ARM Cortex⁃M3内核的32位处理器STM32F103和快速傅里叶变换(FFT)算法实现了音频信号频谱的分析。
整个系统由前级信号调理、A/D采样电路、CPU运算电路和LCD显示电路等组成。
实验表明,系统能够检测20 Hz~10 kHz范围内的频率成份并显示音频信号频谱,该方案成本低,具有一定的应用价值。
关键词:音频信号; FFT; STM32;基⁃4时间抽取
中图分类号: TN911.7⁃34 文献标识码: A 文章编号: 1004⁃373X(2014)01⁃0019⁃03
音频信号分析应用于音频制作、信号分析等领域,如音频设备的研发与生产、低频信号的综合分析等。
本设计利用频谱分析原理来分析被测音频信号的频率、频谱,传统的频谱分析方法有扫频法、数字滤波法。
采用STM32实现快速傅里叶变换(FFT)设计方案,通过FFT把被测的音频信号由时域信号转换为频域信号,将其分解成分立的频率分量。
1 系统设计
音频信号通过前级信号处理电路放大和滤波及模数转换,经STM32进行FFT运算后获得信号的频谱,单片机控制A/D转换器实时采集信号,频谱在液晶屏扫描显示。
单片机采用ST 公司的低功耗STM32F103ZET6 32位单片机,其内部含有3个12位16通道A/D转换模块和2个12位D/A转换模块。
系统框图如图1所示。
1.1 信号调理与采集
设计思想:为满足输入信号较大的动态范围,必须在信号进行A/D转换前进行合理的处理,使其在A/D量化范围内达到量化精度最高,该方法相当于AD位数的增加。
本设计要求输入信号幅度范围(峰⁃峰值)为0.01 mV~10 V,即100 dB的输入信号动态范围。
设定ADC 芯片的最小输入信号峰⁃峰值为500 mV,再设定ADC的输入动态范围为20lg(10 V/500 mV),即26 dB,故需要5路放大电路,每一路放大倍数固定,分别为62 400,8 000,400,20,1倍。
由于设计小信号放大的增益较大,放大器的选择尤为关键,根据影响放大器输出的主要参数:运放的增益带宽积、噪声电压密度、噪声电流密度、失调电流和失调电压等,选择TI公司生产的运放OPA637,该运放增益带宽积约800 MHz,输入换算电压噪声密度为[4.5 nVHz,]输入偏置电流2 pA,输入失调电压130 μV。
具体电路如图2所示。
图1 系统框图
抗混叠滤波器设计:信号送到ADC之前要对信号进行抗混叠低通滤波器处理,防止高频分量信号被采样,产生频谱混叠,而影响给定较低频率信号的幅值分析。
为此设计了一个截止频率为15 kHz的四阶巴特沃斯低通滤波器作为抗混叠滤波器。
1.2 基⁃4时间抽取FFT
基⁃4时间抽取(Radix⁃4 Decimation In Time,DIT4)的FFT 算法思想是将长序列逐次分解为4个短序列,最后由短序列的DFT逐次合成长序列的DFT。
基⁃4时间抽取相比于基⁃2时间抽取,复数乘法的运算量减少,随之而来运算速度加快,因此这里采用基⁃4时间抽取。
基⁃4时间抽取FFT是将时域序列[x[k]]以前后两部分按奇偶顺序逐级抽取重新排列形成4个短序列,由此4个短序列的DFT合成的频域序列[X[k]]按自然顺序排列,故称为基⁃4时间抽取FFT。
设序列[x[k]]的长度为[N=4M,][M]为正整数。
则基⁃4时间抽取FFT计算公式为:
[Xm=X1m+WmNX2m+W2mNX3m+W3mNX4mXm+N4=X1m-jWmNX2m-
W2mNX3m+jW3mNX4mXm+2N4=X1m-WmNX2m+W2mNX3m-
W3mNX4mXm+3N4=X1m+jWmNX2m-W2mNX3m-jW3mNX4m]
式中:[m=0,1,2,…,N4-1;][X1m,X2m,X3m和X4m]分别是与[x[k]]按对4的余数顺序重新排列后的序列[x1k,][x2k,x3k]和[x4k]对应的[N4]点DFT。
由此可以得出DIT4⁃FFT的蝶形运算的信号流图,如图3所示。
图3 基⁃4时间抽取蝶形运算的信号流图
设采样率为[fs,]则第[fi=ifsN]频率点[Xi=ai+jbi,][i=0,1,2,…,N2-1],则原信号所含该频率的分量[Si]为:
[Si=ai2+bi2N,i=0Si=Aicos2πfit+θi=2ai2+bi2Ncos2πifsNt+arctanbia i,]
[i=1,2,…,N2-1]
通过上式,可从采集的信号中提取出各频率点的幅度值,作为音频信号的分析结果。
1.3 软件设计和流程图
系统软件设计分为采样、量化、基⁃4 FFT、各频率分量幅值计算和液晶屏显示共5个部分。
其中片上ADC完成采样与量化,MCU完成基⁃4 FFT及幅值计算,液晶屏完成最终显示。
软件流程图如图4所示。
图4 软件流程图
软件采用“STM32F10xxx DSP Lib”的1 024点基⁃4 时间抽取FFT,该库的核心FFT算法采用的是汇编语言,速度快、效率高,一次1 024点FFT最快运算时间能达到1.768 ms,因此对整个系统影响很小,故采用之。
通过对基⁃4 FFT的分析,便可设计出幅值计算的算法。
模块代码如下:
ADC_Sample[count_flag++]=ADC_GetConversionValue(ADC1); //转换结果存储
ft_asm_test(ADC_FFT_Out,ADC_Sample);
//调用基⁃4 FFT 变换和幅值计算函数
void fft_asm_test(vu32 *OUT,vu32*IN)
{
cr4_fft_1024_stm32(OUT, IN, NPT); //DSP LIB 1 024点FFT
fft_asm_powerMag(OUT); //计算幅值
}
void fft_asm_powerMag(vu32*p)
{
for(i=0;i
{
AX=(*(p+i)>16; //复数实部
AY=(*(p+i)>>16); //复数虚部
float X=NPT*((float)AX)/32768;
float Y=NPT*((float)AY)/32768;
float Mag=sqrt(X*X+Y*Y)/NPT; //取模
*(p+i)=(u32)(Mag*65535);
//2*模值=对应频率真实幅值的量化值,因只需取前512有效点
}
}
2 系统测试
通过Matlab仿真测试与实际硬件电路测试比较,进而验证系统设计是否符合设计标准。
测试信号为单频信号和方波信号。
Matlab仿真结果和实际测试结果如图5,图6所示。
通过对比图5,图6看出,实际测试结果与仿真结果一致。
图5 Matlab仿真频谱
3 结语
本设计采用数字信号处理技术,在STM32内部完成了1 024点浮点型FFT计算,利用STM32运算速度快,功耗低的优势,实现了对音频信号的频谱分析。
由实验调试结果及测试数据可知,本设计能准确判断频率成分在20 Hz~10 kHz、幅值范围为0.1 mV~10 V 的输入信号的频谱,频率分辨力最高可达10 Hz。
系统对待测量信号2 s刷新一次并可实时显示。
不仅达到设计要求,还进一步提高了频率分辨力,增加了掉电存储回放显示及信号频谱显示的功能,扩展了数据的掉电存储与频谱显示的功能。
图6 实际观察到的频谱
参考文献
[1] 陈后金,薛健,胡健.数字信号处理[M].2版.北京:高等教育出版社,2008.
[2] 王旭东,潘明海.数字信号处理的FPGA实现[M].北京:清华大学出版社,2011.
[3] MEYER⁃BAESE U. Digital signal processing with field programmable gate arrays[M]. 3rd ed. Germany: Springer, 2007.
[4] 全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编(2007)[M].北京:北京理工大学出版社,2008.
[5] 童诗白,华成英.模拟电子技术基础[M].3版.北京:高等教育出版社,2003.
[6] 黄根春,陈小桥,张望先.电子设计教程[M].北京:电子工业出版社,2007.
[7] Sanjit K Mitra.数字信号处理:基于计算机的方法[M].2版.北京:清华大学出版社,2006.
[8] 刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.
[9] 刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013.
[10] 刘保柱,苏彦华.Matlab 7.0从入门到精通[M].北京:人民邮电出版社,2010.。