📄 water_out4.m
字号:
%读取原始宿主音频
% audio_name='D:\sound\钢琴曲 - 少女的祈祷.wav';%
% audio_name='D:\sound\大地.wav';
audio_name='D:\sound\001.wav';
[y,fs,br]=wavread(audio_name);
audio=y(:,1);
%读取嵌入水印后的音频
audio_name_new='D:\sound\001_new555.wav';
% audio_name='D:\sound\重采样\大地_new.wav';
% audio_name_new='D:\sound\001_new.wav';
[audio_1,fs]=wavread(audio_name_new);
audio_h_length=size(audio_1,1);
audio_h=audio_1;
water_length=4096;
watermark=ones(1,water_length);
audio_h=audio_1;
%白噪声攻击
audio_h=audio_1+randn(1,audio_h_length)'/100;%加入高斯白噪声
%低通滤波攻击,截止频率4khz,滤波后采样点平移279位
% load('C:\MATLAB7\work\filter_44100_6k.mat')%截止频率4khz
% L1=length(filter_44100_6k);
% audio_h=conv(filter_44100_6k,audio_1);
sect=1024;
k1=10000;
% k1=10000+279;%低通滤波
k=10000;
aa=[1 0 0 0 1 0 0 1 1 0 1 0 1 1 1];
aa=2*aa-1;
w=1;%w为水印标号
% s=0.01;%s为量化系数
N=1;%N为每帧嵌入位数
while k<=(audio_h_length)&w<=water_length
for i=1:sect
audio1(i)=audio(k,1);
audio2(i)=audio_h(k1,1);
k=k+1;
k1=k1+1;
end
power=sum(audio1.^2);
if power>0.02
a=dct(audio1);
b=dct(audio2);
a2=a(1:4:57)-b(1:4:57);
an=a2*aa';
watermark1=(an<0);
watermark(w:w+N-1)=watermark1;
w=w+N;
end
end
miyao=ones(1,12);
watermark=huifu(watermark,miyao);
k=1;
for i=1:64
for j=1:64
image(i,j)=watermark(k);
k=k+1;
end
end
imwrite(image,'D:\wav\水印_new.bmp','bmp');
image=imread('D:\wav\水印_new.bmp');
figure(1)
imshow(image,[])
image_name='D:\wav\水印.bmp';
watermark_image=imread(image_name);
ww=1;
for i=1:64
for j=1:64
watermark0(ww)=watermark_image(i,j);
ww=ww+1;
end
end
err=sum(xor(watermark,watermark0))/4096
% figure(3)
% subplot(2,1,1)
% plot(audio_1)
% subplot(2,1,2)
% plot(audio_h)
% wavwrite(audio_h,fs,'D:\wav\钢琴曲 - 少女的祈祷_new4.wav')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -