通信发展史————奈奎斯特准则和香农定律

通信发展史————奈奎斯特准则和香农定律 数据传输速率的定义 数据传输速率是描述数据传输系统的重要技术指标之一。数据传输速率在数值上等于每秒种传输构成数据代码的二进制比特数,单位为比特/秒(bit/second),记作bps。对于二进制数据,数据传输速率为: S=1/T(bps) 其中,T为发送每一比特所需要的时间。例如,如果在通信信道上发送一比特0、1信号所需要的时间是0.001ms,那么信道的数据传输速率为1 000 000bps。 在实际应用中,常用的数据传输速率单位有:kbps、Mbps和Gbps。其中: 1kbps=103bps 1Mbps=106kbps 1Gbps=109bps 带宽与数据传输速率 在现代网络技术中,人们总是以“带宽”来表示信道的数据传输速率,“带宽”与“速率”几乎成了同义词。信道带宽与数据传输速率的关系可以奈奎斯特(Nyquist)准则与香农(Shanon)定律描述。 奈奎斯特准则指出:如果间隔为π/ω(ω=2πf),通过理想通信信道传输窄脉冲信号,则前后码元之间不产生相互窜扰。因此,对于二进制数据信号的最大数据传输速率Rmax与通信信道带宽B(B=f,单位Hz)的关系可以写为: Rmax=2.f(bps) 对于二进制数据若信道带宽B=f=3000Hz,则最大数据传输速率为6000bps。 奈奎斯特定理描述了有限带宽、无噪声信道的最大数据传输速率与信道带宽的关系。香农定理则描述了有限带宽、有随机热噪声信道的最大传输速率与信道带宽、信噪比之间的关系。 香农定理指出:在有随机热噪声的信道上传输数据信号时,数据传输速率Rmax与信道带宽B、信噪比S/N的关系为: Rmax=B.log2(1+S/N) 式中,Rmax单位为bps,带宽B单位为Hz,信噪比S/N通常以dB(分贝)数表示。若S/N=30(dB),那么信噪比根据公式: S/N(dB)=10.lg(S/N) 可得,S/N=1000。若带宽B=3000Hz,则Rmax≈30kbps。香农定律给出了一个有限带宽、有热噪声信道的最大数据传输速率的极限值。它表示对于带宽只有3000Hz的通信信道,信噪比在30db时,无论数据采用二进制或更多的离散电平值表示,都不能用越过0kbps的速率传输数据。 因此通信信道最大传输速率与信道带宽之间存在着明确的关系,所以人们可以用“带宽”去取代“速率”。例如,人们常把网络的“高数据传输速率”用网络的“高带宽”去表述。因此“带宽”与“速率”在网络技术的讨论中几乎成了同义词。 带宽:信号传输频率的最大值和最小值之差(Hz)。信道容量:单位时间内传输的最大码元数(Baud),或单位时间内传输的最大二进制数(b/s)。数据传输速率:每秒钟传输的二进制数(b/s)。 带宽 :信道可以不失真地传输信号的频率范围。为不同应用而设计的传输媒体具有不同的信道质量,所支持的带宽有所不同。 信道容量:信道在单位时间内可以传输的最大信号量,表示信道的传输能力。信道容量有时也表示为单位时间内可传输的二进制位的位数(称信道的数据传输速率,位速率),以位/秒(b/s)形式予以表示,简记为bps。 数据传输率:信道在单位时间内可以传输的最大比特数。信道容量和信道带宽具有正比的关系:带宽越大,容量越大。(这句话是说,信道容量只是在受信噪比影响的情况下的信息传输速率) 低通信道: 任何实际的信道带宽都是有限的,在传输信号时带来的各种失真以及存在的多种干扰,使得信道上的码元传输速率有一个上限。1924年奈奎斯特推导出在具有理想低通矩形特性的信道的情况下的最高码元传输速率公式: 理想低通信道的最高码元传输速率=2W Baud W :理想低通信道的带宽,单位为赫;Baud:波特,码元传输速率单位,1波特为每秒传送1个码元。奈氏准则的另一种表达方法是:每赫带宽的理想低通信道的最高码元传输速率是每秒传送2个码元。 对于具有理想带通矩形特性的信道(带宽为W),奈氏准则就变为 理想带通信道的最高码元传输速率=W Baud 即每赫带宽的带通信道的最高码元传输速率为每秒传送1个码元。

