音频信号采集与AGC算法的DSP实现

发布者:温柔的爱情最新更新时间:2007-05-17 来源: 电子产品世界关键字:缓冲  串行  写入  接收 手机看文章 扫描二维码
随时随地手机看文章

引言

电台等由于其自办频道的广告、新闻、广播剧、歌曲和转播节目等音频信号电平大小不一,导致节目播出时,音频信号忽大忽小,严重影响用户的收听效果。在转播时,由于传输距离等原因,在信号的输出端也存在信号大小不一的现象。过去,对大音频信号采用限幅方式,即对大信号进行限幅输出,小信号不予处理。这样,仍然存在音频信号过小时,用户自行调节音量,也会影响用户的收听效果。随着电子技术,计算机技术和通信技术的迅猛发展,数字信号处理技术已广泛地深入到人们生活等各个领域。其中语音处理是数字信号处理最活跃的研究方向之一,在IP电话和多媒体通信中得到广泛应用。语音处理可采用通用数字信号处理器DSP和现场可编程门阵列(FPGA) 实现,其中DSP实现方法具有实现简便、程序可移植行强、处理速度快等优点,特别是TI公司TMS320C54X系列在音频处理方面有很好的性价比,能够解决复杂的算法设计和满足系统的实时性要求,在许多领域得到广泛应用。在DSP的基础上对音频信号做AGC算法处理可以使输出电平保持在一定范围内,能够解决不同节目音频不均衡等问题。

音频信号采集

TI公司DSP芯片TMS320VC5402具有独特的6总线哈佛结构,使其能够6条流水线同时工作,工作频率达到100MHz。利用VC5402的2个多通道缓冲串行口(McBSP0和McBSP1)来实现与AIC23的无缝连接。VC5402的多通道带缓冲的串行口在标准串口的基础上加了一个2K的缓冲区。每次串口发送数据时,CPU自动将发送缓冲中的数据送出;而当接收数据时,CPU自动将收到的数据写入接收缓存。在自动缓冲方式下,不需每传送一个字就发一次中断,而是每通过一次缓冲器的边界,才产生中断至CPU,从而减少频繁中断对CPU的影响。

音频芯片采用TLV320 AIC23,它是TI公司的一款高性能立体声音频A/D,D/A放大电路。AIC23的模数转换和数模转换部件高度集成在芯片内部,采用了先进的过采样技术。AIC23的外部硬件接口分为模拟口和数字口。模拟口是用来输入输出音频信号的,支持线路输入和麦克风输入;有两组数字接口,其一是由/CS、SDIN、SCLK和MODE构成的数字控制接口。AIC23是一块可编程的音频芯片,通过数字控制口将芯片的控制字写入AIC23内部的寄存器,如采样率设置,工作方式设置等,共有12个寄存器。音频控制口与DSP的通信主要由多通道缓冲串行口McBSP1来实现。

AIC23通过数字音频口与DSP的McBSP0完成数据的通信,DSP做主机,AIC23做从机。主机提供发送时钟信号BCLKX0和发送帧同步信号BFSX0。在这种工作方式下,接收时种信号BCLKR0和接收帧同步信号BFSR0实际上都是由主机提供的。图1是AIC23与VC5402的接口连接。


AIC23的数字音频接口支持S(通用音顿格式)模式,也支持DSP模式(专与TIDSP连接模式),在此采用DSP模式。DSP模式工作时,它的帧宽度可以为一个bit长。
图2是音频信号采集的具体电路图。


电路的设计和布线是信号采集过程中一个很重要的环节,它的效果直接关系到后期信号处理的质量。对于DSP达类高速器件,外部晶体经过内部的PLL倍频以后可达上百兆。这就要求信号线走等长线和绘制多层电路板来消除电磁干扰和信号的反射。在两层板的前提下,可以采取顶层与底层走交叉线、尽量加宽电源线和地线的宽度、电源线成"树杈型"、模拟区和数字区分开等原则,可以达到比较好的效果。
音频AGC算法的实现

AGC算法

使放大电路的增益随信号强度的变化而自动调整的控制方法,就是AGC-自动增益控制。实现AGC可以是硬件电路,即AGC闭环电子电路,也可以是软件算法。本文主要讨论用软件算法来实现音频信号的AGC。

