通过扩频和DCT变换算法将图像水印嵌入到音频信号中并提取水印matlab仿真

简介: 通过扩频和DCT变换算法将图像水印嵌入到音频信号中并提取水印matlab仿真

1.算法仿真效果
matlab2022a仿真结果如下:

8207402338136a87fd71652d0136bef7_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
8f5712e9fa3e0924340d95fc5227f230_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要

   数字多媒体技术及互联网技术的迅猛发展,使得图像、视频和音频等多种形式的多媒体数字作品的创作、存储和传输变得极其便利。以mp3为代表的音乐作品通过网络渗透到世界的每一个角落。人们可以很方便地通过网络下载自己喜欢的音乐,这不仅促进了信息的共享,同时也使得人们获得资源的成本大大减少。但随之带来的问题是:盗版者可以利用网络途径获得这些非授权资源,制作成大量的CD光盘等进行非法销售,并获得巨大的商业利益,使得作品的制作者或发行者蒙受巨大的损失。在水印技术提出之前,传统的加密技术是版权保护的主要手段,但是,由于数字产品发行量非常大,且易于复制,并且考虑到音乐制片公司需要在网络上宣传产品,这就给非法盗版者以可乘之机。因此,如何实施网络环境下的版权保护和信息安全已经成为一个亟待解决的问题。在这样的背景下,能够有效实现版权保护的数字音频水印产生了。

   数字水印技术利用多媒体信息(图像、视频、音频等)中存在的冗余信息及人类感知系统的特性,在不影响原始多媒体信息格式和质量的前提下把额外的信息(即水印)隐藏到多媒体信息中。数字水印是一个多学科高度交叉的新兴研究领域,它涉及了图像、视频、音频的信号处理和密码学、通信理论、编码理论信号压缩和人类听视觉理论等多门学科。数字音频水印技术是信息隐藏技术的一个分支,信息隐藏技术是一个新的研究方向。该技术的出现,无疑会给网络化的多媒体信息安全保存和传送开辟一条全新的捷径。近年来音频信息隐藏技术的研究工作的发展速度很快,尤其是在变换域音频信息的数据嵌入技术,能够更好的保护水印信息的稳健性和安全性,使得研究更加的具有现实性,所以数字音频水印技术一个发展前景很好的学科。

2.1音频水印

   目前数字音频水印算法研究主要分为三类,时间域水印算法、变换域水印算法、基于听觉特性的水印算法。时间域水印算法通常采用扩展频谱的方法,即把代表水印信息的伪随机序列,通过具备心理声学模型频域掩蔽效应的滤波器进行滤波,使这种全频带的噪声完全位于听觉掩蔽曲线以下,人耳完全不能觉察。回到时域以一定的强度叠加到音频信号的振幅上,水印提取的时候根据伪随机序列的自相关性值为1和互相关性为0的特点来验证水印信号的存在.变换域的水印算法通过快速傅立叶变换,离散余弦变换离散小波变换,在频域的适当位置通过抖动调制或直接叠加的方法,改变变换域系数来嵌入水印。主要利用音频信号在时域的后向掩蔽,即用弱信号在强信号消失50-200ms之后变得无法听见。将原始音频数据以一定的衰减程度并延迟一定的时间迭加到原始音频数据以产生回声,并以不同的延迟时间和衰减振幅来标志水印数据的“0”或“1”,水印数据提取时,根据回声间距检测,利用倒谱的自相关峰值的位置来判断“0”或“1“。

   算法流程图如图2所示。

c9ce73cee230502ea1f2950c9547da4c_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.2水印的嵌入
设A是原始音频信号,根据音频文件类型将它分为两部分

   A = AH +AL                                (1)

其中:AH 是与文件类型相关的部分,所以保留下来不做处理;AL是可以嵌入水印的部分,长度是L ,它可以表示为

   A ={a(l),0 l<L}                             (2)

其中a(l) 是AL第I个数据的幅值。

  假设水印是视觉可辨别的、大小为M1×M2的二值图像,它可以表示为

   W ={w(I,j), 0I<M1, 0j<M2}                       (3)

