ZigBee将成为最热的短距离无线技术[转]

zigbee无线传感器网络设计与实现(源代码)_基于STM32和无线通信的图片传输电路方案设计与实现(含原理图+源代码+服务器)... 近年来,随着网络的发展,网络中数据的传输也越来越广泛,现需要测试数据在网络传输过程中是否存在丢包,拟研发一款能够通过STM32F103ZET6单片机去服务器读取图片,并最终显示到TFTLCD液晶显示屏的无线通信图片传输系统。该系统不仅能够对图片进行按键读取,而且只要在有网络的环境下就可以进行图片的读取,同时,图片也可以进行多次读取,使图片的读取更加方便,从而满足测试的需求。基于STM32... 阅读详情

在市场上推行一种的新的技术或标准所需的时间似乎总是比预期的更长。实际上,从概念提出到实际采纳所需的时间常常要好几年之久。ZigBee也不例外。几年来,无线技术的追随者们已经听闻了业界在开发ZigBee标准及其应用上所付出的巨大努力。

现在,随着ZigBee硬件和软件都已在市场上出现,我们可以预期今年市场上将出现真正的ZigBee产品。尽管其整个开发周期比蓝牙和Wi-Fi要短,但为了达到这一目标业界付出了巨大的努力。今天,对于那些一直等待着想把无线功能添加到他们设计中的设计工程师而言,ZigBee已经准备就绪。

先让我们看看蓝牙技术成功所需的时间。现在,蓝牙应用广泛,如手机、耳机、膝上型电脑、PDA以及外围设备。它已变得如此常见,以至于它已被当作理所当然之事,这也是一种技术成功的标志。

蓝牙特别兴趣小组(SIG)执行董事Mike Foley博士表示,迄今已有超过5亿块蓝牙芯片出货,目前的出货量为每周950万块。ZigBee会有如此之大的市场潜力吗?ZigBee联盟董事长Bob Heile的答案是肯定的。事实上,ZigBee的总体潜力可能更大。

图1:ZigBee标准覆盖了协议的网络层和安全层,以及应用框架和规范。

IEEE 802.15.4标准101

ZigBee是用于个人区域网(PAN)的短程无线技术的绰号,它基于ZigBee联盟开发的IEEE 802.15.4标准及其指导方针。

IEEE标准定义了无线电的物理层(PHY)和媒体访问控制层(MAC)层。ZigBee标准则对此进行了有效的扩展,覆盖了协议的网络层和安全层,以及应用框架和规范(图1)。ZigBee联盟也已确定了测试和验证计划以保证不同ZigBee供应商之间的互操作性。

802.15.4标准定义了三个开放(FCC Part 15)工作频段:868MHz、915MHz、2.4GHz。868MHz频段用于欧洲,915MHz频段用于美国,2.4GHz则全球通用。因此大多数供应商会为了达到最大批量选择2.4GHz频段也就不足为奇。

802.15.4的数据速率比大多数其它无线标准的都要低:868MHz频段为20kbps,915MHz频段为40kbps,2.4GHz频段为250kbps。但对监控和控制应用而言,这些低数据速率也已足够快了。868MHz和915MHz无线电使用直接序列扩频技术(DSSS)和二进制相移键控(BPSK)调制技术。2.4GHz无线电使用DSSS和偏移正交相移键控(O-QPSK)。

802.15.4标准的其它性能还包括接收器能量检测、链路质量指示和空闲信道评估(CCA)。它支持竞争式和无竞争的访问方式。最大数据包为128字节,包括达104字节的可变有效载荷(payload)。此外,802.15.4标准还采用64位和16位地址,每个网络可支持多达65,000以上的网络节点。

MAC可以实现网络联合和网络分离。它包含具有时间同步信标的可选超级帧结构。而且,它的保证时间槽机制支持更高优先级别的通信。这种访问方法是免碰撞的载波侦听多址访问(CSMA-CA)。

此外,802.15.4标准无线技术在给定信噪比(SNR)下,误码率(BER)是最低的。ZigBee很容易击败蓝牙、Wi-Fi甚至ISM(工业、科学、医疗)频段频移键控(FSK)。在可靠性方面,你也很难找到有什么技术能够超越ZigBee。

图2:对于简单的系统来说,目前最流行的方法是星型拓朴结构。

ZigBee增加了联网功能

