注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

构建数字通信技术理论与实践之间的桥梁

孤云出岫去留一无所系 朗镜悬空静躁两不相干 菜根谭.明.洪应明

 
 
 

日志

 
 

《数字滤波器的MATLAB与FPGA实现(第2版)》-前言  

2014-07-28 22:59:19|  分类: 数字滤波技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

为什么要写这本书

为什么要写这本书?两年前首次出版这本书时,我在前言中提到写作的原因主要有三条:其一是FPGA技术在电子通信领域得到了越来越广泛的应用,并已逐渐成为电子产品实现的首选方案;其二是国内市场上专门讨论如何采用FPGA实现数字通信技术的书籍相对欠缺;其三是数字通信技术本身十分复杂,关键技术较多,在一本书中全面介绍数字通信技术的FPGA实现难免有所遗漏,且内容难以翔实。因此,根据作者从业经验,将数字通信技术的关键技术大致分为滤波器技术、同步技术和解调技术三种,并尝试着先写滤波器技术,再逐渐完成其他两种关键技术的写作。在广大读者的支持和鼓励下,先后又出版了《数字通信同步技术的MATLABFPGA实现》和《数字调制解调技术的MATLABFPGA实现》两本书。这样,关于数字通信的FPGA实现的系列著作总算完成,三年前的构想总算得以成为现实!

数字滤波器一书出版后,陆续收到广大读者的反馈意见。一些读者直接通过邮件告知书中的内容对工作中提供的直接或间接的帮助;一些读者提出了很多中肯的有建设性的意见和建议;更多的读者通过邮件交流书中的相关设计问题;还有一些读者直接指出了书中一些描述不准确的地方以及部分文字上的错误。在即将完成数字调制解调技术一书的初稿时,出版社告知滤波器一书即将售罄,因此,正好借着改版的机会对全书进行一次修订和完善。

与第一版相比,全书除第5章和第6章没有进行文字上的修订外,其他章节均进行了或多或少的修订,其中改动较大的是第379章。此次改版主要涉及以下几个方面。

1更正了书中一些叙述不当的地方,大多是读者反馈回来的问题。

2对读者提问较多的地方,叙述得更加详细。

3)第2章修改了实例2-4VHDL设计,在实例中更加完整地展示了MATLABFPGA的数据交互过程。

4)第3章增加了“FPGA中数的运算”小节,更充分地讨论了有效数据字长的影响,以及定点数据运算过程中需要注意的事项。

5)第7章中增加了一节讨论“自适应陷波器”的内容。

6)第9章标题修改为“解调系统滤波器的FPGA实现”。由于符号同步及码型变换内容与滤波器关系不大,且原版讨论得也不够充分,因此直接删去了符号同步及码型变换的内容,这样更符合本书主讲数字滤波器这个主题。

7)配套光盘中的程序文件进行补充及优化。

通常来讲,一名电子通信专业的技术人员,在从业之初都会遇到类似的困惑:如何将从教材中所学的理论与实际中的工程设计结合起来?如何能够将这些教材中的理论转换成实际的电路?绝大多数数字通信类教材对通信的原理讲解十分透彻,但理论与实践之间显然需要有一些可以顺利通过的桥梁。一个常用的方法是通过采用MATLAB等工具进行软件仿真的方法来加深对理论的理解,但更好的方法显然是直接参与工程的设计与实现。

然而,刚毕业的工科院校学生极少有机会参加实际工程设计,工作中往往感到学校所学的理论知识很难与实际工程产品的实现联系起来。教科书上多是讲解通信原理性的内容,即使可以很好地解答教材后面的习题,或者说能够熟练地对书中的基本公式进行推导,在实际进行产品设计时,如何将这些理论及公式用具体的电路或硬件平台实现出来,仍然是摆在广大工程师面前的一个巨大难关。尤其对于数字通信专业来讲,由于涉及的理论知识比较复杂,真正进行工程设计时才发现根本无从下手。采用MATLABSystem View等软件对通信理论进行仿真,虽然可以直观地验证算法的正确性,并查看仿真结果,但这类软件的仿真毕竟只停留在算法或模型的仿真上,与真正的工程设计及实现完全是两个不同的概念。FPGA技术很好地解决了这一问题。FPGA技术本来就是基于工程应用的技术,其仿真技术可以很好地仿真产品实际的工作情况,尤其是时序仿真技术,在计算机上通过了时序仿真的程序设计,几乎不再需要修改就可以直接应用到工程中。这种设计、验证、仿真的一体化方式可以极好的将理论与工程应用结合起来,从而提高学习兴趣。

