资源简介

各种音频数字水印源代码,有详细的代码解释说明。dct,dwt等

资源截图

代码片段和文件信息

clc;clear;close all;
% 水印嵌入程序

% 读取音频信号audio.wav存到变量A中
[Afsnbits] = wavread(‘login.wav‘);
%绘制原始声音图像 
subplot(211); plot(A); 
axis([0 350000 -2 2]);
title(‘原始声音信号波形图‘);
% 用变量L存储音频A的长度
L = size(A);
% 读取图像Lena.bmp存入变量M做水印信号
M = imread(‘mark.bmp‘);
% 将图像Lena.bmp转化为二值图并存入变量BW
BW = im2bw(M);

% 计算水印矩阵大小
[M1M2] = size(BW);
% M12为中间变量,避免每次都计算M1*M2
M12 = M1*M2; 
% 降维,将水印信息得到的一维序列存入序列C中
C = reshape(BW1M12);
n = M12;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 对水印信号进行扩频处理效果不是很好
% 扩频系数为2
n = M12*2;
M = zeros(n1);
% 产生密钥序列M
for k = 1 : n
    if mod(k4) == 0
        M(k) = 1;
    else 
        M(k) = 0;
    end
    % 水印信号序列分别按位与密钥异或
    l = ceil(k/2);
    S(k) = bitxor(C(l)M(k));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 嵌入一个水印信息需要的音频数据为N
N = 10; 
length = n*10;
% 将原始音频信号分解为Ae和Ar两部分
i = 1 : length; 
j = [1];
% 取矩阵A的l到length行构建矩阵Ae
Ae = A(ij);
% Ae(ij)
i = length+1 : L;
% 取矩阵A的length到L行第一列构建矩阵Ar
Ar = A(ij);


% 建立元胞B,每个音频数据段Ae(m)是B的一个元素
k = 1;
% 建立M1 x M2行l列的元胞
B = cell(n1);
th = n*N;
% 当k小于Ae的长度时,矩阵Ae每10行作为一个音频数据段存入元胞B中
while ( k < th )
    i = k : k+9;
    m = (k+9)/10;
    B{m1} = Ae(ij);
    k = k+10;
end


% 建立元胞D,并将元胞B中离散余弦变换了的元素存入元胞D中
D = cell(n1);
for i = 1 : n
    D{i1} = dct(B{i1});
end

% 建立元胞E,储存嵌有水印信号的中频系数
E = cell(n1);
E = D;
for i = 1 : n
%     % 将水印信息C嵌入音频中
%     E{i1}(3) = (D{i1}(3))*(1+2*C(i));
    % 将扩频了的水印信息S嵌入音频中
    E{i1}(3) = (D{i1}(3))*(1+2*S(i));
end

% 建立元胞F
F = cell(n1);
% 将元胞E中离散余弦反变换了的元素存入元胞F中
for i = 1 : n
    F{i1} = idct(E{i1});
end

% 将所有分离的段合并创建到一维矩阵G中
G = F{11};
% i从3到M1*M2依次取值
for i = 2 : n
    % 将元胞G和元胞F第i组元素合并创建到一维矩阵G
    G=[G; F{i1}];
end
% 将元胞G和矩阵Ar合并创建一维矩阵G
G =[G; Ar];
wavwrite(Gfsnbits‘mark_audio.wav‘);
subplot(212); plot(G); 
title(‘含水印的声音信号波形图‘);
axis([0 350000 -2 2]);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-09-09 08:05  audio watermark\
     文件        2275  2010-05-09 14:36  audio watermark\1embed.m
     文件        2056  2010-05-09 14:36  audio watermark\1extract.m
     文件        2965  2010-05-09 14:56  audio watermark\2dwt audio.m
     文件        1284  2010-05-09 14:58  audio watermark\3DCT_Audio.M
     文件        1187  2010-05-09 16:13  audio watermark\4dct+SS_audio.m
     文件        2365  2010-05-09 16:15  audio watermark\6audio_watermark1.m
     目录           0  2012-09-09 08:05  audio watermark\7音频水印嵌入与提取\
     文件       17838  2008-12-19 22:09  audio watermark\7音频水印嵌入与提取\Lena.bmp
     文件        2265  2010-05-09 16:16  audio watermark\7音频水印嵌入与提取\embed.m
     文件        2114  2012-05-01 16:28  audio watermark\7音频水印嵌入与提取\extract.m
     文件       88266  2010-04-16 11:19  audio watermark\7音频水印嵌入与提取\login.wav
     文件        5174  2010-05-08 19:12  audio watermark\7音频水印嵌入与提取\mark.bmp
     文件          44  2010-05-09 16:17  audio watermark\7音频水印嵌入与提取\test.wav
     文件        3793  2010-05-09 16:18  audio watermark\7音频水印嵌入与提取\watermark.m
     文件        2361  2009-01-09 11:25  audio watermark\7音频水印嵌入与提取\watermark1.m
     文件       88266  2010-04-16 11:19  audio watermark\login.wav
     文件        5174  2010-05-08 19:12  audio watermark\mark.bmp
     文件       88252  2010-05-09 14:55  audio watermark\modified login.wav
     文件        1844  2012-05-01 23:45  audio watermark\一个基于均值量化音频水印嵌入和提取的matlab程序.m
     文件        5005  2012-05-01 23:42  audio watermark\基于小波变换的数字音频水印算法嵌入提取源程序.m
     文件        2848  2010-05-09 16:41  audio watermark\复件 embed.m
     文件        2056  2010-05-09 16:50  audio watermark\复件 extract.m

评论

共有 条评论