ZigBee标准基于802.15.4堆协议栈而建立,定义了设备如何联网。它支持三种主要的自组织无线网络类型,即星型结构、网状结构(Mesh)和簇状结构(Cluster tree)。

这些拓扑结构支持三类节点。第一种是ZigBee协调器(ZigBee Coordinator,ZC),它可用于初始化网络信息。每个网络只有一个ZC。第二个是ZigBee路由器(ZigBee Router,ZR),它起监视或控制作用,但它也是用跳频方式传递信息的路由器或中继器。第三是ZigBee终端设备(ZigBee End Device,ZED),它只有监视或控制功能,不做路由或中继之用。

在IEEE标准中,ZED被称为精简功能设备(Reduced-Function Device,RFD),ZC和ZR节点称作全功能设备(full-function device,FFD)。每一个节点都包含具有IEEE和ZigBee协议堆栈以及最小的RAM和ROM的无线收发器再加上一个嵌入式控制器。

这些电池供电单功能设备的主要功能是发送来自传感器的数据或接收来自主控制器的指令。FFD的功能更强大,具有额外的存储器。它们可以用作中继器或网络协调器。ZC和ZR可以与另一个ZC和ZR或任一ZED通话,但ZED只能和ZC或ZR通话。

对简单系统(图2)来说,最流行的方法是星型拓扑结构。它以一个FFD为中心,四周有多个RFD。但使ZigBee的优势得到充分发挥的是网状结构,在这种结构中,多个节点可彼此间进行短距通话(图3)。而且每一个节点还能用作其它节点的中继器。如果某个节点距离目标节点太远,则信息可经由两个作为中继器的其它节点发送。

这种功能极大地延伸了任何给定节点的覆盖距离,超出了无线电传播物理学所允许的正常视距(line-of-sight)范围。而且,即使某个节点传送失败,信息仍然能够通过网格中的其它网络路径被传送出去,从而使通信更为可靠。

由于ZigBee网络是自组织的,并能实现自我功能恢复,故非常具有吸引力。节点搜索其它节点,并利用软件“选中”某个节点后进行自动链接。它指定地址,提供路由表以识别已经证实的通信伙伴。在安全性方面,ZigBee采用AES-128加密技术来提供认证和加密。

尽管802.15.4和ZigBee标准本身都具有联网能力,但是由应用来定义总体功能的。应用是根据某种特定需要或规范(如用于蓝牙中的)而被执行的。一种规范定义某一特定应用(如传感器网络或工业控制)的节点行为。ZigBee联盟已经完成了一项家庭照明和控制规范。目前要开发用于构建监控及控制、安全、自动抄表(AMR)、工业机械和处理监控、ZigBee网关及其它领域的应用规范尚有困难。

ZigBee无线网络是专为活动时间低于1%的低占空比应用而设计的。传感器网络是最常见的实例。其它的还包括照明控制、安全系统和AMR。由于占空比很低,节点能够采用电池供电,且电池寿命可达好几年。

没有进行发射时,节点进入耗电仅为数微安的睡眠模式。在大约15微秒后,节点能够唤醒。传感器节点可被周期性询问,或者在编程时它们也能自己唤醒。鉴于ZigBee具有低功率特性,且电池寿命高达数年,它适用于某些其它无线技术根本无法适应的应用。

如果你期望利用网状无线结构的优势,ZigBee是一个绝佳的选择。它把网状结构设计和软件开发所需数量减至最少。

图3:在网状结构中,多个节点可彼此间进行短距离通话。

ZigBee应用

这么说吧,ZigBee能够用于蓝牙、Wi-Fi、超宽带(UWB)、手机及其它无线技术不能覆盖的大部分应用领域。

ZigBee所具有的低成本、低功率、小尺寸以及保证的互操作能力等特性,都对那些希望将其产品的某些部分无线化的工程师们充满了诱惑力。而且,利用完全定义的标准和可获得的软硬件,可以相当轻松容易地增添ZigBee无线技术。无线技术的“即剥即贴(peel and stick)”阶段已经准备就绪。

对产业而言,关键的是首先要处理最被关注的最具批量潜力的应用。一旦应用数量很大(正如蓝牙在手机中的应用情况),ZigBee模块成本下降,低于5美元将成为现实,然后ZigBee就能进入其它众多的小批量应用。

