数字滤波器的MATLAB与FPGA实现 第二版
作 者: 杜勇 著
出版时间:2014
丛编项: FPGA应用技术丛书
内容简介
本书以Xilinx公司的FPGA器件为开发平台,采用MATLAB及VHDL作为语言开发工具,详细阐述了数字滤波器的实现原理、结构、方法及仿真测试过程,并通过大量工程实例分析其在FPGA实现过程中的具体技术细节。其主要内容包括FIR滤波器、IIR滤波器、多速率滤波器、自适应滤波器、变换域滤波器、解调系统滤波器设计等。本书思路清晰、语言流畅、分析透彻,在简明阐述设计原理的基础上,追求对工程实践的指导性,力求使读者在较短的时间内掌握数字滤波器的FPGA设计知识和技能。
目录
第1章 数字滤波器及FPGA概述 1
1.1 滤波器概述 2
1.1.1 滤波器简介 2
1.1.2 数字滤波器的分类 3
1.1.3 滤波器的特征参数 5
1.2 FPGA基本知识 5
1.2.1 FPGA的基本概念及发展历程 5
1.2.2 FPGA的结构和工作原理 7
1.2.3 IP核的概念 13
1.3 FPGA在数字信号处理中的应用 13
1.4 Xilinx器件简介 14
1.4.1 Spartan系列器件 16
1.4.2 Virtex系列器件 19
1.4.3 PROM 芯片介绍 25
1.5 小结 26
第2章 设计语言及环境介绍 27
2.1 VHDL语言简介 28
2.1.1 HDL语言 28
2.1.2 VHDL语言 29
2.2 FPGA开发工具及设计流程 32
2.2.1 ISE开发套件 32
2.2.2 ModelSim仿真软件 36
2.2.3 Synplicity综合软件 38
2.2.4 FPGA设计流程 39
2.3 MATLAB软件 41
2.3.1 MATLAB软件简介 41
2.3.2 常用的信号处理函数 44
2.3.3 滤波器设计分析工具FDATOOL 51
2.4 MATLAB与ISE的联合应用 52
2.4.1 MATLAB与ISE的数据交换 52
2.4.2 混频器设计分析实例 53
2.5 小结 66
第3章 FPGA实现数字信号处理基础 67
3.1 数的表示 68
3.1.1 莱布尼茨与二进制 68
3.1.2 定点数表示 69
3.1.3 浮点数表示 71
3.2 FPGA中数的运算 74
3.2.1 加/减法运算 74
3.2.2 乘法运算 77
3.2.3 除法运算 78
3.2.4 有效数据位的计算 79
3.3 有限字长效应 82
3.3.1 字长效应的产生因素 82
3.3.2 A/D变换的字长效应 82
3.3.3 滤波器系数的字长效应 83
3.3.4 滤波器运算中的字长效应 85
3.4 FPGA的常用运算模块 86
3.4.1 加法器模块 86
3.4.2 乘法器模块 88
3.4.3 除法器模块 93
3.4.4 CORDIC运算模块 95
3.4.5 浮点运算模块 98
3.5 小结 100
第4章 FIR滤波器的FPGA设计与实现 101
4.1 FIR滤波器的理论基础 102
4.1.1 线性时不变系统 102
4.1.2 FIR滤波器的原理 104
4.1.3 FIR滤波器的特性 105
4.1.4 FIR滤波器的结构形式 109
4.2 FIR滤波器的设计方法 113
4.2.1 窗函数法 114
4.2.2 频率取样法 115
4.2.3 最优设计方法 116
4.3 FIR滤波器的MATLAB设计 117
4.3.1 采用fir1函数设计 117
4.3.2 采用kaiserord函数设计 122
4.3.3 采用fir2函数设计 123
4.3.4 采用firpm函数设计 124
4.3.5 采用FDATOOL工具设计 126
4.4 FIR滤波器的FPGA实现 128
4.4.1 量化滤波器系数 128
4.4.2 串行结构的FPGA实现 130
4.4.3 并行结构的FPGA实现 137
4.4.4 分布式结构的FPGA实现 139
4.4.5 不同结构的性能对比分析 144
4.4.6 采用FIR核实现 145
4.5 小结 150
第5章 IIR滤波器的MATLAB与FPGA实现 151
5.1 IIR滤波器的理论基础 152
5.1.1 IIR滤波器的原理及特性 152
5.1.2 IIR滤波器的结构形式 152
5.1.3 IIR与FIR滤波器的比较 154
5.2 IIR滤波器的设计方法 155
5.2.1 几种典型的模拟滤波器 155
5.2.2 原型转换设计法 158
5.2.3 直接设计法 159
5.3 IIR滤波器的MATLAB设计 159
5.3.1 采用butter函数设计 160
5.3.2 采用cheby1函数设计 160
5.3.3 采用cheby2函数设计 161
5.3.4 采用ellip函数设计 161
5.3.5 采用yulewalk函数设计 162
5.3.6 几种设计函数的比较 162
5.3.7 采用FDATOOL工具设计 164
5.4 IIR滤波器的FPGA实现 165
5.4.1 量化直接型结构的系数及运算字长 165
5.4.2 直接型结构的FPGA实现 169
5.4.3 直接型结构FPGA实现后的测试仿真 175
5.4.4 量化级联型结构的系数 179
5.4.5 级联型结构的FPGA实现 180
5.4.6 级联型结构FPGA实现后的测试仿真 185
5.5 小结 186
第6章 多速率滤波器的FPGA实现 187
6.1 多速率信号处理基础知识 188
6.1.1 多速率信号处理的概念及作用 188
6.1.2 多速率信号处理的一般步骤 189
6.1.3 软件无线电中的多速率处理 189
6.2 抽取与内插处理 191
6.2.1 整数倍抽取 191
6.2.2 整数倍内插 192
6.2.3 比值为有理数的抽样率转换 195
6.3 CIC滤波器 195
6.3.1 CIC滤波器的原理 195
6.3.2 CIC滤波器的应用条件 198
6.3.3 单级CIC滤波器的FPGA实现 199
6.3.4 多级CIC滤波器的FPGA实现 201
6.3.5 CIC滤波器IP核的使用 208
6.4 FIR半带滤波器 211
6.4.1 半带滤波器的原理 211
6.4.2 半带滤波器的MATLAB设计 212
6.4.3 多级半带滤波器的设计 214
6.4.4 多级半带滤波器的FPGA实现 216
6.5 多相分解技术 222
6.5.1 多相分解技术的一般概念 222
6.5.2 整数倍抽取器的多相结构 223
6.5.3 多相抽取器的FPGA实现 225
6.6 小结 227
第7章 自适应滤波器的FPGA实现 229
7.1 自适应滤波器简介 230
7.1.1 自适应滤波器的概念 230
7.1.2 自适应滤波器的应用 231
7.1.3 自适应算法的一般原理 233
7.2 LMS算法 235
7.2.1 LMS算法的原理 235
7.2.2 LMS算法的实现结构 235
7.2.3 LMS算法的字长效应 236
7.2.4 符号LMS算法原理 238
7.2.5 LMS算法的MATLAB仿真 238
7.3 自适应线性滤波器的FPGA实现 243
7.3.1 自适应线性滤波器原理 243
7.3.2 利用线性滤波器实现通道失配校正 243
7.3.3 校正算法的 MATLAB仿真 244
7.3.4 校正算法的VHDL实现 246
7.3.5 FPGA实现后的仿真测试 249
7.4 自适应均衡器的FPGA实现 251
7.4.1 自适应均衡器原理 251
7.4.2 自适应均衡器的MATLAB仿真 252
7.4.3 自适应均衡器的VHDL实现 254
7.4.4 FPGA实现后的仿真测试 259
7.5 智能天线阵的FPGA实现 260
7.5.1 智能天线阵的概念及原理 260
7.5.2 自适应天线阵的MATLAB仿真 262
7.5.3 自适应天线阵的VHDL实现 264
7.5.4 FPGA实现后的仿真测试 267
7.6 自适应陷波器的FPGA实现 267
7.6.1 自适应陷波器原理 267
7.6.2 自适应陷波器的MATLAB仿真 269
7.6.3 自适应陷波器的VHDL实现 271
7.6.4 FPGA实现后的仿真测试 274
7.7 小结 275
第8章 变换域滤波器的FPGA实现 277
8.1 变换域滤波器简介 278
8.2 快速傅里叶变换 278
8.2.1 离散傅里叶变换 278
8.2.2 DFT存在的问题 280
8.2.3 FFT算法的基本思想 281
8.2.4 FFT算法的MATLAB仿真 282
8.3 FFT核的使用 284
8.3.1 FFT核简介 284
8.3.2 FFT核的接口及时序 285
8.4 频域滤波器的原理及MATLAB仿真 287
8.4.1 抗窄带干扰滤波器的原理 287
8.4.2 检测门限的选取 288
8.4.3 频域滤波器的MATLAB仿真 289
8.5 频域滤波器的FPGA实现 291
8.5.1 FPGA实现的总体结构设计 291
8.5.2 速率变换模块的设计与实现 293
8.5.3 FFT及滤波设计与实现 297
8.5.4 IFFT及数据输出设计与实现 302
8.5.5 顶层文件设计及实现 306
8.5.6 FPGA实现后的仿真测试 308
8.6 小结 309
第9章 解调系统滤波器的FPGA实现 311
9.1 数字接收机的一般原理 312
9.1.1 通用数字接收机处理平台 312
9.1.2 基本调制解调技术 313
9.1.3 改进的数字调制解调技术 315
9.2 DPSK调制解调原理 316
9.2.1 DPSK调制原理及信号特征 316
9.2.2 DPSK信号的MATLAB仿真 317
9.2.3 DPSK解调原理 320
9.3 DPSK解调参数设计 322
9.3.1 数字下变频器设计 323
9.3.2 低通滤波器设计 324
9.3.3 数字鉴相器设计 325
9.3.4 环路滤波器设计 325
9.3.5 载波同步环设计的一般步骤 328
9.4 Costas环的FPGA实现 329
9.4.1 顶层模块的VHDL实现 329
9.4.2 鉴相器及环路滤波器的VHDL实现 331
9.4.3 Costas环实现后的仿真测试 333
9.5 小结 334
参考文献 335