你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【中文文档】AN2931 - 在大容量STM32F103xx单片机实现ADPCM算法

[复制链接]
STMCU-管管 发布时间:2019-4-12 09:55
在高容量 STM32F103xx 微控制器中实现 ADPCM 算法# y$ e3 Z2 b# ?

, D1 V, Q/ v9 p& I/ S前言 9 P" a' R6 a0 I3 P& ~
. c. s3 {. N: N* c( {: `3 ]3 @8 z
本应用笔记描述了 ADPCM 音频固件编解码器,并提供了演示固件来说明如何在使用STM32F103xxI2S 时,利用外部的 DAC 来播放 ADPCM 文件。 ) O  P5 Z$ v% p$ q

  e: G% v& `+ b& a本应用笔记基于 “AN2739:如何利用具有外部 I2S 音频编解码器的高容量 STM32F103xx 微控制器播放音频文件 ”。由于关于 SPI、I2S 和外部 DAC 的部分在 AN2739 中已有说明,此处不再赘述。因此,为了能充分理解本应用笔记,建议您参考 AN2739。# o4 V! L$ x; D5 p
& p7 p& |9 V% y# u0 M7 t( }2 @
1 ADPCM 算法 . O8 W5 f( ~7 f7 A
' a; d$ z4 ^  R2 e  l
1.1 概述5 G8 Y4 i3 r$ Z, k7 N6 y% k, q
! h" ?& Z, Z/ n1 z7 _: M
自适应差分脉冲编码调制 , 或简称为 ADPCM, 是波形编码的音频算法 , 它通过以前的信号值预测当前的信号值 , 并且仅发送真实值和预测值的差值。 * a6 e! z  c, x! m

  i% E3 P" x5 R( V8 u在普通的脉冲编码调制 (PCM)中,发送的是真实或实际信号值。 + {, K! P' e0 T; m, v. V
$ J6 f7 {7 C2 n+ u" v
ADPCM 的优势在于通常预测信号值和真实信号值的差值相当小,这意味着与相应的 PCM 值相比,它可以用更少的位数来表示。 " Z3 m$ ]3 T0 M2 N

0 n& O! s+ x2 X3 g; v! h+ N根据需要的质量和压缩比,差分信号按照 4 (2 位)、 8 (3 位)、 16 (4 位)或 32 (5 位)水平量化。
& l$ y3 I& x! p* X6 t- i
8 b9 d# w2 _! h& }9 x1 n: E" XADPCM 算法的实现方法有很多。它们在量化和预测模式上有所不同。 9 y' W9 n* ]3 O( I

+ R5 j# T  W: N6 e在本应用笔记中,我们提供了由交互式多媒体协会(IMA)开发的4位量化算法IMA ADPCM。
+ Q; P$ [1 C8 y+ l& u; r# t8 }& P( @
选择 IMA ADPCM 有多种原因:
" u) @# y* ^: Z  Z3 n- A● 它可以应用于 8 kHz 到 44.10 kHz 之间的不同采样率 ; E3 i- s3 ^5 a3 L8 ]( n8 `* a; Z- d( v  W
● 它能在较低的 CPU 的使用率和较少的内存占用情况下保证音频的播放质量   x4 M5 ^/ x/ T3 W
● 它具有广泛的实现方式,例如在 Windows 和 Mac 操作系统中
- ?* Y8 u& ^  b% n' O6 \
4 i. ^4 r5 \( SIMA 数字音频对焦和技术工作组公布的一份文件对 IMA ADPCM 算法进行了充分说明:“ 在多媒体系统中增强数字音频兼容性的建议措施 ” 版本 3。 # g6 _9 h7 ]+ F, I: l

: Z4 @: z! V; j; b1.2 ADPCM 算法实现
8 w- ~' ?& m$ V" n" p( X2 l! H! X0 F+ `: {
本应用笔记提供的 IMA ADPCM 算法用于对具有下述规范的音频文件进行编码:
- r! w" W. A/ I# F% W8 K● 音频格式:PCM   I" a7 R& \4 |! o
● 音频采样大小:16 位
- ]2 u2 y0 j: s● 通道 : 1 ( 单声道 ) - ^4 I! I8 c+ N+ _
● 音频采样率:8 kHz 到 44.1 kHz 3 D9 t- [* p! _: d; \! q5 j

; }; c( K" ^+ Y# \1 c% u1 T每个 16 位 PCM 采样被编码为 4 位 ADPCM 采样,压缩比达到 1/4。
5 J  p. U; ]/ ?: D; x" t
, E8 L5 Z7 d3 l* }. f3 M
IMA ADPCM 算法实现包含两个函数,一个函数编码音频采样,另一个函数解码音频采样。 0 @3 C7 f( t2 Z1 o8 I8 O& i
" `$ ~/ l0 O# v. B* S
ADPCM 固件由两个文件组成:
* J+ y$ m; z: V. k" Fa) adpcm.c:它包括执行编码和解码的两个 ADPCM 函数的源代码。
) I( A7 `1 \3 Tb) adpcm.h:它是 adpmc.c 的头文件。它应该包含在调用 ADPCM 函数的文件中。
) N6 a1 d$ b" v
" ?* p' c% B. b
..........
/ F* ?* f" H4 p  \( S
想了解更多,请下载原文阅读
1 d& D- S9 {& W. m. A% ?8 B* ~/ Y
收藏 评论3 发布时间:2019-4-12 09:55

举报

3个回答
shensc 回答时间:2019-4-12 16:04:24
谢谢楼主分享~!
单片机爱好者 回答时间:2019-5-26 23:17:31
支持~~~~~~~~~~~~~~
Ian-392967 回答时间:2019-6-24 19:30:17
谢谢楼主分享~!
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版