基于ADPCM算法的语音录放系统优化设计与FPGA实现
- 格式:pdf
- 大小:197.76 KB
- 文档页数:4
ADPCM语音编解码电路设计及FPGA实现【摘要】本文章主要介绍了ADPCM语音编解码电路设计及FPGA实现的相关内容。
在我们探讨了研究背景、研究意义和研究目的,提出了对ADPCM技术的重要性和研究动机。
在我们详细阐述了ADPCM语音编解码的原理,以及编解码电路的设计过程。
通过FPGA实现设计的讨论,我们展示了如何将理论转化为实际应用,并进行了实验结果的分析。
最后在总结了ADPCM语音编解码电路设计及FPGA实现的整体结论,并展望了未来的发展方向。
这篇文章旨在为相关领域的研究者提供参考,并为ADPCM技术的应用和发展做出一定的贡献。
【关键词】ADPCM, 语音编解码, 电路设计, FPGA实现, 研究背景, 研究意义, 研究目的, 原理, 编码电路设计, 解码电路设计, 实验结果分析, 总体结论, 未来展望1. 引言1.1 研究背景ADPCM(自适应差分脉冲编码调制)是一种常用的语音编解码技术,其核心是通过采样率降低和差分编码来实现语音信号的压缩和传输。
随着信息技术的迅速发展,对语音质量和传输效率的要求越来越高,因此研究ADPCM语音编解码技术具有重要意义。
在传统的ADPCM编解码电路设计中,通常使用基于传统的硬件电路或者嵌入式系统来实现,但是这种方式存在着成本高、功耗大、灵活性差等问题。
1.2 研究意义ADPCM语音编解码技术在现代通信系统和数字音频处理中具有重要的应用价值。
通过对语音信号进行压缩和解压缩处理,可以有效地减少数据传输量,提高通信效率,节省带宽资源。
ADPCM编解码技术在实时语音通信、语音识别和语音合成等领域也发挥着重要作用。
研究ADPCM语音编解码电路设计及FPGA实现的意义在于深入探究该技术的原理和实现方法,为提高音频数据处理和传输的效率提供技术支持。
通过设计高性能的ADPCM编解码电路,并将其实现在FPGA芯片上,可以实现高速、低功耗的语音处理系统。
这对于提高通信质量、降低系统成本具有重要意义。
课程设计报告设计课题: ADPCM编解码器的实现姓名:专业: 集成电路设计与集成系统学号:日期指导教师:一:课程设计任务与要求。
ADPCM编解码器的实现。
m转为Verilog,使用Matlab和Modesim联合仿真验证二:系统设计原理。
2.1 脉冲编码调制PCM脉冲编码调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。
脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程[9]。
抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号,抽样必须遵循奈奎斯特抽样定理。
该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。
它的抽样速率的下限是由抽样定理确定的。
抽样速率采用8KHZ。
量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示,通常是用二进制表示。
量化误差:量化后的信号和抽样信号的差值。
量化误差在接收端表现为噪声,称为量化噪声。
量化级数越多误差越小,相应的二进制码位数越多,要求传输速率越高,频带越宽。
为使量化噪声尽可能小而所需码位数又不太多,通常采用非均匀量化的方法进行量化。
非均匀量化根据幅度的不同区间来确定量化间隔,幅度小的区间量化间隔取得小,幅度大的区间量化间隔取得大。
一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值。
编码,就是用一组二进制码组来表示每一个有固定电平的量化值。
然而,实际上量化是在编码过程中同时完成的,故编码过程也称为模/数变换,可记作A/D。
2.2 差分脉冲编码调制DPCM差分脉冲编码调制DPCM是利用样本与样本之间存在的信息冗余度(预测样值与当前样值之差)来代替样值本身进行编码的一种数据压缩技术[10]。
差分脉冲编码调制可以实现在量化台阶不变(即量化噪声不变)的情况下,编码位数显著减少,信号带宽大大压缩。
基于ADPCM的语音编解码设计开题报告湖南工学院毕业设计(论文)开题报告题基于ADPCM的语音编解码设计学生姓名刘芳班级学号09401140201专业电子信息工程一、选题背景和意义随着社会发展,人类进入信息时代,对资源的利用要求越来越高,推动了语音编解码技术的飞速发展。
同时,随着微电子技术的发展,超大规模集成电路设计技术的完善,使得语音边解码技术的应用越来越广泛,深入到消费电子领域、通信领域,如IP电话、数字录音笔、复读机等都是语音压缩编码技术典型的应用。
语音编码就是将模拟的语音信号数字化,利用数据的冗余度或者语音听觉上的制约来压缩信号的不必要的信息,增加传输速率,减少存储容量,然后进行传输、存储或者处理,而解码就是相反的一个过程。
ADPCM是自适应差分脉冲编码调制的简称,最早使用于数字通信系统中。
该算法利用了语音信号样点间的相关性,并针对语音信号的非平稳特点,使用了自适应预测和自适应量化,即量化器和预测器的参数能随输入信号的统计特性自适应于或接近于最佳的参数状态,在32kbps◎8khz速率上能够给出网络等级话音质量。
ADPCM(Adaptive Differential Pulse Code Modulation),是一种针对 16bits( 或8bits或者更高) 声音波形数据的一种有损压缩算法,它将声音流中每次采样的 16bit 数据以 4bit 存储,所以压缩比 1:4. 而且压缩/解压缩算法非常简单,所以是一种低空间消耗,高质量高效率声音获得的好途径。
ADPCM 主要是针对连续的波形数据的,保存的是波形的变化情况,以达到描述整个波形的目的。
二, 项目概述自从1937年A.H.Reeves提出脉冲编码调制(PCM)以来,语音编码技术已有60余年的发展历史。
尤其近20年随着计算机和微电子技术的发展语音编码技术得到飞速发展。
CCITT于1972年确定64kbit/sPCM语音编码G.711建议,它已广泛的应用于数字通信、数字交换机等领域,至今,64kbit/s的标准PCM 系统仍占统治地位。
G.721ADPCM语音编码标准的学习及实现摘要语音是人类相互之间交流时最常使用的信息载体。
在信息化高度发展的今天,语音处理技术以及它的应用已经成为信息化社会不可缺少的重要组成部分。
而语音编码作为语音信号处理的一个分支,目的就是要在保证语音音质和可懂度的条件下,采用尽可能少的比特数来表示语音,它是现代通信和信息工程领域不可缺少的关键技术。
语音编码在数字通信网中占据着重要的位置。
随着通信技术和信息社会的飞速发展,频率资源显得越来越宝贵。
因此,降低电话信道的传输码率又或者是压缩语音信号的传输带宽,一直以来都是人们所追求的目标,语音编码技术也因此显得更加重要。
总而言之,数字语音通信与存储技术和语音编码是密不可分的,语音应答系统、语音信箱、数字录音电话、语音查询系统等,也都是随着语音压缩编码技术而发展起来的。
本文简单介绍了语音信号的编码技术,主要学习了G.721 ADPCM语音编码标准并通过编程实现。
关键字:语音编码、语音通信、压缩、存储、语音信号引言语音编码是在保持一定的算法复杂度和通信时延的前提下,运用尽可能少的信道容量,传输尽可能高质量的语音。
编码器的效率和算法复杂度之间通常呈正比关系,算法越复杂,时延和费用就越高。
因此,必须在这两个矛盾的因素之间寻找一个平衡点。
语音编码发展的目的是为了使平衡点向更低的比特率方向移动。
ITU已经制定了几种码率的语音编码国际标准,这些标准推动了研究工作的进展。
1 语音编码的分类、特性及现状语音编码编码方式大致可以分为三种:波形编码、参数编码、混合编码。
波形编码是将时间域或变换域信号直接变换成数字信号,力求使重建语音波形保持原始语音信号的波形形状。
参数编码又称声码器编码,它是将信源信号在频域或其他变换域提取特征参数,然后对这些特征参数进行编码和传输,在译码端再将接收到的数字信号译成特征参数,根据这些特征参数重建语音信号。
混合编码将波形编码和参数编码结合起来,克服了波形编码和参数编码的缺点,吸收了他们的长处,能够在较低速率上得到高质量的合成语音。
ADPCM语音编解码电路设计及FPGA实现摘要:ADPCM(自适应差分脉冲编码调制)是一种数字语音编码技术,常用于语音通信和存储领域。
本论文提出了一种基于FPGA实现的ADPCM语音编解码电路设计,该设计采用基于FPGA的高速DSP器件,实现了低时延、高精度的语音编解码,具有编码率可变、降噪功能等优点。
由实验结果可知,本设计能够实现高质量的语音压缩和还原,具有良好的应用前景。
关键词:ADPCM;语音编解码;FPGA;DSP;降噪正文:ADPCM编码是以低码率、高保真度为目标的数字语音压缩技术,广泛应用于电信、广播、铁路等领域。
本论文提出了一种基于FPGA实现的ADPCM语音编解码电路设计,该设计采用了基于FPGA的高速DSP器件,结合了ADPCM编码特点和客户需求,实现了低时延、高精度的语音编解码,具有编码率可变、降噪功能等优点。
本设计采用SPARTAN-6系列FPGA作为硬件平台,结合Verilog语言进行编程,设计了一套完整的ADPCM语音编解码系统。
其中,编码部分主要实现了信号采样、量化、差分处理、编码等功能,解码部分则实现了解码、差分判决、还原等功能。
在此基础上,本文还提出了一种全数字降噪方法,通过采用LMS算法进行信号处理,实现了良好的语音降噪效果。
为了验证本论文所提出的ADPCM编解码电路设计的有效性和准确性,本文进行了丰富的实验测试。
实验结果表明,本设计能够实现高质量的语音压缩和还原,其编码比和信噪比达到了较为理想的水平,具有广阔的应用潜力。
综上所述,本文提出的基于FPGA实现的ADPCM语音编解码电路设计是一种高效、稳定、可靠的语音编解码方案,可广泛应用于语音通信、存储、音频视频等领域。
ADPCM(自适应差分脉冲编码调制)是一种数字语音编码技术,可以将模拟语音信号转换为数字信号进行传输和存储。
ADPCM技术具有低码率、高保真度的优点,广泛应用于语音通信、存储、音频视频等领域。
下面将从几个应用场景分别探讨ADPCM技术的应用。
1绪论1.1 课题研究的背景和意义随着社会时代的发展,人类迅速进入信息时代,对于各种资源的利用率要求越来越高,从而推动了语音编解码技术的飞跃发展。
与此同时,伴随着微电子技术的快速发展,以及超大规模集成电路设计技术的不断完善,使得语音编解码技术越来越广泛的深入到通信领域、消费电子领域,辟如数字录音笔、IP电话、复读机等等都是语音压缩编码技术的典型应用。
语音编码技术就是将模拟的语音信号数字化离散化,利用语音听觉上的制约或者数据的冗余度来压缩信号的一些不必要的信息,以此来增加传输速率、减少存储容量,然后再进行传输、存储或者处理,而解码就是相反的一个过程。
ADPCM是自适应差分脉冲编码调制的简称,是语音编码的多种算法中的一种,更是最早使用于数字通信系统中的一种语音编解码算法。
此算法利用了语音信号样点间的相关性,针对语音信号的非平稳特点,使用了自适应预测和自适应量化,即预测器和量化器它们的参数能随着输入信号的统计特性,自适应于或接近于最佳的参数状态,在32kbps的速率上能够给出网络等级话音质量。
ADPCM究其本质是一种针对 16bits( 或8bits或者更高) 声音波形数据的一种有损压缩算法,它可以将声音流中每次采样的 16bit 数据用4bit 来存储,所以其压缩比为 1:4。
而且它的压缩/解压缩算法非常简单,所以又是一种低空间消耗、高质量高效率声音获得的好途径。
ADPCM 其主要是针对连续波形数据的,保存的则是波形的变化情况,从而以达到描述整个波形的目的。
1.2语音编码的发展和研究状况数字语音有很多的优点是模拟语音不可比拟的,它能更方便的传输和存储,可以在噪声信道中进行相当可靠的传输,容易进行交换,能够很方便的对信号进行加密传输。
数字语音可以由模拟语音简单的抽样,量化来得到,但由于数字语音其数据量比较大如果不经过处理,那它在传输和存储时就会占用很大量的信道资源以及存储空间,那么给系统提出的要求势必就会很高,所以数字语音通常情况下都是要进行压缩编码的。
科技视界Science &Technology VisionScience &Technology Vision 科技视界作者简介:吴东伟(1989.09.24—),男,内蒙古扎赉特旗人,沈阳师范大学物理科学与技术学院,电子信息工程本科生,学号10029006。
1DPCM 算法和ADPCM 算法因为音频信号存在冗余,这些冗余有主观的,也有客观的。
如果去掉了人耳无法感知的信息,那么不会对听觉效果产生影响,而且还会达到压缩的目的。
有一种消除冗余的方法非常简单,这种方法是将相邻两个样本进行相减,然后再根据这个差值进行编码,因为被量化的对象会在一定程度上减少变化范围,记录信号的容量同时也被减少了。
这样的技术被称为DPCM,也就是差分脉冲编码调制。
但是有一种编码方法比DPCM 更加的高效,这种方法就是ADPCM,它不但可以改变量化步长,而且还能够根据目前的值来进行预测,从而方便下次进行编码。
这样一来,预测值和实际样本之间的误差会小很多。
其可以选择的幅度差的量化比特位数有2bit、4bit 以及8bit。
在编码器当中,输入样本X(n)和前一次样本X(n-1)的预测信号XP(n-1)求差,这样可以得到差值D(n),D(n)通过自适应量化器之后会得到ADPCM 的编码,这个编码用C(n)来表示。
为了得到XP(n-1),必须要首先把编码信号C(n-1)反量化为样本差值Dq(n-1),这个时候再和前一次的预测样本Xp(n-2)相加,最后和送入自适应预测器,得出预测值为Xp(n-1)。
这样解码器非常简单,ADPCM 编码C(n)通过自适应反量化器对差值进行恢复,得出Dq(n),然后和上一次所输出Y(n-1)的预测值求和,这样可以恢复出第n 个样本值,这个样本值用Y(n)来表示。
在通过差值信号得到ADPCM 编码的时候,因为量化器会根据差值信号的幅度自动对步长进行调节,因为它也是自适应的。
在信号发生了很大的变化之后,步长也会随之而增加,在信号的变化很小的时候,步长也会随之而减少。
adpcm课程设计一、课程目标知识目标:1. 学生理解ADPCM(自适应差分脉冲编码调制)的基本概念,掌握其工作原理和压缩算法。
2. 学生能够运用ADPCM对声音信号进行编码和解码,了解其在数字通信中的应用。
3. 学生掌握ADPCM与其他音频编码技术的区别和联系,了解其在不同场景下的适用性。
技能目标:1. 学生能够运用所学知识,独立进行ADPCM编码与解码的实验操作。
2. 学生具备分析ADPCM编码过程中信号处理和压缩效果的能力。
3. 学生能够结合实际问题,设计基于ADPCM的音频压缩方案。
情感态度价值观目标:1. 培养学生对数字信号处理领域的兴趣,激发其探索精神。
2. 培养学生严谨的科学态度,强调实验操作的安全性和准确性。
3. 引导学生关注科技发展对社会生活的积极影响,提高其社会责任感和使命感。
课程性质:本课程属于信息技术与通信工程领域,结合理论知识与实践操作,旨在提高学生的数字信号处理能力。
学生特点:学生具备一定的电子学和计算机科学基础知识,对新技术充满好奇心,动手能力强。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的实际操作能力和问题解决能力。
通过课程学习,使学生能够将所学知识应用于实际项目中,培养具备创新精神和实践能力的优秀人才。
二、教学内容本课程教学内容主要包括以下三个方面:1. ADPCM基本原理- 引导学生了解差分脉冲编码调制(DPCM)的原理,为学习ADPCM打下基础。
- 介绍ADPCM的原理,包括预测、量化、编码和解码等过程。
- 分析ADPCM的优缺点,以及在不同场景下的应用。
2. ADPCM算法实现- 讲解ADPCM编码算法的具体步骤,如预测、量化、编码等。
- 演示ADPCM解码算法的过程,使学生理解其与编码算法的对应关系。
- 分析教材中相关章节,如:数字信号处理、音频信号编码等。
3. 实践操作与案例分析- 安排实验课程,指导学生进行ADPCM编码与解码的实践操作。
课程设计报告设计课题:ADPCM编解码器的实现姓名: XXX专业:集成电路设计与集成系统学号: 04日期 2015年1月17日指导教师: XXX国立华侨大学信息科学与工程学院一:课程设计任务与要求。
ADPCM编解码器的实现。
m转为Verilog,使用Matlab和Modesim联合仿真验证二:系统设计原理。
脉冲编码调制PCM脉冲编码调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。
脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程[9]。
抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号,抽样必须遵循奈奎斯特抽样定理。
该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。
它的抽样速率的下限是由抽样定理确定的。
抽样速率采用8KHZ。
量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示,通常是用二进制表示。
量化误差:量化后的信号和抽样信号的差值。
量化误差在接收端表现为噪声,称为量化噪声。
量化级数越多误差越小,相应的二进制码位数越多,要求传输速率越高,频带越宽。
为使量化噪声尽可能小而所需码位数又不太多,通常采用非均匀量化的方法进行量化。
非均匀量化根据幅度的不同区间来确定量化间隔,幅度小的区间量化间隔取得小,幅度大的区间量化间隔取得大。
一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值。
编码,就是用一组二进制码组来表示每一个有固定电平的量化值。
然而,实际上量化是在编码过程中同时完成的,故编码过程也称为模/数变换,可记作A/D。
差分脉冲编码调制DPCM差分脉冲编码调制DPCM是利用样本与样本之间存在的信息冗余度(预测样值与当前样值之差)来代替样值本身进行编码的一种数据压缩技术[10]。
差分脉冲编码调制可以实现在量化台阶不变(即量化噪声不变)的情况下,编码位数显着减少,信号带宽大大压缩。
基于ADPCM的语音信号编解码班级:电子与通信工程姓名:学号:目录一、语音压缩编码简介 .................................................................................................- 2 -1.1 语音压缩技术的现状及发展方向........................................................................- 2 -1.2 语音压缩编码分类................................................................................................- 2 -1.3 语音信号压缩的基本原理....................................................................................- 2 -1.4 语音压缩编码性能的评价指标............................................................................- 3 -二、G.721编码及算法实现 ................................................................................................- 4 -2.1自适应差分脉冲编码调制ADPCM .......................................................................- 4 -2.2 G.721各部分算法介绍 ..........................................................................................- 5 -三、仿真结果.......................................................................................................................- 9 -四、分析与总结................................................................................................................ - 11 -五、仿真程序.................................................................................................................... - 12 -六、参考文献.................................................................................................................... - 15 -摘要自适应差分脉冲编码调制(ADPCM)是运用了自适应技术、脉冲编码调制、差值调制技术,对PCM(脉冲编码调制)语音信号进行再压缩。
文章编号:1002-8684(2007)S2-0027-04基于ADPCM算法的语音录放系统优化设计与FPGA实现徐朝炯,李平,高峰(电子科技大学微电子与固体电子学院,四川成都610054)【摘要】介绍了自适应差分脉冲编码调制技术ADPCM的编解码原理和结构,利用硬件描述语言设计并仿真了IMA-ADPCM编解码器及相关电路,以完成语音的录放功能。
通过优化编解码器的电路结构,使系统资源消耗减小了1/3。
实验平台以Altera的FPGA开发板为基础,实现了语音的录放,语音回放效果达到预期目标。
【关键词】自适应差分脉冲编码调制;语音编解码器;优化;FPGA【中图分类号】TN912【文献标识码】ADesignandOptimizationofVoiceRecord/PlaybackSystemBasedonADPCMandtheImplementationonFPGAXUChao-jiong,LIPing,GAOFeng(CollegeofMicro-ElectronicsandSolid-stateElectronics,UESTofChina,Chengdu610054,China)【Abstract】Inthispaper,theprincipleandarchitectureoftheencoderandthedecoderofAdaptiveDifferentialPulseCodeModulation(ADPCM)areintroduced.Then,theVLSIimplementationofIMA-ADPCMencoder/decoderandrelatedcircuitsisproposedwithVerilogHDLdedicatedlyforvoicerecord/playbackapplication.Theresultandexplanationarepresentedaftersimulation.Basedonourworking,resourceconsumptionisreduced1/3byoptimizingthestructureoftheencoderanddecoder.Finally,asimulationplatformisestablishedonthefoundationofAltera′sUP3educationkit.Thefunctionofvoicerecord/playbackisrealizedandtheperformancegainsourends.【Keywords】ADPCM;voiceencoder/decoder;optimize;FPGA・论文・1引言自适应差分脉冲编码调制(ADPCM)是一种音频有损压缩编码方式,它的特点是文件体积小,音质较佳。
在录音应用领域,音质效果要求并不高的地方,ADPCM音频格式可基本胜任;另外,这种简单的波形编码方式相对于其他的音频编码格式来说,实现难度较小。
目前,市场上MP3播放器大多采用了G.726标准的ADPCM实时压缩算法,对语音支持24Kbit/s或32Kbit/s的编码速率,在32MByte的Flash中可连续录制2个多小时语音。
此外,由于ADPCM具有良好的话音质量和抗干扰性能,在卫星通信、ISDN中得到了广泛应用。
2ADPCM算法基本原理由于音频信号具有主观冗余和客观冗余,去掉这些人耳感知不到的信息,对听觉效果基本没有影响,这样就可达到压缩的目的。
最简单的消除冗余度的方法是将相邻两个样本相减,然后对这个差值编码,由于被量化对象的变化范围减小了很多,记录信号的容量也就减少了,基于这种原理的编码技术叫做差分脉冲编码调制(DPCM)。
ADPCM是一种比DPCM更高效的编码方式,它可自适应的改变量化步长,并且根据当前值进行预测,用于下次编码,使实际样本和预测值之差总是最小[1]。
可选的幅度差的量化比特位数有8bit,4bit和2bit。
ADPCM编码的结构框图如图1所示。
在编码器中,输入样本X[n]与前一次样本X[n-1]的预测信号Xp[n-1]求差,得到差值D[n],D[n]经过自适应量化器后得到ADPCM编码C[n];为了得到Xp[n-1]需要先将编码信号C[n-1]反量化为样本差值Dq[n-1],然后和上一次的预测样本Xp[n-2]相加,最后将和送入自适应预测器得到预测值Xp[n-1]。
其解码器相对简单一些,ADPCM编码C[n]经过自适应反量化器恢复出差值Dq[n],然后!"#电声技术电声技术与上一次输出Y[n-1]的预测值求和,就可恢复出第n个样本值Y[n]。
在由差值信号得到ADPCM编码过程中,由于量化器可根据差值信号的幅度自动调节步长,所以称它是自适应的。
当信号变化很大时,步长也增大;当信号变化缓慢时,步长也跟着减小。
同样,在由ADPCM编码反量化的过程中,反量化器会通过ADPCM编码选择一个索引,然后根据索引调整步长,所以ADPCM采用的是非均匀量化。
这里有两点值得注意,一是在编码器中为了得到预测值,采用了反量化器,而反量化器的输出Dq[n]似乎可由输入差值D[n]来代替。
由反量化器得到Dq[n]的方式是为了将编码值反馈到前级,以抑制突变信号(变化超出两倍步长)造成的错误累加。
二是自适应预测器的预测效果影响着ADPCM编码质量,好的预测器根据当前值X[n]以及前几次的值调整预测值,以尽可能地减小编码过程造成的误差,但是系统复杂度和资源消耗也会相应增加。
笔者采用的是IMA(InteractiveMultimediaAsso-ciation)ADPCM算法,该算法是一种简单快捷的方法,可在20MHz的386级PC上对44.1kHz,16bit立体声的声音进行实时解码[2]。
著名的WestWood在它的许多游戏,如沙丘II、命令与征服、红色警戒等中保存声音的数据文件(AUD格式)大多使用IMA-ADPCM压缩。
另外,该压缩方式在手机铃声和MP3中的WAV录音中得到了很好的应用。
这种编码方式的秘密在于它的预测器相当简单,它直接使用上一次的预测值Xp[n-1]与反量化值Dq[n]的和作为下一个预测值。
简单地说,它的预测器就是一个延迟单位。
由于没用任何其他预测值Xp[i]来得到更好的预测,所以该预测器并不是自适应的。
3语音录放系统的设计与优化3.1设计前的考虑由于ADPCM算法目前在语音录音领域应用较多,而且基于该算法的语音录音系统实现起来比较容易,因此设计拟定的目标为通过ADPCM编解码器对短时语音进行录音,并能实现语音的回放。
设计中采用8bitAD/DA,4bitADPCM编码,系统工作频率8kHz,那么PCM信号的码率为8kHz×8bit=64Kbit/s,ADPCM编码的码率8kHz×4bit=32Kbit/s,由此可知压缩率为64Kbit∶s/32Kbit/s=2∶1;另外,由于采用4bitADPCM编码,每秒需32Kbit/4bit=8K个存储单元(每个存储单元4bit),即4KByte的存储空间。
由于设计中采用的FPGA(CycloneEP1C6Q240C8)内部只有90Kbit存储空间,此外还需要为算法中使用的步长表和修正表[5]预留一定存储空间,所以计划录音时间2s,那么录音编码会占用空间32Kbit/s×2s=64Kbit,即64Kbit/4bit=16K个存储单元,那么存储器的地址线为14bit。
3.2系统框图与工作过程系统(如图2所示)主要由编码器Encoder、存储器RAM、解码器Decoder、控制单元Control、时钟Clock这5个模块组成。
在播放(play)和录音(record)2个按键的作用下,由Control部分产生存储器使能信号CS、地址信号Addr和读写控制信号WE,编码器的使能信号En_en和复位信号RE_RST或者解码器的使能信号En_de和复位信号PL_RST。
工作过程为:录音过程:按录音键,录音过程开始→在约1个时钟周期里编码器复位,之后编码器和存储器开始正常工作→对输入的8bitPCM信号编码并写入存储器RAM→录音键松开,录音结束。
图2基于FPGA的语音编/解码系统结构图录音播放控制单元解码器存储器编码器时钟4bit4bitPCMPCMClk(14.318MHz)PL_RSTEn_enEn_deRE_RSTWECSAddr图1ADPCM编解码结构框图(a)ADPCM编码器Xp[n-1]X[n]D[n]Xp[n]Dq[n]""自适应量化器自适应预测器自适应反量化器C[n](b)ADPCM解码器自适应预测器自适应反量化器"Dq[n]C[n]Y[n]Y[n-1]!"#播放过程:按播放键,播放过程开始→在约1个时钟周期里解码器复位,之后解码器和存储器开始正常工作→循环读RAM并由解码器解码输出8bitPCM信号→播放键松开,播放结束。
3.3电路设计与仿真笔者采用硬件描述语言[3]对电路模块进行设计,使用QuartusII进行综合,通过ModelSim进行的功能仿真和时序仿真。
为便于观察,给出的仿真图是在ActiveHDL环境下进行的。
3.3.1编码器设计将量化步长表和索引修正表单独设计成2个模块,以便于后面直接调用。
输入PCM信号减去预测信号,由差值正负可首先得到ADPCM编码的最高位,该差值经过3次与步长、1/2步长、1/4步长的比较得到剩下的3位编码;得到的ADPCM编码再经过与刚才量化过程相反的步骤恢复出差值;将这个恢复出来的差值与上一个预测值相加,便得到新的预测值,延迟一个周期,用于计算下一个差值。
3.3.2解码器设计解码仍然使用上面提到的量化步长表和索引修正表;解码过程与编码过程求预测值的过程相似,将ADPCM编码反量化,其过程与编码器中量化的过程相反,由低3位编码修正步长,然后由这3位编码决定是否将步长与1/2步长、1/4步长累加,得到的和经过修正由编码最高位决定其正负,为正时不变,为负时变为补码,这个反量化出来的差值再与上一个恢复出来的PCM信号相加就可恢复出本次PCM信号。
3.3.3控制单元设计由录音/播放信号可得到一系列编码/解码/存储的控制信号;由于录音/播放信号为异步输入,所以需要分别使用2级触发器对它们进行同步;得到的录音同步信号先对编码器清零,并将编码器和存储器使能,此时解码器不工作;得到的播放同步信号先对解码器清零,并将解码器和存储器使能,此时编码器不工作。
另外控制器内还要设计一个计数器,为存储器提供读写地址。
3.3.4存储器和时钟设计由前面的分析可知RAM为64Kbit的存储空间,共分为16K个单元,地址线为14bit,数据线为4bit,由于设计的目标具有非实时性,所以采用单口RAM。