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

📄 water_in.m

📁 一些程序
💻 M
字号:
% clear all
%水印嵌入程序
%通过奇偶嵌入水印
%读取掩护媒体
audio_name='D:\sound\钢琴曲 - 少女的祈祷.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=100000;%起始点
w=1;%w为水印标号
N=1;%N为每帧的嵌入水印个数
s=0.025;%s为嵌入强度系数
%h为汉明窗
i=1;
for i=0:1023
    h(i+1)=sqrt(8/3)*0.5*(1-cos(2*pi*i/1024));
end

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);
    %只在能量>0。02的帧中嵌入水印
    if power>0.02
    %对每帧进行分析,判断水印嵌入位数
    audio2=audio1.*h;
    f=abs(fft(audio2)).^2;
    t=10*log10(geomean(f(1:128))/mean(f(1:128)));
    if t>=-14.5
        N=4;
    else
        N=0;
        k=k-512;
    end
    if N>0
    for i=1:N
        if w<=water_mark_length
        water_mark1(i)=water_mark(w);
        w=w+1;
        end
    end
%     N=length(water_mark1);

%三级小波分解
    [C,L]=wavedec(audio1,3,'db1');
    a1=appcoef(C,L,'db1',3);%a1为小波三级分解的细节分量
 
    a2=qianru_3(a1,N,water_mark1,s);
    for i=1:L(1)
        C(i)=a2(i);
    end
    iaudio1=waverec(C,L,'db1');
    xx=1;

    for iii=k-sect:k-1
        audio_new(iii)=iaudio1(xx);
        xx=xx+1;
    end
    end
    end

    
    
end
%嵌入水印的音频文件名
audio_new_name='D:\sound\钢琴曲 - 少女的祈祷_new22.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 + -