資源簡介
在matlab環境中,基于小波域的音頻水印
代碼片段和文件信息
%加入白噪聲的音頻水印程序
clear;
kk.wave?=?wavread(‘E:\thrid1\back.wav‘);???%讀入原始音頻文件
y=kk.wave;
[cl]=wavedec(y3‘db4‘);???????????????%三級小波分解
ca3=appcoef(cl‘db4‘3);
cd3=detcoef(cl3);
cd2=detcoef(cl2);
cd1=detcoef(cl1);
x=ca3;??????????????????????????????%提取低頻系數
len=length(y);
x1=x;
s=max(abs(x))*0.2;
i=find(abs(x)>s);lx=length(x(i));?????????%找出大于最大值0.2倍的序列
figure;
subplot(221);
plot(ca3);????????????????????????????%畫出低頻系數圖
title(‘低頻系數圖形‘);
subplot(222);
plot(cd3);
title(‘cd3‘);
subplot(223);
plot(cd2);
axis([0?10e4?-0.5?0.5]);
title(‘cd2‘);
subplot(224);
plot(cd1);
title(‘cd1‘);
randn(‘seed‘10);??????????????????????%產生隨機高斯序列
mark=randn(1lx);
ss=mark;
rr=ss*0.1;???????????????????????????%設置水印嵌入強度
x(i)=x(i).*(1+2*rr‘);???????????????????%嵌入水印
c1=[x‘cd3‘cd2‘cd1‘];
s1=waverec(c1l‘db4‘);
file1=‘已加水印.wav‘;
dd=length(s1);
ee=reshape(s1dd/22);
wavwrite(eefile1);
figure;
subplot(311);plot(y);???????????????????%畫出原信號圖
axis([0?18e4?-2?2]);
title(‘原信號的圖‘);????????????????????
subplot(312);plot(ss);
title(‘水印圖‘);
subplot(
- 上一篇:生成寬帶信號的matlab函數.rar
- 下一篇:karmarkar內點法
評論
共有 條評論