【原书名】CommunicationSystemsFourthEdition【原出版社】JohnWiley【作  者】(加)SimonHaykin[同作者作品][作译者介绍]【译  者】宋铁成[同译者作品]徐平平徐志勇等【丛书名】国外电子与通信教材系列【出版社】电子工业出版社【书号】7505382543【出版日期】2003年10月【开本】16开【页码】719【版次】1-1【内容简介】本书对通信系统的基础理论和关键环节进行了深入分析,力图让学生在讨论中领会通信的精髓。
全书首先给出通信系统的梗概及需要研究的关键技术,接着分章详细讨论了随机过程、连续波调制、脉冲调制、基带脉冲传输、信号空间分析、带通数据传输、扩频调制、多用户无线通信、信息论基础以及差错控制编码等。
各章都附有大量习题,便于学生实践掌握。
书中还给出了很有价值的附录,包括概率论、信号和系统描述、贝叶斯函数、超几何分布函数汇总、密码学方面的介绍以及一些有用的表格等。
全书强调通信理论的统计基础,并给出了用MATLAB模拟的8个计算机实验,这些实验几乎覆盖了各章节的主要内容,形成了独特的通信理论“软件实验室”。
【编辑推荐】随着微电子技术、计算机技术、激光技术、卫星与光纤等相关信息技术的发展,特别是计算机与通信的有机结合,现代通信正经历着一场变革。
在这场变革中,各种新技术、新手段、新业务、新系统层出不穷,现代通信的内容也日趋丰富。
在通信新技术不断产生,新需求逐步扩展的背景下,建立在多网互连互通、多个系统集成、多种技术综合应用基础上的一体化通信、全球个人通信迅速发展,这就要求通信技术工作者和通信工程等专业的学生不仅深入学习本专业的典型通信系统,还要全面学习和了解目前广泛应用的各种现代通信系统,以全面、系统地了解现代通信的目的。
本书正是为了实现这一目的而编写的。
作者介绍:SimonHaykin是国际电子电气工程界的著名学者,加拿大皇家学会院士,IEEE会士,于1953年获得英国伯明翰大学博士学位,现任加拿大麦克马斯特大学教授,在该校创办了通信研究实验室并长期担任主任。
他曾经获得IEEEMcNaughton奖章,在神经网络、通信、自适应滤波器等领域成果颇丰,著有多种标准教材。
目录第1章随机过程1.1简介1.2随机过程的数字定义1.3平稳过程1.4均值、相关函数和协方差函数1.5遍历过程1.6随机过程通过一个线性时不变滤波器1.7功率谱密度1.8高斯过程1.9噪声1.10窄带噪声1.11基于同相和正交分量的窄带噪声表示法1.12基于包络和相位分量的窄带噪声表示法1.13正弦信号加窄带噪声1.14计算机实验:平衰落信道1.15总结与讨论注释与参考习题第2章连续波调制第3章脉冲调制第4章基带脉冲传输第5章信号空间分析第6章通带数据传输第7章扩频调制第8章多用户无线通信第9章信息论基础第10章差错控制编码附录1概率论附录2信号与系统简述附录3贝塞尔函数附录4汇合型超几何函数附录5密码学附录6表格术语表参考文献索引
2025/6/29 1:22:56 17.56MB 西蒙.赫金 通信系统 第4版 中文版
1
标题中的“bug-versions”指的是一个专门用于收集npm(Node.js包管理器)软件包中错误版本的工具。
这个工具的目的是帮助开发者识别并管理那些可能存在错误或问题的软件包版本,以确保他们的项目能够使用稳定可靠的依赖。
描述中提到,“收集npm软件包中的所有错误版本”,意味着该工具会遍历npm仓库,查找已知的问题版本,可能是由于代码错误、安全漏洞或其他已报告的问题。
它还提到可以在“npminstall”上使用,这暗示了bug-versions可能是npminstall的一个插件或者与之集成,可以在安装npm包的过程中自动检查错误版本,避免这些有问题的包被引入到项目中。
标签“JavaScript”表明这个工具是用JavaScript编写的,符合npm生态系统的标准,因为npm主要服务于JavaScript和Node.js的开发者社区。
JavaScript是编写npm包和相关工具的常用语言,因此这个工具的源代码可以被广泛理解、修改和扩展。
从压缩包子文件的文件名称“bug-versions-master”来看,这可能是一个GitHub项目的主分支(通常是“master”)的克隆或下载,
2025/6/19 1:10:47 7KB
1
二叉树的C语言实现,实现二叉树基本功能,建树、遍历、左右子树交换等功能。
2025/6/17 16:10:35 6KB 二叉树 C C++
1
基于seetaface的android实现,包含检测、对齐、比对,采用NEON优化提高处理速度,提高人脸旋转角度roll,pitch,yaw,带自动遍历比对人脸
2025/6/16 22:57:24 1.72MB seetaface
1

