数字音频水印。三级小波调试
源程序如下:
- clear all
- clc
- len=32;ls=60; q=0.00025; N=10;c=[1 1 1 -1 -1 1 -1]; sq=0.05;
- thr=6*sq; %判决门限,这个数值可在实际系统中进行调整%巴克码
- a1=wavread('dsjjj.wav');
- figure;
- subplot(3,1,1);plot(a1); title('嵌入水印的音频波形图');axis([0,1141504,-0.2,0.2]);
- lz= length(a1);
- lam1=floor((1/N)*lz);
- lam=zeros(N-1,1);aa=a1';
- out=zeros(1,length(aa));
- num=[]; %储存可能的帧头
- for i=7:N*lam1
- out(i)=sum(aa(i-6:i).*c); %每7个数据进行一次相关求和
- if(out(i)>thr) %判断相关求和值是否大于门限
- num=[num i-7];
- % a=a1(num(1):1:1024*N*C);
- %将大于门限的位置进行储存
- end
- end
- a=a1;
- lz= length(a);
- lam1=floor((1/N)*lz);
- lam=zeros(N-1,1);
- lam(1)=lam1;
- for i=2:N-1;
- lam(i)=i.*lam1;
- end
- am{1,1}=[a(1:1:lam1)];
- for i=2:N-1;
- am{i,1}=[a((lam(i-1)+1):1:lam(i))];
- end
- am{N,1}=[a((lam(N-1)+1):1:lz)];
- for j=1:N
- an=am{j,1};an=an';
- [c,l]=wavedec(an,3,'haar');%3级小波分解
- ca3=appcoef(c,l,3,'haar');%提取3级小波分解的最低频部分
- for i=1:len
- ave(i)=sum(ca3(i*ls:(i+1)*ls))/ls;
- wm1(i)=(mod(fix(ave(i)/q+1/2),2));
- wm{j,1}=wm1;
- end
- end
- wm1=wm{1,1};
- wm2=wm{2,1};
- wm3=wm{3,1};
- wm4=wm{4,1};
- wm5=wm{5,1};
- wm6=wm{6,1};
- subplot(3,1,2);plot(wm1);
- frr = fopen( 'tiquwave1.txt', 'wb') ;
- fwrite( frr, wm1, 'ubit1') ;
- fclose( frr);
- frr = fopen( 'tiquwave2.txt', 'wb') ;
- fwrite( frr, wm2, 'ubit1') ;
- fclose( frr);
- frr = fopen( 'tiquwave3.txt', 'wb') ;
- fwrite( frr, wm3, 'ubit1') ;
- fclose( frr);
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
三级小波算法及相关函数代码.rar
(32.7 KB, 下载次数: 11)
|