其中w(I,j) {0,1}。具体水印嵌入算法步骤如下。

水印的降维操作:因为音频信号是一维信号,所以图像水印必须进行降维处理,降维后的水印信号表示为

V={v(k)=w(I,j) , k=I×M1+j,kM1×M2}                (4)

水印信号的置乱:为了进一步提高安全性,对待嵌入的水印信号进行置乱,在这里,用线形反馈移位寄存器进行置乱。

原始音频信号的一维离散小波变换:选择合适的小波基进行一维小波三级分解。

DL=DWT(AL)= cA3 cD3cD2cD1                 (5)

离散小波逆变换:以C*’代替5式的cA3作离散小波变换,得到嵌入水印后的小波变换域的表示式为

D’L=C*’ cD3 cD2 cD1

再作离散小波反变换,就得到了时域中含有水印信号的音频信号

A’L=IDWT(D’L) (6)

将A’L代替AL最终得到含有水印的音频信号

Aw=AH + A’L (7)

2.3水印的提取
设AS 是待检测的数字音频信号,水印的提取过程可描述如下。

信号分段:先对待检测的音频信号进行分段,即 As=AsH +AsL, 然后对含有水印的音频段进行三级离散小波分解,即

DsL=DWT(AsL)= cAs3 cDs3 cDs2 cDs1 (12)

散余弦变换:将1)的近似分量cAs3 提取出来,对其进行离散余弦变换,长度为Ls’,

CLs’ =DCT(cAs3)={cls’(n),0nLs’-1} (13)

水印的提取:通过排序选择长度满足水印长度的离散余弦系数Csk,进行水印提取,根据水印嵌入的位置和原始音频信号的离散余弦系数Ck ,依据下式得到序列

dabc95fc84f9c002be1874ad80c4dc8d_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

                   (14)

逆置乱:将得到的序列{v’( k)}进行逆置乱,得到水印信号的一维序列{v(k)}。

升维处理:对水印序列{v(k)} 作升维处理,将一维的序列变为二维的图像

Ws={ws(I,j)=vk, 0≤i≤M1-1, 0≤ j≤M2-1, k=I×M1+j} (15)

3.MATLAB核心程序

M = imread('china.bmp');%读取图像存入变量M做水印信号
BW = im2bw(M);%二值图
 
[M1,M2] = size(BW);
M12 = M1*M2; 
C = reshape(BW,1,M12);% 降维,将水印信息得到的一维序列存入序列C中
n = M12;
 
% 对水印信号进行扩频处理
n = M12*2;
M = zeros(n,1);
for k = 1 : n
    if mod(k,4) == 0
        M(k) = 1;
    else 
        M(k) = 0;
    end
    % 水印信号序列分别按位与密钥异或
    l = ceil(k/2);
    S(k) = bitxor(C(l),M(k));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N = 10; %嵌入一个水印信息需要的音频数据为N
length = n*10;
i = 1 : length;% 将原始音频信号分解为Ae和Ar两部分 
j = [1];
Ae = A(i,j);% 取矩阵A的l到length行构建矩阵Ae
i = length+1 : L;
Ar = A(i,j);% 取矩阵A的length到L行第一列构建矩阵Ar
 
k = 1;
B = cell(n,1);% 建立M1 x M2行l列的元胞
th = n*N;
while ( k < th )
    i = k : k+9;
    m = (k+9)/10;
    B{m,1} = Ae(i,j);
    k = k+10;
end
D = cell(n,1);
for i = 1 : n
    D{i,1} = dct(B{i,1});%DCT变化
end
 
E = cell(n,1);% 建立元胞E,储存嵌有水印信号的中频系数
E = D;
for i = 1 : n
    E{i,1}(3) = (D{i,1}(3))*(1+2*S(i)); % 将扩频了的水印信息S嵌入音频中
end
相关文章
|
3天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
4天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
4天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
191 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
122 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
88 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
6月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
6月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
6月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
下一篇
无影云桌面