登录
首页 » Others » 华为C++语言编程规范

华为C++语言编程规范

于 2020-12-12 发布
0 114
下载积分: 1 下载次数: 4

代码说明:

华为C++语言编程规范,内部资料se语言编程规范内部公开目录0说明前言代码总体原则与语言编程规范的关系规范实施、解释术语定义1常量62初始化和类型转换声明、定义与初始化类型转换3函数12内联函数函数参数函数指针4类...14类的设计构造、赋值和析构继承重载5作用域、模板和C+其他特性..25作用域模板其他6资源分配和释放287异常与错误处理33异常错误处理策略8标准库369程序效率语言特性的性能分级语言的性能优化指导华为机密,未经许可不得扩散第页共页se语言编程规范内部公开0并发4511风格48标小符命名与定义排版注释文件组织12可移植性(兼容性).4913全球化52多语言输入输出单一版本时区夏令时14业界编程规范和书籍55业界编程规编程指南《编程规范条规则、准则与最佳实践》《微软一站式示例代码库》扩展学习材料华为机密,未经许可不得扩散第页共页se语言编程规范内部公开语言编程规范0说明前言随着业务的发展和产品架构的演进,越来越多的传统电信产品使用C++语言,很多新型产品更是把C+作为首选。C艹继承于C,包含C的所有特性,同时又增加了新语言特性,如面向对象、泛型设计等。目前C-+使用现状是:基础技能薄弱,陷入很多误区,不能很好地发挥C++的作用。为了帮助团队合理使用C-+,规避语言陷阱,特制定本规范代码总体原则毘C语言编稈一样,C++编稈遵循通用原则:1、清晰第一。清晰性是易于维护、易于重构的程序必需只备的特征。2、简洁为美。简洁就是易于理解并且易于实现。3、选择合适的风格,与代码原有风格俣持一致。除此之外,C+编程还应该注意以下方面1、正确使用C+面向对象技术使得程序结枃清晰、简单,提高了代码的重用性,但又隐藏了很多內部实现细节,内存模型复杂,不小心会误入陷阱,比如:拷贝构造函数,赋值操作符,析构函数,重载等为了简化代码,改善代码结构,提髙编程效率,一些团队引入新特性和第三方库,如:模板技术、STL、Bost等,由于缺乏足够的理解,使用中屡次发生问题,比如对达代器( Iterator)使用不当导致功能失常,甚至稈序崩溃。所以,必须深入理解C艹+对象布局、內存模型等,了解编译器背后所做的处理,才能在编程中知道如何止确使用2、安全高效跟其他流行的高级语言、脚本语言相比,C艹+运行速度快,天然适合开发核心通信部件,但是这些部件对稳定性的要求非常高,不容许发生异常、失效以及崩溃。C艹-具有直接操作硬件、访问內存的能力提供了指针、地址运算等灵活特性,稈序员可以仟意发挥,增加了出锖的几率。所以在追求速度与灵峾性的冋同时,一定要注意保持程序的健壮性。在増强代码稳定性过桯中,程序员通常采用i-else等防御式编程,使得代码非常臃肿,可适当采用RAIⅠ、智能指针等技术华为机密,未经许可不得扩散第页共页se语言编程规范内部公开与语言编程规范的关系本文在《华为技术有限公司C语言编程规范》(简称C规范)基础上,通过详细阐述如何规避C++语言复杂性,避免C+-的低级错误,确保有效使用C-+语言特性,代码易于维扩。C规范里面相同的内容,夲规范不再重复。例如头文伻、变量、表达式、代码编辑与编译、可测试性安全性、单元测试等章节经过审妉,完全适合C+,本规范不再重复。标识符命名与定义、注祥、排版与柊式等内容也适合C++,仅仅添加了少量的C+特有的规则和建议,合并成风格一章;涵数章节增加了內联函数、函数参数等内容;可移植性増加了64位以及C艹+专冇的薮据转换等內容;质量保证也符合C艹+的需要,将资源分配和释放部分C艹特有的内容编写成单独章节;宏、常量也符合C++,考虑到C++普遍使用 cons t,增加了常属性( const)章节。新増初始化和类型转换,类,作用域、模板与C艹-其他特性,异常与错误处理,并发,全球化等C艹特有的内容本规范和C规范有沖突的地方,以本规范为准。规范实施、解释本规范制定了编写C+语言程序的基本原则、规则和建议。木规范适用于公司内使用C++语言编码的所有软件。本规范自发布之日起生效,对以后新编写的和修改的代码应遵守本规范本规范由软件工稈体系发布和维护。实施屮遇到问题,可以到论坛http://hi3ms.huaweicom/group/1735/threads.htmi上讨论。在某些情况下需要违反本规范给出的规则时,相关团队必须通过一个正式的沇程来评审、决貪规则违反的部分,个体程序员不得违反本规范中的相关规则。术语定义原则:编程时必须坚持的指导思想规则:编程时强制必须遵守的约定。建议:编程时必效加以考虑的约定说明:对此原则/规则/建议进行必要的解释。示例:对此原则/规则/建议从好、不好两个方面给出例子。延伸阅读材料:建议进一步阅读的参考材料。常量不变的值更易于理餡、跟踪和分析,所以应该尽可能地使用常量代替变量,定义值的时侯,应该把 const作为默认的选项规则1.1使用 const常量取代宏华为机密,未经许可不得扩散第页共页se语言编程规范内部公开说明:宏是简单的文本替换,在预处理阶段时完成,运行报错时直接报相应的值;跟踪调试时也是显示值,而不是宏名;宏没有类型检查,不安全;宏没有作用域。示例defi: e MAX MSISDN LEN(20)//不好的例子const int MAX MSISDN LEN=20;/好的例子规则1.2一组相关的整型常量应定义为枚举说明:之所以使用枚举,基于:●枚举比# define或 const int更安全,因为编译器会检查参数值是否是否位于枚举取值范围内,从而避免错误发生。示例//好的例子enum DayofWeek( sunday, monday, tuesday, wednesday, thursday, friday, saturday)ienum Ccloriblack, blue, whiter red, purp_e]BOOL CclorizeCalendar (DayofWeek today, Color todays Color)Coorizeca1 endor(b1ue, sunday);//编译报错,1ue和 Sunday位置错误//不好的例子:const int sunday=0iconst int monday= 1const int b⊥acKconst int blueBOOL CclorizeCalendar (int today, int todays ColorCoorizecalendar(blue, sunday);//不会报错当枚举值需要对应到具体数值时,须在声明时昰示赋值。否则不需要昰式赋值,以避免重复赋值,降低维护(增加、朋除成员)工作量示例好的例子:s协议里定义的设备I值,用于标识设备类型cnum TDcv-cclypcDEV UNKNOWN --l,DEV DSMP 0DEV工SMGDEV WAPPORTAL=2程序内部使用,仅用于分类的情況,不应该进行显式的赋值。示例/好的例子:程序中用来标识会话状态的枚举定义enum TSessionstateSESSION STATE INITISESSTON STATE CTOSEDSESSION STATE WA工TING●应当尽量避免枚举值亘复,如必须重复也要用己定义的枚举来修饰,例如:typed f enumRTCP SR 200,RTCP MIN TYPE RTCP SR//must be lowest known typeRTCP RR华为机密,未经许可不得扩散第页共页se语言编程规范内部公开RTCP SDES= 202RTCP BYE203,RTCP APP204,RTCP RTPFB=205RTCP PSEB =206/RTCP XR207RTCP RSI =208RTCP PUBPCRTS =209RTCP MAX TYPF= RTCP PUB PORTS //must be highest known typertcp type ti规则1.3不相关的常量,即使取值一样,也必须分别定义说明:一个常量只用来表示一个特定功能,即一个常量不能有多种用途。示例:/好的例子:协议和协议B,于机号( (MSISDN)的长度都是20。unsigned const int. A MAX MST SDN LEN0;unsigned const int B MAX MSI SDN LEN 20//或者使用不同的名字空间namespace alibunsigned const int MAX MSISDN LEN=20;namespace blibunsigned const int MAX MSISDN LEN =20建议1.1尽可能使用 const说明:在声明的变量或参数前加上关键字 const用于指明变量值不可被篡改。类成员函数加上 const限定符表明该函数不会修改类成员变量的状态使用 const常见的场景:函数参数:传递引用时,如果函数不会修改传入参数,该形参应声明为 const。成员函数:访问函数(如get函数):不修改任何数据成员的函数:未调用非 cons t函数、未返回数据成员的非 const指针或引用的函数。数据成员:如果数据成员在对象构造之后个再发生变化,可将其定义为 cons t。2初始化和类型转换声明、定义与初始化规则2.1禁止用 memcpy、 memset初始化非POD对象说明:PO全称是“ Plain0 ld Data”,是C++98标准(ISO/IEC14882, first edition,19980901)中引入的一个概念,POD类型主要包括int,char, float, double, enumeration,woid,指针等原始类型及其集合类型,不能使用封装和面对对象特性(如用户定义的构造/赋值/析构函数、基类、虚函数等)。华为机密,未经许可不得扩散第页共页se语言编程规范内部公开由于非P0D类型比如非集合类型的 class对象,可能存在虚函数,内存布局不确定,跟编译器有关,滥用内存拷贝可能会导致严重的问题即使对集合类型的 class,使用直接的内存拷贝和比较,破坏了信息隐蔽和数据保护的作用,也不提倡memcpy、 memset操作示例:×××产品程序异常退出( corc dump)。经过现场环境的模似,程序产生 COREDUMP,其原因是:在初始化函数内使用 memset(this,0,sizeof(*this))进行了类的初始化,将类的虚函数表指针被清空,从而导致使用空指针。解决方案:使用C艹构造函数初始化,不要便用 memset函数初始化类对象建议2.1变量使用时才声明并初始化说明:变量在使用前未赋初值,是常见的低级编程错误。使用前才声明变量并同时初始化,非常方便地避免了此类低级错误。在函数开始位置声明所有变量,后面才使用变量,作用域覆盖整个函数实现,容易导致如下问题:程序难以理解和维护:变量的定义与使用分离变量难以合理初始化:在函数丌始时,经常没有足够的笮息进行变量初始化,往往用某个默认的空值(比如零)来初始化,这遥常是一种浪费,如果变量在被赋于有效值以前使用,还会导致错误。遵循变量作用域最小化原则与魷近声明原则,使得代码更容易阅读,方便了解变量的类型和初始值特别是,应使用初始化的方式替代声明再赋值示例:不好的例子:声明与初始化分离string name;//声明时未初始化:调用缺省构造函数nane=" zhangsan";//再次调用赋值操作符函数;声明与定义在不同的地方,理解相对困难好的例子:声明与初始化一体,理解相对容易string name(" zhangsan");//调用一次构造函数建议2.2避免构造函数做复杂的初始化,可以使用“init”函数说明:正如函数的变量都在函数内部初始化一样,类数据成员最好的初始化场所就是构造函数,数据成员都应该尽量在构造函数中初始化以下情况可以使用init(函数来初始化:需要提供初始化返回信息。数据成员初始化可能抛异常。●数据成员初始化大败会造成该类对象初始化失败,引起不确定状态数据成员初始化依赖this揞针:构造凶数没结束,对象就没有构造出来,构造凶数內不能使用this成员数据成员初始化需要调用虚函数。在构造函数和析构函数中调用虚函数,会导致未定乂的行为示例:数据成员初始化可能拋异常:cl ass CPPRule华为机密,未经许可不得扩散第页共页se语言编程规范内部公开publicCEPRule(): size (0), res (null)i//仅进行值初始化long init (int size)//根据传入的参数初始化size,分配资源resr vateint siResourceptrx res//使用方法CPPRule ait(100)建议2.3初始化列表要严格按照成员声明顺序来初始化它们说明:编译器会按照数据成员在类定义中声明的顺序进行初始化,而不是按照初始化列表中的顺序,如果打乱初始化列表的顺序实际上不起作用,但会造成阅读和理解上的混淆;特别是成员变量之间存在依赖关系时可能导致BUG示例://不好的例子:初始化顺序与声明顺序不一致class Emp-oyeepublic:Employee(const charx firstName, const charx lastNamefirstName (firstName), lastName (lastName)r email (firstName.+-astName t huawei. com)ipr-vate:string email, firstName lastName类定义emai1是在 firstName, lastName之前声明,它将首先初始化,但使用了未初始化的ratNam和 lastName,导致错误。在成员声明时,应按照成员相互依赖关系按顺序声明。建议2.4明确有外部依赖关系的全局与静态对象的初始化顺序说明:如果全尻对象A的成员变量有外部依赖,比如依赖另外一个全局变量B,在A的构造函数中访问B,隐含的规则就是B先于A初始化,然而全局与静态对象的初始化与析构顺序未有严格定义,无法确保B已经完成初始化,而每次生成可执行程序都可能发生变化,这类BUG难以定位。通常采用单件( Singleton)模式或者把有依赖关系的全局对象放在一个文件中定义来明确初始化顺序冋一个文件屮,若全局对象a在全局对象b之前定义,则a一定会在b之前初始化;但是不同文件中的全局对象就没有固定的初始化顺序。可以在main0或 pthread once(内初始化一个运行期间不回收的指针类型转换避免使用类型分支来定制行为:类型分支来定制行为容易出错,是企图用C+编写C代码的明显标志。这是一种很不灵活的技术,要添加新类型时,如果忘记修改所有分支,编译器也不会告知。使用模板和虚函数,让类型自己而不是调用它们的代码来决定行为。华为机密,未经许可不得扩散第页共页

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • Swing样式大全(全56种经典)
    Swing样式大全(全56种经典)
    2020-12-11下载
    积分:1
  • MFC数字图像处理(BMP格式读取 保存 DFT FFT 直方图 色调均化 缩放 模糊 锐化 滤镜 形态学处理 曲线 裁剪 灰度图 彩色图 自动阈值)
    使用MFC在VS2013编写的数字图象处理软件,能够实现相当强大的功能。BMP格式读取 保存 DFT FFT 直方图 色调均化 缩放 模糊 锐化 滤镜 形态学处理 曲线 裁剪 灰度图 彩色图 自动阈值 等等...除此之外还有很多其他小功能...建议使用VS2013打开!!!核心代码在Bmp.cpp中!!!更新文档:2014年6月18日更新说明:这次应该是上交的最后一次作业了,在今日的展示结束之后总体情况还好,但是发现了几个问题。首先是这个程序是在win8环境下设计的,所以程序的一些大小参数以及按钮图片的位置参数是适合在win8的环境下操作,在设计报告中使用的操作系统也是w
    2020-12-05下载
    积分:1
  • 黄国酬 dw2xls 最新版.rar
    【实例简介】包括: 报表组件功能说明 dw2xls.pbl dw2xlsDemo.pbl ttf16.ocx PB9版本
    2021-11-27 00:31:29下载
    积分:1
  • 电子科技大学 - 詹惠琴 - 电子测量原理 PPT
    电子科技大学 - 詹惠琴 - 电子测量原理第1章 测量的基本原理.ppt 第2章 测量方法与测量系统.ppt第3章 测量误差及数据处理.ppt第4章 时间频率测量.ppt第5章 电压测量.ppt 第6章 阻抗测量.ppt第7章 信号波形测量(new).ppt 第8章 信号的产生.ppt第9章 信号分析和频域测量(新).ppt第10章 线性系统频率特性测量和网络分析(新).ppt第11章 数字系统测试技术.ppt第12章 测试系统集成技术.ppt电子测量原理教材勘误表.doc
    2020-12-08下载
    积分:1
  • 蔡氏电路的仿真
    蔡氏混沌电路的仿真Chua~s circuitpassword:123456
    2020-12-09下载
    积分:1
  • 近世代数课后答案和习集.rar
    【实例简介】抽象代数即近世代数。   代数〔Algebra〕是数学的其中一门分支,当中可大致分为初等代数学和抽象代数学两部分。   初等代数学是指19世纪上半叶以前发展的方程理论,主要研究某一方程〔组〕是否可解,如何求出方程所有的根〔包括近似根〕,以及方程的根有何性质等问题。
    2021-12-02 00:39:33下载
    积分:1
  • MATLAB-SIMULINK通信系统建模与仿真实例分析
    MATLAB-SIMULINK通信系统建模与仿真实例分析,Simulink在通信上应用,非常实用的一本书。內容簡介本書系統地介紹了通信建模仿真方法和模型驗證技術,並結合作者近年在教學科硏中所設計的大量基礎的和較深入的建模仿真實例,詳細討論了 Matlab/ Simulink作為仿真實現平台在電子與通信工程中應用的基木方法、技巧和難點。木書重點討論了建模仿真原理和相鬨的數值計算方法、模擬通信系統、模數轉換、調製貝編碼、信道模擬、載波與符號同步、信道均衡、跳頻系統和直接擴頻系統、通信模型正確性評估、仿寘數據驗證和數據處理技術等內容,並在仿真實例中展示了科學研究論文和報告所必須的數據處理和表現技巧本書提供了約150個建模仿真實例,80多道思考題,以及全部實例代碼和一個電子教案這些實例根據基木數學原理,結合 Simulink的S凼數編程,也使用了通信工具箱、信婋處理工具箱和相關模型庫的模塊和函數,以便於讀者追源求本,深入理解建模和仿真的實質。本書可作為高等院校通信工程、電子信息類專業的本科生和硏究生系統仿真課程的教材或進行相關課題硏究的參考書,也可作為相關專業課程設計和畢業設計等綜合性實踐教學的指導材料,還可供通信工程專業技術人員、教師等作為解決通笮系統設計、評估和建模仿真領域實際問題的參考資料。前Matlab語言由於其語法的簡潔性、代碼接近於自然數學措述方式以及具有豐富的專業凶數庫等諸多優點吸引了眾多的科學研究工作者,越來越成為科學研究、數值計算、建模仿真以及學術交流的事實標準。 Simulink作為 Matlab語言上的一個可視化建模仿真平台,起源於對自動控制系統的仿真霱求,它採用方框圖建模的形式,更加貼近於工稈習慣。目前, Matlab/ Simulink的應用已經遠遠超越了数值計算和控制系統仿真等傳統領域,在幾乎所有理工學科中形成了為數眾多的專業L具庫和函數庫,口益成為科學研究和上程設計中口常的計算和仿真試驗工具。隨著 Matlab/ Simulink通信、信號處理專業函數庫和專業工貝箱的成熟,他們日益為廣人通信技術領域的專家學者和工程師所熟悉,在通信理論硏究、算法設計、系統設計、建模仿真和性能分析驗證等方面的應用也更加鷹泛。 Simulink可化仿真工具能夠以很直觀的方框晑方式形象地對通信系統進行建模,並以「實時」和動畫的方式來將模型仿貞結果(如波形、頻譜、敷據曲線等)顯小岀來,更便於對通信系統的物理概念和運行過程的直覲理解,所以近年來在通信工程專業中得到了廣人師生的重視和廣泛應用,在理論教學、課程實踐環節以及理論和技術前沿的研究中發揮了重要作用。本書以通信原理為主線,從系統建模原理和仿真的數值計算方法入手,詳細介紹了 Matlab/ Simulink在通信系統建模和仿貞中的應用原理、內容方法和特點,並結合作者在科研和教學中的應用硏究,列舉了大量的仿真實例。通過這些實例,以期逹到兩個目的:其一是通過系統建模過程對 Matlab/ Simulink基本建模仿真方法的實質性理解,以掌握通信系統仿真的思維方法;其二是通過仿真過程和仿真結果分炘對基本通信系統原理的理解,並逐漸培養系統建模和設計的自主能力和創造力本書的特點是:(1)本書重黠討論通信工程相開專業旳系統仿真原理和應用,以通信系統媾成為主線介紹系統仿真方法,以微分方程的數偵求解和概率論為數學基礎,注重介紹通信仿真技術中基礎性的,本質性的內容,並強調仿真的數學原理和方法,而不作為一本 Matlab語言或仿真編程的介紹手間哩論的學習必須要有實踐的支持,理諍的檢驗和驗證也必須通過實踐。數理基礎在通信工程專業中的地位應當得到重視。系統仿真技術是專業理諭和系統實驗相結合的有效途徑之一,學習通信系統仿真不是學習某個系統仿真軟件的功能,而是在紮實的數理基礎和通信理論基礎上以系統仿真軟件作為工具平台的實踐活動。基於這種認織,本書沒有系統介紹 Matlab/ Simulink軟件的使用方沄和編程函數,而是把 Matlab/ Simulink視為一種方便的仿真軟件工只在通信系統建模和仿真中加以應用。因,掌握本書所介紹的系統仿真思想方法也就意味著可以使用任何計算機語言來進行通信系統的建模仿真實踐(2)本書詳細請述了 Matlab/ Simulink的建模仿真原理,把S函數作為掌握 Simulink仿真的根本,並將 Simulink可視化建模和 Matlab語言編程統一起來。並通過眾多的實例,加強了對仿手段、思想方法以及系統原理等抽像內谷的理解和應用。讓者可以運行這些實例,或改變實例中系統模塊的參敷來進行實驗,甚仝可以在這些實例的基礎上媾建更加複雜的系統模型。(3)本書在內容編排上注意由淺入深,逐本求源,由普遍方法論到實際建模實驗,中通信單元模塊的建模到綜合系統仿真,循序漸進,便於閱讀和學習。本書對通信系統建模的敭學原哩的講述比峧詳細,重視數哩基礎在通信程中的應用,注重原理的論述,授人以漁以 Matlab/ Simulink作為實驗台。特別注重講解通信系統建模和仿真理諭中根本性的和基礎性的內容。(4)鑒於通信系統仿真涉及的內容廣泛,對數學基礎要求和的通信基本理論的理解要求較髙,又特別強調矩陣數值計算方法的編程實現能力,因此在每章之未總結了主要內容並對相開的參考資料進行了綜述,以供讀者進“步深入學習相開內容時參考。本書共分八章。第一章概述了通信系統仿真的原理和方法。對仿真建模的意義、模型的類型以及仿真的數學方法進行了論述。第二章是本書的基礎,主要介紹了 Matlab/ Simulink編程和建模仿真的原理,並通過大量的實例演示了應用 Matlab/ Simulink建模仿真的方法、關鍵問題和處理技巧。希望通過這些實例和實驗實作來使讀者對 Matlab/ Simulink的建模和仿真有一個實質性的理解第三章以通信系統的基本構造為主線,對通信系統基本模塊的原理和建模方法進行了剖論,並介紹了 Matlab/ / Simulink通信τ具箱和信號處理工具箱中的常用模塊及其原理和使用方法。以這些基本模塊為元素,給岀了通信系統中從信源、調製、信道到接收解調、同步等基木單元的仿真實例第四章簡要闡述了通信系統整體構架和層次伈建模的思想要點,比較了模擬通信系統和數字通信系統的仿真框架和兩者的異冋點,並討論了描述通信系統質量和性能的主要指標第五章對模擬通信系統的建模和彷寘問題進行了詳細的討論,包括對調幅廣播波形和頻譜、傳輸、接收機自動增益控原理和性能、檢波和解調、單邊帶通佁機、調頻立體聲系統以及彩色電視信婋和系統的仿真實例。對模擬通信系統運行原理的理解能力可以视為無線電和電子工程師最基本的專業素質來衡量第六章討論了模擬信號數字化問題的原理和仿寘實例,內容包括採樣定理的原理性仿真、Δ①D轉換、非均勻量化的原理和性能仿真、pCM編解碼過程、自適應PCM以及增量調製的原理仿真和性能結果等等。第七章以數字通信系統的關鍵技術和一些較深入的問題為饼究對象,討論了以誤碼率為性能指熛的蒙特卡羅仿真建模方法,基帶數據傳輸的碼型設計與仿真,基帶帶限傳輸系統、眼圖以及信道均衡問題,數字調製的波形和頻譜仿寘問題等等。以仿真實例介紹了擴頻抗干擾系統的原理和性能分析,包括直接序列擴頻系統和跳頻系統的仿真實例第八章討諭了通信系統模型評估和仿真結果的正確性驗證等問題。鮫詳細地介紹了苳特卡羅仿真方法的實現要點,隨機數的產生,各種隨機分佈以及他們之間的關係,並討諭了以數理統計方法為主的模型和仿真數據評估方法,插值和擬合等實驗數據處理方法等。對特卡羅仿真方法的試驗精度等方面進行了性能分析。全書所有實例的模型文件和程序代碼在 Matlab(R13)版本下調試通過。另外,還提供了個電子教案。讀者需要只有微積分、概率賏統計、信號貝系統、數字信號處理和通信原理的背景知識。本書計劃學時為40學時,課堂上重點是講述通信系統仿真的概念、方法和實例應用,而在教學實踐環節中可以通過本書的眾多實例以及各章的思考題來加深對仿真方法的掌握。建議讀者在哩解仿貞原理的基礎上,對本書列舉的實例給岀自己的仿貞模型和設計參數,然後與本書的模型和程序結果進行對比,這樣比單純運行、硏究實例模型將吏能夠激發讀者的創造力,也更具趣味性和挑戰性。本書給岀的思考題一般是對實例問題的深化或拓展以及對正文的補充。許多思考題在仿真條件、系統建模上給讀者預留了很大的創造空間,解答可以靈活多樣感謝澳大利亞新南威籣士大學電了與電氣工程學院的 Jinhong Yuan教授,在我做訪問學者期間,他提供了良好的學術研究環境。在與他以及他的同事們的學術交流中得到了許多啟迪,促成了本書的完成。本書在成書過程中得到了許多專家、教授的關心和幫助,特別是在與徐眀遠教授、姚紹文教授、龍華教授、劉增力卲教授等前輩和專家的父流中深受教益。在本書的寫作和相關課程教學和輔導工作中得到了宋耀蓮、楊秋萍、朵晽老師的幫助和攴持。龍洋、吳熹等研究生也幫助完成了本書部分章節的校閱工作。清華大學岀版社的魏江冮編輯對本書的策劃、編輯和校對付出了辛苦的勞動,在此對他們表示衷心地感謝。最後要感謝我的家人,沒有他們的關心和支持,本書是不能完成的本書可作為高等院校通信工程、電子信息類專業的本科生和硏究生系統仿真課程的教材或進行相闋課題硏究的參考書,乜可作為相關專業課程設計和畢業設計等綜合性實踐教學的指導材料。現代通信系統仿真技術不僅僅是對通信理論的驗證于段,也日遆成為通信新理論硏究、新協議、新算法開發和系統總體設計的重要實驗硏究途徑,因此,本書所介紹的系統仿真思想方法對於從事通信系統設計的專業技術人員也很具有參考價值。限於筆者水平,木書定有不妥甚至錯誤之處,懇請讀者予以批評指正。作者的聯繄電子郵件地址是: shaoyun999 sina. cor。邵玉斌零零七年|二月目錄前言第1章通信系統仿真的原理和方法論1.1通信系統仿真的現實意義·11.2計算機仿真的過程1.2.1系統仿真的數學基礎1.2.2計算機仿真的一般過程1.3通信系統模型的分類1.3.1按照系統層次分類1.3.2按照信號類型分類1.33按照系統特徵分類1.4通信系統仿真的方法14.1基於動態系統模型的狀態方程求解方法∵·14.2基於概率模型的蒙特卡羅方法∴1.43混合方法171.5通信系統仿真的優點和局限性1.6系統建模仿真方法與仿真工具···16.1系統建模仿真方法與仿真工具的關係1.6.2仿真環境的構成和要求1.6.3常用仿真工貝的選擇1.7小結舆文獻綜述1.8思考題第2章 Matlab/ Simulink系統建模和仿真基礎」2.1 Matlab編程仿真的方法21.1概述2.1.2靜態系統的 Matlab編程仿真2.1.3連續動態系統的 Matlab編程仿真2.1.4離散動態系統的 Matlab編程仿真2.1.5基於數據流和基於時間流的仿真方法2.2 Simulink仿真基礎2.1系統模型的方程和圖形化描述222 Simulink仿真平台2.2.3構建一個簡覃的 Simulink仿真系統224 Simulink子系統構建、封裝和自定義模塊庫23 Simulink的工作原理—S函數23.1S函數的工作原理2.32用 Matlab語言編寫S函數2.4用S函數編寫 Simulink基本模塊·2.4.1信源模塊·.··2.4.2信宿和信號顯示模塊952.4.3信號傳輸模塊2.5 Simulink仿真的數據結構和編程調用方法1082.51 Simulink中數據流的向量和矩陣形式2.52 Simulink中數據結構的轉換·253 Simulink與 Matlab的交互·1212.5.4編程調用仿真模型1242.6 Simulink在電子與通信系統仿真中的幾個關鍵問題12626.1系統仿真速率的設計和選擇12626,2並/串轉換和混合速率系統仿真2.6.3不同層次的仿真模型1302.6.4用 Simulink求解方程·……2.6.5同一數學模型的多種計算機仿真實现方法1372.7聲卡在 Simulink仿真模型中的應用·13727.1 Matlab興聲卜的接口函數∵1382.7.2 Simulink與聲卡的接口模塊139273在 Simulink中組建虚擬儀器2.8小結與文獻綜述1452.9思考題146第3章基本通信模塊的建模與分析1493.1濾波器模型1493.1.1濾波器的類型、參數指熛與設計1493.L.2瀘波器的實現1593.2信源模型1623.2.1確定信源1623.2.2偽隨機碼源1633.2.3統計信源一噪聲源1643.3信號參數的測量和分析3.3.1信號的能量和功率1653.3.2信號直流份量和交流份量1653.3.3離散時間信號的統計參數1663.3.4信號的頻域參數1693.4信道模型1903.4.1加性高斯白噪聲信道1903.42帶限加性噪聲信道·19134.3離散時間信道指標的定量計算1923.4.4錯誤概率信道∵1943.5調製舆解調3.5.1調製的通帶和基帶模型1973.5.2模擬調製與解調模型3.5.3數字調製與解調模型2043.6鎖相環和載波提取20636.1鎖相環的構成和建模仿真·2063.6.2用於或波提取的鎖相環仿真3.6.3鎖相頻率合成器的仿真3.7小結舆文獻綜述··2193.8思考題第4章構建通信系統仿真模型2214.1通信系統的基本模型4.1.1模擬通信系統基本模型·4.1.2數字通信系統基本模型234.2通信系統主要性能指標2244.3通信系統建模的要點4.4小結和文獻綜述·2:304.5思考題·第5章模擬通信系統的建模仿真5.1詞幅廣播系統的仿真5.2調幅的包絡檢波和相干解調性能仿頁比較5.3頻分復用和超外差接收機的仿真模型·365.4自動增益控制(AGC)原理與仿真2385.5調頻立體聲廣播系統的建模仿真55.1調頻立體聲廣播的信號結構和仿真模型··5.5.2調頻立體聲接收機模型5.6單邊帶調幅系統的建模仿真·445.6.1希爾伯特變換445.6.2單邊帶調嗝與解調原理56.3一個簡化的單邊帶電台仿真57彩色電視系統的建模仿真2535.7.1電視掃瞄原理的仿真5.7.2彩色電視信號的構成和頻譜仿真5.7.3簡化的彩色電視接收機仿真5.8小結與文獻綜述59思考题第6章模擬信號數字化6.1採樣定理的原理仿頁62A/D和D/A轉換器的仿真2676.3PCM編碼和解碼6.3.1信號的壓縮和擴張2686.3:2PCM編碼和解碼2716.4DPM編碼與解碼2766.5增量讖製2796.6小結與文獻綜述6.7思考题.第章數字通信系統的建模仿真857.1進制傳輸的錯誤率仿真·7.2基帶傳輸碼型設計··2877.2.1二電平碼2887.22三電平碼·7.3帶限基帶傳輸系統的仿真2947.3.1眼圖和無碼間串擾波形·7.32基帶傳輸系統的仿真2977.3.3定時提取系統的仿真7.3.4信道的時域均衡·3007.4數字調製的仿真3057.4.1信號的向量表小∵·3064.2數字調製信號的向量表示和仿真3077.5擴頻系統的仿真5.1偽隨機碼的產生7.5.2直接序列擴頻系統53跳擴類系統··317.6小結興文獻綜述3347.7思考题第8章通信系統建模仿真的評估3378.1概运8.2概率模型和蒙特卡羅方法∵3398.3隨機數的產生和常用隨機分佈8.3.1均勻分佈隨機數的產生3108.32產生其他常用隨機分佈的方法833產生任意指定區間上的均勻分佈3438.3.4三角分佈
    2020-12-10下载
    积分:1
  • 高斯混合概论假设密度滤波MATLAB代码
    备注比较详细的GM-PHD滤波,值得大家借鉴学习,是国外学者的开源代码
    2020-12-02下载
    积分:1
  • 基于QT(+MySQL)的学生信息管理系统的开发
    基于QT(+MySQL)的学生信息管理系统的开发
    2021-05-06下载
    积分:1
  • asp 旅游管理系统
    ASP 旅游管理系统 动态网页 含课程设计
    2020-12-09下载
    积分:1
  • 696524资源总数
  • 103827会员总数
  • 23今日下载