第1章 数字滤波器及FPGA概述 1
1.1滤波器概述 3
1.1.1滤波器简介 3
1.1.2数字滤波器的分类 4
1.1.3滤波器的特征参数 6
1.2 FPGA基本知识 6
1.2.1 FPGA的基本概念及发展历程 6
1.2.2 FPGA的结构和工作原理 8
1.2.3 IP核的概念 13
1.3 FPGA在数字信号处理中的应用 14
1.4 Xilinx器件简介 15
1.4.1 Spartan系列器件 17
1.4.2 Virtex系列器件 20
1.4.3 PROM芯片介绍 26
1.5小结 27
第2章 设计语言及环境介绍 29
2.1 VHDL语言简介 31
2.1.1 HDL语言 31
2.1.2 VHDL语言 32
2.2 FPGA开发工具及设计流程 35
2.2.1 ISE开发套件 35
2.2.2 Modelsim仿真软件 39
2.2.3 Synplicity综合软件 41
2.2.4 FPGA设计流程 42
2.3 MATLAB软件 44
2.3.1 MATLAB软件简介 44
2.3.2常用的信号处理函数 47
2.3.3滤波器设计分析工具FDATOOL 54
2.4 MATLAB与ISE的联合应用 55
2.4.1 MATLAB与ISE的数据交换 55
2.4.2混频器设计分析实例 56
2.5小结 69
第3章FPGA实现数字信号处理基础 71
3.1数的表示 73
3.1.1莱布尼茨与二进制 73
3.1.2定点数表示 74
3.1.3浮点数表示 78
3.2有限字长效应 81
3.2.1字长效应的产生因素 81
3.2.2 A/D变换的字长效应 82
3.2.3滤波器系数的字长效应 83
3.2.4滤波器运算中的字长效应 84
3.3 FPGA的常用运算模块 85
3.3.1加法器模块 85
3.3.2乘法器模块 88
3.3.3除法器模块 94
3.3.4 CORDIC运算模块 97
3.3.5浮点运算模块 99
3.4小结 101
第4章FIR滤波器的FPGA设计与实现 103
4.1 FIR滤波器的理论基础 105
4.1.1线性时不变系统 105
4.1.2 FIR滤波器的原理 107
4.1.3 FIR滤波器的特性 108
4.1.4 FIR滤波器的结构形式 112
4.2 FIR滤波器的设计方法 116
4.2.1窗函数法 117
4.2.2频率取样法 118
4.2.3最优设计方法 119
4.3 FIR滤波器的MATLAB设计 120
4.3.1采用firl函数设计 120
4.3.2采用kaiserord函数设计 125
4.3.3采用fir2函数设计 126
4.3.4采用firpm函数设计 127
4.3.5采用FDATOOL工具设计 129
4.4 FIR滤波器的FPGA实现 131
4.4.1量化滤波器系数 131
4.4.2串行结构的FPGA实现 133
4.4.3并行结构的FPGA实现 140
4.4.4分布式结构的FPGA实现 143
4.4.5不同结构的性能对比分析 148
4.4.6采用FIR核实现 148
4.5小结 153
第5章IIR滤波器的MATLAB与FPGA实现 155
5.1 IIR滤波器的理论基础 157
5.1.1 IIR滤波器的原理及特性 157
5.1.2 IIR滤波器的结构形式 157
5.1.3 IIR与FIR滤波器的比较 159
5.2 IIR滤波器的设计方法 160
5.2.1几种典型的模拟滤波器 160
5.2.2原型转换设计法 163
5.2.3直接设计法 164
5.3 IIR滤波器的MATLAB设计 164
5.3.1采用butter函数设计 165
5.3.2采用cheby1函数设计 165
5.3.3采用cheby2函数设计 166
5.3.4采用ellip函数设计 166
5.3.5采用yulewalk函数设计 167
5.3.6几种设计函数的比较 167
5.3.7采用FDATOOL工具设计 169
5.4 IIR滤波器的FPGA实现 170
5.4.1量化直接型结构的系数及运算字长 170
5.4.2直接型结构的FPGA实现 174
5.4.3直接型结构FPGA实现后的测试仿真 180
5.4.4量化级联型结构的系数 184
5.4.5级联型结构的FPGA实现 185
5.4.6级联型结构FPGA实现后的测试仿真 190
5.5小结 191
第6章 多速率滤波器的FPGA实现 193
6.1多速率信号处理基础知识 195
6.1.1多速率信号处理的概念及作用 195
6.1.2多速率信号处理的一般步骤 196
6.1.3软件无线电中的多速率处理 196
6.2抽取与内插处理 198
6.2.1整数倍抽取 198
6.2.2整数倍内插 199
6.2.3比值为有理数的抽样率转换 202
6.3 CIC滤波器 202
6.3.1 CIC滤波器的原理 202
6.3.2 CIC滤波器的应用条件 204
6.3.3单级CIC滤波器的FPGA实现 206
6.3.4多级CIC滤波器的FPGA实现 208
6.3.5 CIC滤波器IP核的使用 215
6.4 FIR半带滤波器 218
6.4.1半带滤波器的原理 218
6.4.2半带滤波器的MATLAB设计 219
6.4.3多级半带滤波器的设计 221
6.4.4多级半带滤波器的FPGA实现 223
6.5多相分解技术 229
6.5.1多相分解技米的一般概念 229
6.5.2整数倍抽取器的多相结构 230
6.5.3多相抽取器的FPGA实现 232
6.6小结 234
第7章 自适应滤波器的FPGA实现 235
7.1自适应滤波器简介 237
7.1.1自适应滤波器的概念 237
7.1.2自适应滤波器的应用 238
7.1.3自适应算法的一般原理 240
7.2 LMS算法 242
7.2.1 LMS算法的原理 242
7.2.2 LMS算法的实现结构 242
7.2.3 LMS算法的字长效应 243
7.2.4符号LMS算法原理 245
7.2.5 LMS算法的MATLAB仿真 245
7.3自适应线性滤波器的FPGA实现 250
7.3.1自适应线性滤波器原理 250
7.3.2利用线性滤波器实现通道失配校正 250
7.3.3校正算法的MATLAB仿真 251
7.3.4校正算法的VHDL实现 253
7.3.5 FPGA实现后的仿真测试 257
7.4自适应均衡器的FPGA实现 258
7.4.1自适应均衡器原理 258
7.4.2自适应均衡器的MATLAB仿真 259
7.4.3自适应均衡器的VHDL实现 262
7.4.4 FPGA实现后的仿真测试 266
7.5智能天线阵的FPGA实现 267
7.5.1智能天线阵的概念及原理 267
7.5.2自适应直线阵的MATLAB仿真 270
7.5.3自适应天线阵的VHDL实现 272
7.5.4 FPGA实现后的仿真测试 274
7.6小结 275
第8章 变换域滤波器的FPGA实现 277
8.1变换域滤波器简介 279
8.2快速傅里叶变换 279
8.2.1离散傅里叶变换 279
8.2.2 DFT存在的问题 281
8.2.3 FFT算法的基本思想 282
8.2.4 FFT算法的MATLAB仿真 283
8.3 FFT核的使用 285
8.3.1 FFT核简介 285
8.3.2 FFT核的接口及时序 286
8.4频域滤波器的原理及MATLAB仿真 288
8.4.1抗窄带干扰滤波器的原理 288
8.4.2检测门限的选取 289
8.4.3频域滤波器的MATLAB仿真 290
8.5频域滤波器的FPGA实现 292
8.5.1 FPGA实现的总体结构设计 292
8.5.2速率变换模块的设计与实现 294
8.5.3 FFT及滤波设计与实现 298
8.5.4 IFFT及数据输出设计与实现 303
8.5.5顶层文件设计及实现 307
8.5.6 FPGA实现后的仿真测试 309
8.6小结 310
第9章DPSK解调系统的FPGA实现 311
9.1数字接收机的一般原理 313
9.1.1通用数字接收机处理平台 313
9.1.2基本调制解调技术 314
9.1.3改进的数字调制解调技术 316
9.2 DPSK调制解调原理 317
9.2.1 DPSK调制原理及信号特征 317
9.2.2 DPSK信号的MATLAB仿真 318
9.2.3 DPSK解调原理 321
9.3 DPSK解调参数设计 323
9.3.1数字下变频器设计 324
9.3.2低通滤波器设计 325
9.3.3数字鉴相器设计 326
9.3.4环路滤波器设计 326
9.3.5载波同步环设计的一般步骤 329
9.4 Costas环的FPGA实现 330
9.4.1顶层模块的VHDL实现 330
9.4.2鉴相器及环路滤波器的VHDL实现 332
9.4.3 Costas环实现后的仿真测试 334
9.5符号同步环的FPGA实现 335
9.5.1符号同步环的实现结构 335
9.5.2符号同步环的VHDL实现 336
9.6 DPSK全系统的FPGA实现及测试 338
9.6.1码型变换的VHDL实现 338
9.6.2 DPSK解调全系统VHDL实现 339
9.6.3系统的仿真测试 340
9.7小结 341
参考文献 343