基本信息
源码名称:数字音频水印_源代码
源码大小:0.18M
文件格式:.rar
开发语言:MATLAB
更新时间:2019-05-07
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
数字音频水印_源代码。希望对大家能有所帮助。

%贡献今天做的一个基于均值量化音频水印嵌入和提取的matlab程序

用的音频是svega.wav,水印是32*32二值图像,量化步长那q=absmin(ca3),的absmin是一个小函数:对ca3取绝对值后取非0的最小值。
嵌入:
clear all
clc
[a,fs,bits]=wavread('D:\procedure\matlab code\my\简单量化水印\s.wav');
subplot(3,1,1);plot(a);
title('原始音频波形图')
w=imread('D:\procedure\matlab code\my\简单量化水印\32.bmp');
subplot(3,1,2);imshow(w)
title('原始水印')
w1=w();
[c,l]=wavedec(a,3,'haar');
ca3=appcoef(c,l,3,'haar');
cd3=detcoef(c,l,3);
cd2=detcoef(c,l,2);
cd1=detcoef(c,l,1);
q=absmin(ca3) 
for i=1:1024
    ave(i)=sum(ca3(i*20(i 1)*20))/20
    z(i)=fix(ave(i)/q 1/2)
end
for i=1:1024
        if mod(z(i),2)==w1(i)
            cxzc=0;
    else
        if mod(z(i),2)~=w1(i)&&z(i)==fix(ave(i)/q)&&z(i)>=0||mod(z(i),2)~=w1(i)&&z(i)~=fix(ave(i)/q)&&z(i)<0
          ca3(i*20(i 1)*20)=ca3(i*20(i 1)*20) q;
        else 
        ca3(i*20(i 1)*20)=ca3(i*20(i 1)*20)-q;
        end
     end
end
c1=[ca3',cd3',cd2',cd1'];
b=waverec(c1,l,'haar');
subplot(3,1,3);
plot(b);
title('嵌入水印后的音频');
wavwrite(b,fs,bits,'D:\procedure\matlab code\my\简单量化水印\S32marked.wav');

 

 

提取:
clear all
clc
a=wavread('D:\procedure\matlab code\my\简单量化水印\S32marked.wav');
subplot(3,1,1);plot(a);
title('嵌入水印的音频波形图')
w_source=imread('D:\procedure\matlab code\my\简单量化水印\32.bmp');
subplot(3,1,2);imshow(w_source)
title('原始水印')
[c,l]=wavedec(a,3,'haar');
ca3=appcoef(c,l,3,'haar');
q=1.7263e-004;  %q应该是作为密钥在嵌入时就保存下来,这里直接用的嵌入时的值
for i=1:1024
    ave(i)=sum(ca3(i*20(i 1)*20))/20;
    w1(i)=(mod(fix(ave(i)/q 1/2),2));
end
w=reshape(w1,32,32);
subplot(3,1,3);imshow(w)
title('提取出的水印')
imwrite(w,'D:\procedure\matlab code\my\简单量化水印\tiqu32.bmp','bmp');