最具潜力的部分是家庭自动化产品。业内已经确定了200多种可能的家庭无线应用,建立了使ZigBee能够在无线领域称霸所需的数量。但由于消费者企盼的是最便宜最易于使用的产品,各大公司仍继续谨慎以待。

至今,这一产业领域在ZigBee应用名单上仍处于首要位置,尤其是用于建立监控及控制和AMR的产品。测试、确认和改进工业用/商用ZigBee将实现更好的家用产品。的确,应用是无限的。

利用ZigBee进行设计

假设你要进行一个无线应用设计,首要任务是决定采用哪一种技术。成本、可行性、速度、覆盖范围以及功耗等都必须考虑到。但不用忘记把上市时间和你能支配的工程资源也计入其内,其中主要是无线技术专业能力和软件开发能力。目前有6项技术选择:

红外技术(IR):这是所有技术中成本最低的,但它的工作距离也最短,只能在视距以内,而且中间不能有障碍物。其数据率为16Mbps。

ISM无线技术:这些价廉的芯片工作在315、433和902到928MHz频段。还有大量同样价廉的模组,但没有标准协议。对真正的简单应用而言,这是最佳选择。

蓝牙技术:这种快速(达3Mbps)低成本技术的典型使用距离在10到100米间。它已高度成熟,具有多种规范,并能提供PAN ad-hoc(非网状结构)联网能力。

Wi-Fi:也叫做802.11a/b/g,它的应用领域广泛。尽管比较昂贵,但Wi-Fi具有达54Mbps的极高数据率和最大的覆盖范围(100米)。Wi-Fi收发器的功耗较大,集成到网状网络也比较困难。

ZigBee:这是最新技术。它选择了低数据率(至250kbps)来换取极低功耗和固有网状能力。目前正式规范尚未出笼,但已在开发之中。随着批量的逐步增加,其价格将下降。在所有无线技术中,它的潜力最大。

UWB:超宽带现在已有芯片和模组产品。它的速度极高(100到480Mbps),但覆盖距离很短(小于10米),这决定了它往往被用作消费产品中的视频和高速数据(USB)解决方案。目前没有网状网络能力。

通过使用无线中继以更低的成本提供更长的覆盖距离,网状结构网络大大扩展了你的无线可能性。网状结构还有一个主要的优势,即可靠性。它解决了和无线技术采用有关的许多问题。顺便提一句,只有在ZigBee提供网状结构时,才有这一优点。

如果选用了ZigBee,你的下一个选择就是频段。在欧洲,只有一个选择,即868MHz。在美国以及全球其它地区,2.4GHz频段是最有用的,也是最多芯片和模块工作的频段。

现在只有少数915MHz模组可用,但它们的优点是覆盖距离较长(户外达1,000米),而且对墙等障碍物的穿透力更强。ZigBee在2.4GHz频段下的户外最大覆盖距离为400米,室内最大覆盖距离在30米左右。它能穿透一层混凝土墙壁,但无法穿透两层。

如果你对你的无线设计能力和编程能力感到放心,你可以购买自己的芯片然后继续进行下去。不要忘记需要一根好天线。这时,参考设计也很有帮助。ZigBee联盟已认可了6种ZigBee兼容开发平台,并将推出更多。

由于芯片设计与IEEE 802.15.4和ZigBee联盟标准的关系如此紧密,设计特性和规范非常类似。你如何进行区分呢?除了良好的参考设计和开发平台之外,还要选择象高接收器灵敏度(为了实现更大的覆盖距离和更高的可靠性)和睡眠电流消耗(为了实现较长的电池寿命)等规范。

若你希望规避设计中的整个无线部分,可以选择完整的模组。许多公司都在印制电路板上或在机箱或道尔芯片(dongle)中安装有完整的封装好的模块,包括天线在内。要使用这种模块,你所需做的只是把电池和用于监控应用的传感器连接起来,或者是把电池和控制应用中的激励器连接在一起。

在这一点上,你的设计涉及了程序编写或针对你的特定应用的代码。请记住大多数芯片和模块供应商都提供相应的软件开发平台。此外,对流行应用而言,第三方软件也正变得越来越普遍,尤其是传感器网络和网状网络。

ZigBee的未来发展

正如大多数无线技术,ZigBee也有一个发展蓝图。虽然我们中的大多数都没有参与制定未来计划,但我们可以根据惯例、暗示和常识来猜测在这个蓝图上有些什么。

首先,我们预计联盟将开发出更多的规范。也将有更多的产品面世,主要是软件,可加快你的开发速度。在硬件方面,我们也许能预期在未来某个时候会推出更高速度的版本。但目前对大多数应用来说,速度还不成其为主要问题。不过通过对调制进行修整,设计人员应该能够把现在的250kbps速度提高到两倍。

最后,允许移动应用的无线电技术变革正在进行中。目前的ZigBee也许能够处理10到15mph(每小时所行驶之英里数)的一般移动速度。但如果移动节点需要100mph的速度,就需要对技术进行变革,比如在RFID或其它移动应用中。

楼宇控制工业网络协议选型指南:从DMX512到BACnet的实战解析 工业网络协议是实现设备互联互通的基础技术,其核心在于定义数据格式、传输规则与通信时序,确保不同设备间可靠对话。从原理上看,协议通常遵循OSI分层模型,物理层决定信号传输方式(如RS-485、无线射频),数据链路层管理网络组织与介质访问,应用层则定义数据语义,如BACnet的对象模型或Modbus的功能码。这些协议的技术价值在于将异构设备整合为协同工作的有机系统,从而支撑楼宇自动化、能源管理等关键应用。在楼宇控制场景中,针对照明动态效果需求可选用高速的DMX512协议,而追求节能与状态反馈则适合双向通信的DA 阅读详情

相关推荐

2027年新疆职业院校技能大赛“网络系统管理”A模块网络构建真题

2027年新疆职业院校技能大赛“网络系统管理”A模块——网络构建真题,仅供学习使用。

weixin_42221934的博客 63

Lora和Zigbee无线通讯技术的对比

物联网应用中的无线技术有很多种,从大的方向分为两种,一种是局域网,另外一种是广域网。 最常见的广域网,是基于电信公司网络通讯的无线技术,例如2G,3G,4G,5G等,以及现在比较流行的NB-Iot。 广域网工作的频段是属于商业的,需要国家授权购买,才能使用,否则不能正常使用 局域网无线技术包括ASK,FSK,WIFI,蓝牙,Zigbee,Z-Wave,Lora等. 在安防报警系统和智能家居系统中,比较传统的无线通讯方式是ASK。但随着需要的不断的提高,ASK早已无法满足需求。 我接触Zigbe.

无际单片机编程 7268

国科大——形式语言与自动机理论(0812课程)——作业

此次作业题考察,包括但不限于有限自动机、无限自动机、正则文法、正则表达式以及正则语言的性质,题考查下推自动机相关的知识,题考查图灵机相关的知识。此课程建议本科学习过课程的同学选修,成绩占比:考试100%。此课程虽然留有作业,但可做也可不做,且不考勤。

qq_54145399的博客 706

如何远程查看ZigBee网络拓扑图?

ZigBee网络具有自组网功能,当有终端节点接入或拆除时,网络拓扑会发生变化,网关将更新记录发生的变化。那么,如何远程查看当前整个网络的总体情况?

lucy_cloud的博客 1135

Unity 开发Apple Vision Pro物体识别追踪ObjectTracking

当您在 visionOS 应用中实现对象跟踪时,您可以将现实世界中的物体无缝集成到人们的周围环境中,以增强他们的沉浸式体验。通过跟踪一个或多个物体的 3D 位置和方向,您的应用可以使用虚拟内容增强它们。您可以使用对象跟踪来提供与人周围环境中的对象的虚拟交互,例如:引导某人使用某件物品的功能、阅读其历史或了解其在周围环境中的行为。使用虚拟手册帮助人们解决家居用品和电器的问题。

Cool-浩 1185

深入解析Android14应用安装权限:从声明到授予的完整适配指南

本文深入解析Android14应用安装权限的适配方法,重点介绍了从权限声明到授予的完整流程。与Android13相比,Android14在权限管理机制上进行了重要调整,特别是通过AppOpsManager实现权限的对象化封装。文章详细讲解了权限声明的基础配置、Framework层适配方案、运行时权限授予方法以及常见问题排查指南,帮助开发者高效完成Android14权限适配。

o9p0q1的博客 694

433MHz(CC1101)与zigbee (CC2530)对比测试

