A. 计算机算法中有几种常用的循环结构
1.冒泡排序:时间复杂度为O(n * n)
NSArray *array ;
int i ,j;
for(i = 0, i < array.count -1, i++)
{
for( j = i , j < array.count -1,j++){
if(array[i] > array[j]){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
2.二分查找(折半查找),时间复杂度为o(log n )
int search(int array[], int low, int high, int target)
{
if (low > high) return -1;//第一次,low为0,high为数组的个数。这是用递归实现的。
int mid = (low + high)/2;
if (array[mid]> target)
return search(array, low, mid -1, target);
if (array[mid]< target)
return search(array, mid+1, high, target);
//if (midValue == target)
return mid;
}3.单链表反转
使用3个指针遍历单链表,逐个链接点进行反转。
ActList* ReverseList2(ActList* head)
{
//ActList* temp=new ActList;
if(NULL==head|| NULL==head->next) return head; //少于两个节点没有反转的必要。
ActList* p;
ActList* q;
ActList* r;
p = head;
q = head->next;
head->next = NULL; //旧的头指针是新的尾指针,next需要指向NULL
while(q){
r = q->next; //先保留下一个step要处理的指针
q->next = p; //然后p q交替工作进行反向
p = q;
q = r;
}
head=p; // 最后q必然指向NULL,所以返回了p作为新的头指针
return head;
}
4.判断一个链表是否为循环链表
判断一个单向链表是否是循环链表比较简单,只要将一个指针p指向表的第一个节点,而另外一个指针q指向
p的下一个节点,然后让q向后滑动,直到q为0或q等于p(此时表是循环链表)为止。
5.判断一个单链表是否存在环
设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)程序如下:
bool IsExitsLoop(slist *head)
{
slist *slow = head, *fast = head;
while ( fast && fast->next )
{
slow = slow->next;
fast = fast->next->next;
if ( slow == fast ) break;
}
return !(fast == NULL || fast->next == NULL);
}
B. 计算机网络问题,急,,,
2017年12月13日星期三,
这里需要强调一点,生成多项式(generator polynomial)和多项式不是一个概念,这里需要注意。我个人的理解是你要进行几位的CRC校验,就需要几位的生成多项式(generator polynomial),但还收到生成多项式(generator polynomial)的第一位必须为1的限制,因此生成的多项式还需要注意这一点。原始信息所对应的多项式和生成多项式(generator polynomial)不是一个概念。
首先,我们要知道,任何一串二进制数都可以用一个多项式表示:且这串二进制数的各位对应多项式的各幂次,多项式中假如有此幂次项(比如多项式汇中有幂次项x^2对应二进制串码中从右至左的第三位二进制数一定为1.因为右数第一位的幂次项为x^0,右数第二位的幂次项为x^1),则对应二进制数串码中此位置的1,无此幂次项对应0。
举例:代码1010111对应的多项式为x^6+x^4+x^2+x+1,若我们将缺失的幂次项补全的话就有x^6+(x^5)+x^4+(X^3)+x^2+x+1,又因为x^5和X^3所对应的二进制位为0,不记入多项式中,因此有x^6+x^4+x^2+x+1,就是表示 1010111这个串码。
而多项式为x^5+x^3+x^2+x+1的完整多项式为x^5+(x^4)+x^3+x^2+x+1正好对应二进制串码101111,而x^4对应的二进制串码中右数第五位(左数第二位)为0,不记入多项式中,因此,101111可以使用多项式x^5+x^3+x^2+x+1来表示。
通过上述两个多项式的例子,可以看出,当多项式中的幂次项所对应的那一位二进制为1时,多项式中的那一个幂次项存在,而当二进制串码中的某位为0时,对应的多项式幂次项忽略不记录,例如,10111 1因为从左向右第二位是0,因此对应的多项式分子x^4就没有被记录到多项式中,
书面的说法是:
多项式和二进制数有直接对应关系:X的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0。可以看出:X的最高幂次为R,转换成对应的二进制数有R+1位,
我们现在来看题目中generator plynomial (生成多项式)is X^4+x^2+1,最高幂次是4,因此,其表示的二进制为(4+1=5)5位,
且通过crc的原理,我们知道,循环冗余校验码(CRC)是由两部分组拼接而成的,
第一部分是信息码,
第二部分是校验码,
可得公式:
CRC=信息码+校验码,
很明显校验码是跟在信息码之后的,所以,题目中1101011011中左数的那5位是真正传输的信息(信息码),即actual bit string transmitted(实际传输的信息位流)是11010,而后面的5位(11011)是校验码,
接下来我们结合上面的内容来理解对CRC的定义:
循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设要发送的信息用多项式C(X)表示,将C(x)左移R位(可表示成C(x)*2^R),这样C(x)的右边就会空出R位,这就是校验码的位置。用 C(x)*2^R 除以生成多项式G(x)得到的余数就是校验码。
另一个定义:
利用CRC进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。
再看另一个描述,在代数编码理论中,将一个码组表示为一个多项式,码组中各码元当作多项式的系数。例如 1100101 表示为1·x^6+1·x^5+0·x^4+0·x^3+1·x^2+0·x^1+1,即 x^6+x^5+x^2+1。
设,编码前的原始信息多项式为P(x),P(x)的最高幂次加1等于k(这里的K就是整个原始信息的二进制编码的长度,以上例1100101为例,此串二进制编码的最高位对应的多项式幂次为6,根据定义得K=6+1=7,正好是此串二进制编码的长度,);
设,生成多项式为G(x),G(x)的最高幂次等于r,这个r可以随意指定,也就是r可以不等于K,但指定r时,必须满足生成多项式G(x)最高位必须为1的条件,
设,CRC多项式为R(x)。:将P(x)乘以x^r(即对应的二进制码序列左移r位),再除以G(x),所得余式即为R(x)。
设,编码后的带CRC的信息多项式为T(x)。:用公式表示为T(x)=x^r*P(x)+R(x),翻译过来就是,编码后的带CRC校验的多项式由左移了r位的原始信息P(x)后接CRC的校验码R(x)组成,
而在接收端,是使用T(x )去除G(x),若无余数,则表示接收正确。就是接收端使用接收到的信息T(x )去除和发送端约好的生成多项式G(x),若除尽没有余数则表示信息正确接收。
我们再来看本题,
题中给出已传输的信息为:1101011011,即T(x )=1101011011;
而generator polynomial 生成多项式是:x^4+x^2+1,即G(x)=10101;
那么,我们来使用T(x )除以G(x)=110,根据上面的定义,我们知道,出现了没有除尽的情况,有余数,余数为110,则说明信息11010在传递过程出现了错误,而题目中给出,若将此信息串码的左数第三位进行翻转,则接收到的信息为:1111011011,那么,
T(x )=1111011011,
则,再通过T(x )除以G(x)进行校验运算后,得到余数1,没有除尽
即T(x )除以G(x)=1,
所以没有通过CRC校验,此时,接收端能发现这个错误,
但是,如果我们将此串数据的左数第三位和最后一位同时翻转,得到1111011010,那么再经过T(x )除以G(x)的接收端校验后,除尽了,余数为0,则,此时,因为T(x )除以G(x)=0,通过了接收端的校验,因此,接收端并不能发现这个错误,以为是收到了正确的串码:11110,但实际上我们发送的串码是:11010,
最后,我们再来研究一下,T(x )是怎么除G(x)的,实际上我们必须清楚,这里的除法实际上并不是我们传统意义上的十进制除法,而是两个二进制的“按位异或”(请注意每步运算都是先进行高位对齐的。)的算法,在二进制数运算中,这被称为模二除运算,
来看两个例子,
【例一】假设使用的生成多项式是G(X)=X3+X+1。4位的原始报文为1010,求编码后的报文。
解:
1、将生成多项式G(X)=X^3+X+1转换成对应的二进制除数1011。
R=3,R就是生成多项式的最高次幂,
2、此题生成多项式有4位(R+1)(注意:通过对生成多项式计算所得的校验码为3位,因为,生成多项式的R为生成多项式的最高次幂,所以校验码位数是3位),要把原始报文C(X)【这里的C(X)就是1010】左移3(R)位变成1010 000
3、用生成多项式对应的二进制数对左移3位后的原始报文进行模2除(高位对齐),相当于按位异或:
1010000
1011
------------------
0001000, 请注意这里,通过第一次除法,也就是模2除(高位对齐)的运算,将两个二进制代码进行了高位对齐后的按位异或的操作后,得到0001000即1000,接下来,需要进行第二次除法,即使用第一步得到的二进制数1000去除1011【G(x)】,则有下面的式子,
1000
1011
------------------
0011,请注意,结果为0011,也可以写成11,但是我们由上面得知,由生成多项式G(X)=X^3+X+1,已经确定了校验位是3位,因此,
得到的余位011,所以最终编码为:1010 011。
例二:
信息字段代码为: 1011001;对应的原始多项式P(x)=x6+x4+x3+1
假设生成多项式为:g(x)=x4+x3+1;则对应g(x)的代码为: 11001,又因为g(x)最高次幂为4,因此可以确定校验位是4位,
根据CRC给生成多项式g(x)定义的规则,将原始代码整体左移4位,这样在原始数据后面多出4位校验位的位置,即x^4*P(x),得到:10110010000;
接下来使用10110010000去除以g(x),得到最终的余数1010,并与原始信息组成二进制串码:1011001 1010发送出去,
接收方:使用相同的生成多项式进行校验:接收到的字段/生成码(二进制除法)
如果能够除尽,则正确,
给出余数(1010)的计算步骤:
除法没有数学上的含义,而是采用计算机的模二除法,即除数和被除数做异或运算。进行异或运算时除数和被除数最高位对齐,按位异或。
10110010000
^11001
--------------------------
01111010000 ,这里进行第一次按位异或,得到01111010000,即1111010000,将1111010000再去除以11001,如下步骤,
1111010000
^11001
-------------------------
0011110000,进行了第二次模2除后,得到0011110000,即11110000,将
11110000去除11001,
11110000
^11001
--------------------------
00111000,第三次摸2除,得到00111000,即111000,用
111000去除11001,
111000
^11001
-------------------
001010,进行第四次模2除后,得到最终的余数,001010,即1010,
则四位CRC校验码就为:1010。
C. 计算机网路中的香农公式是什么
计算最大信息传送速率C公式”:C=Wlog2(1+S/N)。式中:W是信道带宽(赫兹),S是信道内所传信号的平均功率(瓦),N是信道内部的高斯噪声功率(瓦)。
信道容量与信道带宽成正比,同时还取决于系统信噪比以及编码技术种类。
(3)计算机网络循环公式扩展阅读:
香农定理指出,如果信息源的信息速率R小于或者等于信道容量C,那么,在理论上存在一种方法可使信息源的输出能够以任意小的差错概率通过信道传输。
该定理还指出:如果R>C,则没有任何办法传递这样的信息,或者说传递这样的二进制信息的差错率为1/2。
可以严格地证明;在被高斯白噪声干扰的信道中,传送的最大信息速率C由下述公式确定:
C=W*log₂(1+S/N) (bit/s)
该式通常称为香农公式。C是码元速率的极限值,单位bit/s;W为信道带宽,单位Hz;S是信号功率(瓦),N是噪声功率(瓦)。
香农公式中的S/N是为信号与噪声的功率之比,为无量纲单位。如:S/N=1000(即,信号功率是噪声功率的1000倍)
但是,当讨论信噪比时,常以分贝(dB)为单位。公式如下:
SNR(信噪比,单位为dB)=10 lg(S/N)
换算一下:
S/N=10^(SNR/10)
公式表明,信道带宽限制了比特率的增加,信道容量还取决于系统信噪比以及编码技术种类。
参考资料来源:网络-香农公式
D. 关于计算机网络循环冗余码怎么求求大神。、、
解出的R=0101(fcs)
输出2^nM+fas=1001110111010101
唔感觉是这样的
E. crc 计算机网络
2017年12月29日,星期五,
兄弟,我先给你简单再捋一遍CRC编码的概念和计算公式,原理明白了,以后不管碰到什么样的题,你都会迎刃而解了。
首先,需要知道如下几个概念,
CRC编码,就是你题目中所说的“待发字串”,它是经加工后带有CRC校验的待发送信息,
CRC校验码,就是你题目中所说的“CRC循环冗余码”,以下都简称为CRC校验码,它是通过CRC规则计算得来,
多项式,即真实信息,就是未经CRC编码规则处理的原始的信息,就是你题目中说的“已知信息码”,原始的真实信息有两种表现形式,以本题为例,
a、原始信息的 二进制字串(形式):1000100101,
b、原始信息的 多项式(形式):X^9+X^5+X^2+1,
X^9+X^5+X^2+1多项式,就是由原始信息的二进制形式1000100101得来的,多项式中每一个因数都对应二进制形式 1000100101 中值为1的那一位,X^9 X^5 X^2就是2^9+2^5+2^2,那表示二进制数的权位,
1000100101
1*2^90*2^80*2^70*2^6 1*2^5 0*2^4 0*2^3 1*2^2 0*2^11*2^0
2^0=1...2^9=1 000 000 000,凡是二进制字串中值为1的权位都出现在了多项式中,例如,二进制字串最高位(左1)的1,就是2^9,所以它出现在了多项式中,形状为X^9,而二进制数串中值为0的权位都没有出现在多项式中,可以数一下,二进制数串中有4个1,所以对应的多项式中有4个因子:X^9、X^5、X^2、1,其中多项式的最后一个因子1,其实就是X^0,而我们都知道,任何数的0次幂都是1(0除外),可以看出,这两种形式是等价的,即1000100101=X^9+X^5+X^2+1,当我们再遇到多项式时,就是去数原始信息(1000100101)中的1,然后把它的值为1的权位放到一起,写成式子(X^9+X^5+X^2+1),两者意义是一样的,从二进制形式能推导出多项式,也可以从多项式推导出二进制形式,
生成多项式,就是你题目中提到的“G(x)=X^5+X^4+X^2+1”,生成多项式也可以写成二进制形式,X^5+X^4+X^2+1其对应的二进制形式:110101,
通常,我们为了方便说明问题将生成多项式叫做:G(x),这里请注意,需要将
“生成多项式”和“多项式”进行区分,G(x)中的G就是generator polynomial,生成多项式的意思,
多项式:指的是原始信息1000100101中所有权位为1的权位写在一起的形式X^9+X^5+X^2+1
生成多项式:是人为指定的多项式,由编码人指定的东西,本例被人为指定成X^5+X^4+X^2+1即 110101 ,这个生成多项式是人为指定的,不是固定的,个人理解你指定成X^5+X^3+X^2+1也行,制定成X^5+X^4+X^3+X^2+1也行,
好了,接下来,我们要说最关键的CRC的定义和计算过程了,
CRC的定义:
多项式*2^(G(x)的最高次幂指数,你给的图片题目中G(x)的最高次幂指数是5)/G(x)=CRC校验码;
用文字表达,就是原始数据信息乘以,2的 【生成多项式中最高幂指数】 次幂,乘2的多少次幂,就是在右边加几个0,比如乘以2^2,就是在右边加2个零,因为是二进制数,所以乘几个2就是加几个零,和十进制数乘几个10就是加几个零道理一样,然后再去除以生成多项式,请注意,这里的除,不是数学中的除法,而是指计算机中的模二除运算,实际上就是逻辑异或运算,说白了,就是将除数和被除数高位,进行左对齐后,相同为0,不同为1,然后一直除下去,直到得到最后的余数为止,这个余数就是我们需要的CRC校验码,而且这个最后得到的余数,取几位由生成多项式中最高幂指数决定,最高幂指数是5就取5位,最高幂指数是6就取6位,最高幂指数是4就取4位,是根据生成多项式的最高次幂来定取几位的.本例中,最高次幂是5,所以,最后的余数是5位二进制数,
X^5+X^4+X^2+1写成二进制就是: 110101
你的图片题目中,G(x)=X^5+X^4+X^2+1,也就是生成多项式是110101,
结合本题,我们来做一遍,原始数据:1000100101,生成多项式:110101,根据上面的规则有,
1000100101*2^5=1000100101 00000
把原始值右边加上5个零:1000100101 00000之后,去除以生成多项式:110101
1000100101 00000
110101
----------------------------
0101110101 00000
左对齐,并开始按位异或,得0101110101 00000,
进行第二次除运算:
101110101 00000
110101
--------------------------
011011101 00000
左对齐,再按位异或,得到011011101 00000
开始第三次除运算:
11011101 00000
110101
--------------------
00001001 00000
左对齐,再按位异或,得到00001001 00000
进行第四次除运算:
100100000
110101
-----------------
010001000
左对齐,再异或,得到010001000
进行第五次除运算:
10001000
110101
------------
01011100
左对齐,再异或,得到01011100
进行第六次除运算:
1011100
110101
-------------
0110110
左对齐,再异或,得到0110110
进行第七次,最后一次除运算:
110110
110101
------------
000011
最终余数为000011,而由G(x)的最高次幂X^5的幂指数决定了,CRC校验码取5位,因此,最终得到的CRC校验码为:00011,
多项式*2^(G(x)的最高次幂指数,本例中G(x)的最高次幂指数是5)+G(x)=最终在物理线路上传送的CRC编码待发字串,
用文字表达就是,原始数据乘以,2的 【生成多项式中最高幂指数】 次幂,然后再加上生成多项式,最终得到要在线路中传送的CRC编码待发字串,
接着,以本例进行余下的计算,原始数据:1000100101,CRC校验码(CRC循环冗余码)为:00011,
根据上面的定义,有:
1000100101*2^5=1000100101 00000,
1000100101 00000
+ 00011
----------------------
100010010100011
所以最终的“待发字串”CRC编码为:100010010100011
F. 求解,计算机网络技术基础详细过程!
1. 在CRC校验中。已知生成多项式是G(x)=x4+x3+1。要求写出信息1011001的CRC校验码。 解:
生成多项式G(x)=11001,为5位,校验余数取4位,按模2除法计算过程如下:
1101010 11001 10110010000
11001 11110
11001 011110 11001 011100 11001 1010 余数R(x)= 1010
CRC校验码=1011001 1010
2. 双方采用CRC循环校验码进行通信,已知生成多项式为x4+x3+x+1,接收到码字为10111010011。判断该信息有无错误。 解:
依题意,生成多项式G(x)=11011,如果信息正确,则模2除法余数应为0
1100101 11011 10111010011 11011 11000
11011 11100 11011 11111 11011 100 结果余数R(x)= 100不为零所以结果有错。
在一个带宽为 3KHZ、没有噪声的信道,能够达到的码元速率极限值为6kbps 码元速率是信道传输数据能力的极限,奈奎斯特(Nyquist)首先给出了无噪声情况下码元速率的极限值与信道带宽的关系:B=2H (Baud)其中,H是信道的带宽,也称频率范围,即信道能传输的上、下限频率的差值。由此可以推出表征信道数据传输能力的奈奎斯特公式:C=2•H•log2N (bps)对于特定的信道,其码元速率不可能超过信道带宽的2倍,但若能提高每个码元可能取的离散值的个数,则数据传输速率便可成倍提高。例如,普通电话线路的带宽约为3kHz,则其码元速率的极限值为6kBaud。若每个码元可能取得离散值的个数为32(即N=32),则最大数据传输速率可达C=2*3k*log2 32=30kbps。
实际的信道总要受到各种噪声的干扰,香农(Shannon)则进一步研究了受随机噪声干扰的信道的情况,给出了计算信道容量的香农公式: C=H*log2(1+S/N) (bps)其中,S表示信号功率,N为噪声功率,由此可见,只要提高信道的信噪比,便可提高信道的最大数据传输速率
希望能帮到你
G. 计算机网络循环冗余检验 中的除数怎么来的
首先要知道CRC生成的多项式P(X)。除数的位数是P(X)最高次幂+1。P(X)每个幂数代表着除数从右到左第几位为1,其余的都为0,就得出除数了。比如P(X)=X^4+X^3+1,则除数个数为5,从右往左分别为0 1 2 3 4位,其中4,3,0位为1,其余为0。除数为11001
H. 求 全国计算机技术与软件专业技术资格(水平)考试 网络工程师 通信基础部分的 公式大全。谢谢。。。。。
是总复习哈:
波特(Baud):码元传输的速率单位。波特率为每秒传送的码元数(即信号传送速率)。 1 Baud = log2M (bit/s) 其中M是信号的编码级数。也可以写成:Rbit = Rbaud log2M 上式中:Rbit-比特率,Rbaud-波特率。一个信号往往可以携带多个二进制位,所以在固定的信息传输速率下,比特率往往大于波特率。换句话说,一个码元中可以传送多个比特。例如,M=16,波特率为9600时,数据传输率为38.4kbit/s
误码率:信道传输可靠性指标,是概率值信息编码:将信息用二进制数表示的方法。数据编码:将数据用物理量表示的方法。例如:字符‘A’的ASCII编码(是信息编码的一种)为01000001
带宽:带宽是通信信道的宽度,是信道频率上界与下界之间之差,是介质传输能力的度量,在传统的通信工程中通常以赫兹(Hz)为单位计量。在计算机网络中,一般使用每秒位数(b/s 或bps) 作为带宽的计量单位。主要单位:Kb/s,Mb/s,Gb/s,一个以太局域网理论上每秒可以传输1千万比特,它的带宽相应为10Mb/s。
时延 △信息从网络的一端传送到另一端所需的时间 △时延之和=处理时延+排队时延 +发送时延+传播时延 △处理时延=分组首部和错误校验等处理(微秒) △排队时延=数据在中间结点等待转发的延迟时间 △发送时延=数据位数/信道带宽 △传播时延=d/s(毫秒)d:距离 s:传播速度≈光速
时延带宽乘积:某一链路所能容纳的比特数。时延带宽乘积=带宽×传播时延。例如,某链路的时延带宽乘积为100万比特,这意味着第一个比特到达目的端时,源端已发送了100万比特。
往返时延 (Round-Trip Time ,RTT) 从信源发送数据开始,到信源收到信宿确认所经历的时间RTT≈2×传播时延,传输可靠性两个含义: 1、数据能正确送达 2、数据能有序送达(当采用分组交换时)
信息通信系统传输
1、信道及其主要特征:数字信道和模拟信道
数字信道:以数字脉冲形式(离散信号)传输数据的信道。
模拟信道:以连续模拟信号形式传输数据的信道。模拟信号和数字信号
模拟信号:时间上连续,包含无穷多个信号值
数字信号:时间上离散,仅包含有限数目的信号值周期信号和非周期信号
周期信号:信号由不断重复的固定模式组成(如正弦波)
非周期信号:信号没有固定的模式和波形循环(如语音的音波信号)。
2、数字数据的传输方式
基带传输:不需调制,编码后的数字脉冲信号直接在信道上传送。例如:以太网
宽带传输:数字信号需调制成频带模拟信号后再传送,接收方需要解调。例如:通过电话模拟信道传输。例如:闭路电视的信号传输。
3、数据同步方式:目的是使接收端与发送端在时间基准上一致 (包括开始时间、位边界、重复频率等)。有三种同步方法:位同步、字符同步、帧同步。
位同步 目的是使接收端接收的每一位信息都与发送端保持同步,有下面两种方式: △外同步——发送端发送数据时同时发送同步时钟信号,接收方用同步信号来锁定自己的时钟脉冲频率。 △自同步——通过特殊编码(如曼彻斯特编码),这些数据编码信号包含了同步信号,接收方从中提取同步信号来锁定自己的时钟脉冲频率。
字符同步 以字符为边界实现字符的同步接收,也称为起止式或异步制。每个字符的传输需要:1个起始位、5~8个数据位、1,1.5,2个停止位。
字符同步的性能评估: △频率的漂移不会积累,每个字符开始时都会重新同步。 △每两个字符之间的间隔时间不固定。 △增加了辅助位,所以效率低。例如,采用1个起始位、 8个数据位、 2个停止位时,其效率为8/11<72%。
帧同步 识别一个帧的起始和结束。 △帧(Frame)数据链路中的传输单位——包含数据和控制信息的数据块。 △面向字符的——以同步字符(SYN,16H)来标识一个帧的开始,适用于数据为字符类型的帧。 △面向比特的——以特殊位序列(7EH,即01111110)来标识一个帧的开始,适用于任意数据类型的帧。
4、信道最大数据传输率
奈奎斯公式:用于理想低通信道 C = 2W×log2 M C = 数据传输率,单位bit/s W = 带宽,单位Hz M = 信号编码级数奈奎斯公式为估算已知带宽信道的最高数据传输速率提供了依据。
非理想信道:实际的信道上存在损耗、延迟、噪声。损耗引起信号强度减弱,导致信噪比S/N降低。延迟会使接收端的信号产生畸变。噪声会破坏信号,产生误码。持续时间0.01s的干扰会破坏约560个比特(56Kbit/s) △香农公式:有限带宽高斯噪声干扰信道 C = W log2 (1+S/N) S/N: 信噪比例:信道带宽W=3.1KHz,S/N=2000,则 C = 3100*log2(1+2000) ≈ 34Kbit/s 即该信道上的最大数据传输率不会大于34Kbit/s
奈奎斯公式和香农公式的比较 △C = 2W log2M 数据传输率C随信号编码级数增加而增加。 △C = W log2(1+S/N) 无论采样频率多高,信号编码分多少级,此公式给出了信道能达到的最高传输速率。原因:噪声的存在将使编码级数不可能无限增加。 5、数据编码
编码与调制的区别 △用数字信号承载数字或模拟数据——编码 △用模拟信号承载数字或模拟数据——调制
数字数据的数字信号编码:把数字数据转换成某种数字脉冲信号常见的有两类:不归零码和曼彻斯特编码。 △不归零码(NRZ,Non-Return to Zero)二进制数字0、1分别用两种电平来表示,常常用-5V表示1,+5V表示0。缺点:存在直流分量,传输中不能使用变压器;不具备自同步机制,传输时必须使用外同步。 △曼彻斯特编码(Manchester Code)用电压的变化表示0和1,规定在每个码元的中间发生跳变:高→低的跳变代表0,低→高的跳变代表1。每个码元中间都要发生跳变,接收端可将此变化提取出来作为同步信号。这种编码也称为自同步码(Self-Synchronizing Code)。缺点:需要双倍的传输带宽(即信号速率是数据速率的2倍)。 △差分曼彻斯特编码(Differential ~)每个码元的中间仍要发生跳变,用码元开始处有无跳变来表示0和1 ,有跳变代表0,无跳变代表1。
数字数据的调制编码[三种常用的调制技术]: △幅移键控ASK (Amplitude Shift Keying) △频移键控FSK (Frequency Shift Keying) △相移键控PSK (Phase Shift Keying) 基本原理:用数字信号对载波的不同参量进行调制。载波 S(t) = Acos(ωt+ψ) S(t)的参量包括: 幅度A、频率ω、初相位ψ,调制就是要使A、ω或ψ随数字基带信号的变化而变化。 △ASK:用载波的两个不同振幅表示0和1。 △FSK:用载波的两个不同频率表示0和1。 △PSK:用载波的起始相位的变化表示0 和1。
模拟数据的数字信号编码采样定理:如果模拟信号的最高频率为F,若以2F的采样频率对其采样,则采样得到的离散信号序列就能完整地恢复出原始信号。要转换的模拟数据主要是电话语音信号,语音信号要在数字线路上传输,必须将语音信号转换成数字信号。这需要经过三个步骤: △采样:按一定间隔对语音信号进行采样 △量化:对每个样本舍入到量化级别上 △编码:对每个舍入后的样本进行编码编码后的信号称为PCM信号
I. 计算机算法什么公式可以循环得出04321
圆周率π的计算方法
圆周率π的计算方法,是一个饶有趣味,值得探讨的问题。最直观的计算方法自然是从几何上着手,历史上也正是如此,这便是割圆法。设一半径为1的圆,作这个圆的内接正n边形,用此正n边形的周长去近似圆的周长。显然当n→∞时,正n边形的周长就无限趋近于圆周长,求得正n边形周长后除以直径便求出了圆周率。