⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 water_in4.m

📁 一些程序
💻 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取值变为1或-1


N=1;%N为嵌入位数
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 + -