您的位置:首页 > 其它

数字信号思想-映射接口规范-引入中间层减少错误-中间层重构-时分复用服务-客户规范接口

2016-07-05 09:42 399 查看
现代计算机技术和通信技术都是建立在数字信号上面,无论是在传输中,还是在电子装置的内部。

映射接口规范:

数字信号最主要是将如何采样,如何量化,和如何编码;其中最核心的思想就是映射,按照规定映射,将物理电磁波信号映射为离散的01数字,用了数学中的转换思想。所以一个大的软件架构体系,一个良好设计的体系结构,都要有提早设计好的接口映射规范(无论是面向对象的接口,还是面向过程的函数指针),当新的数据进来驱动体系结构时候,能够正确的识别接口规范,按照接口规范进行模块跳转,每个模块处理自己负责的数据,到达中心运算模块,然后按照输出流程输出结果。

数模转换,模数转换:数字转换到物理模拟信号,需要解编码,生成量化的离散信号,传输出去;中间需要调度转发和衰弱增强;模数转换需要模拟信号采样,量化,编码,编码后得到二进制,再用字符编码规范,整数补码反码原码,浮点数编码规范,颜色编码规范,声音编码规范,视频编码规范来解析出数据,进行数据显示或存储或播放。

每一层都定义好了映射规范,编码规范,而且双方都是知道的,所以能够实现现代通信。

引入中间层,优化处理流程减少错误的出现:

在数字转换为模拟信号时候,考虑到电波的高低变化应该尽量的小减少错误出现,因此不用二进制直接转换为模拟信号,而是将二进制先转换为格雷码,然后由格雷码转换为物理电波信号,因为相邻数字出现频率很高,而格雷码可以保证相邻数字只有一个电波的翻转。以下转载自:http://blog.sina.com.cn/s/blog_62dc42e40100ixkj.html

格雷码

 (英文:Gray Code, Grey Code,又称作葛莱码,二进制循环码)是1880年由法国工程师Jean-Maurice-Emlle Baudot发明的一种编码,是一种绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。由于这种编码相邻的两个码组之间只有一位不同,因而在用于风向的转角位移量-数字量的转换中,当风向的转角位移量发生微小变化(而可能引起数字量发生变化时,格雷码仅改变一位,这样与其它编码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性。

仔细观察格雷码的编码方式:如果按顺序将格雷码每四个分为一组,对于格雷码的最后一位,具有折叠反射特性,即:最后一位的顺序为 01 10,01 10,.....如果按顺序将格雷码每8个分为一组,则其倒数第2为的顺序为0011,1100,0011,1100.....同样,倒数第3为的顺序为0001111,1111000.这种特性称为反射特性。

 

 

格雷码最重要的性质就是它的稳定性,相邻的两个数的编码总是只有一bit的差异,它在很多地方有都有应用。比如说在生成子集算法中对子集的排序就可以用格雷码来实现挤压序(字典顺序)。

0-7的格雷码如下

000 001 011 010 110 111 101 100

我们就容易理解格雷码的稳定性问题了,因为相邻的两个编码只相差一个bit

但是这个顺序跟我们的二进制编码差异比较大,不能直接进行运算。

下面给出了二进制与格雷码之间的转换算法。

二进制转格雷码

将二进制编码从右往左与左边的bit异或,这样就得到了格雷码举例如下:

比如说5的二进制101,相应的格雷码的第一位等于1与0异或得1,第二位等于0与1异或得1,最高位不变,得到格雷码111,这就是上面0-7格雷码中111的由来
再如我们求3的格雷码,3的二进制011,格雷码第一位等于1与1异或得到0,第二位等于1与0异或得到1,最高位不变,得到3的格雷码010,我们同样可以算出其他二进制对应的格雷码。


所谓的异或操作就是 相同为0 不同为1

格雷码转二进制

用0和最高位异或,结果保留到最高位,再将异或的值和下一位相异或,结果保留到下一位,依次异或,直到最低位,依次异或转换后的值(二进制数)就是格雷码转换后二进制的值.
软件设计中,当频繁出现问题时候,可以引入中间层,优化工作流程,来减少错误的发生,而不是用对程序员的要求和政治口号来解决问题。



中间层重构:

传输质量,传输过程中,因为模拟信号有噪声,每次传输过程中如果信号衰弱了,那么增强它,噪音也 会跟着增强最终导致混乱,软件设计体系结构中,如果不断引入坏味道噪音代码,那么必要时候需要重构,重新构造结构;如果跳转过程中数据被增添裁剪了,那么中间某个时候需要还原原来的数据,或者备份一份原来的数据。

时分复用服务:

时分复用,数字信号多用时分复用,就是多路信号 在经过一个主干或分支线路时候按照时间片来通过每一路信号的一部分,其实和单CPU实现多线程多任务是一样的,优点是有限资源实现多者共享,这个也类似软件设计中只有一个全局指针,硬件使用这个全局指针,全局指针当前指向的数据就是要处理的数据,设计得好也是一个良好的设计。类似Opengl中的显存中的当前绑定的VBO,或者当前绑定的VAO。

客户规范接口:

手机的sim卡和通信也是一样的,手机本身有发送电磁波到蜂窝基站的能力,也有接收无线电波的能力,但是无论发送还是接收都要先取得sim卡标识码和运营商通路,先进行标识码上报认证,上报认证时候会发送电磁波到基站,再发送到运营商对开通sim卡电话号码的数据中心查询,到数据中心查询进程中,到磁盘上加载数据校验,校验结果会发送给手机。这样通过sim卡实现了运营商的控制,而且用户不知道,也不需要知道发生了什么。因为蜂窝基站,和通信链路,数据中心,都是运营商提供的,用户只需要一个运营商制定规范的sim卡即可。软件设计中也是这样,最好服务者制定一个规范给客户,客户只需要用这个规范,其它的一概不用知道和发生了什么,即得到想要的结果。

在目前所有计算机终端设备中都是使用数字信号,当然也有数模和模数转换,因为播放自然图像,声音,视频,和捕捉动作,图像,视频,声音到计算机中。

但是无论是操作系统内核,硬件驱动程序,还是应用软件设计开发,只要知道其思想并需要时候应用即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: