本书介绍了实时DSP基础原理,并且使用实际操作的方法介绍了DSP算法、系统设计、实时实现考虑以及很多实际应用。本书包含很多有用的实例,诸如实际操作的实验软件和使用MATLAB、Simulink、C及DSP汇编语言的程序。书中也包含用于进一步探索实例和实验的各种练习。本书使用德州仪器的代码集成开发环境和用于实时实验与应用的频谱数字TMS320VC5510DSP启动工具包(DSK),可作为高年级和研究生的教材,也可供DSP工程师、算法开发者及嵌入式系统程序员参考。
1实时数字信号处理导论
1.1实时DSP系统的基本要素
1.2模拟接口
1.2.1采样
1.2.2量化和编码
1.2.3平滑滤波器
1.2.4数据转换器
1.3DSP硬件
1.3.1DSP硬件选择
1.3.2DSP处理器
1.3.3定点与浮点处理器
1.3.4实时约束
1.4DSP系统设计
1.4.1算法开发
1.4.2DSP处理器的选择
1.4.3软件开发
1.4.4高级软件开发工具
1.5DSP开发工具介绍
1.5.1C编译器
1.5.2汇编器
1.5.3链接器
1.5.4其他开发工具
1.6实验与程序示例
1.6.1使用CCS和DSK的实验
1.6.2使用CCS和DSK调试程序
1.6.3使用探点的文件I/O
1.6.4使用C文件系统功能的文件I/O
1.6.5使用分析器进行代码效率分析
1.6.6使用DSK的实时实验
1.6.7采样定理
1.6.8ADC中的量化
参考文献
练习题
2TMS320C55x 数字信号处理器导论
2.1处理器家族简介
2.2TMS320C55x体系结构
2.2.1体系结构概述
2.2.2总线
2.2.3片上存储器
2.2.4内存映射寄存器
2.2.5中断和中断向量
2.3TMS320C55x 外围电路
2.3.1外部存储器接口
2.3.2直接存储器存取
2.3.3增强主机接口
2.3.4多通道缓冲器串行口
2.3.5时钟产生器和定时器
2.3.6通用I/O口
2.4TMS320C550x的寻址方式
2.4.1直接寻址方式
2.4.2间接寻址方式
2.4.3绝对寻址方式
2.4.4内存映射寄存器寻址方式
2.4.5寄存器位寻址方式
2.4.6循环寻址方式
2.5流水线和并行处理
2.5.1TMS320C55x的流水线
2.5.2并行执行
2.6TMS320C55x指令集
2.6.1算术指令
2.6.2逻辑和位操作指令
2.6.3移动指令
2.6.4程序流程控制指令
2.7TMS320C55x汇编语言编程
2.7.1汇编伪指令
2.7.2汇编声明语法
2.8TMS320C55x的C语言编程
2.8.1数据类型
2.8.2C编译器生成的汇编代码
2.8.3编译器关键字和程序伪指令
2.9C语言和汇编语言混合编程
2.10实验和程序示例
2.10.1C与汇编代码接口
2.10.2汇编编程的地址模式
2.10.3锁相环和定时器
2.10.4SDRAME的EMIF配置
2.10.5Flash储存设备编程
2.10.6使用McBSP
2.10.7AIC23配置
2.10.8直接内存访问
参考文献
练习题
3DSP基础及应用要点
3.1数字信号和系统
3.1.1基本的数字信号
3.1.2数字系统的模块化框图表示
3.2系统概念
3.2.1线性时不变系统
3.2.2z变换
3.2.3传输函数
3.2.4极点与零点
3.2.5频率响应
3.2.6离散傅里叶变换
3.3随机变量简介
3.3.1随机变量概述
3.3.2随机变量的计算
3.4定点化介绍与量化效应
3.4.1定点格式
3.4.2量化误差
3.4.3信号量化
3.4.4系数量化
3.4.5截断噪声
3.4.6定点化工具箱
3.5溢出及解决方法
3.5.1饱和算法
3.5.2溢出处理
3.5.3信号缩放
3.5.4预留位
3.6实验和程序示例
3.6.1正弦信号的量化
3.6.2语音信号量化
3.6.3系数量化
3.6.4溢出与饱和算法
3.6.5函数逼近
3.6.6使用DSK产生实时数字信号
参考文献
练习题
4FIR滤波器的设计与实现
4.1FIR滤波器的介绍
4.1.1滤波器的特性
4.1.2滤波器类型
4.1.3滤波器特性
4.1.4线性相位FIR滤波器
4.1.5FIR滤波器实现
4.2FIR滤波器设计
4.2.1傅里叶序列方法
4.2.2吉伯斯现象
4.2.3窗函数
4.2.4用MATLAB设计FIR滤波器
4.2.5用FDA工具设计FIR滤波器
4.3执行需要考虑的问题
4.3.1FIR滤波器的量化效应
4.3.2执行MATLAB
4.3.3浮点数C的执行
4.3.4定点C的执行
4.4应用: 内插和抽取滤波器
4.4.1内插
4.4.2抽取
4.4.3采样率变换
4.4.4MATLAB应用
4.5实验和程序示例
4.5.1利用定点C的FIR滤波器的应用
4.5.2利用C55x汇编语言实现FIR滤波器
4.5.3优化对称FIR滤波器
4.5.4利用双MAC结构进行优化
4.5.5抽取的实现
4.5.6内插实现
4.5.7采样率变换
4.5.8用DSP/BIOS 和DSK实现实时采样率变换
参考文献
练习题
5无限长单位冲激响应(IIR)滤波器的设计和实现
5.1引言
5.1.1模拟系统
5.1.2映射性质
5.1.3模拟滤波器的特性
5.1.4频率转换
5.2IIR滤波器的设计
5.2.1双线性变换
5.2.2双线性变换设计数字滤波器
5.3IIR滤波器的实现
5.3.1直接型
5.3.2级联型
5.3.3并联形式
5.3.4用MATLAB实现IIR滤波器
5.4用MATLAB设计IIR滤波器
5.4.1用MATLAB设计滤波器
5.4.2用MATLAB进行频率转换
5.4.3用FDAtool设计和实现滤波器
5.5实现考虑
5.5.1稳定性
5.5.2有限精度效应和解决办法
5.5.3MATLAB实现
5.6实际应用
5.6.1循环振荡器
5.6.2递归正交振荡器
5.6.3参数均衡器
5.7实验和程序示例
5.7.1浮点直接Ⅰ型IIR滤波器
5.7.2定点直接Ⅰ型滤波器
5.7.3定点直接Ⅱ型级联IIR滤波器
5.7.4用DSP intrinsics 实现
5.7.5用汇编语言实现
5.7.6用DSP/BIOS实时实验
5.7.7参数均衡器的实现
5.7.8用DSP/BIOS的实时双带均衡器
参考文献
练习题
6频谱分析和快速傅里叶变换
6.1傅里叶序列和转化
6.1.1傅里叶序列
6.1.2傅里叶变换
6.2离散傅里叶变换
6.2.1离散时间傅里叶变换
6.2.2离散傅里叶变换
6.2.3重要性质
6.3快速傅里叶变换
6.3.1时间抽取
6.3.2频率抽取
6.3.3快速傅里叶逆变换
6.4实现考虑
6.4.1计算问题
6.4.2有限精度效应
6.4.3MATLAB 实现
6.4.4用MATLAB实现定点FFT
[1]
6.5实际应用
6.5.1频谱分析
6.5.2频谱泄漏和精度
6.5.3功率谱密度
6.5.4快速卷积
6.6实验和程序实例
6.6.1DFT的浮点C实现
6.6.2DFT的C55x汇编实现
6.6.3FFT的浮点C实现
6.6.4FFT的C55x实现
6.6.5FFT和IFFT的汇编实现
6.6.6快速卷积实现
6.6.7用DSP/BIOS实现的实时FFT
6.6.8实时快速卷积
参考文献
练习题
7自适应滤波
7.1随机过程简介
7.2自适应滤波器
7.2.1自适应滤波器简介
7.2.2代价函数
7.2.3最陡下降法
7.2.4LMS算法
7.2.5改进的LMS算法
7.3性能分析
7.3.1稳定性约束条件
7.3.2收敛速度
7.3.3额外均方误差
7.3.4归一化LMS算法
7.4移植注意事项
7.4.1计算量问题
7.4.2有限字长效应
7.4.3MATLAB实现
7.5应用
7.5.1自适应系统辨识
7.5.2自适应线性预测
7.5.3自适应噪声消除
7.5.4自适应陷波滤波器
7.5.5自适应信道均衡
7.6实验与程序实例
7.6.1浮点C实现
7.6.2泄露LMS算法的定点C实现
7.6.3归一化LMS算法的ETSI实现
7.6.4汇编语言实现延时LMS算法
7.6.5自适应系统辨识
7.6.6自适应预测和噪声消除
7.6.7自适应信道均衡器
7.6.8基于DSK的实时自适应谱线增强器
参考文献
练习题
8数字信号发生器
8.1正弦波发生器
8.1.1查找表方法
8.1.2线性调频脉冲信号
8.2噪声发生器
8.2.1线性同余序列生成器
8.2.2伪随机二进制序列发生器
8.3实际应用
8.3.1警报发生器
8.3.2高斯白噪声
8.3.3双音多频音频发生器
8.3.4舒适噪声语音通信系统
8.4实验和工程例子
8.4.1使用C5510 DSK的正弦波发生器
8.4.2使用C5510 DSK的白噪声发生器
8.4.3使用C5510 DSK哀号型警报发生器
8.4.4使用C5510 DSK的DTMF发生器 [1]
8.4.5使用MATLAB图形用户界面的DTMF发生器
参考文献
练习题
9双音多频检测
9.1引言
9.2DTMF音频检测
9.2.1DTMF解码指标
9.2.2Goertzel算法
9.2.3其他DTMF检测方法
9.2.4实现考虑
9.3网络应用问题与解决方案
9.4实验与项目举例
9.4.1Goertzel算法的定点C实现
9.4.2Goertzel算法的C55x汇编语言实现
9.4.3利用C5510 DSK的DTMF检测
9.4.4应用全极点建模进行DTMF检测
参考文献
练习题
10自适应回声消除
10.1线路回声简介
10.2自适应回声消除器
10.2.1自适应回声消除的原理
10.2.2性能评价
10.3实际考虑
10.3.1信号预白化
10.3.2延迟检测
10.4双端检测影响与解决方法
10.5非线性处理器
10.5.1中心削波
10.5.2舒适噪声
10.6声学回声消除
10.6.1声学回声
10.6.2声学回声消除器
10.6.3子带实现
10.6.4无延迟结构
10.6.5实现考虑
10.6.6测试标准
10.7实验和程序实例
10.7.1AEC的MATLAB实现
10.7.2浮点C声学回声消除
10.7.3C55x Intrinsics上的声学回声消除器
10.7.4延迟估计实验
参考文献
练习题
11语音编码技术
11.1语音编码介绍
11.2码激励线性预测(CELP)声码器概述
11.2.1合成滤波器
11.2.2长时预测滤波器
11.2.3基于感知的最小过程
11.2.4激励信号
11.2.5代数CELP
11.3常用CODEC概述
11.3.1G.723.1概述
11.3.2G.729概述
11.3.3GSM AMR概述
11.4因特网协议声音运用
11.4.1VoIP概述
11.4.2实时传输协议和有效负荷类型
11.4.3举例: 包装G.729
11.4.4用Ethereal轨迹分析RTP数据
11.4.5影响声音质量的因素
11.5实验和程序例子
11.5.1用浮点C程序计算LPC系数
11.5.2用C55x关联函数计算LPC系数
11.5.3共振峰感知加权滤波器的MATLAB执行
11.5.4用C55x 关联函数执行感知加权滤波器
参考文献
练习题
12语音增强技术
12.1噪声抑制技术简介
12.2谱减技术
12.2.1短时谱估计
12.2.2幅度相减
12.3语音断点检测
12.4实际应用情况
12.4.1谱平均
12.4.2半波校正
12.4.3剩余噪声消除
12.5回声消除和噪声抑制的结合
12.6声音增强与自动电平控制
12.6.1声音增强装置
12.6.2自动电平控制
12.7实验和程序举例
12.7.1语音端点检测 [1]
12.7.2NR算法的MATLAB实现
12.7.3NR的浮点C实现
12.7.4在C55x上VAD的汇编实现
12.7.5AEC与NR的结合
参考文献
练习题
13音频信号处理
13.1引言
13.2音频编码的基本原理
13.2.1用于感知编码的人耳听觉掩蔽效应
13.2.2频域编码
13.2.3无损音频编码
13.3多声道音频编码
13.3.1MP3
13.3.2杜比 AC3
13.3.3MPEG2 AAC
13.4连通性处理
13.5实验和程序例子
13.5.1MDCT浮点的实现
13.5.2用C55x Intrinsics实现MDCT
13.5.3预回声效应实验
13.5.4浮点C语言实现MP3解码过程
参考文献
练习题
14信道编码技术
14.1引言
14.2分组码
14.2.1ReedSolomon编码
14.2.2ReedSolomon码的应用
14.2.3循环冗余码
14.3卷积码
14.3.1卷积码编码器
14.3.2Viterbi解码器
14.3.3Viterbi解码的应用
14.4实验和程序例子
14.4.1用MATLAB实现ReedSolomen编码
14.4.2ReedSolomon 编码仿真
14.4.3RS(255,239)生成多项式的验证
14.4.4卷积码
14.4.5使用C程序实现卷积码
14.4.6实现CRC32
参考文献
练习题
15数字图像处理导论
15.1数字图像和系统
15.1.1数字图像
15.1.2数字图像系统
15.2RGB颜色空间和彩色滤波数组插值
15.3颜色空间
15.3.1YCbCr和YUV颜色空间
15.3.2CYMK 颜色空间
15.3.3YIQ颜色空间
15.3.4HSV颜色空间
15.4YCbCr子采样颜色空间
15.5色彩平衡和校正
15.5.1色彩平衡
15.5.2颜色调整
15.5.3伽玛校正
15.6图像直方图
15.7图像滤波
15.8用快速卷积进行图像滤波
15.9实际应用
15.9.1JPEG标准
15.9.2二维离散余弦变换
15.10实验和程序实例
15.10.1YCbCr到RGB转换
15.10.2用CCS连接DSK和仿真器
15.10.3白平衡
15.10.4伽玛校正和对比度调整
15.10.5直方图和直方图均衡化
15.10.6二维图像滤波
15.10.7DCT和IDCT的实现
15.10.8用以DCT和IDCT的TMS320C55x图像处理加速器
15.10.9TMS320C55x 硬件加速器图像/视频处理库
参考文献
练习题
附录A一些有用的公式和定义
A.1三角恒等式
A.2几何级数
A.3复数变量
A.4功率单位
参考文献
附录B软件组织结构和实验清单