?? water_in4.m
字號:
clear all
%水印嵌入程序
%讀取掩護媒體
% audio_name='D:\sound\鋼琴曲 - 少女的祈禱.wav';
% audio_name='D:\sound\大地.wav';
audio_name='D:\sound\001.wav';
[y,fs,br]=wavread(audio_name);
%若掩護媒體為雙聲道則取第一個聲道,在audio中嵌入水印
audio=y(:,1);
audio_length=size(audio,1);%掩護媒體長度
audio_new=audio;%audio_new為嵌入水印后的音頻媒體
image_read;%讀取水印圖象
sect=1024;%將掩護媒體分幀的每幀長度為1024
k=10000;%起始點
w=1;%w為水印標號
s=0.005;%嵌入強度
aa=[1 0 0 0 1 0 0 1 1 0 1 0 1 1 1];%擴頻偽隨機序列,長度15
aa=2*aa-1;%將aa取值變?yōu)?或-1
N=1;%N為嵌入位數(shù)
while k<=audio_length&w<=water_mark_length
for i=1:sect
audio1(i)=audio(k,1);
k=k+1;
end
power=sum(audio1.^2);
if power>0.02%只在能量大于0.02的幀嵌入水印
for i=1:N
water_mark1(i)=water_mark(w);
w=w+1;
end
a=dct(audio1);
%水印嵌入
if water_mark1==1
a(1:4:57)=a(1:4:57)+aa*s;
else
a(1:4:57)=a(1:4:57)-aa*s;
end
iaudio1=idct(a);
xx=1;
for iii=k-sect:k-1
audio_new(iii)=iaudio1(xx);
xx=xx+1;
end
end
end
%嵌入水印的音頻文件名
% audio_new_name='D:\sound\鋼琴曲 - 少女的祈禱_new.wav';
% audio_new_name='D:\sound\大地_new.wav';
audio_new_name='D:\sound\001_new555.wav';
wavwrite(audio_new(1:k+40000),fs,audio_new_name);
%畫時域圖
% figure(1)
% subplot(2,1,1)
% plot(audio(70000:k))
% title('原始信號')
% subplot(2,1,2)
% plot(audio_new(70000:k))
% title('嵌入水印信號')
% subplot(3,1,3)
% plot(audio(70000:k)-audio_new(70000:k))
% title('誤差')
%畫頻譜圖
% cc=1:k/2;
% fr=(0:k/2-1)*2/k*fs;
% f1=fft(audio(1:k));
% figure(1)
% subplot(2,1,1)
% plot(fr,abs(f1(cc)))
% title('原始信號頻譜')
% % figure(2)
% subplot(2,1,2)
% f2=fft(audio_new(1:k));
% plot(fr,abs(f2(cc)))
% title('嵌入水印信號的頻譜')
% figure(3)
% plot(fr,abs(f2(cc)-f1(cc)))
% ylabel('誤差');
% xlabel('頻率/HZ');
% title('頻譜誤差')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -