新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于SOPC的嵌入式数字音频AGC系统的设计与实现

基于SOPC的嵌入式数字音频AGC系统的设计与实现

作者: 时间:2011-02-24 来源:网络 收藏

2.5 仿真结果及分析
为了验证该算法的正确性和有效性,采用Matlab对该数字AGC算法进行仿真。仿真结果如图3所示。

本文引用地址:https://www.eepw.com.cn/article/151004.htm


在仿真中输入一段声音忽大忽小的数字,从经过AGC处理后的数字输出来看,大音量的音频信号被有效衰减,小音量的音频信号被有效放大,正常音量的音频信号几乎没有变化。该段音频长度为6 s,增益因子在此期间可调整300次,该算法的增益因子调整速度可以满足音频剧烈变化时的使用需求。对噪音的抑制也起到了很好的效果,人耳的实际听觉感知达到了满意的效果。

3 软件层设计
目前比较流行的嵌入式操作系统主要有VxWorks,Windows CE,uCLinux,μC/OS-Ⅱ等。μC/OS-Ⅱ的规模较小、实时性和可靠性较高,能够满足嵌入式数字音频AGE系统对实时性的要求,考虑到NiosⅡIDE开发环境对μC/OS-Ⅱ的良好支持,故操作系统选择μC/OS-Ⅱ。μC/OS -Ⅱ是一种可移植、可固化、可裁减、占先式的多任务实时操作系统内核。它通过为每个任务分配单独的任务堆栈来保存任务工作环境,提供任务管理与调度,任务间的同步、互斥与通信,时间和中断管理、内存的动态分配等多种系统服务。
系统运行时,首先进行系统初始化操作,即初始化所有数据结构,分配堆栈空间,然后建立任务间通讯的信号量或者消息队列,进而创建任务,并且分配不同的优先级,所有任务被置于就绪态,系统从优先级最高的任务开始执行。
软件设计主要包括嵌入式操作系统μC/OS-Ⅱ的移植、LCD显示控制器和自定义音频模块的驱动程序设计、算法设计实现3个主要部分。嵌入式音频AGC系统根据功能划分主要有以下4个任务,如图4所示。


(1)系统初始化任务,主要是用以初始化整个嵌入式音频AGC系统,包括初始化各种系统变量、LCD控制器、键盘、自定义音频接口模块等系统模块,此外还担负着创建其他任务和信号量的任务,是系统正常运行必不可少的一环,该任务在系统中有最高的优先级。在正常初始化系统以后将该任务删除以节省系统开支。
(2)音频AGC处理任务,对自定义音频接口的输入音频进行AGC处理,配合自定义音频接口的驱动程序将处理好的音频进行输出。该任务是嵌入式音频AGC系统的核心任务,在系统初始化任务完成并删除后成为系统内优先级最高的任务。
(3)键盘输入响应处理任务,对PIO输入的按键信息进行相应处理,如果有改变参数设置等重要信息要通过信号量及时反馈给音频AGC处理任务,同时负责输出要在LCD上显示的内容,通过邮箱信号量发送给LCD显示任务。它的优先级比LCD显示任务高。
(4)LCD显示任务,将接收到的内容配合LCD控制器驱动程序进行LCD的显示输出。

4 结束语
本设计采用SOPC技术,利用FPGA实现SDI接口逻辑,移植μC/OS-Ⅱ实时操作系统为嵌入式应用软件运行平台,可以实现与广电设备的无缝接合。通过设计采用一种适于实时性的多参数融合的AGC算法对数字音频信号进行AGC处理,实现了具有抑制一定噪声能力的嵌入式数字音频AGC系统。测试表明该系统达到设计预期目标,改善了传统音频AGC处理中的一些缺陷,输出音频稳定平衡,完全满足实际需要,可广泛应用在数字演播室中的数字音频实时AGC处理上。


上一页 1 2 3 下一页

关键词: 音频

评论


相关推荐

技术专区

关闭