历史上的今天

今天是:2024年09月07日(星期六)

2020年09月07日 | 基于信号处理和嵌入式应用的音频处理系统的设计和实现

发布者:HeavenlySunset 来源: elecfans关键字:信号处理  嵌入式应用  音频处理系统 手机看文章 扫描二维码
随时随地手机看文章

1引言

随着计算机技术、电子技术和通信技术的迅猛发展,音频处理技术也在众多领域得到广泛应用。如通信领域中的手机、IP电话,消费类电子产品中的MP3和CD播放器以及控制领域中的语音识别、声控系统等[1]。针对DSP强大的数字信号处理能力和ARM处理器良好的实时性能,结合音频编解码芯片TLV320AIC23的接口特点,本文阐述了由三者组成的音频处理系统的硬件接口设计和软件编程,提供了有效和实用的音频处理系统方案。


TLV320AIC23(简称AIC23)是TI公司的一款高性能立体声音频编解码器Codec芯片。其内部集成的模数转换器(ADCs)和数模转换器(DACs)采用了带有过采样数字插补滤波的多位Sigma-Delta技术。数据传输字长为16、20、24、32位,支持采样频率范围8kHz至96kHz.ADC和DAC的信噪比分别达到90dB和100dB.内置耳机输出放大器,支持MIC和LINE IN两种输入方式,且对输入和输出都具有可编程增益调节。另外,AIC23功耗低,回放模式下功率仅为23mW,省电模式下更是小于15uW.因此,AIC23成为数字音频应用

领域中的理想选择[2],在多种数码产品中发挥着重要作用,比较典型的应用如手机、MP3、DV摄像机中的音频编解码。


TMS320VC5402(简称VC5402)是TI公司的一款优秀16位定点DSP,运算速度快,指令执行速度达到100MIPS.自带片内存储器和多种片上外设,广泛应用于语音编解码和通信领域[3]。


S3C4510B(简称4510B)是Samsung公司的一款低成本、高性能的16/32位精简指令集微控制器,其出色的ARM7TDMI内核以及通用微处理器宏单元使其成为用户定制应用开发的理想选择[4]。


2系统硬件设计

本音频处理系统主要由前述三个处理芯片组成:ARM控制单元,DSP信号处理单元以及AIC23音频采集单元。系统原理框图如图1.

图1基于DSP和ARM的音频处理系统原理框图

AIC23是可编程芯片,内部有11个16位寄存器,编程设置这些寄存器可得到所需的采样频率、输入输出增益和传输数据格式等。该控制接口有SPI和I2C两种工作模式,由芯片上的MODE引脚进行选择:MODE=0为I2C模式,MODE=1为SPI模式。因ARM 4510B上也有I2C接口,故选用I2C模式。AIC23的I2C接口地址由引脚的状态决定,=0时地址为0011010,=1时地址为0011011.其中SDIN与SDA为数据线,SCLK与SCL为串行时钟线。VC5402有两个多通道缓冲串口,选用其中的McBSP0与AIC23进行通信,信号连接如图1所示。图中AIC23工作在主模式,时钟信号、DAC和ADC的帧同步信号BFSX0和BFSR0都由AIC23提供。而DSP VC5402与ARM 4510B的通讯是通过DSP上的HPI接口实现的。


3系统软件设计

系统由ARM系统和DSP系统两大部分组成,ARM作为主控制器管理整个系统的工作进程,运行相关的应用程序,可对多个任务进行调度,完成与外部DSP系统或其他外设的通信。DSP则主要完成音频数据的采集和信号处理,并将处理后的数据发送给ARM供应用程序调用。这样的设计可以大大提高系统的工作效率,这也是当前嵌入式系统,各移动手持设备如PDA、手机等的典型设计方案。


这里具体要做的是对AIC23的控制接口编程,使其工作在所需的模式下。然后初始化DSP的McBSP,进行AD、DA转换和数据处理。


3.1 ARM编程部分

系统中对ARM的编程主要涉及对AIC23的初始化,使其进入正常工作状态,对音频数据进行采集和处理。这需要设置4510B的I2C总线特殊功能寄存器:控制状态寄存器IICCON、预分频寄存器IICPS和移位缓冲寄存器IICBUF,寄存器相关说明见表1[5]。

表1 4510B I2C总线特殊功能寄存器

AIC23的11个控制寄存器相关设置的详细描述参见文献2.这里的设置为:左右声道线路输入静音;耳机左右声道音量为6dB;使能DAC,麦克风音量为20dB作为ADC输入;使能ADC高通滤波;芯片各部分电路供电使能;芯片工作在主模式,采样数据长度16位,采用DSP数据格式(同步帧后跟随两个数据字);采样率88.2KHz(外部晶振为11.2896MHz);使能数字接口。


