第1章 实时数字信号处理概述 1
1.1 实时DSP系统的基本组成 2
1.2 模拟接口 2
1.2.1 采样 3
1.2.2 量化和编码 6
1.2.3 平滑滤波器 7
1.2.4 数据转换器 7
1.3 DSP硬件 8
1.3.1 DSP硬件备选 9
1.3.2 数字信号处理器 11
1.3.3 定点和浮点处理器 12
1.3.4 实时约束 13
1.4 DSP系统设计 13
1.4.1 算法开发 14
1.4.2 DSP硬件的选择 15
1.4.3 软件开发 16
1.4.4 软件开发工具 17
1.5 实验和程序实例 18
1.5.1 CCS和eZdsp开始 18
1.5.2 C文件I/O函数 25
1.5.3 eZdsp的用户界面 27
1.5.4 采用eZdsp的音频回放 32
1.5.5 采用eZdsp的音频回送 35
习题 38
参考文献 39
第2章 DSP基础及实现要点 41
2.1 数字信号和系统 41
2.1.1 基本数字信号 41
2.1.2 数字系统的框图表示 43
2.2 系统概念 44
2.2.1 LTI系统 44
2.2.2 z变换 47
2.2.3 传递函数 48
2.2.4 极点和零点 51
2.2.5 频率响应 53
2.2.6 离散傅里叶变换 55
2.3 随机变量简介 57
2.3.1 随机变量的回顾 57
2.3.2 随机变量的运算 58
2.4 定点表示和量化效应 61
2.4.1 定点格式 61
2.4.2 量化误差 63
2.4.3 信号量化 63
2.4.4 系数量化 65
2.4.5 舍入噪声 65
2.4.6 定点工具箱 66
2.5 溢出及解决方案 67
2.5.1 饱和运算 68
2.5.2 溢出处理 68
2.5.3 信号缩放 69
2.5.4 保护位 69
2.6 实验和程序实例 69
2.6.1 溢出和饱和运算 69
2.6.2 函数逼近 72
2.6.3 采用eZdsp的实时信号产生 80
习题 85
参考文献 87
第3章 FIR滤波器设计与实现 88
3.1 FIR滤波器简介 88
3.1.1 滤波器特性 88
3.1.2 滤波器类型 90
3.1.3 滤波器规范 92
3.1.4 线性相位FIR滤波器 93
3.1.5 FIR滤波器的实现 95
3.2 FIR滤波器设计 97
3.2.1 傅里叶级数方法 97
3.2.2 吉布斯现象 99
3.2.3 窗函数 101
3.2.4 采用MATLAB的FIR滤波器设计 103
3.2.5 采用FDATool的FIR滤波器设计 104
3.3 实现考虑 107
3.3.1 FIR滤波器中量化效应 107
3.3.2 MATLAB实现 108
3.3.3 浮点C实现 109
3.3.4 定点C实现 110
3.4 应用:插值和抽取滤波器 111
3.4.1 插值 111
3.4.2 抽取 112
3.4.3 采样率转换 114
3.4.4 MATLAB实现 115
3.5 实验和程序实例 116
3.5.1 采用定点C的FIR滤波 116
3.5.2 采用C55xx汇编程序的FIR滤波 117
3.5.3 采用C55xx汇编程序的对称FIR滤波 118
3.5.4 采用Dual-MAC结构的优化 119
3.5.5 实时FIR滤波 120
3.5.6 采用C和汇编程序的抽取 121
3.5.7 采用定点C的插值 122
3.5.8 采样率转换 123
3.5.9 实时采样率转换 124
习题 125
参考文献 127
第4章 IIR滤波器设计与实现 128
4.1 简介 128
4.1.1 模拟系统 128
4.1.2 映射属性 130
4.1.3 模拟滤波器的特性 130
4.1.4 频率变换 132
4.2 IIR滤波器的设计 133
4.2.1 双线性变换 133
4.2.2 采用双线性变换的滤波器设计 134
4.3 IIR滤波器的实现 135
4.3.1 直接型 135
4.3.2 级联实现 137
4.3.3 并行实现 138
4.3.4 采用MATLAB的IIR滤波器实现 139
4.4 采用MATLAB的IIR滤波器设计 140
4.4.1 采用MATLAB的滤波器设计 140
4.4.2 采用MATLAB的频率转换 141
4.4.3 采用FDATool的滤波器设计与实现 142
4.5 实现考虑 144
4.5.1 稳定性 144
4.5.2 有限精度效应和解决方案 145
4.5.3 IIR滤波器的MATLAB实现 146
4.6 实际应用 148
4.6.1 递归谐振器 148
4.6.2 递归正交振荡器 151
4.6.3 参数均衡器 152
4.7 实验和程序实例 152
4.7.1 采用浮点C的直接Ⅰ型IIR滤波器 152
4.7.2 采用定点C的直接Ⅰ型IIR滤波器 154
4.7.3 采用定点C的级联IIR滤波器 155
4.7.4 采用内在函数的级联IIR滤波器 158
4.7.5 采用汇编程序的级联IIR滤波器 161
4.7.6 实时IIR滤波 162
4.7.7 采用定点C的参数均衡器 162
4.7.8 实时参数均衡器 163
习题 164
参考文献 166
第5章 频率分析和离散傅里叶变换 168
5.1 傅里叶级数和傅里叶变换 168
5.1.1 傅里叶级数 168
5.1.2 傅里叶变换 169
5.2 离散傅里叶变换 170
5.2.1 离散时间傅里叶变换 170
5.2.2 离散傅里叶变换方法 171
5.2.3 重要性质 173
5.3 快速傅里叶变换 176
5.3.1 时域抽取 176
5.3.2 频域抽取 178
5.3.3 快速傅里叶逆变换 178
5.4 实现考虑 179
5.4.1 计算的问题 179
5.4.2 有限精度效应 179
5.4.3 MATLAB实现 180
5.4.4 采用MATLAB的定点实现 181
5.5 实际应用 182
5.5.1 频谱分析 182
5.5.2 频谱泄露和分辨率 183
5.5.3 功率谱密度 186
5.5.4 卷积 188
5.6 实验和程序实例 190
5.6.1 采用浮点C的DFT 190
5.6.2 采用C55xx汇编程序的DFT 192
5.6.3 采用浮点C的FFT 193
5.6.4 采用具有内在函数定点C的FFT 195
5.6.5 FFT和IFFT的实验 197
5.6.6 采用C55xx硬件加速器的FFT 198
5.6.7 采用C55xx硬件加速器的实时FFT 199
5.6.8 采用重叠-相加技术的快速卷积 200
5.6.9 实时快速卷积 201
习题 202
参考文献 204
第6章 自适应滤波 205
6.1 随机过程简介 205
6.2 自适应滤波器 208
6.2.1 自适应滤波简介 208
6.2.2 性能函数 209
6.2.3 最速下降法 212
6.2.4 LMS算法 213
6.2.5 改进LMS算法 214
6.3 性能分析 215
6.3.1 稳定性约束 215
6.3.2 收敛速度 215
6.3.3 过量均方误差 216
6.3.4 归一化LMS算法 217
6.4 实现考虑 217
6.4.1 计算的问题 217
6.4.2 有限精度效应 218
6.4.3 MATLAB实现 219
6.5 实际应用 221
6.5.1 自适应系统识别 221
6.5.2 自适应预测 223
6.5.3 自适应噪声消除 225
6.5.4 自适应反演建模 227
6.6 实验和程序实例 228
6.6.1 采用浮点C的LMS算法 228
6.6.2 采用定点C的Leaky LMS算法 230
6.6.3 采用定点C和内在函数的归一化LMS算法 230
6.6.4 采用汇编程序的延迟LMS算法 234
6.6.5 自适应系统识别的实验 234
6.6.6 自适应预测器的实验 236
6.6.7 自适应信道均衡器的实验 237
6.6.8 采用eZdsp的实时自适应预测 238
习题 239
参考文献 241
第7章 数字信号产生和检测 243
7.1 正弦波产生器 243
7.1.1 查找表法 243
7.1.2 线性调频信号 245
7.2 噪声产生器 247
7.2.1 线性同余序列 247
7.2.2 伪随机二进制序列产生器 248
7.2.3 白色、彩色和高斯噪声 248
7.3 DTMF产生和检测 249
7.3.1 DTMF产生器 249
7.3.2 DTMF检测 250
7.4 实验和程序实例 254
7.4.1 采用查找表的正弦波产生器 254
7.4.2 采用查找表的警笛产生器 255
7.4.3 DTMF产生器 256
7.4.4 采用定点C的DTMF检测 257
7.4.5 采用汇编程序的DTMF检测 258
习题 258
参考文献 259
第8章 自适应回波消除 260
8.1 线路回波简介 260
8.2 自适应线路回波消除器 261
8.2.1 自适应回波消除的原理 261
8.2.2 性能评估 263
8.3 实际考虑 263
8.3.1 信号的预白化 263
8.3.2 延迟估计 264
8.4 双重通话效应及解决方案 266
8.5 非线性处理器 267
8.5.1 中心削波器 267
8.5.2 舒适噪声 268
8.6 自适应回声消除 268
8.6.1 回声 269
8.6.2 回声消除器 270
8.6.3 子带实现 270
8.6.4 无延迟结构 273
8.6.5 回声消除和降噪的集成 274
8.6.6 实现考虑 274
8.7 实验和程序实例 274
8.7.1 采用浮点C的回声消除器 274
8.7.2 采用具有内在函数的定点C的回声消除器 276
8.7.3 AEC和降噪的集成 278
习题 279
参考文献 280
第9章 语音信号处理 281
9.1 语音编码技术 281
9.1.1 采用LPC的语音生成模型 282
9.1.2 CELP编码 283
9.1.3 合成滤波器 284
9.1.4 激励信号 287
9.1.5 基于感知的最小化程序 289
9.1.6 语音活动检测 290
9.1.7 ACELP编解码器 291
9.2 语音增强 297
9.2.1 噪音抑制技术 297
9.2.2 短时频谱估计 298
9.2.3 幅度谱减 299
9.3 VoIP应用 301
9.3.1 VoIP概述 301
9.3.2 不连续传输 303
9.3.3 数据包丢失隐藏 304
9.3.4 媒体流的质量因素 305
9.4 实验和程序实例 305
9.4.1 采用具有内在函数的定点C的LPC滤波器 305
9.4.2 采用具有内在函数的定点C的感知加权滤波器 309
9.4.3 采用浮点C实现的VAD 311
9.4.4 采用定点C实现的VAD 313
9.4.5 采用不连续传输的语音编码 313
9.4.6 含有CNG的语音解码器 315
9.4.7 采用浮点C的频谱减算法 316
9.4.8 定点C实现的G722.2 317
9.4.9 定点C实现G.711压扩 318
9.4.10 实时G.711音频回送 319
习题 320
参考文献 321
第10章 音频信号处理 323
10.1 简介 323
10.2 音频编码 324
10.2.1 编码基本原理 324
10.2.2 频域编码 327
10.2.3 无损音频编码 329
10.2.4 MP3编码概述 330
10.3 音频均衡器 332
10.3.1 图形均衡器 332
10.3.2 参数均衡器 334
10.4 音频效果 339
10.4.1 混响 339
10.4.2 时间扩展和变调 340
10.4.3 声音调制和混声 343
10.4.4 空间声音 348
10.5 实验和程序实例 350
10.5.1 使用C语言实现浮点MDCT 350
10.5.2 使用C和内在函数实现定点MDCT 353
10.5.3 预回声效应 355
10.5.4 浮点C的MP3解码 357
10.5.5 使用eZdsp的实时参数均衡器 359
10.5.6 镶边效果 360
10.5.7 使用eZdsp的实时镶边效果 361
10.5.8 颤音效果 362
10.5.9 使用eZdsp的实时颤音效果 362
10.5.10 空间声音效果 363
10.5.11 用eZdsp的实时空间效果 364
习题 364
参考文献 365
第11章 数字图像处理初步 367
11.1 数字图像与系统 367
11.1.1 数字图像 367
11.1.2 数字图像系统 368
11.2 色彩空间 368
11.3 YCbCr下采样色彩空间 369
11.4 色彩平衡和校正技术 370
11.4.1 色彩平衡 371
11.4.2 颜色校正 371
11.4.3 Gamma校正 372
11.5 直方图均衡 373
11.6 图像滤波 376
11.7 快速卷积 381
11.8 实际应用 385
11.8.1 DCT与JPEG 385
11.8.2 二维DCT变换 385
11.8.3 指纹 387
11.8.4 离散小波变换 389
11.9 实验和程序实例 392
11.9.1 YCbCr到RGB转换 393
11.9.2 白平衡 394
11.9.3 Gamma校正和对比度调节 396
11.9.4 图像滤波 397
11.9.5 DCT和IDCT 398
11.9.6 指纹图像处理 399
11.9.7 二维小波变换 400
习题 403
参考文献 404
附录A 常用公式及定义 405
A.1 三角恒等式 405
A.2 等比级数 406
A.3 复变量 406
A.4 功率单位 408
参考文献 409
附录B 软件组织和实验列表 410
附录C TMS320C55xx DSP简介 415
C.1 引言 415
C.2 TMS320C55xx体系结构 415
C.2.1 体系结构概述 415
C.2.2 片上存储 418
C.2.3 存储器映射寄存器 420
C.2.4 中断和中断向量 421
C.3 TMS320C55xx寻址模式 424
C.3.1 直接寻址模式 424
C.3.2 间接寻址模式 426
C.3.3 绝对寻址模式 428
C.3.4 MMR寻址模式 428
C.3.5 寄存器位的寻址模式 429
C.3.6 循环寻址模式 429
C.4 TMS320C55xx汇编语言编程 430
C.4.1 算术指令 430
C.4.2 逻辑和位操作指令 431
C.4.3 转移指令 432
C.4.4 程序流控制指令 432
C.4.5 并行执行 436
C.4.6 汇编指示 438
C.4.7 汇编声明语法 439
C.5 TMS320C55xx的C语言编程 441
C.5.1 数据类型 441
C.5.2 通过C编译器的汇编代码生成 442
C.5.3 编译器关键词及编译指令 446
C.6 混合C和汇编的编程 447
C.7 实验和程序实例 450
C.7.1 实例 450
C.7.2 汇编程序 451
C.7.3 乘法 451
C.7.4 循环 452
C.7.5 模运算 452
C.7.6 使用C语言与汇编语言的混合程序 454
C.7.7 AIC3204的使用 454
C.7.8 模拟输入和输出 455
参考文献 456