以下是433Mhz和zigbee的测试情况,购买的模块都是TI公司的市场上较为主流,出货最多的模块。 1.1   CC1101: CC1101的通讯频率为433MHz,优点在于传输距离远,传输数据率低,绕射能力强,但是不能够组网,工作模式只能是1点对多点。受到其他公司所采用433MHz的影响,我们第一步测试的为CC1101。 测试的CC1101Mhz的发射功率为60mw,待机功耗为10mw。

yijingjijng的博客 2万+

CondaHTTPError: HTTP 404 NOT FOUND for url

用conda创建新环境时出现问题了。

qq_40713201的博客 1269

ZigBee现状及前景分析

ZigBee从2002年ZigBee Alliance成立到2006年联盟推出比较成熟的ZigBee 2006标准协议,至今已走过了多个春秋,当Zigbee几年前刚出现时,它的支持者曾设想这种基于IEEE 802.15.4规范的无线技术拥有潜在的巨大市场。在低吞吐量、短距离通信应用中,成本是第一王牌,而类似蓝牙、802.11x和802.15.3等规范的性能过于强大。但对于一些Zigbee...

weixin_30604651的博客 4495

ClearML中文文档实战:从安装到第一个实验的保姆级教程

本文提供ClearML从零开始的实战指南,涵盖核心组件理解、Python SDK安装、服务器配置及首个自动化实验的完整流程。通过改造PyTorch训练脚本的实例,详细演示了如何利用ClearML自动记录实验参数、指标与模型,实现机器学习实验的可复现性与高效管理,并简要介绍了进阶的自动化工作流。

weixin_29216049的博客 398

RTOS与Linux功能差异与应用场景全面对比

在嵌入式系统的开发中,操作系统的选择至关重要。和是两种广泛应用的操作系统,它们在功能、设计目标以及应用领域中各具优势。随着嵌入式系统的不断发展,已成为嵌入式行业的大趋势。那么,这两者到底有什么不同呢?

硬核科技 402

ZigBee模块穿透能力测试

时间:2012年3月16日 10:15:03 地点:科技楼1001 与消防楼梯 墙厚度:35cm 模块:DTK1605H USB底板 穿透墙后最远测试距离:8m左右(空间限制,不能再远!) 转载于:https://www.cnblogs.com/qmlm8844/archive/2012/03/16/2399819.html...

weixin_30321449的博客 1222

157、飞控中的鲁棒自适应控制

本文总结了飞控系统中鲁棒自适应控制的实践经验。作者通过炸机案例引出传统PID控制的局限性,分析了鲁棒性与自适应性的本质矛盾,提出"用鲁棒性兜底,用自适应性提性能"的设计原则。重点介绍了模型参考自适应控制(MRAC)的实现方法,包括参考模型设计、自适应律调参技巧(建议初始增益设为0.01)、直接/间接自适应的应用场景差异,以及防止参数漂移的鲁棒修正方法。文章还分享了实际调试中的三大关键问题(初始值设定、激励条件、执行器饱和)及解决方案,并推荐了"鲁棒PID+自适应前馈"的混合架构。最后强调调试顺序应为先保证鲁

2401_88858637的博客 27

四路 CAN 转 4G 网关

SG‑CAN‑4G‑410 为**四路隔离 CAN 转 4G 工业网关**,把 CAN2.0A/B 报文封装成 TCP/UDP 报文,通过 4G 无线网络实现 CAN 总线远程监控、远程控制。四路 CAN 相互独立;以太网仅用于本地配置,不做业务数据传输;支持移动 / 联通 / 电信 4G 网络。

S2003120416的博客 164

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

汽车电子标定与测量的核心基石XCP协议

控制逻辑(算法)与标定参数(数据)。如果每次优化参数都要修改源码、重新编译并刷写Flash,整个研发周期的效率将趋近于零。标定(Calibration)技术正是为了解决这一痛点而生。它允许工程师在ECU运行过程中,动态观察内部变量(测量,Measurement),并在不中断运行的前提下实时修改控制变量(标定,Calibration)。在这一领域,XCP(Universal Measurement and Calibration Protocol,通用测量与标定协议)是公认的行业标准与核心基石。

diansandaosilaodanan的博客 377

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【计算机网络】断点续传是怎么做到的:从 Range 请求到分片上传的完整机制