对AIC23编程时的I2C总线时序如图2所示。设置好I2C的时钟频率后,首先发送开始条件(SCLK为高电平时,SDI从高电平向低电平切换),然后发送AIC23的器件地址,器件地址发出后发送AIC23相应寄存器的地址,再发送对该寄存器设置的数据,最后发送停止条件(SCLK为高电平时,SDI从低电平向高电平切换)。注意,这里的寄存器地址为7位,寄存器数据为9位,而I2C总线以字节为单位传送数据。因此在对AIC23的寄存器编程时,第一个字节包括了前7位的寄存器地址B15-B9以及设置数据的最高位B8,第二个字节为设置数据的后8位B7-B0.

图2 I2C时序

3.2音频数据采集与播放

初始化AIC23后,再初始化DSP以及McBSP0,之后进行音频数据的采集与播放。通过麦克风采集语音信号,经过数字滤波处理后由耳机输出。使用McBSP0的接收中断保存数据,通过FIR数字滤波子程序处理音频数据。程序流程如图3所示。

图3音频数据处理程序流程图

初始化McBSP0使其与AIC23协调工作,这里要根据硬件设计和软件要求来配置McBSP0的各个控制寄存器。本系统中串口的主要设置为:接收数据右对齐,带符号扩展;接收中断使能;由片外提供发送、接收帧信号和发送、接收时钟信号;发送、接收帧同步信号低电平有效;在时钟上升沿采样发送、接收数据;每帧发送、接收两个16位字数据[6]。


数据接收部分可在DSP中断程序中用如下语句实现:

mvkd drr10,*ar5 ;保存数据

pshd *ar5+% ;数据压入堆栈

popd new_ad ;从堆栈弹出数据到自定义的寄存器

FIR滤波的相关程序如下:

ld new_ad,a ;新数据加载至累加器

stm #1,ar0 ;双操作数增量

stm #N,bk ;设置循环缓冲区长度,即FIR滤波级数(N为滤波级数)

stl a,*ar3+% ;新数据送至ar3指向的缓冲区

rptz a,#(N-1) ;重复执行N-1级的乘加运算

mac *ar2+0%,*ar3+0%,a ;ar2为系数指针,结果在累加器高位中

sth a,temp ;保存计算结果

ld temp,a ;结果放入累加器低位

……

stlm a,dxr10 ;将累加器地位中的数据送至串口发送寄存器

……

基于前述对AIC23和DSP的相应设置,采用21级系数对称FIR数字滤波,对经由麦克风输入的语音信号进行滤波处理,滤波结果由耳机输出,实际效果良好。所采集到的音频数据还可通过HPI接口传送至ARM供应用程序调用。


3.3语音识别应用测试

语音识别的基本原理是对语音信号进行特征提取。目前常用的语音识别算法有基于模式匹配的动态时间规正法(DTW: Dynamic TIme Warping)、基于统计模型的隐马尔柯夫模型法(HMM: Hidden Markov Model)以及基于神经网络的识别法(DNN、NPN、TDNN)等[7]。为便于系统应用测试,本文采用一种最简易的方法对系统进行调试,即对英文元音的识别。基本原理是提取元音字母的频率特征,各元音在其频域响应中都有三个明显的共振峰频率,而最容易识别的是第一共振峰,由此可进行有效的元音识别。在提取第一共振峰频率特征时采用“零交越”法(统计单帧信号波形穿越零点的次数——过零率),将信号频率特征的分析转换为时域分析,计算得到的过零率与理论值进行比较即可实现元音的识别。图4所示分别为元音“A”的时域和频域图。

图4元音A的时域图和频域图

由频域采样图可以看到很明显的第一共振峰,此时计算时域采样中信号的过零率可较为准确的识别元音A,过零率的计算中近似等于零的采样点通常是微弱的干扰,可以忽略不计。经验证,这种简易单元音识别法的识别率在80%以上,由此证明本系统音频处理的实用性。


4结束语

本文阐述了基于信号处理和嵌入式应用的音频处理系统的设计和实现。论述了系统的硬件设计、软件编程及其应用。通过ARM对音频芯片AIC23的控制和DSP与AIC23的通信,实现了音频信号采集、处理、输出的功能以及简单的语音识别。构建了基于ARM和DSP的音频处理系统应用框架,对进一步的数据处理、控制应用等提供了切实可行的软硬件方案。

关键字:信号处理  嵌入式应用  音频处理系统 引用地址:基于信号处理和嵌入式应用的音频处理系统的设计和实现

上一篇:基于ARM Cortex-M4核的低功耗MCU--LPCXpresso54628详解
下一篇:初次接触ARM需要搞清楚的ARM开发思路

推荐阅读