2011-09-14 · qhsong

字符编码详解 part2

编码系列1:编码那点事—-历史进化 编码系列2:字符编码详解 part1 编码系列3:字符编码详解 part2

2011-08-14 · qhsong

字符编码详解 part1

转自http://polaris.blog.51cto.com/1146394/377468 编码系列1:编码那点事—-历史进化 编码系列2:字符编码详解 part1 编码系列3:字符编码详解 part2 每一个程序员都不可避免的遇到字符编码的问题,特别是做Web开发的程序员,“乱码问题”一直是让人头疼的问题,也许您已经很少遇到“乱码”问题,然而,对解决乱码的方法的内在原理,您是否明白?本人作为一个程序员,在字符编码方面同样遇到不少问题,而且一直对各种编码懵懵懂懂、不清不楚;在工作中也曾经遇到一个很烦人的编码问题。这两天在网上收集了大量编码方面的资料,对字符编码算是理解的比较清楚了。下面把我认为比较重要的知识点记录下来,一方面方便以后复习;另一方面也希望给跟我一样懵懵懂懂的人一个参考。不对或不妥之处,请批评指正。

2011-08-14 · qhsong

编码那点事----历史进化

这几天在做网站,遇到了编码的问题,于是网上查查有关计算机编码的问题,作为一个学计算机的,得学学啊。。。 我搜素到的 编码那点事—-历史进化 编码系列1:编码那点事—-历史进化 编码系列2:字符编码详解 part1 编码系列3:字符编码详解 part2 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。 开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。 他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端、打印机遇上约定好的这些字节被传过来时,就要做一些约定的动作。遇上00x10, 终端就换行,遇上0x07, 终端就向人们嘟嘟叫,例如遇上0x1b, 打印机就打印反白的字,或者终端就用彩色显示字母。他们看到这样很好,于是就把这些0x20以下的字节状态称为"控制码"。 他们又把所有的空格、标点符号、数字、大小写字母分别用连续的字节状态表示,一直编到了第127号,这样计算机就可以用不同字节来存储英语的文字了。大家看到这样,都感觉很好,于是大家都把这个方案叫做 ANSI 的"Ascii"编码(American Standard Code for Information Interchange,美国信息互换标准代码)。 当时世界上所有的计算机都用同样的ASCII方案来保存英文文字。 后来,就像建造巴比伦塔一样,世界各地的都开始使用计算机,但是很多国家用的不是英文,他们的字母里有许多是ASCII里没有的,为了可以在计算机保存他们的文字,他们决定采用127号之后的空位来表示这些新的字母、符号,还加入了很多画表格时需要用下到的横线、竖线、交叉等形状,一直把序号编到了最后一个状态255。从128到255这一页的字符集被称"扩展字符集"。从此之后,贪婪的人类再没有新的状态可以用了,美帝国主义可能没有想到还有第三世界国家的人们也希望可以用到计算机吧! 等中国人们得到计算机时,已经没有可以利用的字节状态来表示汉字,况且有6000多个常用汉字需要保存呢。但是这难不倒智慧的中国人民,我们不客气地把那些127号之后的奇异符号们直接取消掉,规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到 0xF7,后面一个字节(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,我们还把数学符号、罗马希腊的 字母、日文的假名们都编进去了,连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的"全角"字符,而原来在127号以下的那些就叫"半角"字符了。 中国人民看到这样很不错,于是就把这种汉字方案叫做 “GB2312”。GB2312 是对 ASCII 的中文扩展。 后来还是不够用,于是干脆不再要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容。结果扩展之后的编码方案被称为 GBK 标准,GBK 包括了 GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。 后来少数民族也要用电脑了,于是我们再扩展,又加了几千个新的少数民族的字,GBK 扩成了GB18030。从此之后,中华民族的文化就可以在计算机时代中传承了。 中国的程序员们看到这一系列汉字编码的标准是好的,于是通称他们叫做 “DBCS”(Double Byte Charecter Set 双字节字符集)。在DBCS系列标准里,最大的特点是两字节长的汉字字符和一字节长的英文字符并存于同一套编码方案里,因此他们写的程序为了支持中文处 理,必须要注意字串里的每一个字节的值,如果这个值是大于127的,那么就认为一个双字节字符集里的字符出现了。那时候凡是受过加持,会编程的计算机僧侣 们都要每天念下面这个咒语数百遍: “一个汉字算两个英文字符!一个汉字算两个英文字符……” 因为当时各个国家都像中国这样搞出一套自己的编码标准,结果互相之间谁也不懂谁的编码,谁也不支持别人的编码,连大陆和台湾这样只相隔了150海里,使用着同一种语言的兄弟地区,也分别采用了不同的 DBCS 编码方案——当时的中国人想让电脑显示汉字,就必须装上一个"汉字系统",专门用来处理汉字的显示、输入的问题,但是那个台湾的愚昧封建人士写的算命程序就必须加装另一套支持 BIG5 编码的什么"倚天汉字系统"才可以用,装错了字符系统,显示就会乱了套!这怎么办?而且世界民族之林中还有那些一时用不上电脑的穷苦人民,他们的文字又怎么办? 真是计算机的巴比伦塔命题啊! 正在这时,大天使加百列及时出现了——一个叫 ISO(国际标准化组织)的国际组织决定着手解决这个问题。他们采用的方法很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号的编码!他们打算叫它"Universal Multiple-Octet Coded Character Set",简称 UCS, 俗称 “UNICODE”。 UNICODE 开始制订时,计算机的存储器容量极大地发展了,空间再也不成为问题了。于是 ISO 就直接规定必须用两个字节,也就是16位来统一表示所有的字符,对于ascii里的那些“半角”字符,UNICODE 包持其原编码不变,只是将其长度由原来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。由于"半角"英文符号只需要用到低8位,所以其高 8位永远是0,因此这种大气的方案在保存英文文本时会多浪费一倍的空间。...

2011-08-14 · qhsong

安装xAndroid出现failed to mount SD card错误

今天吧自己的HTC touch pro装上了xAndriod,一开始安装时出现错误,failed to mount SD card,不进行下去了。。。。后来在这里找到解决办法 http://forum.xda-developers.com/showthread.php?t=748678 (其他问题也可以参照这个方法解决。。。) 先把自己卡里面的东西拷出来,然后下载SD card formatter http://www.sdcard.org/consumers/formatter/ ,下载最新版,把卡格式化就好了。。。。 剩下的就是等待了,总体来说还是不错的,细节上有待具体玩玩。。。 测了个网速,悲惨的china tietong。。。

2011-07-29 · qhsong

【转自CSDN】关于编程鲜为人知的真相

导读:原文来自dotmac.rationalmind.net上一篇《Some lesser-known truths about programming》,译文来自外刊IT评论整理编译《关于编程,鲜为人知的真相》而来。 我常年程序员的经历让我知道了一些关于软件编程的事情。下面的这些事情可能会让朋友们对软件开发感到惊讶: 1.一个程序员用在写程序上的时间大概占他的工作时间的10-20%,大部分的程序员每天大约能写出10-12行的能进入最终的产品的代码——不管他的技术水平有多高。好的程序员花去90%的时间在思考、研究和实验,来找出最优方案。差的程序员花去90%的时间在调试问题程序、盲目的修改程序,期望某种写法能可行。“一个卓越的车床工可以要求比一个一般的车床工多拿数倍高的工资,但一个卓越的软件写手的价值会10000倍于一个普通的写手。”——比尔盖茨 2.一个优秀的程序员的效率会是一个普通的程序员的十倍之上。一个伟大的程序员的效率会是一个普通程序员的20-100倍。这不是夸张——1960年以来的无数研究都一致的证明了这一点。一个差的程序员不仅仅是没效率——他不仅不能完成任务,写出的大量代码也让别人头痛的没法维护。 3.伟大的程序员只花很少的时间去写代码——至少指那些最终形成产品的代码。那些要花掉大量时间写代码的程序员都是太懒惰,太自大,太傲慢,不屑用现有的方案去解决老问题。伟大的程序员的精明之处在于懂得欣赏和重复利用通用模式。好的程序员并不害怕经常的重构(重写)他们的代码以求达到最好效果。差的程序员写的代码缺乏整体概念,冗余,没有层次,没有模式,导致很难重构。把这些代码扔掉重做也比修改起来容易。 4.软件遵循熵的定律,跟其它所有东西一样。持续的变更会导致软件腐烂,腐蚀掉对原始设计的完整性概念。软件的腐烂是不可避免的,但程序员在开发软件时没有考虑完整性,将会使软件腐烂的如此之快,以至于软件在还没有完成之前就已经毫无价值了。软件完整性上的熵变可能是软件项目失败最常见的原因。(第二大常见失败原因是做出的不是客户想要的东西。)软件腐烂使开发进度呈指数级速度放缓,大量的软件在失败之前都是面对着突增的时间要求和资金预算。 5.2004年的一项研究表明大多数的软件项目(51%)会在关键功能上失败,其中15%是完全的失败。这比1994年前有很大的改进,当时是31%。 6.尽管大多数软件都是团体开发的,但这并不是一项民/主的活动。通常,一个人负责设计,其他人负责实现细节。 7.编程是个很难的工作。是一种剧烈的脑力劳动。好的程序员7×24小时的思考他们的工作。他们最重要的程序都是在淋浴时、睡梦中写成的。因为这最重要的工作都是在远离键盘的情况下完成的,所以软件工程不可能通过增加在办公室的工作时间或增加人手来加快进度。 英文原文:Some lesser-known truths about programming 译文出自:关于编程,鲜为人知的真相

2011-06-22 · qhsong

Ubuntu+win系列多系统重装修复

最近折腾小Y,在移动硬盘里装个win8 玩玩,又把自己原来的win7 32位换成了64位,很悲催的说。每次重装系统,都是折磨我这幼小的心灵。。 电脑以前是Ubuntu+win7+win XP三系统共存,采用的是先grub再mbr的引导方式。 每次重装完系统之后,很悲剧的就是grub不引导了。网上的修复办法很多,其中有一个是使用Ubuntu live,在终端里输入grub命令运行……经测试,根本无法执行grub。 最后还是在这里找到了良方。 sudo -i #换到root下 fdisk -l #查看ubuntu系统安装盘符,或者是/boot的挂载点,我的在/dev/sda1 mount /dev/sda1 /media/mnt grub -install --root-directory=/media/mnt /dev/sda #接下来重启系统(ubuntu),继续修改 sudo update-grub2 到此ubuntu的系统启动引导就算完了。 其实发现一个问题,自己以后安装系统的时候,还是分出一个区域专门挂/boot把,要是那个分区出问题,整个电脑又启动不起来了。。。。。。win的安装机制也有点太那个了,非得 把你主引导的设置成活动的,把其他的 直接设置成非活动…… 总体来说,今天还是挺和谐的。装了个U盘win8,又把自己电脑系统换成了win7 64位。。

2011-06-19 · qhsong

W3C与WHATWG

W3C是英文 World Wide Web Consortium 的缩写,中文意思是W3C理事会或万维网联盟。W3C于1994年10月在麻省理工学院计算机科学实验室成立。创建者是万维网的发明者Tim Berners-Lee。 W3C组织是对网络标准制定的一个非赢利组织,像HTML、XHTML、CSS、XML的标准就是由W3C来定制。W3C会员(大约500名会员)包括生 产技术产品及服务的厂商、内容供应商、团体用户、研究实验室、标准制定机构和政府部门,一起协同工作,致力在万维网发展方向上达成共识。 WHATWG即Web Hypertext Applications Technology Working Group(Web超文本应用技术工作组,WHATWG),由Opera、Apple等浏览器厂商,以及其他一些成员创建,目标是扩展和改进HTML。

2011-06-06 · qhsong

装了VM虚拟机导致局域网游戏不能运行

2011-06-01 · qhsong

[转载]来自微软的纯CSS下拉菜单

2011-05-15 · qhsong