断点续传在下载侧靠的是 HTTP 现成的 Range 协议,Content-Range 保证偏移对得上,If-Range 防止文件变更导致的错误拼接;上传侧没有标准,需要自己设计 init/part/complete 三段式交互,核心是让服务端记住“哪些块已经收下”,从而把失败粒度从整个文件降到单个分片。 这套机制可以迁移到任何长耗时操作的设计上。判断方法很简单:先问失败粒度是多少。如果一次操作失败就得从头再来,那它迟早会在生产环境里出问题——传输、批量导入、数据迁移、长事务,都是同一个道理。把大操作切成

2503_94545876的博客 523

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位

iptables 四表五链模型、firewalld zone 信任级别、云安全组与主机防火墙的关系与优先级,避坑改了防火墙把自己挡在服务器外面的翻车事故。

2502_91473995的博客 318

【Linux网络】TCP 服务器并发处理多客户端:从 fork 分发到双重 fork 彻底消灭僵尸进程

拆解 TCP 服务器并发演进链:fork 分发连接、SIGCHLD 循环回收僵尸、双重 fork 交孙进程给 init 收养,并给出模型选型与线上排错对照。

2301_78967866的博客 423

AI 芯片片上网络 NoC 深度解析:flit、虚通道与拥塞控制如何决定 GPU/TPU/LPU 的算力利用率

AI芯片算力瓶颈不在FLOPS,而在片上网络(NoC)——数据搬运的能耗与延迟决定MFU上限。物理限制下,长线延迟不随工艺缩小,迫使NoC将全局布线拆为可流水的短链路;能量账显示,一跳传输耗能可达数十次乘加操作。拓扑选择直接影响性能:二维mesh虽布线可行,但均匀流量下每节点可用带宽按1/√N衰减,实测仅达标称值30%。虚通道、双网设计、静态调度(如Groq)等技术旨在突破此瓶颈。从总线到crossbar再到多跳NoC,本质是用延迟换可行性。未来趋势:专用通路(脉动阵列)、晶圆级集成(Cerebras)、跨

我的博客 75

台湾行情数据API接入教程

想用程序获取台股行情,很多人第一步会搜“台股资料 API 推荐”,结果发现选择不少:证交所有免费接口,Yahoo Finance 也能查,券商还有自己的 API。真正写代码时才发现,有的数据只到收盘,有的延迟 20 分钟,有的必须先开户。本文先梳理台湾行情数据的几种获取渠道,再用 Python 从零搭一个可以运行的台股数据脚本:查代码清单、取实时报价和盘口、拉历史K线、做复权、用 WebSocket 接收实时推送,最后结合台积电 ADR 和新台币汇率计算跨市场溢价。

qq_34102871的博客 300

Qt网络编程实战指南:从底层Socket到现代异步架构的选型与避坑

本文梳理Qt网络编程的核心模块与演进路线,对比QTcpSocket与QNetworkAccessManager的使用边界,结合HTTP请求与TCP长连接的完整示例,说明信号槽、内存管理与事件循环的配合方式。重点记录连接池设计、证书校验、线程亲和性等实际开发中的关键决策点,帮助读者在C/S或跨平台项目中建立稳定的网络层基座。

2402_83344867的博客 287

从母钟到子钟:NTP 网络时钟系统架构与软件接口

本文从工程角度简要介绍公共场所的时间同步需求、NTP协议的定位,以及典型LED同步时钟的系统架构与硬件设计,以讯鹏科技4寸与5寸同步时钟为例。

SPZHCS的博客 139

DPVS 报文黑匣子与 Crash 自动拉黑:给转发面装上“飞行记录仪“

谁打挂了我(crash dump)、他之前发了什么(慢路径环)、他还会再来(入口拉黑)。设计上我们始终坚持两条原则:记录与决策分离(黑匣子永远只说不做),以及误伤成本优先于漏放成本(三道闸门全部通过才拉黑,expire 到期自动解封)。性能上,全量快路径摘要 + 入口查表的综合开销低于 1.3%,在 FIP 网关的流量水位下不可感知。飞行记录仪的价值不在于飞机正常飞行的时候,而在于它让每一次事故都变成一次改进。对转发面来说,同样如此。

zyun360的博客 269
上一篇: ZigBee技术[转]
下一篇: 避免2.4GHz ISM频段各种类型无线设备干扰的技术【转】
lhf0921
博客等级 码龄18年 52粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值