全球电子设计制造大厂环旭电子(SSE: 601231)植树志愿者团队,于9月1日至4日前往宁夏灵武白芨滩国家级自然保护区参与上海根与芽的百万植树计划,亲身实作栽种沙冬青并制作“草方格”,为环境保护尽一份心力。 今年是环旭电子从2013年起参与上海根与芽的百万植树计划,今年迈入第6个年度,在内蒙累计种下24,000棵树,成树后可抵减上千吨的二氧化碳。鉴于宁...
今天尝试了使用Openmv用串口发送数据,32接收,遇到了一些坑,但是最后还是实现了,难住我的地方并不是关于传输的代码,而是那个板子串口3不知道因为什么原因接收到的数据是错误的,这个原因正在寻找,找到了再记录。 Python提供了便捷的将数据打包的方法。我使用的方法就是将数据以二进制的方式打包然后通过串口逐字节发送。 struct模块...
我们常说,成像技术与摩尔定律是背道而驰的,即工艺越先进,图像传感器上的像素越小,并不意味着性能越好,有时甚至成像质量会变差。不过,有一点趋势是肯定的,即智能手机这些年拍照,是越来越强的,像素也的确是越来越小。当然,手机摄像头的图像传感器总面积这些年一直是在变大。 但如今的1亿像素的手机,对比当年的1200万像素和4100万像素的较量,似...
具体实现功能:(1)能记录整个赛程的实际比赛时间,计时范围:0~99分钟;(2)可以进行24秒倒计时,倒计时到报警;(3)总时间分为四节,每节时间到报警;(4)能修改每节的比赛时间,初设每节倒计时时间为15分钟。单片机介绍51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统...

史海拾趣

问答坊 | AI 解惑

a3p060烧写器搞定(站方寻高人搞定的)

可以提供lcd,vga控制代码了, 专门为学习提供一个源码(用内置ram), 而且,后续的改进,也可以随时提供firmware更新。 烧写速度和zlg 500元的usb口的没区别。 这个是并口的,一般台式机上都有并口,如果没有,一般只是 排线没有引出而已。…

查看全部问答∨

电子产品的静电防护

电子产品的静电防护 一、概述     在人们的日常生活和工作中, 经常会遇到静电现象。那么, 静电到底是什么, 它的产生机理以及它有哪些危害, 如何预防和消除这些危害, 这是我们必须考虑和解决的问题。 1. 什么是静电? 静电是一种电 ...…

查看全部问答∨

用vs2005 +wince platform builder6.0 构建环境后如何下载到手机里面运行,我的智能手机系统是WM6.0的。

用vs2005 +wince platform builder6.0 构建环境后如何下载到手机里面运行,我的智能手机系统是WM6.0的。是在target目录下设置吗? 请高手指点…

查看全部问答∨

有没办法判断是串口线断开了还是设备断电了?

各位高人,本人初学串口编程,有一棘手问题请教各位,问题如下: PC机应用程序通过串口与另一设备进行正常串口通讯,这时拔掉串口线或者将设备断电,应用程序有没办法知道这时到底是通讯线断开了还是设备断电了呢?…

查看全部问答∨

求 奇数和,偶数和

#include<stdio.h> void main() int n, i=0,j=0; {         for(n=1,n<=100,n++)         if(n%2==0)           i=i+n;          & ...…

查看全部问答∨

FreeModbus遇到问题

在网上找了个FreeModBus,可是在开发板上运行不了,一运行就在BEAB BKPT 0xAB处停了,不知道问题所在。希望有经验的朋友能指点一下 把工程文件发上来了 [ 本帖最后由 dyc1229 于 2011-1-7 10:16 编辑 ]…

查看全部问答∨

南华大学黄智伟系列--在电子设计竞赛中需要准备几种微控制器

本帖最后由 paulhyde 于 2014-9-15 09:31 编辑 在电子设计竞赛中,单片机、FPGA、嵌入式处理器、DSP都可以使用,但对于每个参赛队,如果要求单片机、FPGA、嵌入式处理器、DSP全部都掌握,而且能够在竞赛中熟练的使用是存在一定困难的。 分析历届 ...…

查看全部问答∨

LED应用-TLC5940 1 线控制&TPS61059

本帖最后由 dontium 于 2015-1-23 13:12 编辑     TLC5940 1 线控制--省去集成 LED 驱动器的微处理器控制 TPS61059 为白光 LED 供电用作闪光灯或影片照明   详细资料,请见附件哦~ …

查看全部问答∨

16*16点阵屏问题

各位大侠:我用8*8点阵扩成16*16显示一个汉字,这有很大扩法,但是如果要横行扩展汉字的数量就会遇到一个问题,由于我选用的是74HC595串入并出,ULN2403提供驱动,在扩展时仍然要保证一个驱动输出最多接16个二极管,否则会造成亮度不高的情况,想请 ...…

查看全部问答∨

提问+C2000的FFT程序怎么写

C2000的FFT程序怎么写,有什么比较好的参考资料么? …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved