WIFI信号选哪个频率好

  categories:资料  author:

无线路由器工作的频段一般分为2.4GHz和5.0GHz两个频段。

一、2.4GHz是早期无线路由器普遍采用的频段,一直延续到现在,用于学校、商业等办公区域的无线连接技术,传输速率可达54Mbit/s,工作距离100m,采用直接序列扩频(DSSS)的方式。

二、5GHz是新的无线协议, 频率、速度,抗干扰都比2.4GHz强很多,现在5GHz也开始得到广泛应用。

扩展资料

5.0GHz频率的优点

一、解决网络拥堵:

Wi-Fi这个高速公路正变得拥挤不堪,面对越来越复杂的使用需求,旧的技术标准变得捉襟见肘,5G Wi-Fi要解决的就是这样的问题。

二、提升播放质量:

视频流量的爆发性成长以及与日俱增的无线装置,加重了Wi-Fi网络负担,导致用户消费者在观看影片时很容易遇到播放不顺畅、影片下载时间冗长等问题。

5G Wi-Fi每秒传输速度可达125MB,让每秒下载速度约为30~45MB的高清电影传输不成问题。

三、让手机更省电:

5G Wi-Fi另一大优点是节能——由于同一时间传送的内容更多,设备也能更快地进入低功率的省电模式。

四、信号品质更好:

目前2.4GHz频段Wi-Fi网络上“奔跑”的不仅仅有手机、平板、笔记本电脑、掌上游戏机,还有各种各样的移动设备。

大量设备堆积在一个狭小的频段中很容易彼此干扰。

国内5G频段使用较少,无线电干扰大为降低,信号品质有极大提升。

  • 无线路由器

2.4GHz

  1. 1

    2.4GHz工作的频率范围为2.400—2.4835GHz,一共有14个信道可用,但是中国规定了最多只能用13个信道。

  2. 2

    每个子信道频宽为22MHz;相邻信道的中心频点间隔5MHz;所以相邻的多个信道存在频率重叠(如1信道与2、3、4、5信道有频率重叠),即相互之间有干扰影响无线信号质量;整个频段范围内只有3个信道(1、6、11)互不干扰。

  3. 3

    相比于5G频率,2.4G频率优点在于:覆盖广,穿墙性好——由于频率低,在空气或障碍物中传播时衰减小,所以传播的更远;适配性广——基本上所有支持无线的产品都支持2.4GHz无线;

  4. 4

    2.4GHz的缺点也比较明显:家电、无线设备大多使用2.4G频段,导致无线环境拥挤,相互之间干扰较大,导致网速体验较差。

  5. 5

    所以在使用2.4GHz的信道时,需要先确认附近的其他无线使用的信道,尽量避开与其它无线设备的信道相同,如果无法避开的话尽量选择选择被占用较少的信道(下载wifi信道分析的app就可以查看到当前环境中的无线信道占用情况),网络模式选择带802.11n的模式。

5GHz

  1. 1

    5GHz的频率范围就比较广,但是中国规定只能使用的频率范围为5735~5835GHz,即149~165信道,每个信道之间相互不干扰。

  2. 2

    5GHz的优点:信号频宽较宽,无线环境比较干净,干扰少,网速稳定,且5G可以支持更高的无线速率,理论最高可达3.47Gbps。

  3. 3

    缺点:5G信号由于频率较高,所以在空气或障碍物中传播时衰减较大,覆盖距离一般比2.4G信号小。虽然现在越来越多的设备支持5GHz无线,但是还是有部分设备不支持。

  4. 4
阅读全文

角色皮肤渲染技术

  categories:儿童画教程  author:

前言

游戏中的角色渲染技术随着近几年来硬件机能的增长已经被大范围的应用在了各类AAA大作中,本文会取一些游戏为例,分类概述游戏中的角色渲染技术。由于整个角色渲染的话题会比较长,这个主题会用两篇来阐述,第一篇主要讨论有关角色皮肤的渲染,第二篇会着重讨论角色毛发和其他的渲染。

次表面散射

当光线从一种介质射向另外一种介质时,根据其行进路线,可以被分为两个部分:一部分光线在介质交界处发生了反射, 并未进入另外一种介质,另外一部分光线则进入了另一种介质。反射部分的光照的辐射亮度(radiance)和入射光照的辐射照度(irradiance)的比例是一个和入射角度、出射角度相关的函数,这个函数就被称之为双向反射分布函数(BRDF)。相应的,穿越介质的那部分光照的辐射亮度和辐射照度的比例就被称之为双向透射分布函数(BTDF)。这两部分出射光的辐射亮度总和和入射光的辐射照度的比例就被叫做双向散射分布函数(BSDF),即BSDF = BRDF + BTDF

双向散射函数如果我们把光线行进的路线分为反射和透射,反射用R表示,透射用T表示,那么光线从一个点到另外一个点之间行进的路线就可以用R和T表示,比如BRDF描述的路径就是R,BTDF描述的路径就是TT,除此之外可能还会出现TRT,TRRRT等光照路线,由此我们可以想见,在光线入射点的附近应该有许多的出射光线。实际渲染中,如果光线出射点的位置和入射点相距不足一个像素,我们就认为入射点和出射点位置相同,这时候当前像素的光照只受其自身影响;如果入射点和出射点相距超过一个像素,则表示某个像素的光照结果不仅仅受当前像素影响,同时还受附近其他像素的光照影响,这就是我们常说的次表面散射效果了

《Real-Time Rendering》一书中对次表面散射的阐释。红色区域表示一个像素的大小,当出射光线集中分布在红色区域内时,则认为次表面散射效果可以忽略,当出射光线较为均匀地分布在绿色区域内时,则需要单独考虑次表面散射效果。

皮肤的实时渲染原理

皮肤是一个多层结构,其表面油脂层贡献了皮肤光照的主要反射部分,而油脂层下面的表皮层和真皮层则贡献了主要的次表面散射部分。

根据观察[1],次表面散射的光线密度分布是一个各向同性的函数,也就是说一个像素受周边像素的光照影响的比例只和两个像素间的距离有关。这个密度分布函数在有些地方称为diffusion profile,用R(r)来表示。实际上所有材质都存在次表面散射现象,区别只在于其密度分布函数R(r)的集中程度,如果该函数的绝大部分能量都集中在入射点附近(r=0),就表示附近像素对当前像素的光照贡献不明显,可以忽略,则在渲染时我们就用漫反射代替,如果该函数分布比较均匀,附近像素对当前像素的光照贡献明显,

阅读全文

次表面散射

  categories:资料  author:

次表面散射,次表面散射简称3S,是光射入非金属材质后在内部发生散射,最后射出物体并进入视野中产生的现象,是指光从表面进入物体经过内部散射,然后又通过物体表面的其他顶点出射的光线传递过程。

次表面散射

继续写之前的基于物理着色系列,这一篇谈谈次表面散射(Subsurface Scattering)的理论以及渲染的算法。次表面散射是现实中一种非常常见的材质外观,所有有着半透明外观的物体,例如玉石,大理石,蜡烛,可乐,苹果,牛奶(见下图)包括人类的皮肤,等等。现实中这种半透明的材质其实非常普遍,所以如何为它们的外表建立正确的数学模型是照片级别真实感渲染的重要一部分。

下图则是电影《功夫熊猫3》中的一幕,画面中的玉石也是次表面散射材质的典型例子之一。

与此同时,次表面散射现象的模拟也比在前三篇文章里介绍过的一般的表面反射复杂很多,因为要正确的模拟这种现象,光线不止再物体的表面发生散射,而是会先折射到物体内部,然后再物体内部发生若干次散射,直到从物体表面的某一点射出,例如下图中的(b)。所以对于次表面散射性质的材质来说,光线出射的位置和入射的位置是不一样的,而且每一点的亮度取决于物体表面所有其他位置的亮度,物体的形状,厚度等。之前文章里介绍的表面散射都是基于BSDF模型(双向散射分布函数),而BSDF只能用于描述物体表面某一点的散射性质,所以它无法描述像次表面散射这种现象。

