信息处理课群综合应用设计课程设计-数字水印算法设计_第1页
信息处理课群综合应用设计课程设计-数字水印算法设计_第2页
信息处理课群综合应用设计课程设计-数字水印算法设计_第3页
信息处理课群综合应用设计课程设计-数字水印算法设计_第4页
信息处理课群综合应用设计课程设计-数字水印算法设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学《信息处理课群综合应用设计》课程设计课程设计任务书学生姓名:专业班级:通信1303班指导教师:工作单位:信息工程学院题目:数字水印算法设计初始条件:设计任务:学习掌握一种数字水印算法,选择两幅图像分别作为版权图像和水印图像,采用水印嵌入算法成生含水印图像。采用水印提取算法,提取出嵌入水印。并对水印算法的鲁棒性进行测试。(1)掌握一种数字水印的嵌入与提取算法原理;(2)编写出水印嵌入算法的matlab程序,并给出水印嵌入前后的版权图像,并对嵌入效果进行分析说明;(3)编写出水印提取算法matlab程序,并给出水印原图和提取出的水印图像,并对水印的提取效果进行分析说明;(4)进行水印的抗攻击实验,噪声攻击,剪切攻击,缩放攻击,压缩攻击等。测定提取前后水印的峰值信噪比(PSNR)和相关性(NC);时间安排:序号阶段内容所需时间1搜集学习资料2天2编写程序并仿真调试5天3撰写报告2天4答辩1天合计10天指导教师签名:年月日系主任(或责任教师)签名:年月日目录TOC\o"1-3"\h\u摘要 MATLAB概述1.1MATLAB的优点MATLAB不同于其他高级程序语言,利用MATLAB来研究数字水印技术,有如下几个优点:编程效率高。MATLAB语言是用数学形式的语言编写程序,用MATLAB编写程序犹如在演算纸上排列公式与求解问题。由于它编写简单,所以编程效率高,易学易懂。用户使用方便。与其他语言相比,MATLAB能在同一画面上进行灵活操作,快速排除输入程序中的书写错误、语法错误甚至语意错误,从而加快了用户编写、修改和调试程序的速度,便于操作。扩充能力强,交互性好。MATLAB语言库函数丰富,用户还可以根据自己的需要方便地建立和扩充新的库函数,提高MATLAB使用效率和扩充功能。良好的交互性使程序员可以使用以前编写过的程序,减少重复性工作。