音频AGC是音频自动增益控制算法,更为准确的说是峰值自动增益控制算法,是一种根据输入音频信号水平自动动态地调整增益的机制。当音量(无论是捕捉到的音量还是再现的音量)超过某一门限值,信号就会被限幅。限幅指的是音频设备的输出不再随着输入而变化,输出实质上变成了最大音量位置上的一条水平线;当检测到音频增益达到了某一门限时,它会自动减小增益来避免限幅的发生。另一方面,如果捕捉到的音量太低时,系统将自动提高增益。当然,增益的调整不会使音量超过用户在调节向导中设置的值。图3是音频AGC算法的结构框图。

AGC算法的实现过程

首先从串口获取音频数据,它是16位的整型数,一般来说,这些数都是比较小的,通过AGC算法将输入的音频数据投影在一个固定区间内,从而使得不论输入的数据点数值大小都会等比例地向这个空间映射。一方面将获得的音频数据最大值与原来的峰值进行比较,如果有新的峰值出现就计算新的增益系数;另一方面在一定的时间周期内获取一个新的峰值,这个峰值就具有检测性能,又与原峰值比较,然后就计算新的增益系数。这个增益系数是相对稳定的。当音量加大时,信号峰值会自动增加,从而增益系数自动下降;当音量减小时,新的峰值会减小并且取代原来的峰值,从而使峰值下降,使增益系数上升。最后输出的数据乘以新增益系数后映射到音频信号输入的投影区间内。

图4是音频信号AGC算法的程序流程图。

AGC_Coff是初始增益系数,初始值为1;maxAGC_in是增益峰值,初始值为0;time是采样点计数,门限值为4096;AGC_in是新的音频数据,MAXArrIn是新的音频增益峰值;映射区间【-20000,20000】。

整个系统的软件部分为5人模块。系统主函数main( )、CMD文件、中断向量表、DSP5402头文件和专为C语言开发的库函数rtdx.lib。其中主函数部分是核心,主要包括:DSP器件初始化、MCBSP1初始化、MCBSP0初始化、AIC23初始化(内部12个可编程寄存器设置)及算法程序等。

在CCS2.0集成开发环境下,采用*.c语言和*.asm语言相结合的方式编写程序。将编写的程序*.c、*.asm和链接程序*.cmd文件编译链接后生成执行目标文件*.out,通过仿真器将执行目标文件*.out下载到系统板上,经过调试、编译并运行,以音乐作为音频信号源输入到系统板上。

结语

这套完整的音频信号采集和处理系统已经应用于实际的音频设备中。

关键字:缓冲  串行  写入  接收 引用地址:音频信号采集与AGC算法的DSP实现

上一篇:基于CPCI总线架构的实时图像信号处理平台
下一篇:音频信号采集与AGC算法的DSP实现

推荐阅读最新更新时间:2024-05-02 20:35

STM32串口接收数据卡死问题解决办法
在使用STM32串口时,有时候串口接受一段时间数据之后便会卡死不在进入中断接收数据。原因是串口中断标志没有清除,导致终端锁死,此时需要判断对应的标志位,重新启动中断。 if((huart1.Instance- CR1 & 0x20)==0) { HAL_UART_Receive_IT(&huart1,bsp_uart1.rx_tmp,1); }
[单片机]
采用微功耗仪表放大器环路供电发射器/接收
  图1所示电路是基于一款行业领先的微功耗仪表放大器的可配置4mA至20mA环路供电发射器。无调整总误差小于1%。既可以用一个开关配置为将差分输入电压转换成电流输出的发射器(图1),也可配置成将4mA至20mA电流输入转换成电压输出的接收器。   设计针对精密、低噪声和低功耗工业过程控制应用而优化。作为发射器时,电路可以接受0V至5V或0V至10V的输入电压。作为接收器时,则可提供0.2V至2.3V或0.2V至4.8V输出电压,与采用2.5V或5V基准电压源的ADC兼容。作为发射器时,电源电压范围为12V至36V,作为接收器时为7V至36V。   由于该电路是可以配置的,因此,单个硬件设计可以同时用作备用发射器和备用接收器,从而
[电源管理]
采用微功耗仪表放大器环路供电发射器/<font color='red'>接收</font>器
智能家居照明控制开关发射与接收电路模块设计
  本设计是一种能实现远距离照明控制的无线遥控开关系统, 由发射系统和接收系统两部分组成。系统使用无线收发模块构成射频发射和接收电路, 发射部分主要由按键编址电路、编码电路和发射模块组成; 接收部分主要由接收模块、单片机控制电路和负载电路组成。发射系统采用1 节12 V 干电池供电, 接收系统采用3 节1.5 V 干电池供电, 单片机采用5 V 直流电源供电,电源系统节能、简便。    无线发射系统电路: 主要采用PT2262 芯片来完成,电路PT2262 对按键信号进行编码,可以控制4个通道。图2 中,PT2262 的1~8 脚是编码地址端, 每个地址端可以设定“ 高电平”( 该脚接12 V)、“ 低电平”( 该脚接地) 、“
