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

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

[复制链接]
STMCU-管管 发布时间:2019-4-12 09:55
在高容量 STM32F103xx 微控制器中实现 ADPCM 算法$ B& X- q4 I! z. @. C& h0 K2 J- G

# K( `; r9 }% A6 Z: H5 s前言
+ C5 u8 ^) ]- p/ W# J
& z, S% S8 [& [9 |: s本应用笔记描述了 ADPCM 音频固件编解码器,并提供了演示固件来说明如何在使用STM32F103xxI2S 时,利用外部的 DAC 来播放 ADPCM 文件。 0 ~8 G/ K; R; f6 ^
# i* `. e) t8 n, l% E2 K8 ]
本应用笔记基于 “AN2739:如何利用具有外部 I2S 音频编解码器的高容量 STM32F103xx 微控制器播放音频文件 ”。由于关于 SPI、I2S 和外部 DAC 的部分在 AN2739 中已有说明,此处不再赘述。因此,为了能充分理解本应用笔记,建议您参考 AN2739。
' x# z6 ?* M2 m0 A

! X( M1 k7 z% F! G) e1 ADPCM 算法 + ]/ w2 h  E4 Q. Y/ T

8 Y$ |4 S" b" T1.1 概述
& f/ ~: Y$ Z0 t$ a

; B! x* I5 R# T( }) W( k. U自适应差分脉冲编码调制 , 或简称为 ADPCM, 是波形编码的音频算法 , 它通过以前的信号值预测当前的信号值 , 并且仅发送真实值和预测值的差值。 : _3 ?! c- G; [$ @' \

6 z, @9 D0 s! ^- w在普通的脉冲编码调制 (PCM)中,发送的是真实或实际信号值。 , a6 a# v+ J- z* N9 g8 o: T
  C1 @" b7 P* {1 H. p, Y- N
ADPCM 的优势在于通常预测信号值和真实信号值的差值相当小,这意味着与相应的 PCM 值相比,它可以用更少的位数来表示。
! f7 j; n# U  e" E6 w' ^

- w& w' w* S( t6 ~3 t; j# {: q根据需要的质量和压缩比,差分信号按照 4 (2 位)、 8 (3 位)、 16 (4 位)或 32 (5 位)水平量化。 6 V% C: U3 J+ Z0 G7 Z! u

' X7 o% M# V# ^( m, h: o* ?ADPCM 算法的实现方法有很多。它们在量化和预测模式上有所不同。
/ ]0 V3 M: O3 Z- L9 z& T; D' U$ c4 h" ^) F! m
在本应用笔记中,我们提供了由交互式多媒体协会(IMA)开发的4位量化算法IMA ADPCM。 ' w  v' E( m' }+ {, I
, H4 \; s9 h( D1 v
选择 IMA ADPCM 有多种原因: 5 v+ g0 [9 K; a$ f- B' j. {5 w
● 它可以应用于 8 kHz 到 44.10 kHz 之间的不同采样率
: ~/ m# u+ W9 j% ^' w! c) d" h● 它能在较低的 CPU 的使用率和较少的内存占用情况下保证音频的播放质量 * Y8 a* l2 B! C/ J) e* w. k0 U6 z
● 它具有广泛的实现方式,例如在 Windows 和 Mac 操作系统中 9 y' b$ f  L" b8 d9 F' _

6 o$ j) c1 T. h' c/ vIMA 数字音频对焦和技术工作组公布的一份文件对 IMA ADPCM 算法进行了充分说明:“ 在多媒体系统中增强数字音频兼容性的建议措施 ” 版本 3。 ) W3 y& u; u) ~
% ~& p* W9 L$ h1 C
1.2 ADPCM 算法实现 ' }  V, i/ Z7 O2 s/ t

& O& W, z$ Y+ `本应用笔记提供的 IMA ADPCM 算法用于对具有下述规范的音频文件进行编码: * r, ~7 B' g7 `; y1 k3 q3 Z
● 音频格式:PCM & |) }" Q6 O0 w' z2 D
● 音频采样大小:16 位 - k1 S6 l  h2 S) Y3 T
● 通道 : 1 ( 单声道 ) 5 d1 y! Z  Z7 Z, W. M& i! T# \9 U6 @7 {
● 音频采样率:8 kHz 到 44.1 kHz
- T, L& \& |5 h+ C/ @

) K: M3 M. X, z, g3 q每个 16 位 PCM 采样被编码为 4 位 ADPCM 采样,压缩比达到 1/4。 + J& T5 C5 ^( \2 B- \$ ?* U" N/ g

  u: w5 @# y4 g" K- b4 E7 r! FIMA ADPCM 算法实现包含两个函数,一个函数编码音频采样,另一个函数解码音频采样。 * ^  a" ]7 t. w0 L

4 I) V/ c4 l9 A, `ADPCM 固件由两个文件组成:
8 v% K5 u6 {' ba) adpcm.c:它包括执行编码和解码的两个 ADPCM 函数的源代码。 - g7 |0 l0 S, T4 L* D/ n# a/ T
b) adpcm.h:它是 adpmc.c 的头文件。它应该包含在调用 ADPCM 函数的文件中。8 z! P+ R! R1 S3 H
9 }& v/ l- h" E3 S% F% _, J
..........

# ?  g5 ]- j/ J, h: i/ N8 X+ b; g
想了解更多,请下载原文阅读

0 F( Z# H' W! w" [  q1 i* B
收藏 评论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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版