移植性好,开放性好。MATLAB是用C语言编写的,而C语言的可移植性很好。于是MATLAB可以很方便地移植到能运行C语言的操作平台上。语言简单,内涵丰富。MATLAB语言中最基本最重要的成分是函数,同一函数名,不同数目的输入变量及不同数目的输出变量,代表着不同的含义。这不仅使MATLAB的库函数功能更丰富,而且大大减少了需要的磁盘空间,使得MATLAB编写的M文件简单、短小而高效。方便的绘图功能。MATLAB软件中有一系列绘图函数,在运用MATLAB软件时只需要调用不同的绘图函数,即可在图上标出图题、XY轴标注。2数字水印概述2.1数字水印技术的应用领域随着数字水印技术的发展,数字水印的应用领域也得到了扩展,数字水印的基本应用领域是防伪溯源、版权保护、隐藏标识、认证和安全隐蔽通信。当数字水印应用于防伪溯源时,包装、票据、证卡、文件印刷打印都是潜在的应用领域。用于版权保护时,潜在的应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容的检索等领域得到应用。数字水印的认证方面主要ID卡、信用卡、ATM卡等上面数字水印的安全不可见通信将在国防和情报部门得到广泛的应用。多媒体技术的飞速发展和Internet的普及带来了一系列政治、经济、军事和文化问题,产生了许多新的研究热点,以下几个引起普遍关注的问题构成了数字水印的研究背景。数字作品的知识产权保护数字作品(如电脑美术、扫描图像、数字音乐、视频、三维动画)的版权保护是当前的热点问题。由于数字作品的拷贝、修改非常容易,而且可以做到与原作完全相同,所以原创者不得不采用一些严重损害作品质量的办法来加上版权标志,而这种明显可见的标志很容易被篡改。“数字水印”利用数据隐藏原理使版权标志不可见或不可听,既不损害原作品,又达到了版权保护的目的。目前,用于版权保护的数字水印技术已经进入了初步实用化阶段,IBM公司在其“数字图书馆”软件中就提供了数字水印功能,Adobe公司也在其著名的Photoshop软件中集成了Digimarc公司的数字水印插件。然而实事求是地说,目前市场上的数字水印产品在技术上还不成熟,很容易被破坏或破解,距离真正的实用还有很长的路要走。商务交易中的票据防伪随着高质量图像输入输出设备的发展,特别是精度超过1200dpi的彩色喷墨、激光打印机和高精度彩色复印机的出现,使得货币、支票以及其他票据的伪造变得更加容易。另一方面,在从传统商务向电子商务转化的过程中,会出现大量过度性的电子文件,如各种纸质票据的扫描图像等。即使在网络安全技术成熟以后,各种电子票据也还需要一些非密码的认证方式。数字水印技术可以为各种票据提供不可见的认证标志,从而大大增加了伪造的难度。证件真伪鉴别信息隐藏技术可以应用的范围很广,作为证件来讲,每个人需要不只一个证件,证明个人身份的有:身份证、护照、驾驶证、出入证等;证明某种能力的有:各种学历证书、资格证书等。国内目前在证件防伪领域面临巨大的商机,由于缺少有效的措施,使得“造假”、“买假”、“用假”成风,已经严重地干扰了正常的经济秩序,对国家的形像也有不良影响。通过水印技术可以确认该证件的真伪,使得该证件无法仿制和复制。声像数据的隐藏标识和篡改提示数据的标识信息往往比数据本身更具有保密价值,如遥感图像的拍摄日期、经/纬度等。没有标识信息的数据有时甚至无法使用,但直接将这些重要信息标记在原始文件上又很危险。数字水印技术提供了一种隐藏标识的方法,标识信息在原始文件上是看不到的,只有通过特殊的阅读程序才可以读取。这种方法已经被国外一些公开的遥感图像数据库所采用。此外,数据的篡改提示也是一项很重要的工作。现有的信号拼接和镶嵌技术可以做到“移花接木”而不为人知,因此,如何防范对图像、录音、录像数据的篡改攻击是重要的研究课题。基于数字水印的篡改提示是解决这一问题的理想技术途径,通过隐藏水印的状态可以判断声像信号是否被篡改。隐蔽通信及其对抗数字水印所依赖的信息隐藏技术不仅提供了非密码的安全途径,更引发了信息战尤其是网络情报战的革命,产生了一系列新颖的作战方式,引起了许多国家的重视。网络情报战是信息战的重要组成部分,其核心内容是利用公用网络进行保密数据传送。迄今为止,学术界在这方面的研究思路一直未能突破“文件加密”的思维模式,然而,经过加密的文件往往是混乱无序的,容易引起攻击者的注意。网络多媒体技术的广泛应用使得利用公用网络进行保密通信有了新的思路,利用数字化声像信号相对于人的视觉、听觉冗余,可以进行各种时(空)域和变换域的信息隐藏,从而实现隐蔽通信。2.2数字水印的基本特点数字水印技术是指用信号处理的方法在声音,图像或视频等数字化的多媒体数据中嵌入某些能证明版权归属或跟踪侵权行为的隐蔽的信息,这些信息通常是不可见的,不能被人的知觉系统觉察或注意到,只有通过专用的监测器或阅读器才能提取。通过这些隐藏在多媒体内容中的信息,可以达到确认内容创建者,购买者或判断内容是否真实完整的目的,水印系统所隐藏的信息总是与被保护的数字对象或它的所有者有关。数字水印是实现版权保护的有效办法,是信息隐藏技术研究领域的重要分支。数字水印不仅要实现有效的版权保护,而且加入水印后的图像必须与原始图像具有相同的应用价值,也就是说数字产品不会因为加入了水印而变得不可用。不同的应用对数字水印的要求是不尽相同的,一般认为数字水印应该具有如下特点:稳健性。指经过常规的处理操作后,水印算法仍能从水印作品中检测到水印的能力。这些处理包括常见的图像处理(图像压缩、低通滤波、高通滤波和图像增强等)、几何失真变换(剪切、图像缩放、平移和旋转等)、噪声干扰、打印和扫描等。稳健性对于水印而言极为重要,通常只要求水印在嵌入和检测之间的信号处理操作中存在。对于不同的应用需求,要求有不同程度的稳健性。不可感知性。在宿主数据中隐藏的数字水印应该是不能够被感知的。不可感知包含两方面的意思,一个是指视觉上的不可感知性,一个是指统计上的不可感知。感官上的不可感知就是通过人的视觉、听觉无法察觉出宿主数据中因嵌入数字水印而引起的变化,也就是从人类的感官的角度看,嵌入水印的数据与原始数据之间是完全一样,没有区别的。统计上的不可感知性是指,对大量的用同样的方法经水印处理过的数据产品,即使采用统计方法也无法确定水印是否存在。即因嵌入水印导致图像的变化对观察者的视觉系统来讲应该是不可察觉的,最理想的情况是水印图像与原始图像在视觉上一模一样,这是绝大多数水印算法所应达到的要求。安全性。指水印能够抵御未经授权的人的攻击的能力,这些攻击指专门为了阻碍水印发挥作用的处理行为。主要有三大类型的攻击。一类为未经授权的删除,指阻止检测出作品中水印的攻击。另一类为未经授权的嵌入(伪造),指把不合法的水印嵌入到不应含有该水印的作品中的行为。第三类为未经授权的检测,按照其严重性不同,又可以分为三种程度。第一种最严重,指未经授权者检测并解密出嵌入水印的信息。第二种稍轻,指未经授权者检测出水印并且可以区分不同的水印信息,但是不能解读水印的具体含义。第三种最轻,指未经授权者能够判断水印的存在,但不能解读水印信息,也不能区分嵌入信息。鲁棒性。数字水印应该难以被擦出。在不能得到水印的全部信息(如水印数据、嵌入位置、嵌入算法、嵌入密钥等)的情况下,当只知道其中的部分信息的时候,应该无法完全的擦出水印,任何试图完全破坏行为将对载体的质量产生严重的破坏,使得载体无法使用。有效性。指嵌入水印后紧接着检测到水印的概率。水印系统的有效性可能低于100%,如果要尽量接近期望的100%的有效性,需要在其它特性方面付出较高的代价。在实际的应用中,为了在其它特性方面获得更好的性能,需要牺牲一些有效性。在某些情况下,水印系统的有效性需要经分析后才能确定。抗窜改性。与抗毁坏的鲁棒性不同,抗窜改性是指水印一旦嵌入到载体中,攻击者就很难改变或伪造。鲁棒性要求高的应用,通常也需要很强的抗窜改性,在版权保护中,要达到好的抗窜改性是比较困难的。2.3数字水印的分类数字水印有多种分类方法,出发点不同导致了不同的分类,它们之间既有联按特性划分按水印的特性可以将数字水印分为鲁棒数字水印和易损数字水印两类。鲁棒水印(RobustWatermarking)主要用于在数字作品中标识著作权信息,利用这种水印技术在多媒体内容的数据中嵌入创建者、所有者的标示信息,或者嵌入购买者的标示(即序列号)。在发生版权纠纷时,创建者或所有者的信息用于标示数据的版权所有者,而序列号用于追踪违反协议而为盗版提供多媒体数据的用户。用于版权保护的数字水印要求有很强的鲁棒性和安全性,除了要求在一般图像处理(如:滤波、加噪声、替换、压缩等)中生存外,还需能抵抗一些恶意攻击。易损水印(FragileWatermarking),与鲁棒水印的要求相反,易损数字水印主要用于完整性保护,这种水印同样是在内容数据中嵌入不可见的信息。当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定原始数据是否被篡改。易损水印应对一般图像处理(如:滤波、加噪声、替换、压缩等)有较强的免疫能力(鲁棒性),同时又要求有较强的敏感性,即:既允许一定程度的失真,又要能将失真情况探测出来。必须对信号的改动很敏感,人们根据易损水印的状态就可以判断数据是否被篡改过。按水印所附载的媒体,我们可以将数字水印划分为图像水印、音频水印、视频水印、文本水印以及用于三维网格模型的网格水印等。随着数字技术的发展,会有更多种类的数字媒体出现,同时也会产生相应的水印技术。按水印的检测过程可以将数字水印划分为明文水印和盲水印。明文水印在检测过程中需要原始数据,而盲水印的检测只需要密钥,不需要原始数据。一般来说,明文水印的鲁棒性比较强,但其应用受到存储成本的限制。目前学术界研究的数字水印大多数是盲水印。按数字水印的内容可以将水印划分为有意义水印和无意义水印。有意义水印是指水印本身也是某个数字图像(如商标图像)或数字音频片段的编码;无意义水印则只对应于一个序列号。有意义水印的优势在于,如果由于受到攻击或其他原因致使解码后的水印破损,人们仍然可以通过视觉观察确认是否有水印。但对于无意义水印来说,如果解码后的水印序列有若干码元错误,则只能通过统计决策来确定信号中是否含有水印。不同的应用需求造就了不同的水印技术。按水印的用途,我们可以将数字水印划分为票证防伪水印、版权保护水印、篡改提示水印和隐蔽标识水印。票证防伪水印是一类比较特殊的水印,主要用于打印票据和电子票据、各种证件的防伪。一般来说,伪币的制造者不可能对票据图像进行过多的修改,所以,诸如尺度变换等信号编辑操作是不用考虑的。但另一方面,人们必须考虑票据破损、图案模糊等情形,而且考虑到快速检测的要求,用于票证防伪的数字水印算法不能太复杂。版权标识水印是目前研究最多的一类数字水印。数字作品既是商品又是知识作品,这种双重性决定了版权标识水印主要强调隐蔽性和鲁棒性,而对数据量的要求相对较小。隐蔽标识水印的目的是将保密数据的重要标注隐藏起来,限制非法用户对保密数据的使用。按数字水印的隐藏位置,我们可以将其划分为时(空)域数字水印、频域数字水印、时/频域数字水印和时间/尺度域数字水印。时(空)域数字水印是直接在信号空间上叠加水印信息,而频域数字水印、时/频域数字水印和时间/尺度域数字水印则分别是在DCT变换域、时/频变换域和小波变换域上隐藏水印。随着数字水印技术的发展,各种水印算法层出不穷,水印的隐藏位置也不再局限于上述四种。应该说,只要构成一种信号变换,就有可能在其变换空间上隐藏水印。按数字水印的透明性质,可分为可见水印和不可见水印两种。可见水印就是人眼能看见的水印,比如照片上标记的拍照的日期或者电视频道上的标识等。不可见水印就是人类视觉系统难以感知的,也是当前数字水印领域关注比较多的。2.4数字水印技术的研究动态从国际、国内对数字水印研究现状和重视程度,可见数字水印对社会的应用是多么重要,所以它的研究前景是十分广阔的。数字水印技术是近十年来横跨信号处理、数字通信、密码学、计算机网络技术等多学科的新兴技术,具有潜在的应用市场和良好的应用前景。从研究意义来看,对它的研究具有重要的学术、经济和军事价值。一方面,它将促进多媒体技术、网络技术、通信技术、信号处理技术等多门新兴技术的有机结合,促进多媒体网络的进一步繁荣;另一方面,它将有助于多媒体信息版权保护及其冲突问题的解决。同时,它将促进隐蔽通信技术、信息安全技术的提高。3典型的数字水印算法3.1空域算法早期该类算法中典型的水印算法是将信息嵌入到随机选择的图像点中最不重要的像素位(LSB:leastsignificantbits)上,这可保证嵌入的水印是不可见的。但是由于使用了图像不重要的像素位,算法的鲁棒性差,水印信息很容易为滤波、图像量化、几何变形的操作破坏。另外一个常用方法是利用像素的统计特征将信息嵌入像素的亮度值中。3.2变换域算法该类算法中,大部分水印算法采用了扩展频谱通信(spreadspectrumcommunication)技术。算法实现过程为:先计算图像的离散余弦变换(DCT),然后将水印叠加到DCT域中幅值最大的前k系数上(不包括直流分量),通常为图像的低频分量。若DCT系数的前k个最大分量表示为D=,i=1,…,k,水印是服从高斯分布的随机实数序列W=,i=1,…,k,那么水印的嵌入算法为di=di(1+awi),其中常数a为尺度因子,控制水印添加的强度。然后用新的系数做反变换得到水印图像I。解码函数则分别计算原始图像I和水印图像I*的离散余弦变换,并提取嵌入的水印W*,再做相关检验以确定水印的存在与否。该方法即使当水印图像经过一些通用的几何变形和信号处理操作而产生比较明显的变形后仍然能够提取出一个可信赖的水印拷贝。一个简单改进是不将水印嵌入到DCT域的低频分量上,而是嵌入到中频分量上以调节水印的顽健性与不可见性之间的矛盾。另外,还可以将数字图像的空间域数据通过离散傅里叶变换(DFT)或离散小波变换(DWT)转化为相应的频域系数;其次,根据待隐藏的信息类型,对其进行适当编码或变形;再次,根据隐藏信息量的大小和其相应的安全目标,选择某些类型的频域系数序列(如高频或中频或低频);再次,确定某种规则或算法,用待隐藏的信息的相应数据去修改前面选定的频域系数序列;最后,将数字图像的频域系数经相应的反变换转化为空间域数据。该类算法的隐藏和提取信息操作复杂,隐藏信息量不能很大,但抗攻击能力强,很适合于数字作品版权保护的数字水印技术中。基于离散余弦变换的数字水印最早的基于分块DCT水印技术出现于EKoch,JZhao的文献。针对静止图像和视频压缩标准(JPEG和MPEG),他们的水印方案中图像也被分成8×8的块,由一个密钥随机的选择图像的一些分块,在频域的中频上稍微改变一个三元组以隐藏二进序列信息。选择在中频分量编码是因为在高频编码易于被各种信号处理方法破坏,而在低频编码则由于人的视觉对低频分量很敏感,对低频分量的改变易于被察觉。未经授权者由于不知道水印嵌入的区域,因此是很难测出水印的,此外,该水印算法对有损压缩和低通滤波是鲁棒的。将图像分割成8×8块,并对每个块做DCT变换,然后随机选择构造所有块的一个子集,对子集的每一个块,选择一组频率并嵌入二进制水印信息。由于频率组的选择不是基于最显著分量,并且频率系数的方差较小,因此该方法对噪声、几何变形以及多文档攻击比较敏感。Cox等人于1995年提出了基于图像全局变换的水印方法,称之为扩频法。这也是目前大部分变换域水印算法中所用到的技术。它将满足正态分布的伪随机序列加入到图像的DCT变换后视觉最重要系数中,利用了序列扩频技术(SS)和人类视觉特性(HVS)。算法原理为先选定视觉重要系数,再进行修改,最常用的嵌入规则如下:其中分别是修改前和修改后的频域系数,α是缩放因子,是第i个信息位水印。一般说来,乘法准则的抗失真性能要优于加法准则。水印的检测是通过计算相关函数实现的。从嵌入水印的图像中提取出是嵌入规则的逆过程,把提取出来的水印与原水印作相似性运算,与制定的阈值比较,可确定是否存在水印。这是稳健性水印的奠基性算法。Chiou-TingHsu等人提出一种基于分块DCT的水印,他们的水印是可辨识的图像,而不是简单的一个符号或一个随机数。通过有选择地修改图像的中频系数来嵌入水印。验证时,衡量提取出的水印同原水印之间的相似性来判断是否加入了水印基于离散小波变换的数字水印与传统的DCT变换相比,小波变换是一种变分辨率的,将时域与频域相联合的分析方法,时间窗的大小随频率自动进行调整,更加符合人眼视觉特性。小波分析在时、频域同时具有良好的局部性,为传统的时域分析和频域分析提供了良好的结合。目前,小波分析已经广泛应用于数字图像和视频的压缩编码、计算机视觉、纹理特征识别等领域。由于小波分析在图像处理上的许多特点可用于信息隐藏的研究,所以这种分析方法在信息隐藏和数字水印领域的应用也越来越受到广大研究者的重视,目前已经有很多比较典型的基于离散小波变换的数字水印算法。除了上述有代表性的变换域算法外,还有一些变换域水印算法,它们中有相当一部分是上述算法的改进及发展。总的来说,与空域的方法相比,变换域的方法具有如下优点:(1)在变换域中嵌入的水印信号能量可以分布到空域的所有像素上,有利于保证水印的不可见性;(2)在变换域,人类视觉系统(HVS)的某些特性(如频率掩蔽特性)可以更方便地结合到水印编码过程中,因而其隐蔽性更好;(3)变换域的方法可与国际数据压缩标准兼容,从而易实现在压缩域(compresseddomain)内的水印算法,同时也能抵抗相应的有损压缩。3.3压缩域算法基于JPEG、MPEG标准的压缩域数字水印系统不仅节省了大量的完全解码和重新编码过程,而且在数字电视广播及VOD(VideoonDemand)中有很大的实用价值。相应地,水印检测与提取也可直接在压缩域数据中进行。下面介绍一种针对MPEG-2压缩视频数据流的数字水印方案。虽然MPEG-2数据流语法允许把用户数据加到数据流中,但是这种方案并不适合数字水印技术,因为用户数据可以简单地从数据流中去掉,同时,在MPEG-2编码视频数据流中增加用户数据会加大位率,使之不适于固定带宽的应用,所以关键是如何把水印信号加到数据信号中,即加入到表示视频帧的数据流中。对于输入的MPEG-2数据流而言,它可分为数据头信息、运动向量(用于运动补偿)和DCT编码信号块3部分,在方案中只有MPEG-2数据流最后一部分数据被改变,其原理是,首先对DCT编码数据块中每一输入的Huffman码进行解码和逆量化,以得到当前数据块的一个DCT系数;其次,把相应水印信号块的变换系数与之相加,从而得到水印叠加的DCT系数,再重新进行量化和Huffman编码,最后对新的Huffman码字的位数n1与原来的无水印系数的码字n0进行比较,只在n1不大于n0的时候,才能传输水印码字,否则传输原码字,这就保证了不增加视频数据流位率。该方法有一个问题值得考虑,即水印信号的引入是一种引起降质的误差信号,而基于运动补偿的编码方案会将一个误差扩散和累积起来,为解决此问题,该算法采取了漂移补偿的方案来抵消因水印信号的引入所引起的视觉变形。3.4NEC算法该算法由NEC实验室的Cox等人提出,该算法在数字水印算法中占有重要地位,其实现方法是,首先以密钥为种子来产生伪随机序列,该序列具有高斯N(0,1)分布,密钥一般由作者的标识码和图像的哈希值组成,其次对图像做DCT变换,最后用伪随机高斯序列来调制(叠加)该图像除直流(DC)分量外的1000个最大的DCT系数。该算法具有较强的鲁棒性、安全性、透明性等。由于采用特殊的密钥,因此可防止IBM攻击,而且该算法还提出了增强水印鲁棒性和抗攻击算法的重要原则,即水印信号应该嵌入源数据中对人感觉最重要的部分,这种水印信号由独立同分布随机实数序列构成,且该实数序列应该具有高斯分布N(0,1)的特征。3.5生理模型算法人的生理模型包括人类视HVS(HumanVisualSystem)和人类听觉系统HAS。该模型不仅被多媒体数据压缩系统利用,同样可以供数字水印系统利用。利用视觉模型的基本思想均是利用从视觉模型导出的JND(JustNoticeableDifference)描述来确定在图像的各个部分所能容忍的数字水印信号的最大强度,从而能避免破坏视觉质量。也就是说,利用视觉模型来确定与图像相关的调制掩模,然后再利用其来插入水印。这一方法同时具有好的透明性和强健性。4DCT算法的概述DCT变换域数字水印算法的主要思想是在DCT变换域上选择中、低频系数叠加水印信息,因为人眼的感觉主要集中在中、低频段,攻击者破坏水印时,小可避免地会引起图像质量的严重卜降,而且一般的图像处理也不会改变这部分数据。再者,由于JPEG,MPEG等压缩算法的核心是在DCT变换域上进行量化,故通过巧妙的融合水印和量化过程,可以使水印抵御一定的有损压缩。此外,DCT变换域系数的统计分布有比较好的数学模型,可以从理论上估计水印的信息量。基于DCT变换的数字水印在逆变换时会散布在整个图像空间中,故水印小像空间域技术那样易受到裁剪、低通滤波等攻击的影响,具有鲁棒性高、隐蔽性好的特点。4.1.离散余弦变换(DCT)的定义离散余弦变换(DiscreteCosineTransform)简称DCT是简化傅立叶变换的重要方法,从傅立叶变换的性质可以知道当连续的实函数f(x)或f(xy)为偶函数时,变换的计算只有余弦项,因此余弦变换和傅立叶变换一样有明确的物理意义,可以说余弦变换是傅立叶变换的特例。DCT变换避免了傅立叶变换中的复数运算,它是基于实数的正交变换。DCT变换矩阵的基向量很近似于Toeplitz矩阵(系数矩阵对称且沿着与主对角线平行的任一对角线上的元素都相等)的特征向量,而Toeplitz矩阵又体现了人类语言及图像信号的相关特性,故DCT变换常常被认为是对语音和图像信号的准最佳变换,同时DCT算法较易于在数字信号处理器中快速实现,因此它目前在图像编码中占有重要的地位,成为一系列有关图像编码的国际标准(JPEG,MPEG,H.261等)的主要环节。基于DCT域的数字水印算法,根据对宿主图像DCT的计算方法分为两大类,一类是直接对整幅图像进行DCT计算,选取合适频段的系数,嵌入水印。另一类是,首先将整幅图像分成块,对每一块分别进行DCT计算,在每一块中选取合适频段的系数,将水印信息分散嵌入到每一块所选取的DCT系数中。这种方法称为分块DCT。通常块的大小采用gxg像素点。由于后者是JPEG压缩标准中采用的方法,而且分块DCT计算速度要比全局DCT计算速度快得多,因此目前DCT域的水印方法大多数是采用分块DCT方法。因为DCT算法的核心是DCT变换公式,有必要先了解一下DCT正反变换公式。DCT正反变换公式的核心是余弦变换,计算速度比较快,因图像处理所用的是二维变换,这里只给出二维的DCT正反变换公式。设数字图像X(m,n)是具有M行、N列的一个矩阵,为同时减弱或去除空间域的相关性,将图像从空间域变换到空间域,其二维DCT正变换公式为:(式4.1)式中m,k=0,1,...,M-1;n,l=0,1,...,N-1。其中函数c(k)和c(l)分别为:二维逆离散余弦变换(IDCT)的定义如下:(式4.2)式中m,k=0,1,...,M-1;n,l=0,1,...,N-1。其中函数c(k)和c(l)分别为:4.2离散余弦变换(DCT)水印嵌入算法数字图像水印算法选择二值化灰度图像作为水印信息,根据水印图像的二值性选择不同的嵌入系数,并将载体图像进行8×8的分块,将数字水印的灰度值直接植入到载体灰度图像的DCT变换域中,实现水印的嵌入。具体方法如下:设I是M×N大小的原始图像,J是水印图像大小为P×Q,M和N分别是P和Q的偶数倍,把水印J加载到图像I中,算法分以下几步进行:(1)将I分解为(M/8)×(N/8)个8×8大小的方块B;同时,J也分解为(M/8)× (N/8)个(8P/M)×(8Q/N)大小的方块V;(2)对每一个B进行DCT变换:DB=DCT(B);(3)加载水印对每一个DB和V,s(i)为从DB的中频选出的加载的位置,1≤i ≤(8P/M)×(8Q/N),t(i)为水印V的位置坐标,1≤i≤(8P/M)×(8Q/N),DB’ (s)=A×V,其中A是加权系数,用DB’(s)来代替DB,得到加载水印后的图 像DBC;(4)对以上得到的每一个DBC进行逆DCT变换:IDBC=IDCT(DBC)并将各方块 IDBC合并为一个整图I’,即加载了水印的新图像。4.3离散余弦变换(DCT)水印提取算法设图像D为已经加载了水印的载体图像,现要将所加载的水印从D中提取出来,其过程为上述加载水印算法的逆运算:将D分解为(M/8)×(N/8)个8×8大小的方块BD;对每一个BD进行二维DFT变换:DBD=DCT(BD);提取数据对每一个DBD,按照式V’=1/A×DBD得到V’;将上面得到的所有V’合并成一个水印整图J’。4.4离散余弦变换(DCT)水印算法原理框图图4.1DCT水印嵌入算法原理框图图4.2DCT水印提取算法原理框图5抗攻击实验5.1水印嵌入和提取利用MATLAB实现数字水印的嵌入和提取算法,根据前面所提到的算法编写出如下水印嵌入的程序段:clearall;clc;start_time=cputime;%%读取水印图像I=imread('jiang_water.jpg');I=rgb2gray(I);I=double(I)/255;I=ceil(I);%将I取整(向大于等于I的方向取整)二值化%%显示水印图像figure(1);subplot(2,3,1);imshow(I),title('水印图像')dimI=size(I);%图像的行列数rm=dimI(1);cm=dimI(2);%行数和列数%%生成水印信息mark=I;alpha=10;%嵌入因子,控制水印嵌入强度k1=randn(1,8);%产生1×8的服从正太分布的伪随机数矩阵k2=randn(1,8);a0=imread('D:\课程设计\信息群\original.jpg');%读未加水印图像a0=rgb2gray(a0);psnr_cover=double(a0);%转换为double型subplot(2,3,2),imshow(a0,[]),title('未加水印图像');[r,c]=size(a0);%载体图像的行列数cda0=blkproc(a0,[88],'dct2');%对载体图像分成8×8块进行2维DCT处理%%嵌入水印cda1=cda0;%cda1=512-512fori=1:rm%i=1:64%水印图像行循环forj=1:cm%j=1:64%水印图像列循环x=(i-1)*8;y=(j-1)*8;%选择加载位置ifmark(i,j)==1%根据水印图像中的黑白点选择不同的阵k=k1;elsek=k2;endcda1(x+1,y+8)=cda0(x+1,y+8)+alpha*k(1);cda1(x+2,y+7)=cda0(x+2,y+7)+alpha*k(2);cda1(x+3,y+6)=cda0(x+3,y+6)+alpha*k(3);cda1(x+4,y+5)=cda0(x+4,y+5)+alpha*k(4);cda1(x+5,y+4)=cda0(x+5,y+4)+alpha*k(5);cda1(x+6,y+3)=cda0(x+6,y+3)+alpha*k(6);cda1(x+7,y+2)=cda0(x+7,y+2)+alpha*k(7);cda1(x+8,y+1)=cda0(x+8,y+1)+alpha*k(8);endend%%嵌入水印后图像a1=blkproc(cda1,[88],'idct2');a_1=uint8(a1);imwrite(a_1,'D:\课程设计\信息群\嵌入水印后图像.jpg','jpg');subplot(2,3,3),imshow(a1,[]),title('嵌入水印后的图像');disp('嵌入水印处理时间');embed_time=cputime-start_time图5.1水印嵌入前后图像对比由图5.1所示,嵌入水印后的图像和未嵌入水印图像在视觉上来看完全没有区别,嵌入的水印并不影响原始图像的感观,即数字水印具有不可见性。根据之前提到的算法,可以编写出如下的基于MATLAB的水印提取算法的程序段:%%提取水印psnr_watermarked=a1;dca1=blkproc(a1,[8,8],'dct2');p=zeros(1,8);fori=1:dimI(1)forj=1:dimI(2)%j=1:32x=(i-1)*8;y=(j-1)*8;p(1)=dca1(x+1,y+8);p(2)=dca1(x+2,y+7);p(3)=dca1(x+3,y+6);p(4)=dca1(x+4,y+5);p(5)=dca1(x+5,y+4);p(6)=dca1(x+6,y+3);p(7)=dca1(x+7,y+2);p(8)=dca1(x+8,y+1);ifcorr2(p,k1)>corr2(p,k2),warningoffMATLAB:divideByZero mark1(i,j)=1;elsemark1(i,j)=0;endendendsubplot(2,3,5);imshow(mark1,[]),title('提取的水印图像');subplot(2,3,6);imwrite(mark1,'.\jiang\提取的水印.jpg','jpg');imshow(mark),title('原嵌入水印比较');图5.2提取前后水印图像比较由图5.2所示,从带有水印的载体图像中提取出的水印图像和原始的水印图相比,总体来看几乎是完全相同的,所以说水印信息被成功地提取出来了。5.2抗攻击实验评价数字水印被影响程度,除了利用感知系统(人眼或人耳)定性评价以外,还可以采用定量的评价标准。通常对含水印的数字作品进行定量评价的标准有:峰值信噪比(PeakSignalNoiseRate,PSNR)和归一化相关系数(NormalizedCorrection)。(1)峰值信噪比通常被用来测量提取出的水印和原始图像信息之间的差异。设Px,y代表原始图像中坐标为(x,y)的象素点,Qx,y代表嵌入了水印的图象中坐标为(x,y)的象素点,X和Y分别是行和列的个数。则峰值信噪比定义为:(式5.1)(2)归一化相关系数经常用来表示原始水印信息与提取出的水印信息之间的相似程度,定量的评价提取的水印与原始水印信号的相似性,其定义为:(式5.2)5.2.1噪声攻击噪声攻击也就是在已经嵌入水印的图片中加入噪声,形成噪声攻击后再去提取图片中的水印。MATLAB程序如下:WImage2=a1;noise0=20*randn(size(WImage2));WImage2=WImage2+noise0;subplot(2,3,4);imshow(WImage2,[]);title('加入白噪声后图像');M1=WImage2;M_1=uint8(M1);imwrite(M_1,'.\jiang\加白噪声后图像.jpg','jpg');图5.3噪声攻击后的图像图5.4PSNR和NC参数的对比从MATLAB程序运行结果可以看出,受到噪声攻击后,PSNR值和NC值都降低了,PSNR值降低说明在受到噪声攻击后,含水印载体图像相对于载体图像来说失真较大;NC值降低说明提取出的水印图像和原水印图像的相似度降低了。5.2.2滤波攻击对已嵌入水印的图片进行滤波,进行滤波攻击后,再从中提取水印信息。滤波攻击后计算PSNR和NC参数的值。MATLAB程序如下:WImage3=a1;H=fspecial('gaussian',[4,4],0.2);WImage3=imfilter(WImage3,H);subplot(2,3,4);imshow(WImage3,[]);title('高斯低通滤波后图像');M1=WImage3;M_1=uint8(M1);imwrite(M_1,'.\jiang\高斯低通滤波后图像.jpg','jpg');图5.5滤波攻击后的图像图5.6PSNR和NC参数的对比由MATLAB运行结果可知,PSNR和NC参数的值都有所下降,说明含水印载体图像相对于载体图像来说失真一般,提取出的水印图像和原水印图像的相似度降低,但是NC值下降的幅度较小,说明此算法抗滤波攻击能力较强。5.2.3压缩攻击对已嵌入水印的图片进行压缩,进行压缩攻击后,再从中提取水印信息。压缩攻击后计算PSNR和NC参数的值。MATLAB程序如下:WImage5=a_1;imwrite(WImage5,'.\jiang\JPEG压缩.jpg','jpg');WImage5cl=imread('JPEG压缩.jpg');subplot(2,3,4);imshow(WImage5cl);title('经JPEG压缩后图像');M1=WImage5cl;图5.7压缩攻击后的图像图5.8PSNR和NC参数的对比由MATLAB运行结果可知,PSNR和NC参数的值都有所下降,说明含水印载体图像相对于载体图像来说失真较小,提取出的水印图像和原水印图像的相似度降低,但是NC值和PSNR值下降的幅度都比较小,说明此算法抗压缩攻击能力比较强。5.2.4剪切攻击对已嵌入水印的图片进行剪切,进行剪切攻击后,再从中提取水印信息。剪切攻击后计算PSNR和NC参数的值。MATLAB程序如下:WImage4=a1;WImage4(224:256,1:256)=256;WImage4cl=mat2gray(WImage4);subplot(2,3,4);imshow(WImage4cl);title('部分剪切后图像');figure(1);M1=WImage4cl;图5.9剪切攻击后的图像图5.10PSNR和NC参数的对比由MATLAB运行结果可知,PSNR和NC参数的值都下降,PSNR值下降的幅度比较大,说明含水印载体图像相对于载体图像来说失真相当大,提取出的水印图像和原水印图像的相似度降低,但是NC值下降的幅度都比较小,说明此算法抗剪切攻击能力比较强。5.2.5旋转攻击对已嵌入水印的图片进行旋转,进行旋转攻击后,再从中提取水印信息。在旋转攻击后计算PSNR和NC参数的值。MATLAB程序如下:WImage6=a1;WImage6=imrotate(WImage6,45,'bilinear','crop');WImage6cl=mat2gray(WImage6);subplot(2,3,4);imshow(WImage6cl);title('旋转45度后图像');figure(1);M1=WImage6cl;图5.11旋转攻击后的图像图5.12PSNR和NC参数的对比由MATLAB运行结果可知,PSNR和NC参数的值都下降的比较明显说明含水印载体图像相对于载体图像来说失真相当大,提取出的水印图像和原水印图像的相似度降低,说明此算法抗旋转攻击能力比较弱。6小结与体会数字水印技术是近几年在学术界兴起的一个前沿研究领域,目前还处于迅速的发展之中,它涉及了不同科学领域的思想和理论,近几年来在理论和应用中取得了很大的发展,但是到目前还没有形成一个完整的理论体系,仍有许多尚未解决的问题,可以说数字水印技术是一个充满活力而有待开拓的研究领域。通过该课程设计,我对数字水印从概念、原理、分类、经典的水印嵌入和提取方法等相关概念和原理有了比较清醒的认识,并围绕数字水印的嵌入和检测提取,对数字水印的嵌入和提取算法进行了分析,通过实验验证了离散余弦变换嵌入水印的方法,并在此基础上并在此基础上进一步加深了对其算法的理解。通过实验仿真结果显示,该算法具有理想的鲁棒性和透明性,是一种很有实用价值的水印算法,它对低通滤波攻击和剪切攻击来说,提取水印的效果还是比较好的,但对于旋转攻击和剪切攻击来说,效果却并不理想。当旋转和剪切攻击,水印就提不出来了。这证明离散余弦变换还是具有一定的局限性的。虽然到目前为止已经提出了很多个数字水印算法,但每种算法都有各自的优势和局限性.在用matlab进行编写程序时,思路还是不够清晰,编写的程序不够简练,执行效率不是很高,如果是对大量的数据进行处理,其运行速度就会大大降低,实用性就不高,这就要求我要加深对该软件的应用,多锻炼自己的思维,提高自己的综合能力。在今后的学习中要多多练习,多多思考,争取把自身技能提高到全新的境界!参考文献[1]刘泉.信号与系统[M].北京:高等教育出版社,2006年.[2]刘泉.数字信号处理[M].北京:电子工业出版社,2008年.[3]EdwardW.Kamen,BonnieS.Heck编.信号与系统基础——应用Web和MATLAB(第二版)[M].北京:科学出版社,2002年.[4]董绍峰.数字水印技术研究[M].陕西:西安电子科技大学,2006.[5]陈涛、杨峰.基于DCT域的数字图像水印算法研究及应用[M].山东:山东师范大学,2011.[6]王家文.MATLAB7.0编程基础[M].北京:机械出版社,2005.附录MATLAB完整源代码:clearall;clc;%读取水印图像I=imread('jiang_water.jpg');I=rgb2gray(I);I=double(I)/255;I=ceil(I);%将I取整(向大于等于I的方向取整)二值化%显示水印图像figure(1);subplot(2,3,1);imshow(I),title('水印图像')dimI=size(I);%图像的行列数rm=dimI(1);cm=dimI(2);%行数和列数%生成水印信息mark=I;chidu=10;%嵌入因子,控制水印嵌入强度k1=randn(1,8);%产生1×8的服从正太分布的伪随机数矩阵k2=randn(1,8);a0=imread('D:\课程设计\信息群\original.jpg');%读未加水印图像a0=rgb2gray(a0);psnr_cover=double(a0);%转换为double型subplot(2,3,2),imshow(a0,[]),title('未加水印图像');[r,c]=size(a0);%载体图像的行列数cda0=blkproc(a0,[8,8],'dct2');%对载体图像分成8×8块进行2维DCT处理%嵌入水印cda1=cda0;%cda1=512-512fori=1:rm%i=1:64水印图像行循环forj=1:cm%j=1:64水印图像列循环x=(i-1)*8;y=(j-1)*8;%选择加载位置ifmark(i,j)==1%据水印图像中的黑白点选择不同的K矩阵k=k1;elsek=k2;endcda1(x+1,y+8)=cda0(x+1,y+8)+chidu*k(1);cda1(x+2,y+7)=cda0(x+2,y+7)+chidu*k(2);cda1(x+3,y+6)=cda0(x+3,y+6)+chidu*k(3);cda1(x+4,y+5)=cda0(x+4,y+5)+chidu*k(4);cda1(x+5,y+4)=cda0(x+5,y+4)+chidu*k(5);cda1(x+6,y+3)=cda0(x+6,y+3)+chidu*k(6);cda1(x+7,y+2)=cda0(x+7,y+2)+chidu*k(7);cda1(x+8,y+1)=cda0(x+8,y+1)+chidu*k(8);endend%嵌入水印后图像a1=blkproc(cda1,[8,8],'idct2');a_1=uint8(a1);imwrite(a_1,'.\jiang\嵌入水印后图像.jpg','jpg');subplot(2,3,3),imshow(a1,[]),title('嵌入水印后的图像');%攻击实验鲁棒性测设disp('对嵌入水印的图像的攻击实验,请输入选择项:');disp('1-未受攻击,直接检测水印;2-添加白噪声;3-高斯低通滤波');disp('4-图像剪切;5-经JPEG压缩;6-旋转45度');disp('其他--不攻击');fori=1:100d=input('请输入选择(1-6):');figure(1);switchdcase1subplot(2,3,4);imshow(a1,[]);title('未受攻击的含水印图像');M1=a1;disp('未受到攻击:')case2WImage2=a1;noise0=20*randn(size(WImage2));WImage2=WImage2+noise0;subplot(2,3,4);imshow(WImage2,[]);title('加入白噪声后图像');M1=WImage2;M_1=uint8(M1);imwrite(M_1,'.\jiang\加白噪声后图像.jpg','jpg');disp('受到噪声攻击后:')case3WImage3=a1;H=fspecial('gaussian',[4,4],0.2);%创建一个二维滤波器WImage3=imfilter(WImage3,H);subplot(2,3,4);imshow(WImage3,[]);title('高斯低通滤波后图像');M1=WImage3;M_1=uint8(M1);imwrite(M_1,'高斯低通滤波后图像.jpg','jpg');disp('受到低通滤波攻击后:')case4WImage4=a1;WImage4(224:256,1:256)=256;WImage4cl=mat2gray(WImage4);subplot(2,3,4);imshow(WImage4cl);title('部分剪切后图像');figure(1);M1=WImage4cl;disp('受到图像剪切攻击后:')case5WImage5=a_1;imwrite(WImage5,'.\jiang\JPEG压缩.jpg','jpg');WImage5cl=imread('JPEG压缩.jpg');subplot(2,3,4);imshow(WImage5cl);title('经JPEG压缩后图像');M1=WImage5cl;disp('受到压缩攻击后:')case6WImage6=a1;WImage6=imrotate(WImage6,45,'bilinear','crop');WImage6cl=mat2gray(WImage6);subplot(2,3,4);imshow(WImage6cl);title('旋转45度后图像');figure(1);M1=WImage6cl;disp('受到旋转攻击后:')otherwisedisp('输入的数字无效,图像未受攻击,直接检测水印');subplot(2,3,4);imshow(a1,[]);title('未受攻击的含水印图像');M1=a1;end%提取水印psnr_watermarked=M1;dca1=blkproc(M1,[8,8],'dct2');p=zeros(1,8);fori=1:dimI(1)forj=1:dimI(2)%j=1:32x=(i-1)*8;y=(j-1)*8;p(1)=dca1(x+1,y+8);p(2)=dca1(x+2,y+7);p(3)=dca1(x+3,y+6);p(4)=dca1(x+4,y+5);p(5)=dca1(x+5,y+4);p(6)=dca1(x+6,y+3);p(7)=dca1(x+7,y+2);p(8)=dca1(x+8,y+1);ifcorr2(p,k1)>corr2(p,k2),warningoffMATLAB:divideByZero;mark1(i,j)=1;elsemark1(i,j)=0;endendendsubplot(2,3,5);imshow(mark1,[]),title('提取的水印图像');subplot(2,3,6);imwrite(mark1,'.\jiang\提取的水印.jpg','jpg');imshow(mark),title('原嵌入水印比较');%PSNR参数的计算disp('载体图像与含水印图像峰值信噪比')PSNR=psnr(psnr_cover,psnr_watermarked,c,r)%Oringinalmarkandmarktestdisp('原水印图像与提取水印图像互相关系数')NC=nc(mark1,mark)end%计算PSNR参数的函数源代码function[A]=psnr(image,image_prime,M,N)image_prime=double(image_prime);if((sum(sum(image-image_prime)))==0)error('Inputvectorsmustnotbeidentical')elseMSE=sum(sum((image-image_prime).^2))/(M*N);A=20*log10(255/sqrt(MSE));endreturn%计算NC参数的函数源代码functionN=nc(mark_get,mark_prime)mark_get=double(mark_get);mark_prime=double(mark_prime);[m,n]=size(mark_get);fenzi=0;fenmu=0;fori=1:mforj=1:nfenzi=fenzi+mark_get(i,j)*mark_prime(i,j);fenmu=fenmu+mark_prime(i,j)*mark_prime(i,j);endendN=min(fenzi/fenmu,fenmu/fenzi);end本科生课程设计成绩评定表姓名蒋立豪性别男专业、班级通信工程1303班课程设计题目:数字水印算法设计课程设计答辩或质疑记录:成绩评定依据:评分项目最高分限实际得分设计说明书(论文)文理通顺、书写工整、图纸整洁。10方案设计合理,有一定创新,计算正确,论证充分。20能够及时正确地回答教师所提出的问题。30仿真设计及其运行情况20设计报告规范性20最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:年月日基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究HYPERLINK"/detail

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论