找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 语音处理算法的集成与评估

[复制链接]
admin 发表于 2013-4-1 02:53:06 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
从零开始设计和开发一个稳定的嵌入式系统通常极具挑战性。而集成和评估数字信号处理(DSP)算法与系统同样很棘手,甚至让那些编程高手也束手无策。当前有无数的算法被集成到各种电子系统中。嵌入式系统开发工程师如何才能知道哪个算法适用于语音处理,比如基本的电话系统中的语音处理呢?
        延伸到40kHz的音频频谱被划分为两个频段。语音分量占用频谱的较低部分,从5Hz到7kHz,其他音频分量占余下的高频部分,如图1所示。
        语音处理主要涉及压缩-解压缩、识别、调整和增强算法。信号处理算法非常依赖于系统资源,例如可用的存储器和时钟性能。由于这些资源会增加系统的成本,因此产品提供商通常都限制这些资源,以降低产品成本。一些基本特性,例如存储器和时钟消耗是算法复杂性的必然部分。复杂性越低,算法越优,其实现的功效就越高。
        在评估一个算法时,测量算法的复杂性是第一步。在特定处理器上运行算法所要求的时钟决定了处理能力,它取决于架构,不同的处理器架构其处理能力是有变化的。而算法的存储器需求明显不会改变。绝大多数的DSP算法对一组样值进行处理,这样的一组样值称为一个帧。一组样值组成一个帧将不可避免引入延迟,并产生处理延迟。国际电联(ITU)规定了每种算法的可接受延迟标准。
        算法的处理能力通常用“每秒百万时钟”来表示,或者MCPS。为了更好地理解MCPS,可以假设某个算法以8kHz的频率处理64个采样帧,处理每个帧需要300,000个时钟。那么收集一个帧的时间为64/8,000或8ms。通过简单的算法可以得出每秒可以处理125个帧。当算法处理所有的帧,它至少占用内核每秒300,000*125 = 37,500,000个时钟,或者37.5MCPS。
        另外一种表达MCPS的方式是,它等于(处理一个帧所要求的时间乘以采样频率再除以帧大小)再除以1百万。
        通常用来定义算法处理能力的第二个术语是MIPS,或百万指令每秒。计算某个算法的MIPS也比较复杂。如果处理器每个时钟周期能有效地执行一个指令,每个处理器的MIPS和MCPS是相同的。另一方面,如果处理器的架构需要超过一个周期来执行一个指令,则MCPS和MIPS之间存在一个比例。例如,一个ARM7TDMI处理器实际上每个指令需要1.1个周期。
   CdETdR070830101445350201106101549071081.jpg
  图1:音频频谱图
        在进行集成之前
        在任何嵌入式系统上开始集成和评估任何语音算法的最佳时机是当系统处于一个可预测或稳定的状态时。‘稳定’意味着音频前端的中断结构是一致的。换言之,当保持一个合适的幅值时,甚至不会丢失一个数据字节。拥有可用系统存储器和时钟的统计数据是非常明智的。在一个工作稳定的现有系统上集成一个算法相对较简单。如果系统正在开发中,试图在这个系统上集成和评估任何算法之前需要彻底对音频前端进行测试。而且,要验证在系统内没有中断发生相互冲突。如果系统中存在任何问题,算法的调试将是非常痛苦的体验。
        在将要集成音频/语音算法的系统中,音频固件必须是稳健的,它必须为算法提供准确的数据才能使算法得以有效地执行。工程师常常犯的一个简单错误是在每个样值到来时中断内核。如果算法只是对一个帧的某些固定样值进行处理,那么其他的中断将是多余的。可以通过配置直接存储器存取(DMA)和内部FIFO来在整个帧收集完成后再中断内核。
        实例算法
        当开发任何电信系统时,工程师通常用脉码调制(PCM)编解码器(即G.711标准)进行语音质量的测试。这种窄带编解码器将样值幅度限制在8bit的精度,并产生64kbit/s的吞吐量。编码器和解码器可能会对每个数据样值进行处理。它是一种非权重算法,复杂度很低,几乎没有处理延迟,工程师可以选择利用编解码器来进行播放、验证系统,更重要的是彻底评估音频前端设计。工程师可以检测信号电平,调整硬件编解码器增益,同步近端和远端中断,验证DMA功能,以及使用这种基本的电话标准成功进行其他试验。在这个过程中,如果发现从另一端接收到的压缩数据是比特反序的,请不要觉得奇怪。一段反序代码就能解决这个问题。
        任何宽带语音编解码器都是较多占用存储器和时钟资源的语音算法的一个实例。子带ADPCM(自适应差分脉码调制)算法就是其中之一,相应标准是 G.722。它对16kHz采样的数据进行处理,因此覆盖了整个语音频谱。它保留了未发声的频率分量
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-1-10 17:28 , Processed in 0.060951 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表