Participating Media

要模拟这样的现象,最简单,最精确,也是计算量最大,最慢的方法,就是直接在物体内部的空间求解带有Participating Media的渲染方程。为了文章的完整性,这里简单介绍一下Participating Media的数学定义,想详细了解可以参考pbrt第11章[1]。

Participlating Media的存在,意味着传统的渲染方程不再是传统的以场景中所有表面为定义域的积分,因为光线在有介质的空间中传播的时候,不用和表面接触,也会被空间中的介质所吸收,散射。通常我们用一下几个参数来描述空间中介质的性质。吸收系数[公式],和散射系数[公式]。前者描述了空间中每单位长度中光子被吸收的概率,后者则描述了每单位长度中光子被散射、既传播方向被改变的概率。散射系数包括了其他方向的光线入射到当然方向的概率,也包括当前方向出射到其他方向的概率。另一个参数是[公式],就是衰减系数,它是吸收系数和散射系数的和,代表了单位距离内光子出射到其他方向或者被吸收掉的总概率。所以单位距离内辐射度的变化率可以写成:

[公式]
第一眼看去貌似有些吓人,实际上说的就是,在介质中,单位长度上Radiance强度的变化会因为被介质吸收而减少,同时一部分能量会随机向外散射出去,最后来自各个其他方向的光线也有一定概率散射到当前方向。其中方程最右边积分中的[公式]是phase function,可以理解成空间中的BSDF,定义了空间中一点两个方向间发生散射的概率。另一个值得一提的是,每个频率的光线都有对应的系数。也就是说在用RGB渲染时,每个颜色都要有各自的吸收和散射系数。

这篇文章封面的图片以及下面这张图都是用直接用模拟Participating Media的方法渲染出的玉石。玉石材质是由一个无色的,折射率为1.6的电介材质表面包裹着绿色散射系数较大的均匀介质。由于下图中介质的散射系数要远大于封面中的,所以光线散射的更加频繁,散射间传递的距离更短,导致外观比封面中的玉石更加厚密。

渲染Participating Media的方法有很多,例如最简单的Volumetric Path Tracing,Volumetric Photon Mapping等等。两个参考,[2]是最简单的Volumetric Path Tracing的tutorial,[3]是State of the art的Participating media estimator。因为话题很大,这里不再展开,以后有时间会再专门写写相关的内容。

BSSRDF的定义

模拟次表面散射的另一大类方法就是通过BSSRDF(Bidirectional Surface Scattering Reflectance Distribution

阅读全文

rocketmq的NameServer模块

  categories:资料  author:

[mq@dev1 bin]$ sh mqnamesrv -help
usage: mqnamesrv [-c <arg>] [-h] [-n <arg>] [-p]
-c,–configFile <arg> Name server config properties file
-h,–help Print help
-n,–namesrvAddr <arg> Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876
-p,–printConfigItem Print all config item

 

rmq的 namesrv服务的详细配置信息如下(采用下面命令, 可以打印全部配置信息)… 阅读全文

maven-shade-plugin入门指南

  categories:资料  author:

有时候,需要将复杂的项目, 包括各种xml文件属性文件, 类, jar等等打包到一个可以执行的jar包中, 然后用java -jar  xxx.jar 来运行项目, 这样简单方便, 特别是在编写一些测试工具时,尤为重要。

但是经常发现打包后的项目无法启动, 其中一大类是您项目有问题, 但是这个相对好解决, 毕竟自己的项目可以在windows下的ide中做各种调试,测试都测试好了, 在打包一般程序问题的概率就低得多了。

1. Why?

通过 maven-shade-plugin 生成一个 uber-jar,它包含所有的依赖 jar 包。

2. Goals

Goal Description
shade:help Display help information on maven-shade-plugin.Callmvn shade:help -Ddetail=true -Dgoal=<goal-name>to display parameter details.
shade:shade
阅读全文

vi 常用命令行

  categories:资料  author:

vi 常用命令行

1.vi 模式
a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了.
b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作。等按下‘i,I,o,O,a,A,r,R’等
字母之后才能进入编辑模式.通常在linux中,按下上述字母时,左下方会出现‘INSERT’或者‘REPLACE’字样,才可以
输入任何文字到文件中.要回到一般模式,按下[ESC]键即可.
c) 命令行模式:在一般模式中,输入“: 或者/或者?”,即可将光标移动到最下面一行,在该模式下,您可以搜索数据,而且读取,
存盘,大量删除字符,离开vi,显示行号等操作.
2.vi 常用命令汇总:
2.1 一般模式
a) 移动光标:
–> 上下左右方向键 ↑↓← →
–> 翻页 pagedown / pageup 按键
–> 数字 0 :

