数字滤波器的MATLAB与FPGA实现:ALTERA VERILOG版
作者:杜勇 编著
出版时间:2015年版
内容简介
本书以Altera公司的FPGA器件为开发平台,采用MATLAB及Verilog HDL语言为开发工具,详细阐述数字滤波器的FPGA实现原理、结构、方法以及仿真测试过程,并通过大量工程实例分析FPGA实现过程中的具体技术细节。主要包括FIR滤波器、IIR滤波器、多速率滤波器、自适应滤波器、变换域滤波器、解调系统滤波器设计等内容。本书思路清晰、语言流畅、分析透彻,在简明阐述设计原理的基础上,主要追求对工程实践的指导性,力求使读者在较短的时间内掌握数字滤波器的FPGA设计知识和技能。本书的配套光盘收录了完整的MATLAB及Verilog HDL实例工程代码,有利于工程技术人员进行参考学习。
目录
第1章 数字滤波器及FPGA概述1
1.1 滤波器概述2
1.1.1 滤波器简介2
1.1.2 数字滤波器的分类4
1.1.3 滤波器的特征参数5
1.2 FPGA基本知识6
1.2.1 FPGA的基本概念及发展历程6
1.2.2 FPGA的结构和工作原理8
1.2.3 IP核的概念14
1.3 FPGA在数字信号处理中的应用15
1.4 Altera器件简介16
1.5 小结18
第2章 设计语言及环境介绍19
2.1 Verilog HDL语言简介20
2.1.1 HDL语言20
2.1.2 Verilog HDL语言21
2.2 FPGA开发工具及设计流程24
2.2.1 Quartus II开发套件24
2.2.2 Modelsim仿真软件27
2.2.3 FPGA设计流程29
2.3 MATLAB软件31
2.3.1 MATLAB软件简介31
2.3.2 常用的信号处理函数34
2.3.3 滤波器设计分析工具FDATOOL41
2.4 MATLAB与Quartus的联合应用42
2.4.1 MATLAB与Quartus的数据交换42
2.4.2 混频器设计分析实例43
2.5 小结58
第3章 FPGA实现数字信号处理基础59
3.1 数的表示60
3.1.1 莱布尼茨与二进制60
3.1.2 定点数表示61
3.1.3 浮点数表示63
3.2 FPGA中数的运算66
3.2.1 加/减法运算66
3.2.2 乘法运算69
3.2.3 除法运算70
3.2.4 有效数据位的计算70
3.3 有限字长效应73
3.3.1 字长效应的产生因素73
3.3.2 A/D变换的字长效应74
3.3.3 滤波器系数的字长效应75
3.3.4 滤波器运算中的字长效应76
3.4 FPGA的常用运算模块77
3.4.1 加法器模块77
3.4.2 乘法器模块79
3.4.3 除法器模块82
3.4.4 浮点运算模块83
3.5 小结85
第4章 FIR滤波器的FPGA设计与实现87
4.1 FIR滤波器的理论基础88
4.1.1 线性时不变系统88
4.1.2 FIR滤波器的原理90
4.1.3 FIR滤波器的特性91
4.1.4 FIR滤波器的结构形式96
4.2 FIR滤波器的设计方法100
4.2.1 窗函数法100
4.2.2 频率取样法102
4.2.3 最优设计方法103
4.3 FIR滤波器的MATLAB设计104
4.3.1 采用fir1函数设计104
4.3.2 采用kaiserord函数设计109
4.3.3 采用fir2函数设计110
4.3.4 采用firpm函数设计111
4.3.5 采用FDATOOL工具设计113
4.4 FIR滤波器的FPGA实现115
4.4.1 量化滤波器系数115
4.4.2 串行结构的FPGA实现117
4.4.3 并行结构的FPGA实现124
4.4.4 分布式结构的FPGA实现127
4.4.5 采用FIR核实现129
4.4.6 不同结构的性能对比分析132
4.5 小结133
第5章 IIR滤波器的MATLAB与FPGA实现135
5.1 IIR滤波器的理论基础136
5.1.1 IIR滤波器的原理及特性136
5.1.2 IIR滤波器的结构形式136
5.1.3 IIR与FIR滤波器的比较139
5.2 IIR滤波器的设计方法139
5.2.1 几种典型的模拟滤波器140
5.2.2 原型转换设计法142
5.2.3 直接设计法143
5.3 IIR滤波器的MATLAB设计144
5.3.1 采用butter函数设计144
5.3.2 采用cheby1函数设计145
5.3.3 采用cheby2函数设计145
5.3.4 采用ellip函数设计146
5.3.5 采用yulewalk函数设计146
5.3.6 几种设计函数的比较147
5.3.7 采用FDATOOL工具设计149
5.4 IIR滤波器的FPGA实现150
5.4.1 量化直接型结构的系数及运算字长150
5.4.2 直接型结构的FPGA实现154
5.4.3 直接型结构FPGA实现后的测试仿真160
5.4.4 量化级联型结构的系数164
5.4.5 级联型结构的FPGA实现165
5.4.6 级联型结构FPGA实现后的测试仿真174
5.5 小结175
第6章 多速率滤波器的FPGA实现177
6.1 多速率信号处理基础知识178
6.1.1 多速率信号处理的概念及作用178
6.1.2 多速率信号处理的一般步骤179
6.1.3 软件无线电中的多速率处理179
6.2 抽取与内插处理181
6.2.1 整数倍抽取181
6.2.2 整数倍内插183
6.2.3 比值为有理数的抽样率转换185
6.3 CIC滤波器185
6.3.1 CIC滤波器的原理185
6.3.2 CIC滤波器的应用条件188
6.3.3 单级CIC滤波器的FPGA实现189
6.3.4 多级CIC滤波器的FPGA实现191
6.3.5 CIC滤波器IP核的使用199
6.4 FIR半带滤波器201
6.4.1 半带滤波器的原理201
6.4.2 半带滤波器的MATLAB设计202
6.4.3 多级半带滤波器的设计205
6.4.4 多级半带滤波器的FPGA实现207
6.5 多相分解技术214
6.5.1 多相分解技术的一般概念214
6.5.2 整数倍抽取器的多相结构215
6.6 小结218
第7章 自适应滤波器的FPGA实现219
7.1 自适应滤波器简介220
7.1.1 自适应滤波器的概念220
7.1.2 自适应滤波器的应用221
7.1.3 自适应算法的一般原理223
7.2 LMS算法225
7.2.1 LMS算法的原理225
7.2.2 LMS算法的实现结构226
7.2.3 LMS算法的字长效应227
7.2.4 符号LMS算法原理228
7.2.5 LMS算法的MATLAB仿真229
7.3 自适应线性滤波器的FPGA实现233
7.3.1 自适应线性滤波器原理233
7.3.2 利用线性滤波器实现通道失配校正234
7.3.3 校正算法的MATLAB仿真235
7.3.4 校正算法的Verilog HDL实现237
7.3.5 FPGA实现后的仿真测试242
7.4 自适应均衡器的FPGA实现243
7.4.1 自适应均衡器原理243
7.4.2 自适应均衡器的MATLAB仿真244
7.4.3 自适应均衡器的Verilog HDL实现246
7.4.4 FPGA实现后的仿真测试251
7.5 智能天线阵的FPGA实现253
7.5.1 智能天线阵的概念及原理253
7.5.2 自适应天线阵的MATLAB仿真255
7.5.3 自适应天线阵的Verilog HDL实现257
7.5.4 FPGA实现后的仿真测试261
7.6 自适应陷波器的FPGA实现262
7.6.1 自适应陷波器原理262
7.6.2 自适应陷波器的MATLAB仿真264
7.6.3 自适应陷波器的Verilog HDL实现267
7.6.4 FPGA实现后的仿真测试270
7.7 小结271
第8章 变换域滤波器的FPGA实现273
8.1 变换域滤波器简介274
8.2 快速傅里叶变换274
8.2.1 离散傅里叶变换274
8.2.2 DFT存在的问题276
8.2.3 FFT算法的基本思想277
8.2.4 FFT算法的MATLAB仿真278
8.3 FFT核的使用280
8.3.1 FFT核简介280
8.3.2 FFT核的接口及时序281
8.4 频域滤波器的原理及MATLAB仿真283
8.4.1 抗窄带干扰滤波器的原理283
8.4.2 检测门限的选取284
8.4.3 频域滤波器的MATLAB仿真285
8.5 频域滤波器的FPGA实现287
8.5.1 FPGA实现的总体结构设计287
8.5.2 速率变换模块的设计与实现289
8.5.3 FFT及滤波设计与实现294
8.5.4 IFFT及数据输出设计与实现299
8.5.5 顶层文件设计及实现303
8.5.6 FPGA实现后的仿真测试304
8.6 小结305
第9章 解调系统滤波器的FPGA实现307
9.1 数字接收机的一般原理308
9.1.1 通用数字接收机处理平台308
9.1.2 基本调制解调技术309
9.1.3 改进的数字调制解调技术311
9.2 DPSK调制解调原理312
9.2.1 DPSK调制原理及信号特征312
9.2.2 DPSK信号的MATLAB仿真314
9.2.3 DPSK解调原理316
9.3 DPSK解调参数设计319
9.3.1 数字下变频器设计319
9.3.2 低通滤波器设计320
9.3.3 数字鉴相器设计322
9.3.4 环路滤波器设计322
9.3.5 载波同步