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

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

[复制链接]
STMCU-管管 发布时间:2019-4-12 09:55
在高容量 STM32F103xx 微控制器中实现 ADPCM 算法
! V( i5 ?- e) O; B/ z
; s4 \, }, s6 q9 v. ?2 K* Z前言
+ N2 J0 I, N) T3 {. V; k" ]2 I1 Z  B, P, L& h+ C/ o
本应用笔记描述了 ADPCM 音频固件编解码器,并提供了演示固件来说明如何在使用STM32F103xxI2S 时,利用外部的 DAC 来播放 ADPCM 文件。
/ J" M  I8 B5 R3 ?5 T
, p' N& j5 p3 K. y1 I4 k8 Z. o& {
本应用笔记基于 “AN2739:如何利用具有外部 I2S 音频编解码器的高容量 STM32F103xx 微控制器播放音频文件 ”。由于关于 SPI、I2S 和外部 DAC 的部分在 AN2739 中已有说明,此处不再赘述。因此,为了能充分理解本应用笔记,建议您参考 AN2739。
, F3 }: C+ O8 {# d3 U

1 n; _; t$ g! R5 r! t1 ADPCM 算法
0 G7 P; W+ D  L8 K8 F* q2 [  U$ M  @8 }  |# P: E3 `- u
1.1 概述' O# _" u9 }. U1 U& @, U" j

' b' X' a# s+ [' D自适应差分脉冲编码调制 , 或简称为 ADPCM, 是波形编码的音频算法 , 它通过以前的信号值预测当前的信号值 , 并且仅发送真实值和预测值的差值。 ' D& p0 N. U' O) z. d( e

1 a; e8 t- n2 f/ T/ e1 m5 C- F在普通的脉冲编码调制 (PCM)中,发送的是真实或实际信号值。 # w8 X* k2 @  C4 n( z5 s

* Q' N0 J5 `& C- f; O( `ADPCM 的优势在于通常预测信号值和真实信号值的差值相当小,这意味着与相应的 PCM 值相比,它可以用更少的位数来表示。
: }1 p, n5 f8 p4 r
% L$ C+ }6 a1 x. B
根据需要的质量和压缩比,差分信号按照 4 (2 位)、 8 (3 位)、 16 (4 位)或 32 (5 位)水平量化。
3 u0 d) Y' v. ~! e' x" b  X, g% _+ c1 X3 ]
ADPCM 算法的实现方法有很多。它们在量化和预测模式上有所不同。 " D' h9 }' |, I: a; G1 e& F) I

- J8 C7 L: e& P5 }5 I$ o& h在本应用笔记中,我们提供了由交互式多媒体协会(IMA)开发的4位量化算法IMA ADPCM。
$ n2 O* q. Y  [2 l. Q( S
) U5 Z1 f. Q0 ?4 z选择 IMA ADPCM 有多种原因: % j3 T- D8 g6 L3 P9 w( W* I0 N: I) W
● 它可以应用于 8 kHz 到 44.10 kHz 之间的不同采样率
3 T9 _. J/ T# D- G- J; e! v● 它能在较低的 CPU 的使用率和较少的内存占用情况下保证音频的播放质量
( \8 }  P, c2 i1 K+ S: }● 它具有广泛的实现方式,例如在 Windows 和 Mac 操作系统中 , \) o: S+ c- y1 @4 R$ K

6 E, D/ Z# d% @0 E9 L2 |! NIMA 数字音频对焦和技术工作组公布的一份文件对 IMA ADPCM 算法进行了充分说明:“ 在多媒体系统中增强数字音频兼容性的建议措施 ” 版本 3。 * v+ F3 m* q" I+ y4 D5 @6 r

7 R7 W2 C% c3 f, e9 N1.2 ADPCM 算法实现
0 u( j4 h6 f% ]6 D4 G0 ?
/ R6 }: e) P2 R3 x本应用笔记提供的 IMA ADPCM 算法用于对具有下述规范的音频文件进行编码: ( n$ F1 ~. z' a8 @) N9 s
● 音频格式:PCM 0 j' p$ u' }" |  v# t6 Z
● 音频采样大小:16 位 7 o  v4 w" D& P2 Z8 I
● 通道 : 1 ( 单声道 ) ( h- ]$ U5 b1 l: N
● 音频采样率:8 kHz 到 44.1 kHz 4 `+ Q3 v* Y1 n
) ]. L, G/ y) T6 h5 f+ ^. b
每个 16 位 PCM 采样被编码为 4 位 ADPCM 采样,压缩比达到 1/4。
2 o$ ^6 q) Z0 O; ]- {
1 l, p) ~$ y$ ?$ Y7 X4 Z9 c
IMA ADPCM 算法实现包含两个函数,一个函数编码音频采样,另一个函数解码音频采样。 9 T  M: }: o  g+ ^$ P( b; }
; S5 R* Y' V5 w3 T# \2 w
ADPCM 固件由两个文件组成:
" F4 }/ s- h$ M3 d" Y0 Xa) adpcm.c:它包括执行编码和解码的两个 ADPCM 函数的源代码。
. ]8 @7 K* x) X3 Hb) adpcm.h:它是 adpmc.c 的头文件。它应该包含在调用 ADPCM 函数的文件中。3 K1 w4 J4 D4 f8 V
5 n/ a  G; ]  ~: v: y
..........
' s* E6 f$ w9 ~6 c
想了解更多,请下载原文阅读
( n# t5 w) Q0 f
赞 收藏 评论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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版