阅读全文

用Shell判断字符串包含关系的方法小结

  categories:资料  author:

这篇文章主要给大家介绍了关于用Shell判断字符串包含关系的几种方法,其中包括利用grep查找、利用字符串运算符、利用通配符、利用case in 语句以及利用替换等方法,每个方法都给出了详细的示例代码与介绍,有需要的朋友们可以参考参考借鉴,下面来一起看看吧。

前言

现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含“baidu”字符串

以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault。

方法一:利用grep查找
strA=”long string”
strB=”string”
result=$(echo $strA | grep “${strB}”)
if [[ “$result” != “” ]]
then
echo “包含”
else
echo “不包含”
fi
先打印长字符串,然后在长字符串中 grep 查找要搜索的字符串,用变量result记录结果

如果结果不为空,说明strA包含strB。如果结果为空,说明不包含。

这个方法充分利用了grep 的特性,最为简洁。

方法二:利用字符串运算符
strA=”helloworld”
strB=”low”
if … 阅读全文

线性规划的算法分析

  categories:资料  author:

本章涉及知识点

1、线性规划的定义

2、可行区域、目标函数、可行解和最优解

3、转线性规划为标准型

4、转线性规划为松弛型

5、单纯形算法的思想和例子

6、避免退化—Bland规则

7、广义单纯形算法的步骤

8、约束条件为负数情况下存在的问题

9、构造辅助线性规划函数

10、从辅助线性规划函数还原目标函数

11、辅助线性函数的求解步骤

12、完整的单纯形算法步骤

13、python编程实现单纯形算法

14、实验验证单纯形算法处理不同线性规划问题

一、线性规划的定义

我们来看一个实际问题:

假设你是一个单位的采购经理,你有2000元经费,需要采购单价为50元的若干桌子和单价为20元的若干椅子,你希望桌椅的总数尽可能的多,但要求椅子数量不少于桌子数量,且不多于桌子数量的1.5倍,那你需要怎样的一个采购方案呢?

于是我们可以假设桌子数量和椅子数量为x1和x2,为此我们的目标函数为

目标函数

而约束条件可以写为

约束条件

上述既包含目标函数,又含有约束条件,就可以抽象为一个线性规划问题,即在有限的资源和若干竞争约束下,求某个目标函数的最大化或最小化的最优策略

二、可行区域、目标函数、可行解和最优解

我们由上述案例来看,因为是只有两个变量属于二维空间,我们在笛卡尔坐标系中画出约束条件和目标函数

案例线性规划空间

从二维空间中我们可以看出,紫色区域就是满足所有约束条件的安全区域,包括最优解也必须在其中,我们把这个区域叫做可行域。红色函数即是目标函数,而要求目标函数达到最大值或最小值,就是平行的移动目标函数,让目标函数在可行域上达到截距最大(最小)。图中的A、B、C三个点都属于目标函数与可行域的交点,我们称之为可行解,而使得目标函数达到最大(最小)的可行解被我们定义为最优解,其对应于图中的A点

至此我们可以总结出线性规划的几个特征

(1)线性规划的可行域总是一个凸集

阅读全文

Linux中执行脚本参数获取

  categories:资料  author:

