数字音频水印MATLAB程序
- 格式:doc
- 大小:49.00 KB
- 文档页数:6
基于Matlab的数字水印技术研究摘要:数字水印技术是一种在数字媒体中嵌入信息的技术,它能够为数字图像、视频和音频信息赋予拥有者的权利,这些信息可以在数字媒体上传播和传播时保护其准确性和完整性。
本文采用Matlab对数字水印技术的研究进行了研究,使用Matlab的权限和仿真技术,研究了数字水印技术在PC上的不同运行,研究了水印的安全型号,以及数字水印的位置信息的可靠性。
同时,本文的仿真实验结果表明,在不同的参数设置下,数字水印技术可以实现快速、高效地提取水印,从而实现某种形式的认证在实际应用中可能是有用的。
关键词:Matlab;数字水印技术;安全模型;位置信息1 引言近年来,随着多媒体技术的飞速发展,数字媒体作为新型的信息传输媒介迅速发展,成为更为重要的媒介。
数字媒体包括数字图像、视频和音频,此类数字信息可以在处理机、PDA及移动设备中得到高速传播。
但由于数字媒体的高度灵活性,使得数字媒体可能被伪造,被随意地篡改、移植和分发。
此时,数字水印技术应运而生,它为数字媒体中嵌入的有形信息提供了有效地准确性和完整性保护(比如嵌入者的所有权证明、鉴定、认证、定向信息传输等)。
基于 Matlab 的数字水印技术研究,目标是在 Matlab 环境中开发一种数字水印技术,同时讨论数字水印的性能指标以及应用的限制。
Matlab 是一款应用非常广泛的、易于使用的微计算机软件,它拥有完善的数学运算、仿真及可视化功能,在数字水印研究中占据十分重要的地位。
2 Matlab 在数字水印方面的应用2.1 数字水印算法的模拟数字水印技术可以赋予被嵌入数字媒体的信息,可以用于认证,标记,痕迹和防伪等目的。
有了 Matlab 的强大功能,一般数字水印方法都可以使用 Matlab 来进行模拟仿真,有了数字水印算法的仿真结果,可以用于进一步评估新的数字水印技术的质量和可行性和完整性。
2.2 数字水印算法的安全模型Matlab 也可以用来研究不同的安全模型,以保证数字水印技术是安全可靠的。
一、水印技术概述水印技术是指在数字媒体中嵌入一些特定信息,以保护数字内容的版权和完整性。
水印技术可以分为可见水印和不可见水印,其中不可见水印更适用于数字图像和音频等领域。
本文主要介绍基于Matlab的离散小波变换(DWT)方法在数字图像中的水印嵌入与提取。
二、离散小波变换(DWT)简介离散小波变换是一种多尺度分析的方法,它可以将信号分解成不同频率成分的低频部分和高频部分。
在数字图像处理中,DWT可以对图像进行多尺度分析,将图像分解为不同尺度的子图像,使得图像的局部特征得以突出。
三、水印嵌入的步骤在Matlab中使用DWT方法进行水印嵌入的具体步骤如下:1. 读取原始图像和水印图像。
2. 对原始图像进行DWT分解,得到低频部分LL和高频部分LH、HL、HH。
3. 对水印图像进行预处理,如调整大小和灰度处理。
4. 对水印图像进行DWT分解,得到低频部分LL_w和高频部分LH_w、HL_w、HH_w。
5. 将水印信息嵌入到原始图像的DWT高频部分,可以选择直接替换部分高频系数或加减小幅度的高频系数。
6. 对修改后的DWT系数进行逆变换,得到含有水印信息的新图像。
四、水印提取的步骤在Matlab中使用DWT方法进行水印提取的具体步骤如下:1. 读取含水印的图像。
2. 对含水印图像进行DWT分解,得到低频部分LL'和高频部分LH'、HL'、HH'。
3. 对提取水印的图像进行DWT分解,得到低频部分LL_w'和高频部分LH_w'、HL_w'、HH_w'。
4. 根据嵌入水印时的处理方式,从高频部分中提取含水印信息。
5. 对提取的水印信息进行后处理,如灰度处理和大小调整。
五、实验与结果分析本文以一张数字图像为例,使用Matlab中的DWT方法进行水印嵌入和提取实验。
实验结果显示,DWT方法在水印嵌入和提取方面具有较好的鲁棒性和隐蔽性,对一定程度的噪声和攻击具有一定的抵抗能力。
基于Matlab 的数字音频水印量化算法【Abstract】Digital watermarking technology is a hot topic in recent years, copyright protection in the field of audio, wood paper, based on wavelet transform and discrete cosine transform digital audio watermarking, the extraction algorithm Matlab7.0 implementation. Experiments show that the algorithm for resampling, quantization, and MP3 compression attacks have robust.Key words: wavelet transform: DCT: Digital watermarking: Matlab【摘要】:数字水印技术是近年来音频版权保护领域的一个热点,木文提出了一种基于小波变换和离散余弦变换的数字音频水印嵌入、提取算法的Matlab 实现。
实验表明,该算法对于重采样,重量化,及MP3压缩等攻击都具有较好的鲁棒性。
【关键词】:小波变换:离散余弦变换:数字水印:Matlab一、IntroductionAs an effective means of digital media works of intellectual property protection, digital watermarking has been widespread concern, and has become a hot international academic research. The digital watermarking technology related to the amount of people image, audio processing algorithms, mathematical tools, the amount of time people spend in programming and preparation of the algorithm If only using programming tools provided Hing functions to achieve. Therefore, a high-performance scientific and engineering calculation software is necessary. Matlab is currently very popular in domestic and foreign engineering design and system simulation software packages. It is The MathWorks introduced in 1982 a high-performance numerical computation and visualization software 'which provides image processing toolbox, wavelet analysis toolbox, digital signal processing toolbox write digital watermarking technology is a very good choice. Programs written using the above algorithm, only a few dozen statements can achieve a digital watermark. If these procedures written in C language or other high-level language program at least more than 100 lines. Muwen for digital audio watermarking itself.一、引言作为数字媒体作品知识产权保护的一种有效手段,数字水印得到了广泛关注,并己成为国际学术界研究的一个热点。
实现本文数字水印的MATLAB程序如下:%读入原始图像A=imread('D:/lena.jpg');subplot(2,2,1);imshow(A);title('源图像');%对原图像进行DCT变换I=rgb2gray(A);imshow(I);title('源图像灰度变换');B=dct2(A);subplot(2,2,2);imshow(log(abs(B)),[]);title('DCT变换');[m,n]=size(B);%产生水印序列并对其进行排序randn('state',10);LENGTH=2500;waterMark1=randn(LENGTH,1);subplot(2,2,3);plot(waterMark1);title('水印系序');[Y0,I0]=sort( waterMark1);%找出水印嵌入位置(幅值较大的n个频域成分)C=B(:);[Y1,I1]=sort(C);X=m*n;k=LENGTH;M=zeros(X,1);%修改幅值较大的n个频域成分的幅值,嵌入水印alfa=1;for i=1:xif k>=1M(X)=Y1(X)*(1+alfa*Y0(k));K=k-1;elseM(X)=Y1(X);endX=X-1;endN=zeros(X,1);X=m*n;for i=1:XN(I1(i))=M(i);enda=1;for j=1:n,for i=1:m,D(i,j)=N(a);a=a+1;endend%DCT反变换,得到嵌入水印的图像iB=idct2(D);subplot(2,2,4);imshow(iB,[]);title('水印图像');由原图像和水印图像可以看出,水印嵌入前后的图像在视觉上几乎没有差别,满足了数字水印的隐蔽性特征。
音频数字水印技术研究所示。
仿真工具为Matlab6,5。
硬件测试环境为奔腾4.2.OMHz256RAM。
取音频每帧的长度为512。
水印相似性判别阈值r=O.5。
3.4.1隐形性测试将原始信号嵌入不同强度的水印计算含水印信号的信噪比,如式(3-15)∑s2㈣册r21010函。
豇南i研(3-15)s倒为原始音频信号,,为含水印信号,聆为样点数。
实验结果如表3.1,嵌入水印后音频信号(嵌入强度为5dB)如图3.6。
表3.1不同强度水印对信号的影响图3.4原始的音频信号(采样点数x105)图3.5原始水印图象1It3.6嵌入强度5dB水印后的音频号(采样点数x105)工程硕士学位论文通过表3.1可知当嵌入强度小于2dB时水印的隐蔽性很好,对音质基本没有影响。
图3.4、图3.6可以看出当嵌入强度为5dB时,原信号与含水印信号有细微差别,经过主观的听觉测试也可发现微弱的杂音,说明随着嵌入的强度的增强水印的隐蔽性逐渐降低。
3.4.2鲁棒性测试实验方法为对含水印的信号(水印嵌入强度为2dB)进行各种攻击,然后提取水印,检查提取水印的正确率F,正确率的计算方法为式(15)。
F=∑g弼何,唰x100%肿删=世非?;Dg<上(3-16)口=Ow为嵌入的原始一维二进制序列,耽为提取的一维二进制序列,它们的长度为三。
进行的鲁棒性实验如下,各种攻击后提取水印的正确率和主观感受如表3.2。
1.无攻击。
在无任何攻击的情况下提取水印如图3.7(a)。
2.加入高斯白噪声。
在信噪比为40dB的白噪声攻击后提取的水印如图3.7(b)。
在信噪比26dB的白噪声攻击后提取的水印如图3.7(c)。
3.加入有色噪声。
有色噪声又叫带通噪声,既在某个频带上信号的能量突然变大。
在加入信噪比为40dB的有色噪声攻击后提取的水印如图3.7(d)。
4.低通滤波。
将不同嵌入强度含水印信号分别通过截止频率为3kHz和4kHz的低通滤波器(采用的工具是CoolEdit),检测出的水印如图3.7(e)和图3.7(f)5.重新量化。
要摘数字水印(Digital Watermark)技术是指用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.随着数字水印技术地发展,数字水印地应用领域也得到了扩展,数字. 水印地基本应用领域是版权保护、隐藏标识、认证和安全不可见通信当数字水印应用于版权保护时,潜在地应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模地广播服务.数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容地检索等领域得到应用.数字水印地认证方面主要ID卡、信用卡、ATM卡等上面数字水印地安全不可见通信将在国防和情报部门得到广泛地应用.本文主要是根据所学地数字图象处理知识,在MATLAB环境下,通过系统编程地方式,建立并实现基于DCT域地数字水印加密系统.该系统主要包含数字水印地嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效地技术保障.DCTTLAB;关键词:数字水印;MA录目1 课程设计目地 (1)2 课程设计要求 (2)3 数字水印技术基本原理 (3).......................................................................................................... 33.1 数字水印基本框架.......................................................................................................................... 3算法分类 3.2 ................................................................................................................. 43.2.1 DCT 法.............................................................................................................. 4其他方法 3.2.2 ...................................................................................................... 43.3 实际需要考虑地问题.............................................................................................................. 4不可见性 3.3.1 .................................................................................................................. 5 3.3.2 鲁棒性.............................................................................................................. 5 3.3.3 水印容量3.3.4 安全性 (5)4 基于DCT变换仿真............................................................................................................................................................................................................................ 6 4.1 算法原理.............................................................................................................. 6 4.1.1 准备工作.................................................................................................. 78*8变换块4.1.2 选取.......................................................................................................... 7边界自适应 4.1.3 ................................................................................................. 74.1.4 DCT变换与嵌入.............................................................................................................. 8 4.1.5 恢复空域.................................................................................................................. 8嵌入算法扩展4.2 ......................................................................... 8彩色图像三个矩阵地划分4.2.1 RGB...................................................................................................... 8 4.2.2 八色彩色水印...................................................................................................................... 9水印地提取 4.3 .......................................................................................................................... 9 仿真程序4.45 结果分析..................................................................................................................14结束语..........................................................................................................................16参考文献......................................................................................................................17课程设计目地1数字水印技术是用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.在数字水印技术中,水印地数据量和鲁棒性构成了一对基本矛盾.从主观上讲,理想地水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形.然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术地应用,因为实际应用一般只偏重其中地一个方面.如果是为了隐蔽通信,数据量显然是最重要地,由于通信方式极为隐蔽,遭遇敌方篡改攻击地可能性很小,因而对鲁棒性要求不高.但对保证数据安全来说,情况恰恰相反,各种保密地数据随时面临着被盗取和篡改地危险,所以鲁棒性是十分重要地,此时,隐藏数据量地要求居于次要地位.数字水印技术是通过一定地算法将一些标志性信息直接嵌到多媒体内容当中,但不影响原内容地价值和使用,并且不能被人地知觉系统觉察或注意到.水印信息可以是作者地序列号、公司标志、有特殊意义地文本等,可用来识别文件、图像或音乐制品地来源、版本、原作者、拥有者、发行人、合法使用人对数字产品地拥有权.与加密技术不同,数字水印技术并不能阻止盗版活动地发生,但它可以判别对象是否受到保护,监视被保护数据地传播、真伪鉴别和非法拷贝、解决版权纠纷并为法庭提供证据.总地来说,数字水印可以携带有版权保护信息和认证信息,保护数字产品地合法拷贝和传播.课程设计要求2利用所学地数字图像处理技术,建立并实现基于DCT地数字水印加密系统,利用MATLAB软件系统来实现水印地嵌入和提取,并对算法地不可见性、鲁棒性进行测试.具体要求:TLAB程序设计方法;(1)熟悉和掌握MA TLAB图像处理工具箱;2)学习和熟悉MA (工具箱对图像进行处理和分析;)学会运用MA TLAB(3格式进行打开、保存、另存、退出等功能操作;)能对图像jpg(4软件对图像进行水印地嵌入和提取;)利用所学数字图像处理技术知识、MATLAB(5(6)在程序开发时,清楚主要实现函数目地和作用,需要在程序书写时做适当注释说明,理解每一句函数地具体意义和使用范围;.)每个程序都必须做到功能仿真成功,运行结果以图片地形式粘贴到报告中(7数字水印技术基本原理3数字水印基本框架3.1一个数字水印系统一般包括三个基本方面:水印地生成、水印地嵌入和水印地提取或检测.数字水印地嵌入和提取地一般过程基本框架如图3.1,图3.2所示.水印生成算法(G)数字水原始载体数(J)水印嵌入算私公(K)图3.1 水印嵌入地一般过程基本框架数字水(W)原始数据水印检测算法估计水印(W)/相似度检测) (I待检测数据W私钥/公钥(K)图3.2 水印检测地一般过程基本框架算法分类3.2.根据水印实现方法不同,数字水印可分为空(时)域数字水印和频域数字水印空域数字水印是直接在信号空间上叠加水印信号,而频域法加入数字水印地原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域,常用地变换一般有DWT、DCT、DFT、WP和分形.然后,对加入了水印信息地信号进行频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息地信号.频域法检测水印地原理是将原始信号与待检测信号同时进行变换域变换,比较两者地区别,进行嵌入水印地逆运算,得出水印信息.如果是可读地水印,那么就此结束,如果是不可读水印,如高斯噪声,就将得出地水印与已知水印作比较,由相关性判断,待检测信号含不含水印,故水印地检测有两个结束点.频域法有以下优点:嵌入地水印信号能量可以分布到空域地所有像素上,有利于保证水印地不可见性;视觉系统(HVS)地某些特性(如频率地掩蔽特性)可以更方便地结合到水印编码过程中;频域法可与国际数据压缩标准兼容,从而实现在压缩域(compressed domain)内地水印编码.法3.2.1 DCT.对原始信号做DCT地算法:Cox和Piva等人提出地DCT技术地经典之作.Cox利用随机数发生器产生标准正态序列作为水印信息对图像进行整体DCT变换后,选取除去DC系数之外部分较低频率系数叠加水印信息。
摘要数字水印(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。
它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。
空间数字水印是信息隐藏技术的一个重要研究方向,另一类是频率数字水印。
空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
本实验是基于matlab的数字水印设计——基于空域的水印实现。
关键词:信息隐藏技术;空间数字水印; LSB算法;matlab目录1 设计任务与目的 (1)2 MATLAB的简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)3 数字水印技术 (2)3.1 数字水印技术的发展 (2)3.2 水印分类 (2)3.3 数字水印的特点 (3)3.4 数字水印技术的基本原理 (4)4 基于LSB的数字水印算法 (5)4.1 LSB算法原理 (5)4.2 LSB算法的实现 (6)4.2.1 水印嵌入算法 (7)4.2.2 水印提取算法 (9)5 MATLAB软件仿真 (11)5.1 仿真结果 (11)5.1.1 水印嵌入仿真 (11)5.1.2 水印提取仿真 (12)5.2 仿真分析 (13)结论 (14)参考文献 (15)基于Matlab的数字水印设计——基于空域的水印实现1 设计任务与目的(1)通过课程设计把自己在大学中所学的知识应用到实践当中。
(2)在课程设计的过程中掌握程序编译及软件设计的基本方法。
(3)深入了解利用Matlab设计基于Matlab的数字水印设计——基于空域的水印实现。
(4)提高自己对于新知识的学习能力及进行实际操作的能力。
(5)锻炼自己通过网络及各种资料解决实际问题的能力。
2 MATLAB的简介及应用2.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
数字⽔印常见攻击类型汇总,噪声,缩放,旋转,剪切(附matlab代码)数字⽔印技术作为信息隐藏技术的⼀种,不可见性和鲁棒性是它的两个主要特点,通常在⽔印嵌⼊时需要确定⽔印的嵌⼊量,来平衡不可见性和鲁棒性之间的关系,若嵌⼊量过⼩,不可见性好⽽鲁棒性差,若嵌⼊量过⼤,则不可见性差⽽鲁棒性强,嵌⼊量最佳的取值可以通过遗传算法来确定,现在常⽤的有蚁群算法,果蝇算法,粒⼦群算法等等。
对于不可见性,我们可以直观地⽤视觉来判断,⽽对于鲁棒性,我们⽆法直接的判断⼀个⽔印算法的鲁棒性强弱,需要进⾏⼀系列的攻击测试,来判断其鲁棒性。
下⾯,我将介绍数字⽔印常见的⼏种攻击类型,分别从理论,代码和实例来展开。
1. 常见的攻击类型按照攻击原理可以将攻击类型分为四⼤类:简单攻击,同步攻击,削去攻击,混淆攻击。
(1) 简单攻击简单攻击是试图对整个⽔印化数据(嵌⼊⽔印后的载体数据)进⾏操作来削弱嵌⼊的⽔印的幅度(⽽不是试图识别⽔印或分离⽔印),导致数字⽔印提取发⽣错误,甚⾄根本提不出⽔印信号。
常见的有:压缩(JPEG,MPEG)、噪声(2)同步攻击同步攻击是试图破坏载体数据和⽔印的同步性,被攻击的数字作品中⽔印仍然存在,⽽且幅度没有变化,但是⽔印信号已经错位,不能维持正常⽔印提取过程所需要的同步性。
同步攻击通常采⽤⼏何变换⽅法。
同步攻击⽐简单攻击更加难以防御。
因为同步攻击破坏⽔印化数据中的同步性,使得⽔印嵌⼊和⽔印提取这两个过程不对称。
常见的有:缩放,剪切,旋转(3)削去攻击削去攻击试图通过分析⽔印化数据,估计图像中的⽔印,将⽔印化数据分离成为载体数据和⽔印信号,然后抛弃⽔印,得到没有⽔印的载体数据,达到⾮法盗⽤的⽬的。
常见的有:合谋攻击(4)混淆攻击混淆攻击是试图⽣成⼀个伪源数据、伪⽔印化数据来混淆含有真正⽔印的数字作品的版权常见的有:IBM攻击(这⾥主要介绍前两种,简单攻击和同步攻击。
)2. 理论知识及代码2.1 压缩图像的JPEG压缩内容⽐较多,后⾯有机会了单独开⼀个帖⼦写吧。
利用logistic映射产生混沌序列x(n) a=3.571 x{1}=0.2 while 0x{n+1}=a.*x{n}.*(1-x{n}) n=n+1 end disp(x) 结果n=102 再对x(n)进行量化得0-1序列 于明文序列y(n)进行模2加,得到密文序列。 采样函数:linspace(0,0.8906,50) 先将47168bit的宿主音频等步长分段,分为1000段,然后混沌序列选择其中的102段,对每段进行3及小波分解,挑选出绝对值最大的系数,运用嵌入公式。 进行3及小波分解及重构图象的程序 问题:如何量化,进行模2加。 二进制如何按位进行加法。 %%%%%%%%%%%%%%%%%%%%生成水印程序 %读取声音文件 FILE='D:\audio\in\1.wav'; [y,Fs,bits]=wavread(FILE); %绘制出原始声音信号图 figure(1); subplot(3,1,1);plot(y); title( %用db4小波对读入的声音文件进行3级小波分解 [c,l]=wavedec(y,3,'db4'); %提取3级小波分解的低频系数和高频系数 ca3=appcoef(c,l,'db4',3); cd3=detcoef(c,l,3); cd2=detcoef(c,l,2); cd1=detcoef(c,l,1); x=ca3; lx=length(x); subplot(3,1,2);plot(x); s=max(abs(x))*0.2; i=find(abs(x)>s);%插入位置 lx=length(x(i)); %产生水印信号,sin mark=[0.001:0.001:7.901]; mm=[0.01:0.01:79.01]; mark=sin(mm); randn('seed',10); mark=randn(1,lx); figure(2); subplot(3,1,1);plot(mark); ss=mark; rr=ss*0.02; %水印信号嵌入 x(i)=x(i).*(1+rr'); %小波重构,生成加入了水印信号的声音信号 c1=[x',cd3',cd2',cd1']; s1=waverec(c1,l,'db4'); figure(1); subplot(3,1,2); plot(s1); whos('s1'); disp(''); %把加入了水印信号的声音作为sample2.wav保存 file1='sample2.wav'; wavwrite(s1,Fs,bits,file1); figure(1); subplot(3,1,3); diff1=s1-y'; plot(diff1); %%%%%%%%%%%%%%%%%%%%%水印恢复程序 %读取原始声音信号 FILE='s00.wav'; [y,Fs,bits]=wavread(FILE); %用db4小波对读入的声音文件进行3级小波分解 [c,l]=wavedec(y,3,'db4'); %提取3级小波分解的低频系数和高频系数 ca3=appcoef(c,l,'db4',3); cd3=detcoef(c,l,3); cd2=detcoef(c,l,2); cd1=detcoef(c,l,1); %读取含有水印的信号 FILE1='sample2.wav'; [y1,Fs1,bits1]=wavread(FILE1); %用db4小波对读入的含有水印的声音文件进行3级小波分解 [c1,l1]=wavedec(y1,3,'db4'); %提取3级小波分解的低频系数和高频系数 ca31=appcoef(c1,l1,'db4',3); cd31=detcoef(c1,l1,3); cd21=detcoef(c1,l1,2); cd11=detcoef(c1,l1,1); x=ca3;x1=ca31; lx=length(x);lx1=length(x1); s=max(abs(x))*0.2; i=find(abs(x)>s); lx=length(x(i)); z(i)=x1(i)-x(i); mark1=z(i)./x(i)'; mark1=mark1/0.02; figure(2); subplot(3,1,2); plot(mark1); diff=mark1-mark; figure(2); subplot(3,1,3); plot(diff); %%%%%%%%%%%%%%%%%%%压缩攻击 FILE='sam96.wav'; [y7,Fs,bits]=wavread(FILE); [c1,l1]=wavedec(y7,3,'db4'); %提取3级小波分解的低频系数和高频系数 ca31=appcoef(c1,l1,'db4',3); cd31=detcoef(c1,l1,3); cd21=detcoef(c1,l1,2); cd11=detcoef(c1,l1,1); x=ca3;x1=ca31; lx=length(x);lx1=length(x1); s=max(abs(x))*0.2; i=find(abs(x)>s); lx=length(x(i)); z(i)=x1(i)-x(i); mark1=z(i)./x(i)'; mark1=mark1/0.02; figure(3); subplot(3,1,1); plot(mark1); %axis([0 8000 -1 1]); FILE='sam128.wav'; [y7,Fs,bits]=wavread(FILE); [c1,l1]=wavedec(y7,3,'db4'); %提取3级小波分解的低频系数和高频系数 ca31=appcoef(c1,l1,'db4',3); cd31=detcoef(c1,l1,3); cd21=detcoef(c1,l1,2); cd11=detcoef(c1,l1,1); x=ca3;x1=ca31; lx=length(x);lx1=length(x1); s=max(abs(x))*0.2; i=find(abs(x)>s); lx=length(x(i)); z(i)=x1(i)-x(i); mark1=z(i)./x(i)'; mark1=mark1/0.02; figure(3); subplot(3,1,2); plot(mark1); axis([0 8000 -1 1]); FILE='sam160.wav'; [y7,Fs,bits]=wavread(FILE); [c1,l1]=wavedec(y7,3,'db4'); %提取3级小波分解的低频系数和高频系数 ca31=appcoef(c1,l1,'db4',3); cd31=detcoef(c1,l1,3); cd21=detcoef(c1,l1,2); cd11=detcoef(c1,l1,1); x=ca3;x1=ca31; lx=length(x);lx1=length(x1); s=max(abs(x))*0.2; i=find(abs(x)>s); lx=length(x(i)); z(i)=x1(i)-x(i); mark1=z(i)./x(i)'; mark1=mark1/0.02; figure(3); subplot(3,1,3); plot(mark1); axis([0 8000 -1 1]); %%%%%%%%%%%%%%%%%%%%%%%%%%%低通滤波 [b,a]=butter(10,10000/Fs); y2=y1; y5=filtfilt(b,a,y2); figure(4); freqz(b,a,128,10000) figure(5); subplot(3,1,1) plot(y5); subplot(3,1,2) plot(y); subplot(3,1,3) plot(y-y5); file1='sample3.wav'; wavwrite(y5,Fs,bits,file1); FILE1='sample3.wav'; [y5,Fs1,bits1]=wavread(FILE1); %用db4小波对读入的含有水印的声音文件进行3级小波分解 [c1,l1]=wavedec(y5,3,'db4'); %提取3级小波分解的低频系数和高频系数 ca31=appcoef(c1,l1,'db4',3); cd31=detcoef(c1,l1,3); cd21=detcoef(c1,l1,2); cd11=detcoef(c1,l1,1); x=ca3;x1=ca31; lx=length(x);lx1=length(x1); s=max(abs(x))*0.2; i=find(abs(x)>s); lx=length(x(i)); z(i)=x1(i)-x(i); mark1=z(i)./x(i)'; mark1=mark1/0.02; figure(4); subplot(2,1,1); plot(mark1); %%%%%%%%%%%%%%%%%%%%%产生随机信号作为噪声信号 noise0=randn(size(y));