安
安
富
富
莱
莱
电
电
子
子
U
U
M
M
4
4
0
0
3
3
w
w
w
w
w
w
.
.
a
a
r
r
m
m
f
f
l
l
y
y
.
.
c
c
o
o
m
m
S
S
T
T
M
M
3
3
2
2
-
-
V
V
5
5
开
开
发
发
板
板
系
系
统
统
篇
篇
手
手
册
册
2
2
0
0
1
1
5
5
年
年
0
0
1
1
月
月
1
1
5
5
日
日
版
版
本
本
:
:
1
1
.
.
0
0
第
第
2
2
页
页
共
共
6
6
0
0
8
8
页
页
声
声
明
明
本
本
文
文
档
档
的
的
版
版
权
权
归
归
武
武
汉
汉
安
安
富
富
莱
莱
电
电
子
子
有
有
限
限
公
公
司
司
所
所
有
有
。
。
任
任
何
何
公
公
司
司
或
或
者
者
个
个
人
人
未
未
经
经
许
许
可
可
,
,
不
不
得
得
将
将
本
本
文
文
档
档
用
用
于
于
商
商
业
业
目
目
的
的
。
。
本
本
文
文
档
档
由
由
安
安
富
富
莱
莱
电
电
子
子
原
原
创
创
,
,
非
非
我
我
们
们
原
原
创
创
的
的
资
资
料
料
已
已
经
经
在
在
章
章
节
节
的
的
开
开
头
头
进
进
行
行
申
申
明
明
(
(
特
特
别
别
是
是
F
F
F
F
T
T
部
部
分
分
)
)
。
。
教
教
程
程
中
中
使
使
用
用
的
的
D
D
S
S
P
P
库
库
是
是
来
来
自
自
A
A
R
R
M
M
公
公
司
司
。
。
教
教
程
程
参
参
考
考
资
资
料
料
如
如
下
下
:
:
C
C
o
o
r
r
t
t
e
e
x
x
-
-
M
M
4
4
权
权
威
威
指
指
南
南
。
。
数
数
字
字
信
信
号
号
处
处
理
理
理
理
论
论
、
、
算
算
法
法
与
与
实
实
现
现
第
第
二
二
版
版
(
(
作
作
者
者
:
:
胡
胡
广
广
书
书
)
)
。
。
信
信
号
号
与
与
系
系
统
统
第
第
二
二
版
版
(
(
作
作
者
者
:
:
奥
奥
本
本
海
海
姆
姆
)
)
。
。
M
M
a
a
t
t
l
l
a
a
b
b
的
的
h
h
e
e
l
l
p
p
文
文
档
档
。
。
力
力
科
科
示
示
波
波
器
器
基
基
础
础
应
应
用
用
系
系
列
列
文
文
档
档
。
。
百
百
度
度
百
百
科
科
,
,
w
w
i
i
k
k
i
i
百
百
科
科
。
。
网
网
络
络
资
资
源
源
。
。
S
S
T
T
官
官
方
方
相
相
关
关
文
文
档
档
。
。
安
安
富
富
莱
莱
电
电
子
子
U
U
M
M
4
4
0
0
3
3
w
w
w
w
w
w
.
.
a
a
r
r
m
m
f
f
l
l
y
y
.
.
c
c
o
o
m
m
S
S
T
T
M
M
3
3
2
2
-
-
V
V
5
5
开
开
发
发
板
板
系
系
统
统
篇
篇
手
手
册
册
2
2
0
0
1
1
5
5
年
年
0
0
1
1
月
月
1
1
5
5
日
日
版
版
本
本
:
:
1
1
.
.
0
0
第
第
3
3
页
页
共
共
6
6
0
0
8
8
页
页
第
第
1
1
章
章
数
数
字
字
信
信
号
号
处
处
理
理
介
介
绍
绍
本期教程开始带领大家学习 DSP 教程,学习前首相要搞明白一个概念,DSP 有两层含义,一 个 是 DSP
芯片也就是 Digital Signal Processor,另一个是 Digital Signal Processing,也就是我们常说的数字信
号处理技术。本教程主要讲的是后者。
1.1 DSP 入门前背景知识
1.2 ARM 官方提供的 CMSIS-DSP 库
1.3 总结
1
1
.
.
1
1
D
D
S
S
P
P
入
入
门
门
前
前
背
背
景
景
知
知
识
识
特别说明:本节的背景知识写的时间距今有些早,但是讲解的非常好,建议初学 DSP 的一定要读一
下,同时感谢奉献这个背景知识的作者。有兴趣的可以查阅相关资料了解一下当前数字信号处理的前沿研
究。
数字信号处理(DigitalSignal Processing,简称 DSP)是一门涉及许多学科而又广泛应用于许多领
域的新兴学科。20 世纪 60 年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并
得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、
压缩、识别等处理,以得到符合人们需要的信号形式。
数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。数字信号处理在理
论上的发展推动了数字信号处理应用的发展。反过来,数字信号处理的应用又促进了数字信号处理理论的
提高。而数字信号处理的实现则是理论和应用之间的桥梁。
数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。例如,在数学领域,微积分、
概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通
信理论、故障诊断等也密切相关。近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字
信号处理密不可分。可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己
成为一系列新兴学科的理论基础。
1
1
.
.
1
1
.
.
1
1
数
数
字
字
信
信
号
号
处
处
理
理
的
的
实
实
现
现
方
方
法
法
一
一
般
般
有
有
以
以
下
下
几
几
种
种
1. 在通用的计算机(如 PC 机)上用软件(如 Fortran、C 语言)实现;
2. 在通用计算机系统中加上专用的加速处理机实现;
3. 用通用的单片机(如 MCS-51、96 系列等)实现,这种方法可用于一些不太复杂的数字信号处理,如
数字控制等;
安
安
富
富
莱
莱
电
电
子
子
U
U
M
M
4
4
0
0
3
3
w
w
w
w
w
w
.
.
a
a
r
r
m
m
f
f
l
l
y
y
.
.
c
c
o
o
m
m
S
S
T
T
M
M
3
3
2
2
-
-
V
V
5
5
开
开
发
发
板
板
系
系
统
统
篇
篇
手
手
册
册
2
2
0
0
1
1
5
5
年
年
0
0
1
1
月
月
1
1
5
5
日
日
版
版
本
本
:
:
1
1
.
.
0
0
第
第
4
4
页
页
共
共
6
6
0
0
8
8
页
页
4. 用通用的可编程 DSP 芯片实现。与单片机相比,DSP 芯片具有更加适合于数字信号处理的软件和硬件
资源,可用于 复杂的数字信号处理算法;
5. 用专用的 DSP 芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用 DSP 芯片很难实现,
例如专用于 FFT、数字滤波、卷积、相关等算法的 DSP 芯片,这种芯片将相应的信号处理算法在芯
片内部用硬件实现,无需进行编程。
在上述几种方法中,第 1 种方法的缺点是速度较慢,一般可用于 DSP 算法的模拟;第 2 种和第 5 种
方法专用性强,应用受到很大的限制,第 2 种方法也不便于系统的独立运行;第 3 种方法只适用于实现简
单的 DSP 算法;只有第 4 种方法才使数字信号处理的应用打开了新的局面。
虽然数字信号处理的理论发展迅速,但在 20 世纪 80 年代以前,由于实现方法的限制,数字信号处理
的理论还得不到广泛的应用。直到 20 世纪 70 年代末 80 年代初世界上第一片单片可编程 DSP 芯片的诞
生,才将理论研究结果广泛应用到低成本的实际系统中,并且推动了新的理论和应用领域的发展。可以毫
不夸张地说,DSP 芯片的诞生及发展对近 30 年来通信、计算机、控制等领域的技术发展起到十分重要的
作用。
1
1
.
.
1
1
.
.
2
2
输
输
入
入
信
信
号
号
的
的
形
形
式
式
在 DSP 系统中,输入信号可以有各种各样的形式。例如,它可以是麦克风输出的语音信号或是电话
线来的已调数据信号,可以是编码后在数字链路上传输或存储在计算机里的摄像机图像信号等。
输入信号首先进行带限滤波和抽样,然后进行 A/D(Analog toDigital)变换将信号变换成数字比特
流。根据奈奎斯特抽样定理,为保证信息不丢失,抽样频率至少必须是输入带限信号最高频率的 2 倍。
DSP 芯片的输入是 A/D 变换后得到的以抽样形式表示的数字信号,DSP 芯片对输入的数字信号进行
某种形式的处理,如进行一系列的乘累加操作(MAC)。数字处理是 DSP 的关键,这与其他系统(如电
话交换系统)有很大的不同,在交换系统中,处理器的作用是进行路由选择,它并不对输入数据进行修改。
因此虽然两者都是实时系统,但两者的实时约束条件却有很大的不同。最后,经过处理后的数字样值再经
D/A(Digital toAnalog)变换转换为模拟样值,之后再进行内插和平滑滤波就可得到连续的模拟波形。
必须指出的是,上面给出的 DSP 系统模型是一个典型模型,但并不是所有的 DSP 系统都必须具有模
型中的所有部件。如语音识别系统在输出端并不是连续的波形,而是识别结果,如数字、文字等;有些输
入信号本身就是数字信号(如 CD:Compact Disk),因此就不必进行模数变换了。
1
1
.
.
1
1
.
.
3
3
数
数
字
字
信
信
号
号
处
处
理
理
系
系
统
统
(1) 接口方便。DSP 系统与其他以现代数字技术为基础的系统或设备都是相互兼容的,与这样的系统
接口以实现某种功能要比模拟系统与这些系统接口要容易得多;
(2) 编程方便。DSP 系统中的可编程 DSP 芯片可使设计人员在开发过程中灵活方便地对软件进行修改
和升级;
(3) 稳定性好。DSP 系统以数字处理为基础,受环境温度以及噪声的影响较小,可靠性高;
(4) 精度高。16 位数字系统可以达到 10^(-5)的精度;
安
安
富
富
莱
莱
电
电
子
子
U
U
M
M
4
4
0
0
3
3
w
w
w
w
w
w
.
.
a
a
r
r
m
m
f
f
l
l
y
y
.
.
c
c
o
o
m
m
S
S
T
T
M
M
3
3
2
2
-
-
V
V
5
5
开
开
发
发
板
板
系
系
统
统
篇
篇
手
手
册
册
2
2
0
0
1
1
5
5
年
年
0
0
1
1
月
月
1
1
5
5
日
日
版
版
本
本
:
:
1
1
.
.
0
0
第
第
5
5
页
页
共
共
6
6
0
0
8
8
页
页
(5) 可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本不受影响,因此数
字系统便于测试、调试和大规模生产;
(6) 集成方便。DSP 系统中的数字部件有高度的规范性,便于大规模集成。
当然,数字信号处理也存在一定的缺点。例如,对于简单的信号处理任务,如与模拟交换线的电话接
口,若采用 DSP 则使成本增加。DSP 系统中的高速时钟可能带来高频干扰和电磁泄漏等问题,而且 DSP
系统消耗的功率也较大。此外,D SP 技术更新的速度快,数学知识要求多,开发和调试工具还不尽完善。
虽然 DSP 系统存在着一些缺点,但其突出的优点已经使之在通信、语音、图像、雷达、生物医学、工业
控制、仪器仪表等许多领域得到越来越广泛的应用。
1
1
.
.
1
1
.
.
4
4
D
D
S
S
P
P
系
系
统
统
的
的
设
设
计
计
方
方
法
法
总的来说,DSP 系统的设计还没有非常好的正规设计方法。
在设计 DSP 系统之前,首先必须根据应用系统的目标确定系统的性能指标、信号处理的要求,通常
可用数据流程图、数学_运算序列、正式的符号或自然语言来描述。
第二步是根据系统的要求进行高级语言的模拟。一般来说,为了实现系统的最终目标,需要对输入的
信号进行适当的处理,而处理方法的不同会导致不同的系统性能,要得到最佳的系统性能,就必须在这一
步确定最佳的处理方法,即数字信号处理的算法(Algorithm),因此这一步也称算法模拟阶段。例如,
语音压缩编码算法就是要在确定的压缩比条件下,获得最佳的合成语音。算法模拟所用的输入数据是实际
信号经采集而获得的,通常以计算机文件的形式存储为数据文件。如语音压缩编码算法模拟时所用的语音
信号就是实际采集而获得并存储为计算机文件形式的语音数据文件。有些算法模拟时所用的输入数据并不
一定要是实际采集的信号数据,只要能够验证算法的可行性,输入假设的数据也是可以的。
在完成第二步之后,接下来就可以设计实时 DSP 系统,实时 DSP 系统的设计包括硬件设计和软件设
计两个方面。硬件设计首先要根据系统运算量的大小、对运算精度的要求、系统成本限制以及体积、功耗
等要求选择合适的 DSP 芯片。然后设计 DSP 芯片的外围电路及其他电路。软件设计和编程主要根据系统
要求和所选的 DSP 芯片编写相应的 DSP 汇编程序,若系统运算量不大且有高级语言编译器支持,也可用
高级语言(如 C 语言)编程。由于现有的高级语言编译器的效率还比不上手工编写汇编语言的效率,因此
在实际应用系统中常常采用高级语言和汇编语言的混合编程方法,即在算法运算量大的地方,用手工编写
的方法编写汇编语言,而运算量不大的地方则采用高级语言。采用这种方法,既可缩短软件开发的周期,
提高程序的可读性和可移植性,又能满足系统实时运算的要求。
DSP 硬件和软件设计完成后,就需要进行硬件和软件的调试。软件的调试一般借助于 DSP 开发工具,
如软件模拟器、DSP 开发系统或仿真器等。调试 DSP 算法时一般采用比较实时结果与模拟结果的方法,
如果实时程序和模拟程序的输入相同,则两者的输出应该一致。应用系统的其他软件可以根据实际情况进
行调试。硬件调试一般采用硬件仿真器进行调试,如果没有相应的硬件仿真器,且硬件系统不是十分复杂,
也可以借助于一般的工具进行调试。
系统的软件和硬件分别调试完成后,就可以将软件脱离开发系统而直接在应用系统上运行。当然,DSP
系统的开发,特别是软件开发是一个需要反复进行的过程,虽然通过算法模拟基本上可以知道实时系统的