3.1数据编码第三单元认识数据博山实验中学电教中心制通过前两个单元的学习,我们已经对数据及计算有了初步的了解,知道了简单的编程计算的方法。在此基础上,我们还需要进一步理解:数据是无处不在的,我们可以通过数据来把握对象、描述问题并以此为基础解决问题。本单元我们将进一步认识数据,了解数据编码的知识,学会分析数据间的关系;形成数据安全的意识,掌握设置密码保护数据的方法;根据解决问题的需要,选择合理的结构组织数据,让数据在系统中体现其价值。对于信息时代的公民来说,学会发现并合理利用身边的数据解决实际问题,是应对生活、学习与工作的基本需要。学习目标1、了解各类数据采集的基本方法2、能够解释文本、音频等数据的编码原理3、理解数据编码的意义和作用在当今信息时代,计算机已经成为数据处理的主要工具。那么,数据是如何进人计算机中的?它们在计算机内部是如何存储的?理解这些问题是将来进一步学习数据加工与处理的重要基础。本节我们将在解决问题的活动中,学习数据编码的基本知识,熟悉数据编码的思想和方法,认识数据编码的重要性。智能公交系统是智慧城市的重要组成部分,它的应用提高了城市公交的运营效率,方便了人们的出行。在本节中,我们将围绕“智能公交系统中的数据采集”项目展开学习。通过该项目,我们可以进一步认识生活中存在不同类型的数据,了解数据采集和编码的一般方法,理解其基本原理,为应用数据解决问题打基础。本项目主要包含“认识智能公交系统中的数据”和“查看存储在计算机中的数据”两个任务。许多城市开通了智能公交,使用市民卡可以方便出行。在办理市民卡的过程中,有很多数据需要采集与编码。任务一认识智能公交系统中的数据※活动1办理市民卡市民在办理市民卡时,一般要到指定地点办理录入信息、拍摄照片等手续。想一想,在办理市民卡的流程中,管理系统都收集了哪些数据?模拟信号与数字信号按照取值特征,可以将信号分为模拟信号和数字信号。用传感器直接获得的信号一般为模拟信号,如声音、温度、压强等。模拟信号:的值是随时间连续变化的,波形光滑。模拟信号的值称为模拟数据。以声音为例,通过话简的声音传感器获得的声音信号取值情况如图3.1.1所示。数字信号随时间的变化是非连续的,如图3.1.2所示。数字信号可以由模拟信号转换得来,数字信号的值即数字数据,直接用计算机所能理解的二进制表示,以方便计算机对其进行处理。活动二将语音模拟数据转换为数字数据声波的振幅是反映波形从波峰到波谷压力变化的物理量。音量与振幅成正比。第一步,采样。在时间轴上按照一-定的时间间隔取一系列时刻,得到每个时刻对应的声波信号的瞬时振幅值。如图3.1.4所示,在横轴上取n个时刻采集样本,纵坐标x即为每个样本所对应的卢波振幅的离散值,当前n=10。在横轴上接一定的时间间隔从信号中取一个解时值,这个过程称为采样。录骨设备在1秒内对声音信号的采样次敏称为采样频率,常用的CD音质的采样频率44.1KHz在一定的时间内,采集的信号祥本越划分越细密、对信号波形的表示就越精确。第二步,量化。将第一步所得的振幅瞬时值往最接近的整数取整,每个样本所对应的整数值即为纵坐标,在图中标出这些整教值,如图3.1.5所示。将信号波形的纵轴划分为若干区间。落到某一区间的采样点接四合五入的规则取整选值,这个过程称为量化第三步,编码。请参照边栏中的“十进制与二进制数对应表”将上一步标出的整教值用二进制数值表示,即可得到一串二进制教,将结果填入表3.1.2。我们可以将这些二进制数值理解为该声音信号的数字数据。小组合作完成下列表格声音的数字化●我们不能把连续的音频信号存放在计算机中,必须将模拟声音数据转换为数字数据。将模拟声音数据转换为数字数据的这一过程,称为声音的数字化。通常先对模拟声音信号按给定的时间间隔进行采样,然后对采样数据进行量化,最后将量化后的数据用计算机能够存储和处理的二进制数值表示,即编码。任务二查看存储在计算机中的数据※活动1卡片组合游戏无论是数字、文字,还是声音、视频等,编码后都以二进制的形式存储在计算机中。我们可以通过下面这个有趣的游戏了解二进制。如图3.1.6(a)所示,桌面上摆放了5张卡片,将卡片正面的点数用十进制效表示,从右到左分别为1、2、4、8、16。现在翻动3张卡片,使其反面朝上,如图3.1.6(b)所示,这时卡片正面的点数和为1+8=9。若我们将所有卡片的正面读为1,将卡片的反面读为0,则得出十进制数9对应的二进制数就是01001。认识二进制计算机只识别0、1两个代码,两种状态容易实现二进制与数制转换计算机外部的各种形式的数据经过编码后,都以二进制数的形式存储在计算机中。二进制数中只有0和1两个数字符号,其计数特点是“逢二进一”。即1+1=10。计算机中存储数据的最小单位是二进制位,用比特(bit)表示,1比特能表示两种(2‘)状态(即0或1),2比特可以表示:00、01、10、11四种(4)状态,3比特可表示八种(8)状态…...。计算机存储数据的基本单位是字节(Byte,简写为B),8比特构成1字节,1字节二进制数可表示2**8(256)种状态。在二进制数中,每一个数字在不同的位置上具有不同的权值,各位上的权值是基数2的若干次幂。比如二进制数10010,5个位置上的权值从右往左可以表示为:2**0、2**1、2**2、2**3、2**4。将二进制数转换为十进制数时,只要将该二进制数的每个位置上的数字与其对应位置的权值相乘,然后求和即可。比如,10010(2)=1x2**4+0x2**3+0x2**2+1x2**1+0x2**0=18把十进制非负整数转换为二进制数,可使用短除法,即“除二取余”法。例如,把十进制整数18转换为二进制数的过程如图3.1.7所示,结果为18(10)=10010(2)。由于二进制数位数较多,书写不便,故常改用十六进制数表示。我国古代曾经在重量单位上便用过十六进制,如规定16两为1斤。十六进制需要使用16个不同的基本数字,除了阿拉伯数字0到9外,一般用字母A到F(或a~f)依次表示后续数字(相当于+进制数中的10~15)。十六进制的基本计数规则是“逢十六进1”,即F+1=10。一般地,十进制非负整数转换成R进制数(R≥2)采用“除R取余法”,把R进制非负整数转换成十进制数采用“按权展开求和法”。活动2查看数据的编码Python语言中的“ord”是将字符转换为对应存储编码的函数,编码值以十进制教形式显示;“chr”是将端码值转换为对应字符的函数;“bin”是将一个十进制教转换为对应二选制数的函数。文本数据的编码文本数据是用来表示-定意思的一-系列字符,包括字母、数字、标点符号、汉字等。文本数据的编码通过对其中每--个字符进行编码实现。用于文本数据字符编码的方案有多种类型,其中ASCI码和IUnicode是最为典型的两种编码方案。1.ASCII码ASCII码(AmericanStandardCodeforInformationInterchange,美国信息交换标准码)用7位(标准ASCII码)或8位(扩展ASCII码)二进制数表示一个字符。标准ASCII码字符集中定义了大小写英文字母、标点符号和数字等字符和符号,共128个。计算机内部用一个字节来存放一个ASCI码字符,最高位用0表示。例如,“A”的ASCII码为1000001,即65。常用的ASCII码如表3.1.3所示。中国:GB2312——1980GBKGB18030——2000GB18030——2005共计70244个汉字用7位或8位表示一个字符,大小写英文字母、标点符号和数字等共128个2.Unicode码Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode是为了解决传统字符编码方案的局限性而产生的。例如,它可以用两个字节来表示一一个符号,这样就有2l6(65536)种不同的二进制编码,能表示很多国家的常用字。目前,Unicode还可以用更多字节来对字符进行编码。为了简化ASCII与Unicode之间的转换,Unicode的设计者还使其兼容ASCII码。原来用ASCII码能表示的字符,其对应的Unicode码只是在原来的ASCII码前加上8个0。比如,“a”的ASCII码是01100001,而它的Unicode码是000000001100001。Frame1计算机要处理汉字,必须对汉字进行编码,显然每个汉字至少需要两个字节。我国先后制定了多个汉字编码方案:(1)GB2312--1980字符集共收录6763个汉字,其中--级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母等在内的682个字符;(2)GBK字符集,兼容GB2312--.1980标准,收入21003个汉字,883个符号,共计21886个字符;(3)GB18030--2000字符集,包含GBK字符集和CJK统--汉字扩充A的汉字,共计27533个汉字;(4)GB18030--2005字符集,在GB18030--2000的基础上,增加了CJK统--汉字扩充B的汉字及其他汉字,共计70244个汉字。Unicode字符集,是全球可以共享的编码字符集,涵盖了世界上主要文字的字符,其中包括简繁体汉字,共计74686个汉字。如汉字“男”的Unicode编码为30007(十进制),用十六进制表示为7537,用二进制表示为0111010100110111。Unicode到目前为止所定义的十七个平面中,第0平面(BMP)最为重要,其编码分布如下:注:中文范围4E00-9FA5:CJK统一表意符号(CJKUnifiedIdeographs)0000-007F:C0控制符及基本拉丁文(C0ControlandBasicLatin)0080-00FF:C1控制符及拉丁文补充-1(C1ControlandLatin1Supplement)0100-017F:拉丁文扩展-A(LatinExtended-A)0180-024F:拉丁文扩展-B(LatinExtended-B)0250-02AF:国际音标扩展(IPAExtensions)02B0-02FF:空白修饰字母(SpacingModifiers)0300-036F:结合用读音符号(CombiningDiacriticsMarks)0370-03FF:希腊文及科普特文(GreekandCoptic)MicrosoftWord0400-04FF:西里尔字母(Cyrillic)0500-052F:西里尔字母补充(CyrillicSupplement)0530-058F:亚美尼亚语(Armenian)0590-05FF:希伯来文(Hebrew)0600-06FF:阿拉伯文(Arabic)0700-074F:叙利亚文(Syriac)小结作业1.图所示为一个条形码示例。请你利用网络搜索条形码数据编码的原理,并跟同学们分享你的收获。2.在实际生活中,是否还有其他“编码”的例子?请尝试列举生活中有关编码的例子。蟹蟹