书名:无线通信基础原书名:FundamentalsofWirelessCommunication原出版社:CambridgeUniversityPress分类:电子电气>>通信作者:DavidTse,PramodViswanath译者:李锵周进等译;
马晓莉审校出版日期:2007-06-30语种:简体中文开本:16开页数:440定价:59.00元人民币目录第1章绪论11.1本书目标11.2无线系统21.3本书结构4第2章无线信道72.1无线信道的物理建模72.1.1自由空间、固定发射天线与接收天线82.1.2自由空间、运动天线92.1.3反射墙、固定天线102.1.4反射墙、运动天线112.1.5地平面反射122.1.6由距离和阴影引起的功率衰减132.1.7运动天线、多个反射体142.2无线信道的输入/输出模型142.2.1无线信道的线性时变系统142.2.2基带等效模型162.2.3离散时间基带模型182.2.4加性白噪声212.3时间相干与频率相干222.3.1多普勒扩展与相干时间222.3.2时延扩展与相干带宽232.4统计信道模型252.4.1建模基本原理252.4.2瑞利衰落与莱斯衰落262.4.3抽头增益自相关函数272.5文献说明312.6习题31第3章点对点通信:检测、分集与信道不确定性363.1瑞利衰落信道中的检测363.1.1非相干检测363.1.2相干检测393.1.3从BPSK到QPSK:自由度研究413.1.4分集433.2时间分集443.2.1重复编码443.2.2超越重复编码473.3天线分集523.3.1接收分集533.3.2发射分集:空时码543.3.3MIMO:一个2×2实例563.4频率分集613.4.1基本概念613.4.2具有ISI均衡的单载波623.4.3直接序列扩频673.4.4正交频分多路复用703.5信道不确定性的影响753.5.1直接序列扩频的非相干检测763.5.2信道估计773.5.3其他分集方案793.6文献说明813.7习题81第4章蜂窝系统:多址接入与干扰管理884.1概述884.2窄带蜂窝系统904.2.1窄带分配:GSM系统914.2.2对网络和系统设计的影响924.2.3对频率复用的影响934.3宽带系统:CDMA944.3.1CDMA上行链路954.3.2CDMA下行链路1054.3.3系统问题1064.4宽带系统:OFDM1074.4.1分配设计原理1084.4.2跳频模式1094.4.3信号特征与接收机设计1104.4.4扇区化1114.5文献说明1124.6习题113第5章无线信道的容量1215.1AWGN信道容量1215.1.1重复编码1225.1.2填充球体1225.2AWGN信道的资源1255.2.1连续时间AWGN信道1255.2.2功率与带宽1265.3线性时不变高斯信道1305.3.1单输入多输出(SIMO)信道1305.3.2多输入单输出(MISO)信道1315.3.3频率选择性信道1315.4衰落信道的容量1365.4.1慢衰落信道1365.4.2接收分集1385.4.3发射分集1405.4.4时间分集与频率分集1435.4.5快衰落信道1465.4.6发射端信息1495.4.7频率选择性衰落信道1565.4.8总结:观点的转变1565.5文献说明1585.6习题159第6章多用户容量与机会通信1676.1上行链路AWGN信道1686.1.1逐行干扰消除获得的容量1686.1.2与传统CDMA的比较1706.1.3与正交多址接入的比较1716.1.4一般K用户上行链路容量1726.2下行链路AWGN信道1736.2.1对称情况:获取容量的两种方案1746.2.2一般情况:叠加编码获取容量1766.3上行链路衰落信道1796.3.1慢衰落信道1796.3.2快衰落信道1806.3.3完整的信道辅助信息1826.4下行链路衰落信道18
1
RepMailDel重复邮件删除,重复邮件删除
2025/8/13 6:28:46 156KB RepMailDel
1
AES加密,全称为AdvancedEncryptionStandard,是目前广泛应用于数据加密的标准算法之一,特别是在软件开发领域。
C++是一种通用的编程语言,拥有强大的性能和灵活性,因此在实现AES加密时非常适用。
本文将深入探讨AES加密的基本原理以及如何在C++中实现AES加密。
AES是一种分组密码,它将明文数据分成128位的数据块进行处理。
加密过程分为多个步骤,包括字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。
这些步骤在10轮(对于128位密钥)或14轮(对于256位密钥)中重复执行,以确保数据的安全性。
密钥扩展也是一项关键操作,它将原始密钥扩展为足够多的轮密钥,用于每一轮的加密。
在C++中实现AES加密,首先需要理解并实现上述的加密步骤。
`aes.cpp`和`aes.h`两个文件通常包含了AES加密的函数定义和类声明。
`aes.cpp`是实现文件,包含具体的函数实现,而`aes.h`是头文件,定义了相关的类和函数接口,方便其他模块调用。
在`aes.cpp`中,可能会有一个名为`AES`的类,其中包含如`encrypt`和`decrypt`这样的成员函数,分别用于加密和解密。
这些函数可能接收一个128位的明文块和一个密钥作为输入,然后返回对应的密文块。
类内部可能还会有其他辅助函数,如进行字节替代、行移位和列混淆的函数。
`aes.h`文件则会包含`AES`类的声明,以及必要的公有成员函数和常量定义。
例如:```cppclassAES{public:AES(constunsignedchar*key,intkeySize);//初始化AES对象,设置密钥voidencrypt(unsignedchar*plaintext,unsignedchar*ciphertext);//加密函数voiddecrypt(unsignedchar*ciphertext,unsignedchar*plaintext);//解密函数private://其他私有成员变量和函数,如密钥扩展、字节操作等};```在实际使用时,开发者可以通过实例化`AES`类,并调用其`encrypt`或`decrypt`方法对数据进行加密和解密操作。
例如:```cppAESaes(key,16);//假设key是16字节的密钥unsignedcharplaintext[16],ciphertext[16];//...填充plaintext...aes.encrypt(plaintext,ciphertext);//...使用ciphertext...aes.decrypt(ciphertext,plaintext);//...plaintext恢复为原文...```AES加密在C++中的实现涉及到对加密流程的精确控制和内存操作,同时还需要注意效率和安全性。
通过`aes.cpp`和`aes.h`这两个文件,我们可以构建一个完整的AES加密库,方便在各种C++项目中集成和使用。
2025/8/12 9:24:26 17KB AES,C++
1
请审核人员注意,这不是重复上传,上一个版本存在bug,有人联系我之后再次修订上传,解决保存中文数据会丢失部分的问题,默认编码UTF-8,如果有使用其它编码的,可以调用writer的设置编码的方法writer.setCharactersetName("GBK");//GB2312经测试UTF-8支持中文字段,GBK和GB2312中文字段乱码中文内容都是正常的。
1
doc格式,60多页吧,几百道题吧,都有答案吧,看好在下!部分:1.求下面函数的返回值(微软)intfunc(x){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}假定x=9999。
答案:8思路:将x转化为2进制,看含有的1的个数。
2.什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。
申明一个引用的时候,切记要对其进行初始化。
引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。
声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。
不能建立数组的引用。
3.将“引用”作为函数参数有哪些特点?(1)传递引用给函数与传递指针的效果是一样的。
这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。
(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;
而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;
如果传递的是对象,还将调用拷贝构造函数。
因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。
(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误且程序的阅读性较差;
另一方面,在主调函数的调用点处,必须用变量的地址作为实参。
而引用更容易使用,更清晰。
4.在什么时候需要使用“常引用”? 如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。
常引用声明方式:const类型标识符&引用名=目标变量名;
例1inta;constint&ra=a;ra=1;//错误a=1;//正确例2stringfoo();voidbar(string&s);那么下面的表达式将是非法的:bar(foo());bar("helloworld");原因在于foo()和"helloworld"串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。
因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的。
引用型参数应该在能被定义为const的情况下,尽量定义为const。
5.将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?格式:类型标识符&函数名(形参列表及类型说明){//函数体}好处:在内存中不产生被返回值的副本;
(注意:正是因为这点原因,所以返回一个局部变量的引用是不可取的。
因为随着该局部变量生存期的结束,相应的引用也会失效,产生runtimeerror!注意事项:(1)不能返回局部变量的引用。
这条可以参照EffectiveC++[1]的Item31。
主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。
(2)不能返回函数内部new分配的内存的引用。
这条可以参照EffectiveC++[1]的Item31。
虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面。
例如,被函数返回的引用只是作为一个临时变量出现,而没有被赋予一个实际的变量,那么这个引用所指向的空间(由new分配)就无法释放,造成memoryleak。
(3)可以返回类成员的引用,但最好是const。
这条原则可以参照EffectiveC++[1]的Item30。
主要原因是当对象的属性是与某种业务规则(businessrule)相关联的时候,其赋值常常与某些其它属性或者对象的状态有关,因此有必要将赋值操作封装在一个业务规则当中。
如果其它对象可以获得该属性的非常量引用(或指针),那么对该属性的单纯赋值就
2025/8/9 4:02:35 45KB C C++ 算法 经典
1
Navoidroid现在,移动应用已成为人们日常生活中不可或缺的部分。
作为自动GUI测试的补充,手动GUI测试是应用质量的最后一道防线,尤其是在发现可用性和可访问性问题方面,这些问题很难通过自动化测试来检测。
但是,重复的操作以及某些功能的容易丢失使手动测试耗时,费力且效率低下。
受游戏中糖果闪闪发光的糖果启发(提示提示移动)的启发,我们开发了一种名为NaviDroid的工具,可通过突出显示的下一步操作导航人类测试人员,以进行更有效的测试。
示范影片NaviDroid使用场景示例
2025/8/8 7:56:13 156MB Java
1
MATLAB仿真高速目标检测-基于keystone变换的微弱目标检测.pdf高速目标检测具有跨距离走动,不易相参积累,而相参积累时间内,目标的距离走动不能超过半个距离单元,对于高距离分辨雷达或观测高速目标的雷达系统,这种限制是很难满足的。
于keystone变换的运动补偿方案,可以在没有目标运动速度信息条件下校正距离走动,从而使积累时间不再受目标运动的限制。
  怎样仿真  在没有用keystone变化和变化后的  雷达回波波形?回波横坐标是:相对距离,纵坐标是幅度;
比如:例如,若雷达发射的信号带宽为150MHz,脉冲重复周期为100μs,发射的脉冲数目为63个,目标的径向速度为1000m/s,则相参积累的时间为613ms,在此期间目标运动了6.3m,跨越了6个距离分辨单元,的  图
2025/8/7 8:47:13 238KB matlab
1
C#仓库管理系统+完整项目源代码,软件具备换肤功能,支持每日一帖,系统功能完备,同一操作员不能在不同的机器上登录,因为系统要记录下一些操作的操作员,单据的单号中也有操作员的编号,如果同时登录会造成单据号的重复。
软件功能有:换班管理、单据查询、销售分析、软件帮助、销售管理、库存管理、统计报表、日常管理、系统设置等,软件界面设计专业,使用了IrisSkin2.dll实现换肤功能。
2025/8/6 1:17:21 2.3MB .net c# 源程序 实例
1
图书馆管理系统是图书馆管理工作中不可缺少的部分,它对于图书馆的管理者和使用者都非常重要,所以图书馆管理系统应该为管理者与读者提供充足的信息和快捷的数据处理手段,但长期以来,人们使用传统的人工方式或性能较低的图书馆管理系统管理图书馆的日常事务,操作流程比较繁琐。
一个成功的图书馆管理系统应提供快速的图书信息检索功能、快捷的图书借阅、归还流程。
从读者与图书馆管理员的角度出发,本着以读者借书、还书快捷、方便的原则,本系统具有以下特点: 确保系统具有良好的系统性能,友好的用户界面。
 较高的处理效率,便于使用和维护。
 采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期。
 系统尽可能简化图书馆管理员的重复工作,提高工作效率。
 简化数据查询、统计难度。
2025/8/3 22:13:34 3.39MB JAVA图书馆管理系统 Java
1
使用银行账户管理系统中的账户申请,用户可以通过图形化的界面,输入登录信息(姓名、年龄、性别、住址、联系电话、身份证号等),申请自己的账户,系统要按照银行规则产生不能重复的用户帐号和用户密码,用户可以修改自己的密码。
一个用户可以申请多个账户。
使用银行管理系统登录,用户可以登录进入本系统,只有进入系统才可以执行相关操作。
2025/8/3 5:03:20 12.41MB 银行 java
1
共 613 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