FPGA技术因其快速的并行运算能力,以及独特的组成结构,在电子通信领域已成为必不可少的实现平台之一。本书的目的正是架起一座教科书理论与工程设计实践之间的桥梁,通过具体的设计实例,详细讲解从理论到工程实现的方法、步骤和过程,以便于工程技术人员尽快掌握利用FPGA平台实现数字通信技术的方法。

目前,市场上已有很多介绍ISEQuartusFPGA开发环境,以及VHDLVerilog HDL等硬件编程语言的书籍。如果我们仅仅是使用FPGA来实现一些数字逻辑电路,或者理论性不强的控制电路设计,掌握FPGA开发工具及VHDL语法就可以开始工作了。数字通信技术的理论性要强得多,采用FPGA平台实现数字通信技术的前提条件是对理论知识首先要有深刻的理解。在理解理论知识的基础上,关键的问题是根据这些通信理论或公式,利用FPGA的特点,找到合适的算法实现结构,理清工程实现的思路,并采用VHDL等硬件编程语言对其进行正确的实现。因此,要顺利地读懂本书,掌握用FPGA实现数字通信技术的知识和技能,读者还需要对FPGA的开发环境和设计语言有一定的了解。

作者在写作本书的过程中,兼顾数字滤波器的理论,以及工程设计过程的完整性,重点突出FPGA设计方法、结构、实现细节,以及仿真测试方法。在讲解理论知识的时候,重点从工程应用的角度进行介绍,主要介绍工程设计时必须掌握和理解的知识点,并且结合FPGA的特点进行讨论,便于读者尽快地找到理论与工程实现之间的结合点。在讲解实例的FPGA实现时,不仅绝大多数实例给出了完整的VHDL程序代码,并且从思路和结构上对每段代码均进行了详细的分析和说明。根据作者的理解,针对一些似是而非的概念,结合工程实例的仿真测试加以阐述,希望能够对读者提供更多有用的参考。相信读者按照书中讲解的步骤完成一个个工程实例时,会逐步感觉到理论与工程实现之间完美结合的畅快。随着读者掌握的工程实现技能的提高,对数字滤波器理论知识的理解也必将越来越深刻,重新阅读以前学过的滤波器原理时,头脑里就更容易构建起理论与工程实现之间的桥梁。

本书的内容安排

1章首先介绍了滤波器的基本概念、FPGA的基本知识,以及Xilinx公司的主要器件。本章在介绍了FPGA的发展历程、结构及工作原理等基本知识后,对FPGA设计中经常使用到的各种IP核进行了简要说明。目前的FPGA厂家主要有Xilinx公司及Altera公司。两家公司几乎都有性能相近的产品,但所使用的开发工具无法通用。Xilinx公司作为FPGA的发明者及FPGA行业的领导者,通过不断应用尖端技术来长久保持它的行业领袖地位。由于不同器件的结构不同,因此各有其合理的应用领域,为了提高设计性能并节约产品成本,了解器件基本特性,合理选择最终的目标器件显得尤为重要。因此,本章最后对Xilinx公司的主要芯片进行了介绍,在后续章节中也将利用Xilinx公司的SpartanVirtex系列FPGA器件作为目标实现平台进行讲解。

2章首先介绍了硬件描述语言的基本概念及优势,并对VHDL语言进行了简要介绍。对本书使用到的软件开发仿真环境——ISE开发套件、Modelsim仿真软件、Synplicity综合软件以及MATLAB软件进行了简要介绍。最后以一个简单的混频器设计实例较为详细地阐述了FPGAMATLAB软件进行联合开发的过程,这也是本书后续章节在讲述各种滤波器设计时所采用的基本方法和流程。数字滤波器的FPGA设计与实现是一项将理论与实践紧密结合的技术,要求设计者不仅要十分清楚数字滤波器以及数字信号处理的基本原理,同时还需要掌握MATLAB软件的使用方法、VHDL编程以及FPGA实现技术。