Linux中变量$[#,@,0,1,2,*,$,?]含义
$# 是传给脚本的参数个数

$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

区别:$@, $*

相同点:都是引用所有参数
不同点:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(” “)包含时,都以”$1″ “$2″ … “$n” 的形式输出所有参数。但是当它们被双引号(” “)包含时,”$*” 会将所有的参数作为一个整体,以”$1 $2 … $n”的形式输出所有参数;”$@” 会将各个参数分开,以”$1″ “$2″ … “$n” 的形式输出所有参数。

$*和$@详细区别请看此处… 阅读全文

Linux下RocketMQ环境的配置

  categories:资料  author:

RocketMQ是一款分布式消息系统,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量堆积的需求,在去年捐赠给Apache开源基金会,并列为孵化项目,今年成功的正式成为了apache顶级项目;早期阿里曾经基于ActiveMQ研发的消息系统,随着业务消息的规模增大,瓶颈逐渐明显,后来也考虑过Kafka,但是因为在低延迟和高可靠性方面没有选择,最后才自主研发了RocketMQ,各方面的性能都比目前已有的消息队列要好,RocketMQ和kafka在原理和概念上都非常相似,所以也经常被拿来对比;RocketMQ默认采用长轮询的拉模式,单机支持千万级别的消息堆积,可以非常好的应用在海量消息系统中,下面主要叙述一下RocketMQ的安装配置过程和一些相关的概念,因为rocketmq能够很方便的扩展到分布式集群,所以单机情况下也可以很好的说明,所以下面操作都在一台服务器上执行

RocketMQ官网地址为:http://rocketmq.apache.org/ ,个人感觉RocketMQ的官方文档写的非常清晰,简单易懂,通过文档左侧下方可以找到下载链接,下载编译好的二进制版本,最新版本是4.1.0孵化版,下载安装包为:rocketmq-all-4.1.0-incubating-bin-release.zip,下载之后准备安装

首先解压安装包然后放到自己要安装的位置:

unzip rocketmq-all-4.1.0-incubating-bin-release.zip
mv rocketmq-all-4.1.0-incubating /monchickey/
cd /monchickey/rocketmq-all-4.1.0-incubating/

我这里安装到了/monchickey目录下面,首先可以按照官网上面的Quick Start走一遍,看看大致流程,rocketmq集群包括nameserver和broker,nameserver负责管理集群的列表信息,broker是真正作为消息承载和提供数据吞吐服务的,首先执行下面命令启动nameserver:

nohup ./bin/mqnamesrv &

执行之后再敲一次确认键回到命令行,然后查看日志,默认位置在:~/logs/rocketmqlogs/namesrv.log中,如果看到下面内容则表示启动成功:

然后执行 jps 可以看到NamesrvStartup,就是nameserver进程了

然后需要启动broker,命令如下:

nohup ./bin/mqbroker -n monchickey:9876 &

这里-n指定nameserver地址,nameserver服务端口为9876,,这里如果在配置比较低的计算机或者虚拟机上很容易瞬间启动失败,这时候如果前台启动可能会看到下面这样的内容:

那么这种情况很明显就是内存不足导致的申请失败,RocketMQ默认配置是比较好的,这样可以直接应用于生产环境,所以如果机器内存较小,可以手动调整JVM的配置,可以先编辑bin/mqbroker会看到最后还是调用了bin/runbroker.sh,这里打开bin/runbroker.sh,找到jvm启动配置如下:

这里broker堆内存最大值和初始值都为8G,年轻代大小为4G,因为是测试环境所以xms和xmx都配置为4g,xmn配置为512m即可,配置完成后再次执行上面的命令启动即可,启动成功后日志位置同样是在家目录下,同样使用jps查看会看到BrokerStartup就是broker的进程

对于nameserver和broker日志位置都可以手动配置,具体配置文件就是conf下的logback_broker.xml和logback_namesrv.xml

现在可以跑一个简单的示例看一下了,现在可以打开两个窗口,一个查看生产者,一个查看消费者,首先两个shell窗口都需要执行命令: export NAMESRV_ADDR=monchickey:9876 导入一下nameserver变量,然后第一个窗口执行下面命令启动生产者实例发送消息:

bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

可以看到发送成功的消息返回:

然后另一个窗口可以启动消费者实例消费:

bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
阅读全文


快乐成长 每天进步一点点      京ICP备18032580号-1