0%

第一步,下好了miniconda跟课程文件(https://zh.d2l.ai/d2l-zh-1.0.zip)并解压后,在解压后的文件夹下配置清华pypi镜像:

1
pip config set global.index-url https://pypi.tuna.tinghua.edu.cn/simple

结果:image-20220117183501006

接下来使用conda创建名为d2l-zh的虚拟环境并激活

1
2
3
conda env remove -n d2l-zh
conda create -n d2l-zh -y python=3.8 pip
conda activate d2l-zh

结果:

image-20220117183303882

1
2
3
4
5
6
7
8
9
pip install mxnet==1.5.0

pip install d2lzh==1.0.0

pip install jupyter==1.0.0

pip install matplotlib==2.2.2

pip install pandas==0.23.4

image-20220117183806112

1
pip install --upgrade setuptools && python -m pip instal --upgrade pip

试了上面这一行后也没用

然后试了

1
conda install numpy=1.16.6

就可以了…个屁

我选择重装miniconda

image-20220118180640488

到这一步发现没下cuda

下了cuda之后也还是报错

发现可能是cuda版本的问题,原有版本是11.6,没有对应的mxnet,所以重装了10.1

image-20220118211508706

问题解决

但是下numpy的时候又出问题

image-20220118213121651

突然中断,很明显是网络的问题了

尝试了一下把VPN关掉,没用

试了一下升级pip,把pip给弄没了

于是用了:

1
2
conda update conda
conda update pip

pip回来了

但是出现了一个小warning:

image-20220118222525208

百度了一下发现是之前下载库的时候退出了,要去这个文件夹下把ip开头的文件删了image-20220118222646459删掉这两个就好了

结果还是tmd,numpy的wheel出问题

image-20220118223607417

于是直接装numpy

1
pip install numpy==16.6

就行了

image-20220119184102050

简介

Docker引擎是用于运行和编排容器的基础设施工具+

基于区块链的版权保护实践

摘要

传统的版权保护平台存在包括版权信息安全与高昂注册费用的在内的诸多问题。正在快速发展的区块链技术作为一种全新的技术结构,具有去中心化、不可篡改、可追溯、公开透明等特性,天然适用于版权保护领域,有望解决传统版权保护中的众多问题。该论文致力于在版权管理平台上进行区块链技术的实践。希望能通过这种方式解决传统版权管理平台上安全性低、维权困难、业务手续繁杂等问题,是将区块链技术与版权保护相结合的一次尝试

关键词:版权保护;区块链;信息安全

1. 引言

随着信息技术的发展与互联网的普及,人们能简单高效地从网络上获取大量知识信息。然而与此同时,侵权问题与隐私问题也逐渐严重。传统版权保护有以下几大痛点:

  • 版权注册期长、注册费高昂
  • 版权保护难、流程复杂
  • 维权难

音乐、照片等原创作品被几乎零成本剽窃,但传统版权保护却无法高效解决这些问题。区块链本质上是一个特殊的能够公开保存数据的分布式数据库。其主要功能就是存储信息。任何需要保存的数据信息都可以被存储在区块链上。与此同时它又提供了读取数据的功能,因此它也是一个数据库。通过共识算法,区块链能够保证其中的每个节点所存储的数据是一致的,通过密码学算法,区块链能保证写入的数据是不可更改的。总而言之,传统版权保护普遍具有安全性低且易篡改的问题。该论文综合利用了区块链技术并基于区块链技术使用IPFS(星际文件系统)进行了版权管理平台的设计与实践,具有高安全性、可交易性、公开透明且具有强大的流量控制能力

2.技术点

区块链技术

区块链技术是一个能够公开保存数据的分布式数据库。区块链系统由数据层、网络层、共识层、激励层、合约层与应用层构成。数据层包括底层的数据块、数据加密过程、时间戳等等基本数据与算法;网络层包括点对点网络,数据传播与验证机制;共识层囊括了网络节点间的共识算法,诸如POW(工作量证明)、POS(权益证明),PBFT(实用拜占庭容错算法)等等;激励层集成了各种经济要素,包括保险机制与分布式的经济激励机制等等;合约层主要是能实现各种功能的智能合约,是区块链可编程性的基础。应用层针对不同应用场景案例中的各种需求开发了不同的功能模块

image-20211207140445406

最初,区块链用于解决交易中的信任与安全问题,因此其产生了四大技术创新:

  1. 分布式账本,即分布式记账技术,是部署在多个节点或计算设备上的数据库,每个节点都能复制并保存账本数据,且每个节点都能独立上传数据。其特点在于这个账本不被任何中心组织所控制,并且账本的更新是独立进行的且能够被每个节点所记录。区块链分布式存储与传统分布式存储的不同主要体现在两方面:首先,每个节点都存储了有关区块链结构的所有信息,其次,区块链中的每个节点都独立且平等地存储信息,通过共识机制保证了存储一致性。传统的分布式存储则通过中心化节点来跟其余备份节点进行信息同步
  2. 非对称加密与授权技术,在区块链上存储的交易信息是公开的,但是账户身份信息却是高度加密的,只能在数据所有者授权的情况下访问账户信息,这保证了数据安全性与隐私性
  3. 共识机制,即如何让所有节点达成共识并保证所存储数据的有效性,这并不只是一种验证技术,还是一种防篡改技术。区块链针对不同的应用场景平衡效率与安全而提出了不同的共识机制。这些共识机制具有“少数服从多数”与“人人平等”的特征。“少数服从多数”不只是节点的数量上的,还包括算力、股份或其他可比较的特征。“人人平等”指当节点遇到问题时,每个节点都有权对共识结果给予自己的优先级,且能够被其余节点所识别,可能成为最终的共识结果
  4. 智能合约,即一组用数字形式定义的能够由计算机系统自动执行的条款,保证了对数字资产的控制,包括合约参与方规定的权力与义务等。一个智能合约程序不止是一个能自动执行的计算机程序,还是能够接收并存储价值或根据接收到的信息向外界发送信息或价值的合约参与方。这一过程就像一个能够暂时保管资产的可信中介并且其总是根据事先定好的规则行动

Fabric

Fabric是一个Linux基金会孵化的开源区块链项目。其目标是建立一个联盟链平台来提供分布式账本解决方案。Fabric 的模块化设计近乎完美,还具有可插拔的系统架构,比如可以使用Level DB、Couch DB、或其他键值数据库作为状态数据库。共识机制与加密算法也可以根据实际情况进行更换。Fabric在保持高性能与可扩容性的基础上使用模块设计将交易分为三个阶段:分布式业务逻辑处理与协商环节、订单排序、交易验证与提交环节。这样区分的好处是扮演不同角色的节点在不同的阶段参与了进来,而不是网络中的所有节点都参与。网络的性能与容量得到了优化,Peer节点与Order节点都能独立的拓展并动态添加。为了获得完整的存储控制权限与安全,成员须通过证书、加密、签名等方式获得加入网络的认证,并以此保证数据的安全同时丰富询问容量

image-20211207164006992

3. 系统设计

该基于区块链的版权管理平台的系统架构如图4-1所示。整个系统被分为两层。上层事平台的交互层,下层是包括IPFS与区块链在内的数据库层。这一结构的特征是用户交互模块与数据存储模块相互独立。当用户进入该版权管理平台时,用户并不能感受到下层不同数据存储方式所带来的变化。这一结构清晰明了且易于组织。

平台的上层时用户交互层,包括版权管理模块,登录控制模块,个人信息管理模块以及一个智能算法模块,该层用于执行该版权管理平台核心的业务逻辑并为用户提供相关的服务。交互层能够完成用户的版权发行、交易、保护与追溯工作,并且将这些操作传给下层的区块链。在通过时间戳后,这些数据将会被永久地保存在区块链上。当用户需要查询或是购买时,相关的操作请求将被发送,然后询问到的数据将在平台上展示出来

平台的下层时数据存储层。包括IPFS簇和一个fabric网络。该联盟链包含多个节点。PBFT合约机制用于达成共识并未平台的存储与交易提供服务。IPFS分布式数据库基于内容定址特性,这种特性帮助存储大文件数据,比如图像文件与文本文件,并能进一步存储区块链上文件内容的哈希值,将区块链网络变得更为高效。并不适用于存储大文件。对于整个平台,Fabric区块链网络与数据库所扮演的角色相同,但区别在于这一数据库使用的是去中心化、公开透明、不可篡改的数据库,这些特征与版权保护天然相合

4. 系统功能

本论文使用Hyperledger Fabric的应用开发模型来模拟版权管理平台的应用场景,如图4-2所示。从程序开发的角度来看,模块间的交互得到了分析。首先,应用从用户侧获取请求,然后调用智能合约或进入区块链。这些代码在链上执行并生成相应的事件

每层的功能如下:

  1. 区块链底层平台:提供诸如分布式共享账本、状态数据库维护与智能合约生命周期管理在内的区块链功能。主要用于存储每个节点的交易信息。一旦成功存储到了区块中,它就不再能被篡改。数据透明、不可篡改且智能的合约逻辑得到了保证
  2. 智能合约:用GO语言编写的链上代码用于实现智能合约。主要的链上代码具有版权发布、版权购买、版权出售、个人信息询问等功能。链上代码的询问包括询问已发布的版权或是所有版权。询问包括是否已被购买在内的特征
  3. 应用层:这一层类似计算机中的软件。这是用户能直接使用的产品。同时也可以视其为基于C/S架构的软件中的客户。用户将应用层与区块链连接起来,在应用层提供的接口间交易,并最终将交易存储在区块中以防篡改。该平台的前端使用Angular.js的前端框架来创建一个具有MVC框架的、模块式的、且数据双向的联结,为用户提供了一个良好的交互界面。业务操作包括版权分配、版权售卖、版权购买、个人信息查询与版权查询

该平台的主要界面包括六个功能:版权商场、正发行的文学版权、正发行的图像版权、已发行的版权、已被购买的版权与用户个人信息询问

在文学作品的发行中,作者将文学文件发送到IPFS分布式数据库中并获取到返回的IPFS哈希值,版权号、版权类型、版权价格、作者名、作者ID。文本总结、文本的IPFS哈希值与其余相关的信息将被上传到区块链网络中

在用户登录到版权管理平台后,版权商店页面展示所有用户上传的已被标注版权的作品与相关的介绍。用户既可以在该平台上作为购买者购买这些已有版权的作品,也可以作为作者出售他自己掌握版权的作品。当进入购买界面时,每个商品都有询问是否购买的选项。查询细节时将展示版权细节并且该版权能够被购买。这一购买记录将被记录在版权区块链上。一旦写入了区块中,它将被广播给所有的节点,然后所有的节点都会同步这一信息来保证这一操作的信息不会被篡改

5.结语

随着区块链技术的快速发展,它提供了去中心化的、分布式数据库,这一数据库是点对点传输、共识机制与加密算法等等在计算机技术中的应用。由于区块链公开透明且可追溯的优点,它能用于解决传统版权保护中的众多痛点。该系统是将区块链技术用于版权管理领域的一次探索与尝试

image-20211203135652676

完成

# Copyright IBM Corp. All Rights Reserved.

#

# SPDX-License-Identifier: Apache-2.0

#

version: ‘2’

services:

peer0.njupt.eduAli.cn:

container_name: peer0.njupt.eduAli.cn

image: hyperledger/fabric-peer:1.4.11

environment:

- CORE_PEER_ID=peer0.njupt.eduAli.cn

- CORE_PEER_ADDRESS=peer0.njupt.eduAli.cn:7051

- CORE_PEER_CHAINCODEADDRESS=peer0.njupt.eduAli.cn:7052

- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052

- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.njupt.eduAli.cn:7051

- CORE_PEER_LOCALMSPID=njuptMSP

- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock

# the following setting starts chaincode containers on the same

# bridge network as the peers

# https://docs.docker.com/compose/networking/

- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=multipeer_default

#- CORE_LOGGING_LEVEL=ERROR

- CORE_LOGGING_LEVEL=DEBUG

- CORE_PEER_TLS_ENABLED=true

- CORE_PEER_GOSSIP_USELEADERELECTION=true

- CORE_PEER_GOSSIP_ORGLEADER=false

- CORE_PEER_PROFILE_ENABLED=true

- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt

- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key

- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt

working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer

command: peer node start

volumes:

​ - /var/run/:/host/var/run/

​ - ./crypto-config/peerOrganizations/njupt.eduAli.cn/peers/peer0.njupt.eduAli.cn/msp:/etc/hyperledger/fabric/msp

​ - ./crypto-config/peerOrganizations/njupt.eduAli.cn/peers/peer0.njupt.eduAli.cn/tls:/etc/hyperledger/fabric/tls

ports:

- 7051:7051

- 7052:7052

- 7053:7053

extra_hosts:

- “orderer.eduAli.cn:192.168.195.155”

cli:

container_name: cli

image: hyperledger/fabric-tools:1.4.11

tty: true

environment:

- GOPATH=/opt/gopath

- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock

- CORE_LOGGING_LEVEL=DEBUG

- CORE_PEER_ID=cli

- CORE_PEER_ADDRESS=peer0.njupt.eduAli.cn:7051

- CORE_PEER_LOCALMSPID=njuptMSP

- CORE_PEER_TLS_ENABLED=true

- CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/njupt.eduAli.cn/peers/peer0.njupt.eduAli.cn/tls/server.crt

- CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/njupt.eduAli.cn/peers/peer0.njupt.eduAli.cn/tls/server.key

- CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/njupt.eduAli.cn/peers/peer0.njupt.eduAli.cn/tls/ca.crt

- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/njupt.eduAli.cn/users/Admin@njupt.eduAli.cn/msp

working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer

volumes:

​ - /var/run/:/host/var/run/

​ - ./chaincode/go/:/opt/gopath/src/github.com/hyperledger/fabric/multipeer/chaincode/go

​ - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/

​ - ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts

depends_on:

​ - peer0.njupt.eduAli.cn

extra_hosts:

​ - “orderer.eduAli.cn:192.168.1.113”

​ - “peer0.bupt.eduAli.cn:192.168.1.112”

​ - “peer0.njupt.eduAli.cn:192.168.1.103”

导论

马克思主义是由马克思和恩格斯创立并为后继者所不断发展的科学理论体系,是关于自然、社会和人类思维发展一般规律的学说,是关于社会主义必然代替资本主义、最终实现共产主义的学说,是关于无产阶级解放、全人类解放和每个人自由而全面发展的学说,是无产阶级政党和社会主义国家的指导思想,是指引任命创造美好生活的行动指南

马克思主义基本原理是对马克思主义立场、观点、方法的集中概括,是马克思主义在其形成、发展和运用过程中经过时间反复检验而确立起来的具有普遍真理性的理论。它体现马克思主义的根本性质和整体特征,体现马克思主义科学性和革命性的统一。

马克思主义哲学马克思主义政治经济学科学社会主义是马克思主义的三个基本组成部分

马克思主义的基本立场,是马克思主义观察、分析和解决问题的根本立足点和出发点。

马克思主义的基本观点,是关于自然、社会和人类思维发展一般规律的科学认识,是对人类思想成果和社会实践经验的科学总结。

马克思主义的基本方法,是建立在辩证唯物主义历史唯物主义世界观和方法论基础上,指导我们正确认识世界和改造世界的思想方法和工作方法,主要包括实事求是的方法、辩证分析的方法、社会基本矛盾和主要矛盾分析的方法、历史分析的方法、阶级分析的方法、群众路线的方法

马克思主义的创立与发展

马克思主义产生于19世纪40年代

19世纪西欧三大先进思潮(德国古典哲学、英国古典政治经济学、英法两国的空想社会主义)为马克思主义的创立提供了直接的理论来源(如德国古典哲学的辩证法思想,英国古典政治经济学对资本主义生产关系的分析和关于劳动创造价值的思想,空想社会主义者对资本主义社会的批判和对未来新社会的展望等)。19世纪的三大科学发现(细胞学说、能量守恒与转化定律、生物进化论)为马克思注意的产生提供了自然科学前提。

马克思主义的特征

  1. 科学性:马克思注主义是对自然、社会和人类思维发展本质和规律的正确反映。它是在社会实践和科学发展的基础上产生的,并在自身发展过程中不断总结实践经验,汲取了自然科学和社会科学发展的最新成就。马克思主义具有科学的世界观和方法论基础,即辩证唯物主义历史唯物主义。马克思主义以事实为依据、以规律为对象,并以实践为检验标准。马克思主义的发展具有科学探索性,是一个不断探索和掌握客观规律的过程。
  2. 人民性:人民至上是马克思主义的政治立场。马克思主义的人民性是以阶级性为深刻基础的,是无产阶级先进性的体现。
  3. 实践性:实践观点是马克思主义首要的和基本的观点。马克思注意具有突出的实践精神,它始终强调理论与实践的统一,始终坚持与社会主义实际运动紧密结合。
  4. 发展性:马克思主义是不断发展的学说,具有与时俱进的理论品质。

马克思主义的鲜明特征,用一句话来概括就是科学性与革命性的统一。马克思主义科学理论在指导无产阶级和人名群众进行伟大社会革命的过程中,其人民性、实践性和发展性集中地体现为革命性。革命性是马克思主义的内在品质,是马克思主义的人民性、实践性和发展性的应有之义和必然要求。

1.概述

1.1 范围

该标准规定了区块链系统对数据格式的要求,确定了包括数据结构、数据类型与类型中所含元素在内的规范。

1.2 用途

这一标准为计划使用区块链技术来建立区块链系统的实体提供了数据格式上的参考,为提供区块链服务的实体给予了关于在区块链系统中建立数据结构方面的指导,并为在区块链系统中提供中间件服务的实体提供数据格式方面的参考

1.3 用词规范

  • 必须表示强制要求遵守以保证绝对一致,任何违背这一要求的行为都不会被承认
  • 应当表示建议某种行为但不作强制要求,也用于表示某一行为较其余更好但不否定其他选择
  • 能够表示某一行为在标准允许范围内
  • 可能用于一些概率事件或可行性的陈述中,不管是物质上的、心理上的抑或是用于表达因果连接的

2. 标准参考资料

以下资料对本标准的制定有参考意义(即标准中包含对这些资料的理解与使用,因此每项资料都以文本形式引用在下方并解释了其对标准的贡献)。对于注明日期的参考文献,仅引用的版本适用。而对于未注明日期的参考文献,引用文件的最新版本(包括任何修订或勘误)适用。

GB/T 18391.2-2009, Information Technology—Metadata registries (MDR)—Part 2: Classification.

3. 定义与缩写

3.1 定义

以下专业术语的定义适用于本文档。该条目中未定义的专业术语可以在IEEE Standards Dictionary Online上查找到

  • 属性:某一对象或实体的特征
  • 区块链(A)一种不可伪造、不可篡改且可追溯的链块数据结构和基于此的在点对点网络中具有透明与可信规则的交易工具和管理模式。(B)一种通过在点对点网络中建立不可伪造、不可篡改且可追溯的链块数据结构而实现的交易工具与管理模式
  • 数据单元:由一系列属性所描述的运算单元,这些属性包括定义、id、表现形式与可行值
  • 数据类型:一种由能对数据进行的基本运算而决定的底层设计,用于存储字符、图像或其余符号来描述数据单元的值
  • 数据ID:数据单元独有的身份
  • 智能合约:一种用二进制格式定义的合约,能够根据其条款自动执行

3.2 缩写

英文缩写 英文全拼 中文
ID identity 身份
PKI public key infrastructure 公钥基础设施

4. 数据结构

与区块链技术有关的数据结构包括六个部分,分别对应不同的数据对象,即如前所述的区块型、交易型、交易实体型、合约型、账户型与配置型数据对象。其中,区块型、交易型、交易实体型与合约型数据对象共同构成该结构的核心。每个区块对象都包含了一或多个交易型数据对象。每个交易型对象都有交易实体对象与业务逻辑(如合约数据对象)等数据对象作为其属性。在区块链系统的运作中,配置型数据对象对提供配置信息起到了重要作用。配置型数据对象与这些核心数据对象共同构成了可运作区块链的基石。区块链业务相关的交易人或组织与该数据结构间的联系由账户型数据对象来确定。

image-20211129195755157

5. 数据分类

该标准将区块链数据分成以下六个大类:

  1. 账户数据:描述与区块链上交易的相关账户的数据。在块中记录的所有交易信息都与相关的账户联系到了一起。使用区块链服务的客户可以拥有一个或多个账户。
  2. 区块数据:描述区块链网络中各节点所维护的链状结构的数据,用于将已经发生的交易信息写入区块链数据并在一定时间后保证永久保存。总的来说,区块由区块头与区块体组成。区块头包含与区块本身相关的控制信息,而区块体则包含具体的交易信息。
  3. 业务数据:描述由区块链系统所进行的具体交易行为的数据。这些交易行为可以是商业性的,也可以是非商业性的
  4. 交易实体数据:描述某一业务的静态属性数据。常常包含交易业务中双方的地址,交易数额,燃料费用,存储数据与交易实体所作的评论。
  5. 合约数据:描述一项交易的动态处理逻辑的数据。合约,又称智能合约,由某种工作量承诺组成,这种工作量承诺以计算机代码的形式给出,要想执行这些承诺必须要有条约各方的参与。从另一角度看,合约同样也是各参与方所达成的能够强制执行的共识协议。这里所提到的合约数据不仅包含了逻辑处理所需要的可执行代码,也包含了逻辑处理所得的结果。
  6. 配置数据:描述了区块链系统的日常运作所需要的配置信息。一般有共识协议的版本号,软件版本号与所在通信网络的节点信息

6. 数据单元的属性

区块链的数据单元有七种属性,包括数据ID,数据名,数据类型,数据长度,数据说明与必须性标识:

  • 数据ID是每个数据单元独有的ID,以分层分类的方式编码。数据分类与数据单元都以顺序编码并记录并分别对应码的前后部
  • 数据名是每个数据单元的名称,在特定上下文中,数据名需要保证唯一
  • 数据类型描述了数据单元的基本要素与特征。该标准中所使用的数据类型大部分是字符串(string)类型,整数(integer)类型与数组(array)类型
  • 数据长度描述了该数据单元的长度,在这一标准中,数据长度可以是有限的也可以是无限的。并且该标准给出了推荐的字节数
  • 数据说明具体描述了该数据单元的含义及内容
  • 强制性标识描述了该数据单元是必须的还是可选的

下一节对各种区块链数据的属性做出了描述与要求。

7. 数据格式规范

7.1 账户数据格式

账户数据包括以下数据单元:

  1. 账户公钥
  2. 账户私钥
  3. 账户资产
  4. 数字证书
  5. 所属组织

7.1.1 账户公钥

下面对账户公钥的数据格式进行了规范:

属性 属性说明
数据名称 账户公钥
数据类型 字符串
数据长度 固定长度,建议64字节
数据说明 通过PKI系统为用户生成的密钥对的公共部分
强制性标识 必须

7.1.2账户私钥

下面对账户私钥的数据格式进行了规范

属性 属性说明
数据名称 账户私钥
数据类型 字符串
数据长度 固定长度,建议32字节
数据说明 通过PKI系统为用户生成的密钥对的私有部分
强制性标识 必须

7.1.3 账户资产

下面对账户资产的数据格式进行了规范

属性 属性说明
数据名称 账户资产
数据类型 数组
数据长度 不固定
数据说明 对账户所持资产的说明,
包括资产名,资产清单,余额等等
强制性标识 可选

7.1.4 数字证书

下面对数字证书的数据格式进行了规范

属性 属性说明
数据名称 数字证书
数据类型 数组
数据长度 不固定
数据说明 一种由权威证书发放机构签名的文件,
包括公钥所有者的信息以及公钥本身
强制性标识 可选

7.1.5 附属机构

下面对附属机构的数据格式进行了规范

属性 属性说明
数据名称 附属机构
数据类型 数组
数据长度 不固定
数据说明 参与区块链网络的独立成员。可以是公司、组织、团体等等。
从组织关系的角度来看,账户可以从属于某一特定的机构
强制性标识 可选

7.2 区块数据格式

区块数据基本包括以下数据单元:

  1. 区块高度
  2. 区块ID
  3. 区块版本
  4. 前导区块哈希
  5. 默克尔根哈希
  6. 区块时间戳
  7. 区块nonce值
  8. 挖矿难度
  9. 交易列表

7.2.1 区块高度

下面对区块高度的数据格式进行了规范:

(原文中该处的定义与区块ID相同,疑似错误故留空)

属性 属性说明
属性名称 区块高度
数据类型
数据长度
数据说明
强制性标识

7.2.2 区块ID

下面对区块ID的数据格式进行了规范:

属性 属性说明
属性名称 区块ID
数据类型 字符串
数据长度 固定长度,推荐32字节
数据说明 该区块所独有的ID,作为该区块的摘要
强制性标识 必须

7.2.3 区块版本

下面对区块版本的数据格式进行了规范:

(原文中该处的定义与区块ID相同,疑似错误故留空)

属性 属性说明
属性名称 区块版本
数据类型
数据长度
数据说明
强制性标识

7.2.4 前序区块哈希

下面对前序区块哈希的数据格式进行了规范:

属性 属性说明
属性名称 前序区块哈希
数据类型 字符串
数据长度 固定长度,建议32字节
数据说明 该区块的前序区块的摘要,为当前区块所独有
强制性标识 必须

7.2.5 默克尔根哈希

下面对默克尔根哈希的数据格式进行了规范:

属性 属性说明
属性名称 默克尔根哈希
数据类型 字符串
数据长度 固定长度,建议32字节
数据说明 通过默克尔树的构造算法生成的区块中有关联性信息(如交易信息)的摘要
强制性标识 交易树根:必须
状态树根与收据树根:可选

7.2.6 区块时间戳

下面对区块时间戳的数据格式进行了规范:

属性 属性说明
属性名称 区块时间戳
数据类型 整数
数据长度 固定长度,建议8字节
数据说明 用于确定区块生成的事件。从1970年开始计数,精确到毫秒且只能正向递增
强制性标识 必须

7.2.7区块nonce值

下面对区块nonce值的数据格式进行了规范:

属性 属性说明
属性名称 区块nonce值
数据类型 整数
数据长度 固定长度
数据说明 挖矿节点争夺记账权时通过hash计算证明自己正确性的一个可变参数
强制性标识 可选

7.2.8 挖矿难度

下面对挖矿难度的数据格式进行了规范:

属性 属性说明
属性名称 挖矿难度
数据类型 整数
数据长度 固定长度,建议8字节
数据说明 挖矿节点间争夺记账权时所需要的hash计算的难度参数
强制性标识 可选

7.2.9 交易列表

下面对交易列表的数据格式进行了规范:

属性 属性说明
属性名称 j交易列表
数据类型 数组
数据长度 不固定
数据说明 该区块中包含的所有交易,每笔交易都对应一笔业务
强制性标识 必须

7.3 交易数据格式

交易数据基本包括以下数据单元:

  1. 交易ID
  2. 交易类型
  3. 签名者
  4. 交易时间戳

7.3.1 交易ID

下面对交易ID的数据格式进行了规范:

属性 属性说明
属性名称 交易ID
数据类型 字符串
数据长度 固定长度
数据说明 交易过程中的数据的独有ID,通常是一个哈希值
强制性标识 必须

7.3.1 交易类型

下面对交易类型的数据格式进行了规范:

属性 属性说明
属性名称 交易属性
数据类型 字符串或整数
数据长度 固定长度
数据说明 用于定义交易事件的类型,可以有一种或多种
强制性标识 可选

7.3.1 签名者

下面对签名者的数据格式进行了规范:

属性 属性说明
属性名称 签名者
数据类型 字符串
数据长度 固定长度
数据说明 指对该笔交易签名的所有人
强制性标识 可选

7.3.1 交易时间戳

下面对交易时间戳的数据格式进行了规范:

属性 属性说明
属性名称 交易时间戳
数据类型 整数
数据长度 32字节
数据说明 正整数。从1970年开始计数,精确到毫秒且只能正向递增
强制性标识 可选

7.4 交易实体数据格式

交易实体数据包括以下数据单位:

  1. 转出地址
  2. 转入地址
  3. 交易金额
  4. 燃料费用
  5. 附加数据
  6. 备忘录

7.4.1 转出地址

下面对转出地址的数据格式进行了规范:

属性 属性说明
属性名称 转出地址
数据类型 字符串
数据长度 固定长度
数据说明 该笔交易的转出方,在该笔交易中唯一确定
强制性标识 必须

7.4.2 转入地址

下面对转入地址的数据格式进行了规范:

属性 属性说明
属性名称 转入地址
数据类型 字符串
数据长度 固定长度
数据说明 该笔交易的转入方,在该笔交易中唯一确定
强制性标识 可选

7.4.3 交易金额

下面对交易金额的数据格式进行了规范:

属性 属性说明
属性名称 交易金额
数据类型 整数或字符串
数据长度 固定长度
数据说明 与该笔交易有关的资产变动
强制性标识 可选

7.4.4 燃料费用

下面对燃料费用的数据格式进行了规范:

属性 属性说明
属性名称 燃料费用
数据类型 整数或字符串
数据长度 固定长度
数据说明 为了预防垃圾交易与流量攻击而设置的交易费用
强制性标识 可选

7.4.5 附加数据

下面对发送人地址的数据格式进行了规范:

属性 属性说明
属性名称 附加数据
数据类型 字符串
数据长度 固定长度
数据说明 为了满足某些业务需求而提供的可选域。对应附加性的业务
强制性标识 可选的

7.4.6 备忘录

下面对备忘录的数据格式进行了规范:

属性 属性说明
属性名称 备忘录
数据类型 字符串
数据长度 不固定
数据说明 与文本,ID与交易中的hash类型对应的评论区
强制性标识 可选的

7.5 合约数据格式

合约数据格式包含以下数据单元:

  1. 合约ID
  2. 合约版本
  3. 合约代码
  4. 合约变量

7.5.1 合约ID

下面对合约ID的数据格式进行了规范

属性 属性说明
属性名称 合约ID
数据类型 字符串
数据长度 固定长度
数据说明 在合约部署在区块链后,调用方就可以根据该合约ID访问合约代码与存储状态等等信息
强制性标识 这一ID通过“账户信息+索引+(可选的)另一合约信息”的可选的摘要算法所生成
生成的ID必须是唯一确定且可用的。可选

7.5.2 合约版本

下面对合约版本的数据格式进行了规范

属性 属性说明
属性名称 合约版本
数据类型 字符串
数据长度 不固定
数据说明 指考虑到代码与智能合约的编译设定的二进制码。用于识别不同的版本
强制性标识 由于智能合约持续提供某一特定的业务功能,
应根据需求导向与问题导向的变化来设定不同的版本分类。可选

7.5.3 合约代码

下面对合约代码的数据格式进行了规范

属性 属性说明
属性名称 合约代码
数据类型 字符串
数据长度 不固定
数据说明 指合约中的可执行指令,
由经过设计的能够实现对区块链上虚拟机的调用与执行的编译器编译并生成
强制性标识 根据不同的虚拟机系统与编译器,
合约代码能以不同的计算机语言形式所编译。可选

7.5.4 合约变量

下面对合约变量的数据格式进行了规范

属性 属性说明
属性名称 合约变量
数据类型 数组
数据长度 不固定
数据说明 指合约运行过程中生成的一系列状态数据。
其内容与合约逻辑密切相关
强制性标识 键值对形式或关系型数据库形式。可选

7.6 配置数据格式

配置数据格式包括以下数据单元

  1. 协议版本
  2. 软件版本
  3. 节点ID
  4. 节点地址
  5. 节点公钥

7.6.1 协议版本

下面对协议版本的数据格式进行了规范

属性 属性说明
属性名称 协议版本
数据类型 字符串
数据长度 不固定
数据说明 使用协议版本号以识别用于节点间通信和交互和节点与外界交互的协议
强制性标识 随着软件版本的更新,区块链协议可以具有不同的接口与功能。
一般的区块链软件须提供协议层面的下载兼容性并通过协议版本号来区分。
通过不同的协议。这些软件要能为不同的客户提供不同的服务。可选

7.6.2 软件版本

下面对软件版本的数据格式进行了规范

属性 属性说明
属性名称 软件版本
数据类型 字符串
数据长度 不固定
数据说明 根据软件本身包含了计算机代码与二进制代码。版本号用于区分不同的发行版本
强制性标识 必须。根据不同的软件生命周期,应用场景与目标人群可以部署区块链软件的不同版本

7.6.3 节点ID

下面对节点ID的数据格式进行了规范

属性 属性说明
属性名称 节点ID
数据类型 字符串
数据长度 不固定
数据说明 区块链网络中某一节点独有的ID,公钥可被选为该节点的ID
强制性标识 必须

7.6.4 节点地址

下面对节点地址的数据格式进行了规范

属性 属性说明
属性名称 节点地址
数据类型 字符串
数据长度 根据网络协议而定(IPv4或IPv6)
数据说明 区块链网络中其他节点的地址信息
强制性标识 必须

7.6.5 节点公钥

下面对节点公钥的数据格式进行了规范

属性 属性说明
属性名称 节点公钥
数据类型 字符串
数据长度 固定长度
数据说明 区块链网络中其他节点的公钥信息
强制性标识 可选

基于区块链网络的IoT数据管理框架的IEEE标准

1.概论

该标准适用于通过部署具有数据采集功能的IoT设备并利用这些数据进行内部业务决策、数据共享或交易的数据管理系统所对应的业务场景,为兼具区块链与物联网技术的数据管理系统的建立提供了框架性的指导

1.1 领域

该标准定义了基于区块链网络的IoT数据管理系统的框架,它根据数据的处理周期(数据获取、处理、存储、分析、使用/交换、丢弃)将区块链物联网的数据管理框架的多个基本要素区分开并描述了其间关系。

1.2 用词规范

  • 必须表示强制要求遵守以保证绝对一致,任何违背这一要求的都不会被承认
  • 应当表示建议某种行为但不作强制要求,也用于表示某一行为较其余更好但不否定其他选择
  • 能够表示某一行为在标准允许范围内
  • 可能用于一些概率事件或可行性的陈述中,不管是物质上的、心理上的抑或是用于表达因果连接的

2. 标准参考资料

以下资料对本标准的制定有参考意义(即标准中包含对这些资料的理解与使用,因此每项资料都以文本形式引用在下方并解释了其对标准的贡献)。对于注明日期的参考文献,仅引用的版本适用。而对于未注明日期的参考文献,引用文件的最新版本(包括任何修订或勘误)适用。

无参考资料

3.专业用语的定义与缩写

3.1 定义

以下定义仅适用于本标准,对未包含在内的专业用语可以在IEEE Standards Dictionary Online上查到

区块链即服务(BaaS):BaaS是由第三方提供的区块链服务,通过BaaS,用户可以在云网络上自己创建、管理并运行区块链应用

可信数据:指从所选数据源获取并以特定方式处理以保证其一直满足某些特征的数据

信托:指承担基本可信功能的信息系统

3.2 缩写

缩写 英文全称 中文名
API application programming interface 应用程序接口
BaaS blockchain as a service 区块链即服务
BCN blockchain node 区块链节点
IoT internet of things 物联网

4.生态关系方

该条目将厘清一个典型的IoT数据协作生态中的所有关系方。他们对整个系统的关注点各不相同,每种角色对系统的贡献与需求也不同。这些角色定义如下:

  • 数据拥有者:数据拥有着被定义为对数据有所有权的个人或实体。他们可能拥有能产生或收集数据的IoT设备,也可能在数据权力的约定条款中享有把数据转让给第三方的权力
  • 数据购买者:数据购买者被定义为从数据拥有者手中接收/购买数据的个人或实体并通过与拥有者的协议获取了对数据的所有权。在数据交换的双方都处于同一个组织或两者有合作关系时,数据购买者与数据拥有者是同一实体
  • 服务提供者:服务提供者支持在IoT数据生命周期内对其进行操作并为一个或多个利益相关方提供服务。这些服务包括但不限于:软硬件开发、维护、数据分析、云服务、网络访问、金融服务、咨询等等
  • 政策制定者:政策制定者是监督和规范数据在其处理周期内的任何活动的人或实体
  • 其余角色:其他角色将随着协作生态的发展与壮大而不断丰富,如媒体、教育与非盈利组织等等

5. 可信数据的特征

5.1 概论

数据管理的目的有两个,一个是提供对对象/事件的准确记录(如记账),另一个是基于一系列事件来产生可靠结论(如数据分析)。可信数据在不同使用场景下的作用与地位不尽相同。对于可信数据与其他数据的比较超出了本标准的范围。以下是可信数据所具有的几大特征:

5.2 准确性

指所收集数据描述真实世界中的对象/事件的程度。其必须在数据产生后的数据收集阶段被测试与测量

5.3 完整性

指数据的各部分根据数据规范被填写的程度。其必须在数据收集阶段被测试与测量以助最大限度地提高数据完整性与并降低填充缺失数据的成本

5.4 一致性

指对同一对象/事件在同一状态记录的相同信息的程度。必须在数据的整个处理周期中通过测试与测量以保证数据一致性,尤其在进行某些关键的数据转换时

5.5 合规性

指对数据的操作须满足某些规定标准或权限的要求。当存在组织、区域或国家性的数据管理条例应测试此特征,例如欧盟的通用数据保护条例 (GDPR)、美国的加利福尼亚州消费者隐私法 (CCPA)。

5.6 时效性

指数据所代表的事件发生后收集数据的程度。其必须在数据产生后的数据收集阶段被测试和测量

6. 可信任的IoT数据管理系统框架

6.1 概论

条目6描述了数据管理的周期性流程与可信任的IoT数据管理系统框架

6.2 数据管理周期

该框架是为了解决IoT数据管理需求而开发的,因而在此之前我们需要先确定IoT数据管理的周期。图1展示了其三个阶段,分别是规划阶段、实施与监控阶段和处置阶段

image-20211126205500370

规划阶段为让数据满足消费者的需要奠定了基础,其包括数据用途、数据规范与预算资源。实施阶段由包括数据生成、数据采集、数据处理、数据应用与性能评估在内的多个子阶段组成。最终的处置阶段将结算费用、审查记录、总结并汇报结果并最终删除、转移或重新利用在整个周期中采集和处理到的数据,这些处理必须基于数据所有者与数据购买者在规划阶段所达成的协议和数据管理系统基于系统用途而进行的设计

如图一所示,数据管理周期开始于数据生命周期之前。这是因为在规划阶段确定了数据的用途与规范以获取相关的数据并启动数据的生命周期。在整个数据管理周期中收集并生成的数据都能被重用于数据分析,只要对这些数据的操作始终满足合规性。注意,带箭头的虚线表示可选的数据重用。

6.3 框架的组成部分

image-20211126215058756

如图二,标准框架自上而下分为五层,分别是应用层、服务层、功能层和信托层。管理与控制面板则贯穿所有层次

6.3.1 应用层

应用层利用了从下层的数据服务并向数据购买者提供定制的可呈现的交互式数据应用。应用的一些例子包括仓库管理系统 (WMS)、企业资源规划软件 (ERP)、供应链管理系统 (SCM)、商业智能软件 (BI) 等。

6.3.2 服务层

服务层包括基础的数据服务如数据分析、数据共享和数据交易并且为上层的数据应用层提供支持。这些服务与底层数据通过下一层的数据API接口进行交互

6.3.3 功能层

功能层包括一些功能模块,这些功能模块对应IoT数据管理所需要的各种行为。它利用了信托层提供的数据处理能力并且支撑着上层的服务。图中各模块间的箭头代表了数据在各功能模块间的流动

从数据管理的时序角度,这些功能模块分别是数据生成、数据采集、数据存储、数据处理与数据API。注意每个功能都必须利用其下信托层的一种或多种功能来运行,比如,数据生成需要利用可信感知 [硬件加密,可信执行环境(Trusted Execution Environment),临时身份识别等等] 来最大限度地提高原始数据的准确性。

  • 数据生成功能将现实世界数字化。其采用了信托层的可信感知功能并被直接物理映射到IoT设备上
  • 数据采集程序将数据采入信息系统。它是何种设备记录何种数据的网关,因此须实现身份证明与读写访问控制。该功能利用了下层的多个模块包括可信通信、可信存储与可信网络
  • 数据处理程序将收集到的原始数据根据需要转换成特定的格式、内容与知识。其任务包括除噪、本地/边缘计算、数据抽象等等
  • 数据存储程序支持数据采集、数据处理以及其他API接口来保证这些程序能在采集到数据时输入数据并根据需要合规地访问数据。数据存储功能特别利用了下层的可信存储模块来帮助保证一致性、合规性和及时性
  • 数据API程序为上面的数据服务层提供了一批接口,并保护了敏感信息不在未经许可的情况下暴露,以最大限度地提高合规性

6.3.4 信托层

信托层建立起了整个框架的基础设施,包括可信感知、可信存储、可信通信、可信网络与可信计算

这些基础设施定义如下:

  • 可信感知提供设备层面的身份识别与可信执行,以保证数据是由经过安全验证的源与能够运行授权指令的IoT设备产生。

  • 可信存储提供了读写访问控制并能最大限度地减小数据篡改的可能。注意一些规章中可能规定了个人数据必须在用户要求或达到一定时间后被销毁,在这种情况下,数据删除功能也应当被组入数据存储功能中。可信存储必须有链上存储的部分,可以将链上链下存储相结合以满足隐私协议的要求

  • 可信通信有助于最大限度地提高点对点物联网数据传输的安全级别。市场上有大量专为各种场景(不同通信范围的场景、无线电干扰、数据速率、网络覆盖支持等)指定的无线通信协议。区块链须通过去中心化身份识别、加密凭证等方式与物联网通信相结合。

  • 可信网络有助于最大限度地提高数据在源-目标对之间进行多跳寻址的可靠性

  • 可信计算以最高级别的安全来支持多方参与计算,在这种设计中,数据本身并没有被暴露给参与者,参与者得知的只有计算的结果。应采用区块链来管理数据访问控制与隐私数据共享日志等

信托功能兼有传统技术与区块链技术的优点,并支持更可信的IoT网络。信任载体层可以以区块链即服务(BaaS)或不在云上运行的区块链节点(BCN)的形式使用无许可区块链和许可区块链来实现。具体选择应与业务特点和部署技术因素相符。

6.3.5 管理控制面板

管理和控制面板根据预先确定的策略和规则协调跨层的交互操作,监控和评估系统的性能,并根据系统规范调整系统以提高整体性能。

该面板包含到所有层的多个接口,用于接收或交付策略和规则并将它们安装到不同层的操作单元中。请注意,尽管此面板显示为框架中的一个逻辑组件,但它可以分解为集中式或分布式单元,以适应实施中的信任设计。例如,可以通过智能合约实施策略和规则以强制执行信任。

基础知识

变量名由大小写字母、数字和特殊字符(_和$)组成。只有前64个字符有效

可以使用;标记语句结尾,表示隐藏该行计算结果,也可以不标记语句结束

MATLAB的注释符是%

命令

用于管理会话的命令

clc用于清除命令窗口

clear用于从内存中删除变量

exist用于检查文件或变量是否存在

global声明变量为全局变量

help获取帮助

lookfor在帮助条目种搜索关键字

quit停止MATLAB

who列出当前所有变量的名称

whos列出当前变量的详细信息

用于系统的命令

cd更改当前目录

date显示当前日期

delete删除文件

diary开启/关闭日记文件录制

dir列出当前目录中的所有文件

load从文件加载工作区变量

path显示搜索路径

pwd显示当前目录

save将工作空间变量保存在文件中

type显示文件的内容

what列出当前目录中的所有MATLAB文件

wklread读取.wkl电子表格文件

输入和输出函数/命令

disp显示数组或字符串的内容

fsanf从文件中读取格式化的数据

format格式控制命令

fprintf执行对屏幕或文件的格式化写入

input显示提示并等待输入

其中,fsanffprintf函数的行为像C的scanfprintf函数,它们支持,%s格式化为字符串,%d格式化为整数,%f格式化为浮点值,%e科学计数法,%g%f%e中选择一个最紧凑的格式

特殊变量

ans表示最近计算的答案

eps表示浮点精度

ij表示虚数的单位

Inf表示无穷

NaN表示未定义的数值结果

pi表示$$\pi$$

运算符

关系运算符

除了不等于是~=以外,其他都跟C相同

逻辑运算符

短路运算:&&||

元素级运算:&|~

按位运算符

&|^~

除此之外还有一些位运算相关的函数

bitset(a,pos)bit设置为a的特定位置pos

bitshift(a,k)a向左移动kbit

矩阵与向量

由于MATLAB起源于FORTRAN,它的索引值起始于1而不是0

矩阵是数字的二维数组,通过以空格或逗号分隔的顺序输入每一行来创建矩阵,并用分号分隔行的结尾

1
2
m=[1 2 3;4 5 6;7 8 9]
C=1:3:20

也可以用一些专业函数产生新的数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>> A=linspace(0,10,4)
A =
0 3.3333 6.6667 10.0000
>> B=zeros(2,2)
B =
0 0
0 0
>> C=ones(1,4)
C =
1 1 1 1
>> D=rand(3,3)%均匀分布随机数
D =
0.8530 0.5132 0.2399
0.6221 0.4018 0.1233
0.2510 0.0760 0.1839
>> E=randn(2,2)%正态分布随机数
E =
0.5201 -0.0348
-0.0200 -0.7982

size()与length()

size函数返回一个长度为2的向量,第一个值是传入数组的行数,第二个值是传入数组的列数:

1
2
3
>> size(rand(3,3))
ans =
3 3

length函数返回该数组最长的维度的长度:

1
2
3
4
5
6
>> length(rand(4,3))
ans =
4
>> length(rand(4,10))
and =
10

索引向量

通过位置访问数组元素的过程称为索引

常用函数

画图

stem函数

用法:

1
2
3
4
5
6
stem(Y)
stem(X,Y)
stem(___,'filled')%这里的___既可以是Y也可以是X,Y
stem(___,LineSpec)
stem(___,Name,Value)
stem(ax,___)

第一种用法中,如果Y是向量,则X轴的刻度范围从1到length(Y)

如果Y是矩阵,则stem将根据相同的x值绘制行中的所有元素,并且x轴的刻度范围是从1至Y中的行数

第二种用法会在X指定的值的位置绘制数据序列Y。X和Y输入必须是大小相同的向量或矩阵,或者X是行或列向量而Y是列数为length(X)的矩阵

第三种用法会将小球改成实心

第四种用法指定线型、标记符号和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示,不需要同时指定所有三个特征。

线型 说明
- 实线
虚线
: 点线
-. 点划线
标记 说明
‘o’ 圆圈
‘+’ 加号
‘*’ 星号
‘.’
‘x’ 叉号
‘_’ 水平线条
‘|’ 垂直线条
‘s’ 方形
‘d’ 菱形
‘^’ 上三角
‘v’ 下三角
‘>’ 右三角
‘<’ 左三角
‘p’ 五角形
‘h’ 六角形
颜色 说明
y 黄色
m 品红
c 青蓝
r 红色
g 绿色
b 蓝色
w 白色
k 黑色

第五种用法改变Name设置的Value

也可以获取窗口句柄后通过属性访问来改变stem的属性值:

属性名 属性值(第一个是默认值)
LineStyle-线型 ‘-‘、’–’、’:’、’-.’、’none’
LineWidth-线条宽度 0.5、其他正值
Color-针状图颜色 [0 0 0]、RGB三元组、十六进制颜色代码、长名称、短名称
Marker-标记符号 上表所列标记值
MarkerSize-标记大小 6、其他正值
MarkerEdgeColor-标记轮廓颜色 ‘auto’、其余如Color
MarkerFaceColor-标记填充颜色 ‘none’、其余如Color

第六种用法指定坐标区(ax),如果未指定坐标区,则stem在当前坐标区中绘图

xlabel函数与ylabel函数

语法:

1
2
3
xlabel(txt)
xlabel(target,txt)
xlabel(___,Name,Value)%___可以是txt也可以是target,txt

第一种用法对当前坐标区添加标签,可以使用字符向量元胞数组的方式来创建多行标签:

1
2
plot((1:10).^2)
xlabel({'Population','(in thousands)'})

image-20211125135447692

也可以使用TeX标记来显示特殊字符,可以通过逗号分隔字符串来实现变量值的包含:

1
2
3
plot((1:10).^2)
year = 2014
xlabel(['Population for Year ',num2str(year)])

第二种用法为指定的目标对象添加标签

第三种用法使用Name-Value对来修改标签外观,也可以获取标签对象本身后通过访问相应属性来修改

基础知识

单位阶跃(unit step,u[n])与单位冲激(unit impulse)函数

具有相对较长周期的确定性信号可以构成所谓“伪随机信号”

能量信号与功率信号

信号可以看作是随时间变化的电压或电流,信号$$f(t)$$在$$1\Omega$$的电阻上的瞬时功率为$$|f(t)|^2$$,在时间区间$$(-\infty,+\infty)$$所消耗的总能量是:$$E=\displaystyle\lim_{T \to \infty}\int_{-T}^{T}$$,