数字信号在FPGA等硬件系统中实现时,由于受寄存器长度的限制,不可避免地会产生有效字长效应。设计工程师必须了解字长效应对数字系统可能带来的影响,并在实际设计中通过仿真来确定最终的量化位数、寄存器长度等内容。第3章在详细分析了字长效应在FPGA设计中的影响后,对几种常用的运算模块IP核进行介绍,详细阐述了各IP核控制参数的设置方法,并给出了几个简单的模块应用实例。IP核在FPGA设计中的应用十分普遍,尤其在数字滤波器等信号处理领域,采用设计工具提供的IP核进行设计,不仅可以提高设计效率,而且可以保证设计的性能。特别需要说明的是,从读者反馈的信息来看,虽然大多数问题是针对其他章节的实例提出的,但问题的本质不少都与数据有效字长效应有关。因此,建议读者详细阅读本章内容,并且深入理解FPGA中的数字运算,以及有效字长效应对信号处理所带来的影响。

从第4章开始,本书正式讨论各种数字滤波器的FPGA实现。FIR滤波器是数字滤波器中最常见、使用最广泛的一种滤波器。为便于读者深入了解FIR滤波器的设计原理及方法,本章简要讲述了与数字滤波器设计相关的基础理论知识。接着对常用的MATLAB函数设计方法进行了介绍。采用MATLAB设计出符合要求的滤波器系数后,还应采用VHDL等硬件编程语言进行设计实现。根据FPGA的结构特点,具体实现FIR滤波器时有几种不同的设计方法,本章详细阐述了几种常用结构的设计方法,最后介绍了ISE11.3提供的功能强大的FIR核。在实际工程设计中,如果目标器件提供了相应的FIR核,则建议读者尽量采用IP核的方法进行设计实现。

5章讨论了IIR滤波器的FPGA实现。IIR滤波器因其较高的滤波效率,十分利于在不需要严格相位特性的系统中使用。本章在介绍IIR滤波器基本原理时,重点对IIRFIR滤波器的异同点进行了比较。接下来对常用的5IIR滤波器设计函数进行了介绍,并比较了几种设计函数的滤波性能。IIR滤波器的FPGA实现相对于FIR滤波器来讲要复杂一些,主要原因在于其反馈结构,并且目前的FPGA设计软件并没有提供通用的IP核使用。本章详细阐述了IIR滤波器的FPGA实现过程,以及实现过程中需要注意的系数量化方法、计算输出数据位宽、MATLAB仿真及FPGA实现后仿真等关键问题。

6章首先介绍了多速率信号处理的一些基本概念,以及多速率信号处理的一般步骤。抽取与内插是多速率信号处理的基础,读者需要从原理上了解抽取与内插的具体过程,以及对信号在时域及频域的影响。抽取与内插操作本身十分简单,多速率信号处理的关键问题是如何有效设计滤波器。CIC滤波器的结构简单,没有乘法器,只有加法器、积分器和寄存器,适合于在高采样率条件下工作。半带滤波器可以使2倍抽取的每秒乘法次数比一般线性相位的FIR滤波器减少近1/2,因此特别适合应用于转换率为2的整数次幂变换的系统。需要注意的是,CIC滤波器及半带滤波器虽然十分节约资源,但均有其特定的使用条件。本章最后介绍了另一种在多速率信号处理中使用十分广泛的多相分解技术,并通过具体实例展示了多相结构滤波器的性能优势。

7章首先对自适应滤波器的概念、应用及一般原理进行了简单介绍,而后针对应用广泛的LMS算法原理、实现结构进行了阐述,并采用MATLABLMS算法进行了仿真验证。以LMS算法为基础,本章分别以通道失配校正系统、自适应均衡器、智能天线阵、自适应陷波器为具体实例,详细阐述了FPGA实现自适应滤波器算法的步骤、方法及过程。为给读者提供更多的设计参考,在讨论上述不同自适应滤波器的FPGA实现过程中,分别以常规LMS算法、符号LMS算法进行讨论。自适应滤波器相对于常规滤波器来讲,在FPGA实现过程中,关键在于清楚掌握算法实现过程中各数据变量的变化范围,并以此确定各中间变量的数据字长及小数点位置,同时还需根据各运算步骤所需的运算量,合理分配各时钟周期内的运算量,以提高系统的整体运算速度。

相对于时域滤波器而言,变换域滤波器给出了一个全新的滤波器设计思路。一些在时域无法滤除的干扰信号,在变换域可十分容易地滤除。具体选择哪种滤波器,要根据输入信号的统计特征、滤波器实现的复杂度、运算速度等因素综合考虑。第8章首先对变换域滤波器的基本概念、快速傅里叶变换(FFT)、ISE提供的FFT核等内容进行了简单介绍,这些知识都是进行变换域滤波器设计的基础。本章重点对变换域滤波器实现抗窄带干扰的FPGA设计与实现进行了详细讨论。采用变换域滤波技术实现窄带干扰滤除的原理并不复杂,在FPGA设计与实现过程中,难点在于准确把握各模块之间、各运算步骤之间,以及各信号接口之间的时序关系,并在设计中严格按照这些时序关系进行程序的编写。从这个实例中读者可以进一步体会到时序在FPGA设计中的重要性。

为了使读者对通信系统的FPGA实现有更完整的认识,本书最后一章以一个较为完整的DPSK解调系统为实例,在简单介绍数字接收机、DPSK调制解调原理的基础上,详细讨论了整个工程设计的全过程。尤其对解调环路中的数字滤波器设计、载波环路的参数设计、FPGA实现细节进行了详尽的分析,并给出了具有指导意义的几个设计原则。在整个工程设计过程中,可以看到,滤波器仍然是解调系统的重要组成部分,其性能的优劣直接影响到整个系统的性能。通过详细分析讨论,并动手设计整个DPSK解调系统,相信读者会对无线通信技术的FPGA实现方法、手段、过程有较为深刻的理解。

关于FPGA开发环境的说明

众所周知,目前两大厂商XilinxAltera的产品占据了全球90%FPGA市场。可以说,在一定程度上正是由于两家FPGA公司的相互竞争态势,有力地推动了FPGA技术的不断发展。虽然HDL的编译及综合环境可以采用第三方公司所开发的产品,如ModelsimSynplify等,但FPGA器件的物理实现必须采用各自公司开发的软件平台,无法通用。Xilinx公司的主流开发平台是ISE系列套件,Altera公司目前的主流开发平台是QUARTUS 系列套件。与FPGA开发平台类似,HDL也存两种难以取舍的选择:VHDLVerilog HDL

如何选择开发平台以及HDL语言呢?其实,对于有志于从事FPGA技术开发的技术人员来讲,选择哪种平台及HDL语言并不重要,因为两种平台具有很多相似地方,精通一种HDL语言后,再学习另一种HDL语言也不是一件困难的事。通常来讲,可以根据周围同事、朋友、同学,或公司的主要使用情况进行选择,这样在学习的过程中,可以很方便地找到能够给你指迷津的专业人士,从而加快学习进度。

本书采用的是Xilinx公司的FPGA器件作为开发平台,采用VHDL语言作为实现手段。由于VHDL语言并不依赖于某家公司的FPGA产品,因此本书的VHDL程序文件可以很方便地移植到Altera公司的FPGA产品上。如果程序中应用了IP核资源,两家公司的IP核通常是不能通用的,这就需要根据IP核的功能参数,在另外一个平台上重新生成IP核,或编写HDL代码来实现。

有人说过这样一句话:“技术只是一个工具,关键在于思想。”将这句话套用过来,对于本书来讲,具体的开发平台以及HDL语言只是实现数字通信技术的工具,关键在于设计的思路和方法。因此,读者完全不必要过于在意开发平台的差别,相信只要掌握了本书所讲述的设计思路和方法后,加上读者已经具备的FPGA开发经验,采用任何一种FPGA平台都可以很快设计出满足用户需求的产品。

如何使用本书

本书讨论的是数字滤波器的MATLABFPGA实现。相信大部分工科院校的学生对MATLAB软件应该都会有一个基本的了解。由于其易用性及强大的功能,MATLAB已经成为数学分析、信号仿真、数字处理必不可少的工具;而且,MATLAB具有专门针对数字信号处理的常用函数,如滤波器函数、傅里叶分析函数等,在进行数字滤波器设计时,借用MATLAB常常会起到事半功倍的效果。因此,在具体讲解某个实例时,通常会采用MATLAB作为仿真验证工具。

2章的混频器设计实例给出了完整的FPGA设计过程,也给出了全书实例讲解的基本步骤和方法。先采用MATLAB对需要设计的工程进行仿真,一方面仿真算法过程及结果,另一方面生成FPGA测试仿真所需的测试输入数据;而后在ISE平台上编写VHDL程序对实例进行设计实现;编写Testbench测试激励文件,采用Modelsim软件对VHDL程序进行行为和时序仿真;查看Modelsim仿真波形结果,并将仿真数据写入外部文本文件中;最后编写MATLAB程序,对Modelsim仿真结果数据进行分析处理,验证FPGA设计的正确性。

限于篇幅,实例的部分MATLAB程序代码或VHDL代码没有在书中列出,随书配套的光盘上收录了本书所有实例的源程序及工程设计资源。程序代码及工程文件按章节序号置于光盘根目录下,读者可以将其直接复制到本地硬盘中运行。需要说明的是,在大部分工程实例中,均需要由MATLAB产生FPGA测试所需的文本数据文件,或者由MATLAB读取外部文件进行数据分析,同时FPGA仿真的Testbench文件常常也需要从指定的路径下读取外部文件数据,或将仿真结果输出到指定的路径下。文本文件的路径均在程序中指定为绝对路径,如fid=fopen('D:\DuYong\Filter_VHDL\MultHalfBand\E6_11_Int_Sin.txt''w')。因此,读者将FPGA工程文件或MATLAB程序复制到本地硬盘后,请将程序文件中指定文件的绝对路径的代码进行修改,以确保仿真测试程序在正确的路径下读取文件。

致谢

有人说,每个人都有他存在的使命,如果迷失他的使命,就失去了他存在的价值。不只是每个人,每件物品也都有其存在的使命。对于一本书来讲,其存在的使命就是被阅读,并给阅读者带来收获。数字通信的FPGA设计系列的书,能够对读者在工作及学习中有所帮助,是作者莫大的欣慰。

作者在写作本书的过程中查阅了大量的资料,在此对资料的作者及提供者表示衷心的感谢。由于写作本书的缘故,重新阅读一些经典的数字通信理论书籍时,再次深刻感受到前辈们严谨的治学态度和细致的写作作风。

感谢电子工业出版社的大力支持,这本书能够改版,使得我有机会在采纳广大读者反馈意见的基础上,改正第一版中的一些不足之处,并尽力使这本书变得更加完善。

在此,感谢父母,几年来一直陪伴在我的身边,由于他们的默默支持,使得我能够在家里专心致志的写作;感谢我的妻子刘帝英女士,她不仅是一位尽心尽职的优秀母亲,也是一位严谨细致的科技工作者,同时也是本书的第一位读者,在工作之余对本书进行了详尽而细致的校对;特别值得一提的是我即将上小学四年级的女儿,晚上作业完成之后已经不再自告奋勇地说帮我做作业,更多的时候是早早约好同学到外面玩去了。

FPGA技术博大精深,数字通信技术种类繁多且实现难度大。本书虽尽量详细讨论了FPGA实现数字滤波器技术的相关内容,仍感觉到难以详尽叙述工程实现所有细节。相信读者在实际工程应用中经过不断的实践、思考及总结,一定可以快速掌握数字滤波器技术的工程设计方法,提高应用FPGA进行工程设计的能力。由于作者水平有限,不足之处在所难免,敬请读者批评指正。欢迎大家与我就相关技术问题进行交流,交流请发邮件至duyongcn@sina.cn,也可以访问网址http://duyongcn.blog.163.com以获得与该书相关的资料及信息。

 

    

20146

  评论这张
 
阅读(313)| 评论(5)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017