
本书以Altera公司的FPGA器件为开发平台,采用MATLAB及Verilog HDL语言为开发工具,详细阐述数字滤波器的FPGA实现原理、结构、方法以及仿真测试过程,并通过大量工程实例分析FPGA实现过程中的具体技术细节。主要包括FIR滤波器、IIR滤波器、多速率滤波器、自适应滤波器、变换域滤波器、解调系统滤波器设计等内容。本书思路清晰、语言流畅、分析透彻,在简明阐述设计原理的基础上,主要追求对工程实践的指导性,力求使读者在较短的时间内掌握数字滤波器的FPGA设计知识和技能。本书的配套光盘收录了完整的MATLAB及Verilog HDL实例工程代码,有利于工程技术人员进行参考学习。
为什么要写这本书 为什么要写这本书?或者说为什么要写数字通信的MATLAB与FPGA实现技术相关内容的书?记得在电子工业出版社首次出版《数字滤波器的MATLAB与FPGA实现》这本书时,我在前言中提到写作的原因主要有三条:其一是FPGA技术在电子通信领域得到了越来越广泛的应用,并已逐渐成为电子产品实现的首选方案;其二是国内市场上专门讨论如何采用FPGA实现数字通信技术的书籍相对欠缺;其三是数字通信技术本身十分复杂,关键技术较多,在一本书中全面介绍数字通信技术的FPGA实现难免有所遗漏,且内容难以翔实。因此,根据作者从业经验,将数字通信技术的关键技术大致分为滤波器技术、同步技术和解调技术三种,并尝试着先写滤波器技术,再逐渐完成其他两种关键技术的写作。在广大读者的支持和鼓励下,先后又出版了《数字通信同步技术的MATLAB与FPGA实现》和《数字调制解调技术的MATLAB与FPGA实现》两本书,并且前不久刚出版了《数字滤波器的MATLAB与FPGA实现(第2版)》。这样,关于数字通信的MATLAB与FPGA实现的系列著作总算完成,几年前的构想总算得以成为现实! 数字通信的MATLAB与FPGA实现的系列著作出版后,陆续通过邮件或博客的方式收到广大读者的反馈意见。一些读者直接通过邮件告知书中的内容对工作中提供的直接或间接的帮助;一些读者提出了很多中肯的有建设性的意见和建议;更多的读者通过邮件交流书中的相关设计问题。在《数字滤波器的MATLAB与FPGA实现(第1版)》出版后,不少读者就建议出版采用Verilog HDL语言作为设计平台的版本。这是很好的建议,时间过得很快,几年时间过去了,在用Xilinx/VHDL平台写完这个系列著作之后,终于可以开始用Altera/Verilog HDL平台将这三本著作重新写一遍,以满足不同读者的需求。 其实,虽然在初次写数字滤波器一书时已规划过要完成这一系列的著作,但还没有想到要编写Altera/Verilog HDL版本,否则就会在前面三本书的书名中都加上“Xilinx/VHDL版本”的字样了。因此,《数字滤波器的MATLAB与FPGA实现》(第1版和第2版)、《数字通信同步技术的MATLAB与FPGA实现》、《数字调制解调技术的MATLAB与FPGA实现》这几本书的设计实现平台均是Xilinx/VHDL。为了区别Xilinx/VHDL版本,特意在采用Verilog HDL语言编写的系列图书名称中加上了“Altera/Verilog版”的字样,同时出版社还重新设计了精美的封面。 本书的内容安排 第1章首先介绍了滤波器的基本概念、FPGA的基本知识,以及Altera公司的主要器件。本章在介绍了FPGA的发展历程、结构及工作原理等基本知识后,对FPGA设计中经常用到的各种IP核进行了简要说明。目前世界上的主要FPGA厂商有Xilinx、Altera、Lattice、Actel、Cypress、Lucent、QuickLogic、Atmel等,其中最主要的厂商为Xilinx和Altera两家。由于不同器件的结构不同,因此各有其合理的应用领域,为了提高设计性能并节约产品成本,了解器件基本特性,合理选择最终的目标器件显得尤为重要。本章最后对Altera公司的FPGA产品进行了简要介绍,同时在后续章节中也将利用Altera公司的Cyclone IV FPGA器件作为目标实现平台进行讲解。 第2章首先介绍了硬件描述语言的基本概念及优势,并对Verilog HDL语言进行了简要介绍。对本书使用到的软件开发仿真环境——Quartus II开发套件、Modelsim仿真软件,以及MATLAB软件进行了简要介绍。最后以一个简单的混频器设计实例较为详细地阐述了FPGA与MATLAB软件进行联合开发的过程,这也是本书后续章节在讲述各种滤波器设计时所采用的基本方法和流程。数字滤波器的FPGA设计与实现是一项将理论与实践紧密结合的技术,要求设计者不仅要十分清楚数字滤波器和数字信号处理的基本原理,同时还需要掌握MATLAB的使用方法、Verilog HDL编程,以及FPGA实现技术。 数字信号在FPGA等硬件系统中实现时,由于受寄存器长度的限制,不可避免地会产生有效字长效应。设计工程师必须了解字长效应对数字系统可能带来的影响,并在实际设计中通过仿真来确定最终的量化位数、寄存器长度等内容。第3章在详细分析了字长效应在FPGA设计中的影响后,对几种常用的运算模块IP核进行了介绍,详细阐述了各IP核控制参数的设置方法,并给出了几个简单的模块应用实例。IP核在FPGA设计中的应用十分普遍,尤其在数字滤波器等信号处理领域,采用设计工具提供的IP核进行设计,不仅可以提高设计效率,而且可以保证设计的性能。需要特别说明的是,从读者反馈的信息来看,虽然大多数问题是针对其他章节的实例提出的,但问题的本质不少都与数据有效字长效应有关。因此,建议读者详细阅读本章内容,并且深入理解FPGA中的数字运算,以及有效字长效应对信号处理所带来的影响。 从第4章开始,本书正式讨论各种数字滤波器的FPGA实现。FIR滤波器是数字滤波器中最常见、使用最广泛的一种滤波器。为便于读者深入了解FIR滤波器的设计原理及方法,本章简要讲述了与数字滤波器设计相关的基础理论知识。接着对常用的MATLAB函数设计方法进行了介绍。采用MATLAB设计出符合要求的滤波器系数后,还应采用Verilog VHDL等硬件编程语言进行设计实现。根据FPGA的结构特点,具体实现FIR滤波器时有几种不同的设计方法,本章详细阐述了几种常用结构的设计方法,最后介绍了功能强大的FIR核。在实际工程设计中,如果目标器件提供了相应的FIR核,则建议读者尽量采用IP核的方法进行设计实现。 第5章讨论了IIR滤波器的FPGA实现。IIR滤波器因其较高的滤波效率,十分利于在不需要严格相位特性的系统中使用。本章在介绍IIR滤波器基本原理时,重点对IIR与FIR滤波器的异同点进行了比较。接下来对常用的几种IIR滤波器设计函数进行了介绍,并比较了几种设计函数的滤波性能。IIR滤波器的FPGA实现相对于FIR滤波器来讲要复杂一些,主要原因在于其反馈结构,并且目前的FPGA设计软件并没有提供通用的IP核使用。本章详细阐述了IIR滤波器的FPGA实现过程,以及实现过程中需要注意的系数量化方法、计算输出数据位宽、MATLAB仿真和FPGA实现等关键问题。 第6章首先介绍了多速率信号处理的一些基本概念,以及多速率信号处理的一般步骤。抽取与内插是多速率信号处理的基础,读者需要从原理上了解抽取与内插的具体过程,以及对信号在时域及频域的影响。抽取与内插操作本身十分简单,多速率信号处理的关键问题是如何有效设计滤波器。CIC滤波器的结构简单,没有乘法器,只有加法器、积分器和寄存器,适合于在高采样率条件下工作。半带滤波器可以使2倍抽取的每秒乘法次数比一般线性相位的FIR滤波器减少近1/2,因此特别适合应用于转换率为2的整数次幂变换的系统。需要注意的是,CIC滤波器及半带滤波器虽然十分节约资源,但均有其特定的使用条件。本章最后介绍了另一种在多速率信号处理中使用十分广泛的多相分解技术。 第7章首先对自适应滤波器的概念、应用及一般原理进行了简单介绍,而后针对应用广泛的LMS算法原理、实现结构进行了阐述,并采用MATLAB对LMS算法进行了仿真验证。以LMS算法为基础,本章分别以通道失配校正系统、自适应均衡器、智能天线阵、自适应陷波器为具体实例,详细阐述了FPGA实现自适应滤波器算法的步骤、方法及过程。为给读者提供更多的设计参考,在讨论上述不同自适应滤波器的FPGA实现过程中,分别以常规LMS算法、符号LMS算法进行讨论。自适应滤波器相对于常规滤波器来讲,在FPGA实现过程中,关键在于清楚掌握算法实现过程中各数据变量的变化范围,并以此确定各中间变量的数据字长及小数点位置,同时还需根据各运算步骤所需的运算量,合理分配各时钟周期内的运算量,以提高系统的整体运算速度。 相对于时域滤波器而言,变换域滤波器给出了一个全新的滤波器设计思路。一些在时域无法滤除的干扰信号,在变换域可十分容易地滤除。具体选择哪种滤波器,要根据输入信号的统计特征、滤波器实现的复杂度、运算速度等因素综合考虑。第8章首先对变换域滤波器的基本概念、快速傅里叶变换(FFT)、Quartus II提供的FFT核等内容进行了简单介绍,这些知识都是进行变换域滤波器设计的基础。本章重点对变换域滤波器实现抗窄带干扰的FPGA设计与实现进行了详细讨论。采用变换域滤波技术实现窄带干扰滤除的原理并不复杂,在FPGA设计与实现过程中,难点在于准确把握各模块之间、各运算步骤之间,以及各信号接口之间的时序关系,并在设计中严格按照这些时序关系进行程序的编写。从这个实例中读者可以进一步体会到时序在FPGA设计中的重要性。 为了使读者对通信系统的FPGA实现有更完整的认识,第9章以一个较为完整的DPSK解调系统为实例,在简单介绍数字接收机、DPSK调制解调原理的基础上,详细讨论了整个工程设计的全过程。尤其对解调环路中的数字滤波器设计、载波环路的参数设计、FPGA实现细节进行了详尽的分析,并给出了具有指导意义的几个设计原则。在整个工程设计过程中,可以看到,滤波器仍然是解调系统的重要组成部分,其性能的优劣直接影响到整个系统的性能。通过详细分析讨论,并动手设计DPSK解调系统,相信读者会对数字通信技术的FPGA实现方法、手段、过程有较为深刻的理解。 关于FPGA开发环境的说明 众所周知,目前两大厂商Xilinx和Altera的产品占据了全球90%的FPGA市场。可以说,在一定程度上正是由于两家FPGA公司的相互竞争态势,有力地推动了FPGA技术的不断发展。虽然HDL的编译及综合环境可以采用第三方公司所开发的产品,如Modelsim、Synplify等,但FPGA器件的物理实现必须采用各自公司开发的软件平台,无法通用。Xilinx公司的主流开发平台是ISE系列套件,Altera公司目前的主流开发平台是Quartus Ⅱ系列套件。与FPGA开发平台类似,HDL也存两种难以取舍的选择:VHDL和Verilog HDL。 如何选择开发平台以及HDL语言呢?其实,对于有志于从事FPGA技术开发的技术人员来讲,选择哪种平台及HDL语言并不重要,因为两种平台具有很多相似的地方,精通一种HDL语言后,再学习另一种HDL语言也不是一件困难的事。通常来讲,可以根据周围同事、朋友、同学或公司的主要使用情况进行选择,这样在学习的过程中,可以很方便地找到能够给你指迷津的专业人士,从而加快学习进度。 本书采用的是Altera公司的FPGA器件作为开发平台,采用Verilog HDL语言作为实现手段。由于Verilog HDL语言并不依赖于某家公司的FPGA产品,因此本书的Verilog HDL程序文件可以很方便地移植到Xilinx公司的FPGA产品上。如果程序中应用了IP核资源,两家公司的IP核通常是不能通用的,这就需要根据IP核的功能参数,在另外一个平台上重新生成IP核,或编写Verilog HDL代码来实现。 有人说过这样一句话:“技术只是一个工具,关键在于思想。”将这句话套用过来,对于本书来讲,具体的开发平台和HDL语言只是实现数字通信技术的工具,关键在于设计的思路和方法。因此,读者完全不必要过于在意开发平台的差别,相信只要掌握了本书所讲述的设计思路和方法后,加上读者已经具备的FPGA开发经验,采用任何一种FPGA平台都可以很快设计出满足用户需求的产品。 本书的目标 通常来讲,一名电子通信专业的技术人员,在从业之初都会遇到类似的困惑:如何将从教材中所学的理论与实际中的工程设计结合起来?如何能够将这些教材中的理论转换成实际的电路?绝大多数数字通信类教材对通信的原理讲解十分透彻,但理论与实践之间显然需要有一些可以顺利通过的桥梁。一个常用的方法是通过采用MATLAB等工具进行软件仿真的方法来加深对理论的理解,但更好的方法显然是直接参与工程的设计与实现。 然而,刚毕业的工科院校学生极少有机会参加实际工程设计,工作中往往感到学校所学的理论知识很难与实际工程产品的实现联系起来。教科书上大多是讲解通信原理性的内容,即使可以很好地解答教材后面的习题,或者说能够熟练地对书中的基本公式进行推导,在实际进行产品设计时,如何将这些理论及公式用具体的电路或硬件平台实现出来,仍然是摆在广大工程师面前的一个巨大难关。尤其对于数字通信专业来讲,由于涉及的理论知识比较复杂,真正进行工程设计时才发现根本无从下手。采用MATLAB、System View等软件对通信理论进行仿真,虽然可以直观地验证算法的正确性,并查看仿真结果,但这类软件的仿真毕竟只停留在算法或模型的仿真上,与真正的工程设计及实现完全是两个不同的概念。FPGA技术很好地解决了这一问题。FPGA技术本来就是基于工程应用的技术,其仿真技术可以很好地仿真产品实际的工作情况,尤其是时序仿真技术,在计算机上通过了时序仿真的程序设计,几乎不再需要修改就可以直接应用到工程中。这种设计、验证、仿真的一体化方式可以极好地将理论与工程应用结合起来,从而提高学习兴趣。 FPGA技术因其快速的并行运算能力,以及独特的组成结构,在电子通信领域已成为必不可少的实现平台之一。本书的目的正是架起一座教科书理论与工程设计实践之间的桥梁,通过具体的设计实例,详细讲解从理论到工程实现的方法、步骤和过程,以便工程技术人员尽快掌握利用FPGA平台实现数字通信技术的方法。 目前,市场上已有很多介绍ISE、QuartusⅡ等FPGA开发环境,以及VHDL、Verilog HDL等硬件编程语言的书籍。如果我们仅仅是使用FPGA来实现一些数字逻辑电路,或者理论性不强的控制电路设计,掌握FPGA开发工具及一种硬件描述语言就可以开始工作了。数字通信技术的理论性要强得多,采用FPGA平台实现数字通信技术的前提条件是对理论知识首先要有深刻的理解。在理解理论知识的基础上,关键的问题是根据这些通信理论或公式,利用FPGA的特点,找到合适的算法实现结构,理清工程实现的思路,并采用Verilog VHDL等硬件编程语言对其进行正确的实现。因此,要顺利地读懂本书,除掌握用FPGA实现数字通信技术的知识和技能外,读者还需要对FPGA的开发环境和设计语言有一定的了解。 作者在写作本书的过程中,兼顾数字滤波器的理论,以及工程设计过程的完整性,重点突出FPGA设计方法、结构、实现细节,以及仿真测试方法。在讲解理论知识的时候,重点从工程应用的角度进行介绍,主要介绍工程设计时必须掌握和理解的知识点,并且结合FPGA的特点进行讨论,便于读者尽快地找到理论与工程实现之间的结合点。在讲解实例的FPGA实现时,不仅绝大多数实例给出了完整的Verilog HDL程序代码,并且从思路和结构上对每段代码均进行了详细的分析和说明。根据作者的理解,针对一些似是而非的概念,结合工程实例的仿真测试加以阐述,希望能够对读者提供更多有用的参考。相信读者按照书中讲解的步骤完成一个个工程实例时,会逐步感觉到理论与工程实现之间完美结合的畅快。随着读者掌握的工程实现技能的提高,对数字滤波器理论知识的理解也必将越来越深刻,重新阅读以前学过的滤波器原理时,头脑里就更容易构建起理论与工程实现之间的桥梁。 如何使用本书 本书讨论的是数字滤波器的MATLAB与FPGA实现。相信大部分工科院校的学生对MATLAB软件应该都会有一个基本的了解。由于其易用性及强大的功能,MATLAB已经成为数学分析、信号仿真、数字处理必不可少的工具;而且,MATLAB具有专门针对数字信号处理的常用函数,如滤波器函数、傅里叶分析函数等,在进行数字滤波器设计时,借用MATLAB常常会起到事半功倍的效果。因此,在具体讲解某个实例时,通常会采用MATLAB作为仿真验证工具。 第2章的混频器设计实例给出了完整的FPGA设计过程,也给出了全书实例讲解的基本步骤和方法。先采用MATLAB对需要设计的工程进行仿真,一方面仿真算法过程及结果,另一方面生成FPGA测试仿真所需的测试输入数据;而后在QuartusⅡ平台上编写Verilog HDL程序对实例进行设计实现;编写测试激励文件,采用Modelsim软件对Verilog HDL程序进行仿真;查看Modelsim仿真波形结果,并将仿真数据写入外部文本文件中;最后编写MATLAB程序,对Modelsim仿真结果数据进行分析处理,验证FPGA设计的正确性。 限于篇幅,实例的部分MATLAB程序代码或Verilog HDL代码没有在书中列出,随书配套的光盘上收录了本书所有实例的源程序及工程设计资源。程序代码及工程文件按章节序号置于光盘根目录下,读者可以将其直接复制到本地硬盘中运行。需要说明的是,在大部分工程实例中,均需要由MATLAB产生FPGA测试所需的文本数据文件,或者由MATLAB读取外部文件进行数据分析,同时FPGA的仿真文件常常也需要从指定的路径下读取外部文件数据,或将仿真结果输出到指定的路径下。文件的路径均在程序中指定为绝对路径,如fid=fopen('D:FilterVerilogChapter_2E2_4Mixersimulationmodelsimout.txt')。因此,读者将FPGA工程文件或MATLAB程序复制到本地硬盘后,请将程序文件中指定文件的绝对路径的代码进行修改,以确保仿真测试程序在正确的路径下读取文件。 致谢 有人说,每个人都有他存在的使命,如果迷失他的使命,就失去了他存在的价值。不只是每个人,每件物品也都有其存在的使命。对于一本书来讲,其存在的使命就是被阅读,并给阅读者带来收获。数字通信的MATLAB与FPGA设计系列的书,能够对读者在工作及学习中有所帮助,是作者莫大的欣慰。 作者在写作本书的过程中查阅了大量的资料,在此对资料的作者及提供者表示衷心的感谢。由于写作本书的缘故,重新阅读一些经典的数字通信理论书籍时,再次深刻感受到前辈们严谨的治学态度和细致的写作作风。 在此,感谢父母,几年来一直陪伴在我的身边,由于他们的默默支持,使得我能够在家里专心致志的写作;感谢我的妻子刘帝英女士,她不仅是一位尽心尽职的优秀母亲,也是一位严谨细致的科技工作者,同时也是本书的第一位读者,在工作之余对本书进行了详尽而细致的校对;时间过得很快,女儿已经上四年级了,她最爱看书和画画,最近迷上了《西游记》,以前的儿童简化版已满足不了她的要求,周末陪她去书店买了一本原著,她常常自个儿被书中的情节逗得哈哈大笑,还常常要推荐给我看一些精彩的章节。 FPGA技术博大精深,数字通信技术种类繁多且实现难度大。本书虽尽量详细讨论了FPGA实现数字滤波器技术的相关内容,仍感觉到难以详尽叙述工程实现所有细节。相信读者在实际工程应用中经过不断的实践、思考及总结,一定可以快速掌握数字滤波器技术的工程设计方法,提高应用FPGA进行工程设计的能力。由于作者水平有限,不足之处在所难免,敬请读者批评指正。欢迎大家就相关技术问题进行交流,或对本书提出改进意见及建议。请读者访问网址http://duyongcn.blog.163.com以获得与该书相关的资料及信息,也可以发邮件至duyongcn@sina.cn与我进行交流。 作 者 2015年3月
第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 滤波器设计分析工具FDATOOL 41 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 载波同步环设计的一般步骤 324 9.4 Costas环的FPGA实现 326 9.4.1 顶层模块的Verilog HDL实现 326 9.4.2 鉴相器及环路滤波器的Verilog HDL实现 329 9.4.3 Costas环实现后的仿真测试 330 9.5 小结 331 参考文献 332