基于MATLAB的数字音频水印技术程序

上传人:凯和****啦 文档编号:299211112 上传时间:2022-05-27 格式:DOCX 页数:6 大小:16.45KB
返回 下载 相关 举报
基于MATLAB的数字音频水印技术程序_第1页
第1页 / 共6页
基于MATLAB的数字音频水印技术程序_第2页
第2页 / 共6页
基于MATLAB的数字音频水印技术程序_第3页
第3页 / 共6页
基于MATLAB的数字音频水印技术程序_第4页
第4页 / 共6页
基于MATLAB的数字音频水印技术程序_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于MATLAB的数字音频水印技术程序》由会员分享,可在线阅读,更多相关《基于MATLAB的数字音频水印技术程序(6页珍藏版)》请在金锄头文库上搜索。

1、本文格式为Word版,下载可任意编辑基于MATLAB的数字音频水印技术程序 基于MATLAB的数字音频水印技术 *水印生成程序* %读取声音文件 FILE=D:audioin1.wav; y,Fs,bits=wavread(FILE); %绘制出原始声音信号图 figure(1); subplot(3,1,1);plot(y); %用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=

2、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).*

3、(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=wavrea

4、d(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=app

5、coef(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(

6、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);

7、 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=det

8、coef(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级小波分解的

9、低频系数和高频系数 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

10、 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小波对读入的含有

11、水印的声音文件举行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

12、.02; figure(4); subplot(2,1,1); plot(mark1); *产生随机信号作为噪声信号* noise0=randn(size(y); y3=y1; y3=y3+noise0*200; %用db4小波对读入的含有水印的声音文件举行3级小波分解 c3,l3=wavedec(y1,3,db4); %提取3级小波分解的低频系数和高频系数 ca32=appcoef(c3,l3,db4,3); cd32=detcoef(c3,l3,3); cd22=detcoef(c3,l3,2); cd12=detcoef(c3,l3,1); x=ca3;x1=ca32; 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); mark3=z(i)./x(i); mark3=mark3/0.02; figure(4); subplot(2,1,2); plot(mark3); nbsp; 6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号