误差反向传播(Backpropagation,简称BP)是深度学习领域中最常见的训练人工神经网络(Artificial Neural Network,ANN)的算法。
它主要用于调整网络中权重和偏置,以最小化预测结果与实际值之间的误差。
在本项目中,我们看到的是如何利用BP算法构建一个两层神经网络来识别MNIST手写数字数据集。
MNIST数据集包含60,000个训练样本和10,000个测试样本,每个样本都是28x28像素的灰度图像,代表0到9的手写数字。
BP算法通过迭代过程,对每个样本进行前向传播计算预测结果,并使用梯度下降优化方法更新权重,以提高模型在训练集上的表现。
文件"bp_two_layer_net.py"可能包含了实现BP算法的主体代码,它定义了网络结构,包括输入层、隐藏层和输出层。
"net_layer.py"可能是定义神经网络层的模块,包括前向传播和反向传播的函数。
"train_bp_two_neuralnet.py"很可能是训练脚本,调用前面的网络和训练数据,执行多次迭代以优化权重。
"buy_orange_apple.py"、"layer_naive.py"、"gradient_check.py"和"buy_apple.py"这四个文件的名称看起来与主题不太直接相关,但它们可能是辅助代码或者示例程序。
"buy_orange_apple.py"可能是一个简单的决策问题,用于帮助理解基本的逻辑操作;
"layer_naive.py"可能包含了一个基础的神经网络层实现,没有使用高级库;
"gradient_check.py"可能是用来验证反向传播计算梯度正确性的工具,这对于调试深度学习模型至关重要;
而"buy_apple.py"可能是另一个类似的小示例,用于教学或练习目的。
在BP算法中,计算图的概念很重要。
计算图将计算过程表示为一系列节点和边,节点代表操作,边代表数据。
在反向传播过程中,通过计算图的反向遍历,可以高效地计算出每个参数对损失函数的影响,从而更新参数。
在深度学习中,神经网络的优化通常依赖于梯度下降算法,它根据梯度的方向和大小来更新权重。
对于大型网络,通常采用随机梯度下降(Stochastic Gradient Descent, SGD)或其变种,如动量SGD、Adam等,以提高训练速度和避免局部最优。
总结来说,这个项目涉及了误差反向传播算法在神经网络中的应用,特别是在解决MNIST手写数字识别问题上的实践。
通过理解和实现这些文件,我们可以深入理解BP算法的工作原理,以及如何在实际问题中构建和训练神经网络。
同时,它也展示了计算图和梯度检查在深度学习模型开发中的关键作用。
2025/6/15 20:24:19 5KB
1
一个类,可以遍历一个目录,将该目录下所有文件以及子目录及其文件都遍历,生成一个层次分明的数组,还可以将遍历的结果生成一个树状的字符串,直接echo到浏览器。
|-|a.txt|-|b.txt|-|c目录|---|d.txt|---|c1目录|-----|c11.txt|--|e目录这样代码里有完整的用法示例。
2025/6/13 9:57:48 1KB php目录获取
1
数据结构二叉树三种遍历动画演示
2025/6/8 5:11:31 127KB 数据结构
1
编写程序,用先序递归遍历法建立二叉树的二叉链表存储结构,然后输出其先序、中序、后序遍历第k个访问结点。
二叉树结点数据类型建议选用字符类型且各结点数据域值互不相同;
输出用结点数据域的字符表示;
求第k个访问结点的三个子函数中,需使用函数返回值和引用型形参带回所求(即每种方式至少使用一次)。
1
智能扫地机器人路径规划在探索领域应用得非常广泛,一般的路径规划指的是点对点的路径规划,这种路径规划是指智能扫地机器人设备根据已知地图或者在某些提示信息的引导下寻求一条从起点到目标点的避开障碍物的可行路径,同时完成指定的任务
2025/6/5 7:33:26 116KB 机器人 人工智能 路径规划
1
【DM365_NAND启动模式解析】DM365是一款由TexasInstruments(TI)生产的数字媒体处理器,常用于视频处理和嵌入式系统。
在DM365中,NAND闪存是一种常见的非易失性存储器,用于存储固件和操作系统。
NAND启动模式是指DM365在上电或复位后从NAND闪存中加载启动代码的过程。
此过程涉及一系列复杂的步骤,确保系统能够正确地从NAND中读取和执行固件。
**NAND启动流程**1.**初始化**:系统首先初始化RAM1的高2KB栈空间(0x7800-0x7fff),避免覆盖用于存储UBL块号的最后32个字节(0x7ffc-0x8000)。
2.**禁止中断**:所有中断(IRQ和FIQ)被禁用,以确保启动过程不被打断。
3.**设置DEEPSLEEPZ/GIO0**:这个外部引脚在NAND启动时必须处于高电平。
4.**读取NANDID**:读取NAND闪存的设备ID,获取设备特性,如页面大小、块大小等。
5.**初始化NAND区域**:根据NAND的参数设置控制器和寄存器。
6.**搜索UBL描述符**:RBL(ROMBootloader)在block1的page0开始搜索UBL(UserBootLoader)的描述符。
如果未找到正确的UBL,会依次检查接下来的24个块,以防遇到坏块。
7.**处理UBL描述符**:UBL描述符包含入口点地址、占用的NAND页数、起始块和起始页等信息,用于指导UBL的加载和执行。
8.**ECC错误检测和校正**:开启硬件ECC(ErrorCorrectionCode)检测,复制UBL到IRAM(InternalRAM)。
如果检测到4位ECC错误,通过ECC算法进行纠正。
如果多次失败,RBL会尝试下一个块,直到找到有效的UBL描述符,或者在搜索完24个块后转而从SD卡启动。
9.**启动UBL**:在UBL的入口点执行代码,将控制权交给UBL。
10.**安全启动模式**:根据配置,启动模式可能包括PLL旁通模式,不使用快速EMIF、DMA或I-Cache。
在其他模式下,这些功能可以被启用以提高性能。
**NANDUBLdescriptor格式**UBL描述符是一个包含关键信息的数据结构,用于指示如何加载和执行UBL。
它可能包含如下字段:-入口点地址:UBL执行的起点。
-UBL占用的NAND页数:指示UBL的大小,必须是连续的页。
-UBL的起始块和起始页:定义UBL在NAND中的位置。
-MAGICIDs:特定的标识符,用于识别不同的启动模式。
**NAND启动详细流程**1.初始化栈空间、禁止中断、设置DEEPSLEEPZ/GIO0。
2.读取NAND设备ID,初始化NAND控制器。
3.搜索UBL描述符,最多遍历24个块。
4.复制并校验UBL到IRAM,根据UBL描述符配置启动选项。
5.转交控制权给UBL执行。
NAND启动流程图和具体的ARMNANDROMBootloader实例进一步详细说明了这个过程。
此外,支持的NAND设备ID列表确保了对多种NAND闪存设备的兼容性。
DM365的NAND启动模式解析涉及了设备识别、错误检测、固件加载和执行等多个环节,确保了系统的稳定和可靠启动。
理解这一过程对于开发和调试基于DM365的嵌入式系统至关重要。
2025/5/20 16:04:21 249KB DM365
1
共 304 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