Nov 16, 2008

终于成为一名理论上的网络工程师

今天上网查了9月份的计算机等级考试四级网络工程师的成绩,顺利通过。这意味着什么呢?这说明我现在是半个工程师了,所缺的只是一个实习的机会。
        工科与理科最大的不同就是必须将理论和实践融合在一起,真正要做到这一点在中国大学校园里其实是很困难的,本科实验很大一部分都远远落后于实际的生产生活,所以其实我急不可待地想进一些网络或通信公司来增加自己的实践能力。

2008年9月计算机等级考试四级网络工程师笔试题参考答案

【选择题】
  (1)~(5) CBABB
  (6)~(10) CCDBC
  (11)~(15) BBDCD
  (16)~(20) DABBD
  (21)~(25) CDCAD
  (26)~(30) ACAAB
  (31)~(35) CDBBA
  (36)~(40) DDCAC
  【综合题】
  1、
  (1) A类
  (2) 124.192.0.0
  (3) 124.223.255.255
  (4) 0.4.27.59
  (5) 124.223.255.254
  2、
  (6) 2048
  (7) encapsulation
  (8) 0.0.0.0 0.0.0.0 202.112.41.143
  (9) 202.206.16.0
  (10) 202.206.17.0
  3、
  (11) 202.112.11.11
  (12) 202.112.11.12
  (13) 作用域 选项中“DNS服务器选项”或“路由器选项”配置可能有误
  (14) 否
  (15) 8
  4、
  (16) 202.113.64.2
  (17) 5
  (18) 1101
  (19) 置1
  (20) 3056467585
  (1)【应用题】

  (2) 网络地址转换 或NAT功能 “一对一”地址转换处理
  (3) 防火墙 位置2
  (4) 活动目录

Nov 9, 2008

卷积码编译码的实现

前段时间在学校做通信系统课程设计,选了信道卷积码编译码的课题,但在网上搜遍了也没找到它的MatLab实现,没办法,我只好在图书馆查资料自己解决了。这就是我课程设计论文的论证部分:
本次课程设计主要讨论卷积编译码过程,编码程序在lk_encode.m文件中,编码函数共有三个输入参数:待编码信息序列、状态转移矩阵和编码信息位数,输出为编码序列。使用(313)结构作为卷积编码器,以输入[0 1 1 0 1 0 0]信息序列为例的实现思路是:
1)  给定输入序列input,信息位数k3×3的状态转移矩阵G,卷积码位数n=7
2)  计算编码器结构的约束长度(约束长度=生成矩阵大小/k);若有多个输入,约束长度应是一个输入的编码移存器个数
3)  计算一个信息位的输出位数num=L
4)  输入序列补零生成的序列uz,只需要前后补两个零即可将移存器清零,第三个开始为数据位,在原序列后补20使ux输出为0 0 0
5)  利用for循环,循环8次输出uxux即为数据在3位移存器内的所有时刻的取值,共计21位(1位编码3位)+6位(补的20编码成6位)
6)  对输入序列ux改变矩阵大小后的结果:变换为3×9矩阵,矩阵列来自ux[]===》将数据流在移存器移动情况仿真出来
         0 1 1 0 1 0 0 0 0   
  0 0 1 1 0 1 0 0 0
  0 0 0 1 1 0 1 0 0 
7)  最后用以上矩阵乘以状态转移矩阵,对结果取模二运算输出27位编码结果

译码程序在lk_decode.m文件中,译码过程使用维特比算法,译码函数共有三个输入参数:待译码序列、状态转移矩阵、基于编码器结构的信息位数,输出为原信息序列。仍以[0 1 1 0 1 0 0]信息序列为例讨论译码实现思路:
1)  根据维特比算法现将编码输出序列划分为7组子序列,每组长为3
2)  输入编码输出序列、编码信息位数、约束长度、信息总长度、状态转移矩阵、状态数等参数
3)  利用两层嵌套for循环找到存储状态和幸存路径的矩阵,外层循环四种状态00011011,内层循环01两种可能取值。
4)  内层循环需要计算可能的下一状态,并记录之前走过的路径,所以定义mem_cont存储之前路径的二进制输入及其对应状态,next_state存储下一状态十进制值
5)  之后仿真逐位输入、状态逐次后移的过程,并将得到的next_state赋值到nextstate矩阵
6)  将找到的树杈支路输出转为十进制数放入output矩阵,为比较汉明距离做准备;
output矩阵构成:第一个状态所有可能路径对应第一行,第二个状态的所有可能路径对应第二行......
7)  两层循环结束后,就能找出所有路径的下一状态矩阵以及记录所有可能路径的一个矩阵。
8)  接下来寻找译码的幸存路径,将译码分为中间信道译码和最终信道译码两部分
9)  17级深度为中间信道译码过程,嵌套了4for循环的第一级为段的循环,第二级为每一段的状态循环,第三级为输入是01的循环,第四级是计算该状态时对应输入01的路径汉明距离的叠加
10)之后的89级为最终信道译码,已知该段对应输入为全0,故可省去第三级的01输入循环,其余与上一步相同
11)以上步骤可通过汉明距离的比较找到幸存路径,并将它存在矩阵里;根据维特比算法,需要从最后一级状态沿幸存路径回溯到起始全零状态,则可首先将幸存路径的值用for循环赋值到状态序列里,也即由段得到状态序列,再由状态序列从input矩阵中得到该段的输出
12)for循环7次按状态序列的行列规定将数据从input矩阵里逐位取出(因状态序列是十进制表示的,取出的每位也是十进制的),将其化为二进制后放入输出矩阵作为译码输出。
程序实现维特比译码实际是建立在网格图基础上的,网格图共有410列个点,每一行代表一个状态,前一列上的一个点对应后一列的两个点(代表下一状态的两种取值01),本次课程设计只实现了维特比算法的硬判决译码,即比较由最佳路径得到的序列与待译码序列的汉明距离。

三国群英

最近在机器上装了一个《三国群英传2》的游戏,玩了几天才发现确实做得很不错,在目前中国PC游戏普遍LJ的环境下,奥汀科技能开发出这么受欢迎的国产游戏实属不易。在我印象里即时战略游戏做得比较好的是《红色警戒》,它可算是经典了,不过现在奥汀科技的《三国7》已经全面超过了红警。
        我觉得这款游戏完全是为高智商特别是即将投入商海人士设计的,其中不仅要考虑自己的战略布局,还要有战术运用技巧,能正确使用自己手下的文官武将,懂得兵种阵型相克、佯攻、离间等兵法知识。如果玩online就更考验能力和智力了

          
游戏玩起来都这么复杂,这让我对它的后台代码,开发程序逻辑更加有兴趣,可惜它不像QUAKE是开源游戏,不过还是很佩服奥汀的研发能力,经典中的经典!!!