[电源管理]
智能家居照明控制开关发射与<font color='red'>接收</font>电路模块设计
Omni Design宣布推出激光雷达接收器子系统
适用于激光雷达片上系统的完整接收器前端 高性能、超低功耗混合信号知识产权(IP)解决方案的领先提供商 Omni Design Technologies 推出一款涵盖鳍式场效晶体管(FinFET)至28纳米工艺节点的激光雷达接收器子系统。这款高度集成的多通道激光雷达子系统结合了多千兆采样模拟数字转换器(ADC)、跨阻抗放大器(TIA)和其他信号链IP,以处理激光雷达片上系统内从光电二极管到数字接口的返回信号。 这款高度集成的激光雷达子系统可针对信号处理通道数量、ADC分辨率和采样率轻松地进行配置,信号处理通道:4至32个;ADC分辨率:8、10或12位;采样率:数Msps到5Gsps。该子系统包含一个位于ADC和片外光电二极
[汽车电子]
msp430驱动74hc595(程序+电路)I2C串行通信
#include "msp430G2553.h" int tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; int temp; //毫秒延迟函数 void delay(int ms) { int i; while(ms--) for(i=0;i 120;i++); } //纳米延迟函数 void delayns(int ns) { while(ns--); } void display(temp)//现实位置P2.0=SH;P2.1=ST;P2,2=DS { int k,temp1,t
[单片机]
msp430驱动74hc595(程序+电路)I2C<font color='red'>串行</font>通信
基于DSP和触摸屏的串行通信系统设计
  在现代工业控制中,最常用的人机接口界面依然采用的是键盘和液晶相结合的方式,要让 触摸屏 取代以前的人机接口界面,还存在一定的问题。在实际应用中, 触摸屏 一般是针对可编程控制器PLC 设计的,所以 DSP 与 触摸屏 不能直接通信,必须根据触摸屏的通信协议开发相应的通信程序。本文研究基于MODBUS 协议的触摸屏和 DSP 的通信方法,其中 DSP 使用TI公司的TMS320F2812,触摸屏使用维控科技的LEVI700L。   1 DSP 与触摸屏的硬件电路连接   TI 公司的TMS320F2812 芯片有两组SCI 模块,SCIA 和SCIB。根据不同的需要,可以将这两个串口分别设计转换成RS2
[嵌入式]
基于DSP和触摸屏的<font color='red'>串行</font>通信系统设计
Intersil推出新款HD-SDI发射器和接收
HD-SDI帮助在现有同轴电缆基础上实现从模拟视频到高清视频的过渡。 TW6872三速率SDI发射器和TW6874四路接收器可降低视频应用的系统成本,并延长视频传输距离。 美国加州、MILPITAS--- 2013年6月24日 — 创新电源管理与精密模拟解决方案领先供应商Intersil公司(纳斯达克交易代码:ISIL)今天宣布,推出采用VC-2标准的DIRAC压缩技术的TW6872 HD-SDI视频发射器和TW6874 HD-SDI四路接收器,这是一款帮助在更长电缆距离上实现画面完美、无延迟视频传输的端到端的解决方案。这些新产品符合SMPTE(美国电影电视工程师协会)有关标清(SD)、高清(HD)和3G串行数字传输的
[网络通信]
8位串行输入DMOS功率驱动器
    Allegro公司的8位串行输入DMOS功率驱动器A6595KA和A6595KLW集8位CMOS移位寄存器和数据锁存、控制电路及DMOS功率驱动器输出于一身。     这种器件的串行数据输入、CMOS移位寄存器和锁存特性使其能直接连接微处理器基系统。串行数据输入率高达5MHz。CMOS串行数据输出可以级联连接以增加驱动线。A6595 DMOS漏极开路输出可吸入高达750mA电流。所有输出驱动器由OUTPUT ENABLE输入高态禁止。其功能框图示于图1。主要特性为:     ·50V最小输出箝位电压     ·250mA输出电流(所有输出同时)     ·rDS(on) 1.3Ω     ·低
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved