《实时数字信号处理 基于TMS320C6xDSK平台的Matlab到C》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:ThadB.Welch,CameronH.G.Wright,MichaelG.Morrow著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2011
  • ISBN:9787111338819
  • 页数:351 页
图书介绍:本书是有关实时数字信号处理的译作,主要介绍了基于数字信号理论的Matlab算法程序如何转换到实时数字信号处理平台上使用的C语言程序。

基础篇 2

第1章 导言和内容结构 2

1.1 为什么需要本书 2

1.1.1 另外一些关于数字信号处理的书籍 2

1.1.2 演示范例和DSP硬件 3

1.1.3 本书的理念 3

1.2 实时DSP 3

1.3 如何使用本书 4

1.3.1 转换到实时 7

1.3.2 各章的内容 7

1.3.3 硬件和软件的安装 8

1.3.4 阅读代码注意事项 8

1.4 开始学习 9

第2章 采样与重构 10

2.1 理论 10

2.1.1 选择采样频率 10

2.1.2 输入/输出问题:采样或帧 10

2.1.3 Talk-Through概念精讲 11

2.2 winDSK6示例 11

2.2.1 winDSK6的启动 11

2.2.2 Talk-Thru应用 11

2.3 Talk-Through使用窗口 14

2.4 Talk-Through使用Matlab和Windows 15

2.4.1 只使用Matlab的Talk-Through 18

2.4.2 使用Matlab的流程详解 20

2.5 使用C语言的DSK实现 21

2.6 接下来的挑战 22

第3章 FIR数字滤波器 24

3.1 理论 24

3.1.1 传统符号 24

3.1.2 FIR滤波器和IIR滤波器比较 25

3.1.3 计算滤波器的输出 25

3.2 winDSK6示例 27

3.2.1 图形均衡器应用 28

3.2.2 陷波滤波器应用 29

3.2.3 音效应用 31

3.3 Matlab应用 32

3.3.1 内建方法 32

3.3.2 生成自己的滤波器算法 36

3.4 使用C语言的DSK实现 38

3.4.1 使用C语言的平滑FIR滤波:第1部分 38

3.4.2 使用C语言的平滑FIR滤波:第2部分 40

3.4.3 环形缓冲FIR滤波 42

3.5 接下来的挑战 44

第4章 IIR数字滤波器 46

4.1 理论 46

4.2 winDSK6示例:陷波器的应用 49

4.3 Matlab应用 51

4.3.1 数字滤波器的设计和分析 51

4.3.2 IIR滤波器描述 57

4.3.3 框图 59

4.3.4 内建的方法 63

4.3.5 创建自己的滤波器算法 65

4.4 使用C语言的DSK实现 66

4.4.1 平滑(倒L形)IIR滤波器 66

4.5 接下来的挑战 68

第5章 周期信号产生 69

5.1 理论 69

5.1.1 在DSP中的周期信号 69

5.1.2 信号产生 70

5.2 winDSK6范例 78

5.2.1 任意波形 78

5.2.2 双音多频 79

5.3 Matlab应用 81

5.3.1 直接数字合成器方法 81

5.3.2 查表方法 82

5.4 使用C语言的DSK实现 83

5.4.1 直接数字合成方法 83

5.4.2 查表方法 84

5.4.3 带有表格创建程序的查表方法 86

5.4.4 数字式谐振器方法 87

5.5 接下来的挑战 89

第6章 基于DSP的帧结构 90

6.1 理论 90

6.1.1 基于采样数字信号处理的缺点 90

6.1.2 什么是帧结构 91

6.2 winDSK6范例 93

6.3 Matlab应用 94

6.4 C语言在DSK上的应用 94

6.4.1 三重缓冲存储器 95

6.4.2 基于帧的DSP例程 96

6.4.3 直接存储器存取应用 101

6.5 基于帧处理的总结 110

6.6 接下来的挑战 111

第7章 使用帧的数字滤波器 112

7.1 理论 112

7.2 winDSK6范例 112

7.3 Matlab应用 112

7.4 使用C语言的DSK实现 112

7.4.1 理解FIR对帧的处理 113

7.4.2 怎样避免“边缘”问题 114

7.4.3 该C语言程序代码的解释 114

7.5 接下来的挑战 117

第8章 快速傅里叶变换 118

8.1 理论 118

8.1.1 快速傅里叶变换定义 118

8.1.2 旋转因子 118

8.1.3 FFT处理 119

8.1.4 位码倒置 120

8.1.5 使用FFT滤波 122

8.1.6 避免循环卷积 123

8.1.7 实时快速卷积 125

8.2 winDSK6范例 128

8.3 Matlab应用 128

8.4 使用C语言的DSK实现 128

8.5 接下来的挑战 131

第9章 谱分析和加窗 133

9.1 基础理论 133

9.1.1 信号的功率谱 133

9.1.2 对加窗的需求 135

9.1.3 窗函数特征 137

9.2 winDSK6范例 140

9.3 Matlab应用 142

9.4 基于C语言的DSK应用 143

9.5 结论 144

9.6 接下来的挑战 144

工程篇 146

第10章 工程1:吉他的特殊效果 146

10.1 项目介绍 146

10.2 理论 146

10.2.1 背景 146

10.2.2 这些效果如何工作 147

10.3 winDSK6范例 159

10.4 Matlab实现 159

10.4.1 FIR梳状滤波器 159

10.4.2 IIR梳状滤波器 161

10.4.3 陷波滤波器 162

10.d.4 镶边 163

10.4.5 颤音 165

10.5 DSK的C语言实现 165

10.5.1 实时梳状滤波器 166

10.5.2 其他实时特效 170

10.6 接下来的挑战 171

第11 章工程2:图形化均衡器 172

11.1 理论 172

11.2 winDSK6范例 173

11.2.1 图形均衡器应用 174

11.2.2 图形均衡器的效果 174

11.3 Matlab的实现方法 175

11.4 DSK的C语言实现 178

11.4.1 设定滤波器带宽增益 178

11.4.2 GEL文件的滑轮控制 180

11.5 接下来的挑战 181

第12章 工程3:峰值音量表 183

12.1 理论 183

12.2 winDSK6描述:commDSK 183

12.3 Matlab实现 185

12.4 DSK的C语言实现 185

12.4.1 PPM编码的例子 185

12.4.2 DSK LED控制 187

12.4.3 另一个PPM的代码版本 187

12.5 接下来的挑战 189

第13章 工程4:AM发射机 190

13.1 理论 190

13.2 winDSK6描述 192

13.3 Matlab实现 193

13.4 使用C语言的DSK实现 195

13.5 接下来的挑战 197

第14章 工程5:AM接收机 198

14.1 理论 198

14.1.1 包络检波器 199

14.1.2 基于Hilbert的AM接收机 204

14.2 winDSK6描述 209

14.3 Maflab实现 209

14.4 DSK的C语言实现 211

14.5 接下来的挑战 212

第15章 工程6:锁相环 214

15.1 理论 214

15.2 winDSK6描述 215

15.3 Matlab实现 215

15.3.1 PLL仿真 215

15.3.2 Matlab实现的一些更新 221

15.4 使用C语言的DSK实现 224

15.4.1 PLL的组成部分 224

15.4.2 系统测试 226

15.5 接下来的挑战 227

第16章 工程7:数字通信发射机 230

16.1 理论 230

16.1.1 随机数和符号发生器 230

16.1.2 使用双极矩形脉冲比特位BPSK 232

16.1.3 使用脉冲调制的升余弦形态的比特位BPSK 232

16.2 winDSK6说明 233

16.2.1 commDSK:未滤波的BPSK 234

16.2.2 commDSK:升余弦滤波的BPSK 236

16.3 Matlab实现 238

16.3.1 矩形BPSK信号发生器 238

16.3.2 脉冲调制的升余弦BPSK信号发生器 240

16.4 C语言实现DSK 243

16.4.1 一个矩形脉冲型BPSK发射机 243

16.4.2 一个升余弦脉冲型BPSK发射机 245

16.4.3 实时代码总结 247

16.5 接下来的挑战 247

第17章 工程8:数字通信接收机 248

17.1 理论 248

17.1.1 匹配滤波器的输出 250

17.1.2 眼图 251

17.1.3 最大似然同步恢复 252

17.2 winDSK6说明 254

17.3 Matlab实现 254

17.4 使用C语言的DSK实现 258

17.4.1 数字接收机元件 258

17.4.2 系统测试 263

17.5 接下来的挑战 265

附录 268

附录A 代码设计套件:简要指南 268

A.1 介绍 268

A.2 启动代码设计套件 268

A.3 必要的文件 272

A.4 创建一个新的工程 273

A.5 打开存在的工程 275

A.6 添加文件到一个工程中 276

A.7 工程选项 280

A.8 构建工程 281

A.9 加载程序到DSK板 282

A.10 在DSK板上运行程序 284

A.11 开始了解CCS 286

A.12 CCS工程的典型文件 286

附录B DSP/BIOS 288

B.1 介绍 288

B.1.1 DSP/BIOS主要特征 288

B.1.2 DSP/BIOS线程 288

B.2 使用DSP/BIOS调度程序 289

B.2.1 添加一个周期函数PRD 290

B.2.2 添加一个HWl函数 291

B.2.3 添加一个SWl函数 292

B.2.4 添加一个TSK函数 293

B.2.5 实时分析工具 293

B.3 在6711 DSK板上的一个DSP/BIOS Talk-Through应用程序 294

B.3.1 主函数main.c 295

B.3.2 hwi.c 295

B.3.3 DSP/BIOS的硬件配置 296

B.3.4 DSP/BIOS串口配置 296

B.3.5 源代码 296

B.4 对立体声编解码器来说需要做的更改 297

B.4.1 主函数main.c 298

B.4.2 hwi.c 298

B.4.3 DSP/BIOS HWI配置 299

B.4.4 DSP/BIOS串口配置 299

B.5 一个DSP/BIOS的Talk-Through应用基于6713 DSK板 299

B.5.1 main.c 300

B.5.2 hwi.c 301

B.5.3 DSP/BIOS HWI配置 301

B.5.4 DSP/BIOS串口配置 302

B.5.5 源代码 303

附录C 数值表示 305

C.1 字节顺序 305

C.2 整型表示 306

C.3 整数除法和取整 307

C.4 浮点表示法 308

C.5 定点表示法 310

C.6 数值表示方法总结 312

附录D TMS320C6x结构 313

D.1 计算机结构基础 313

D.1.1 指令集架构 314

D.1.2 寄存器结构 314

D.1.3 内存结构 314

D.1.4 取指-执行模式 316

D.1.5 流水线操作 316

D.1.6 单线程与多线程 318

D.1.7 调度 318

D.2 TMS320C671x结构 319

D.2.1 存储器系统 321

D.2.2 流水线和程序调度 322

D.2.3 外设 322

D.2.4 主机接口 323

附录E DSK的相关工具 324

E.1 介绍 324

E.2 Windows控制应用程序 324

E.2.1 基本的Windows控制应用程序 325

E.2.2 产生一个示波器应用程序 326

E.2.3 创建一个频谱分析应用程序 331

E.3 Matlab输出 333

E.3.1 输出直接Ⅱ型 333

E.3.2 输出2阶环节实现 334

E.4 Matlab实时接口 335

附录F 编程风险和陷阱 336

F.1 Debug对Release Builds 336

F.2 易变性关键词 336

F.3 函数原型和返回类型 337

F.4 算术问题 338

F.5 控制变量在存储器中的位置 339

F.6 实时调度故障 340

附录G 文字符号说明 342

参考文献 347