通过扩频和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
相关文章
|
2月前
|
算法 数据安全/隐私保护
织物图像的配准和拼接算法的MATLAB仿真,对比SIFT,SURF以及KAZE
本项目展示了织物瑕疵检测中的图像拼接技术,使用SIFT、SURF和KAZE三种算法。通过MATLAB2022a实现图像匹配、配准和拼接,最终检测并分类织物瑕疵。SIFT算法在不同尺度和旋转下保持不变性;SURF算法提高速度并保持鲁棒性;KAZE算法使用非线性扩散滤波器构建尺度空间,提供更先进的特征描述。展示视频无水印,代码含注释及操作步骤。
|
3月前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
|
4月前
|
存储 算法 Serverless
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
|
4月前
|
存储 Serverless
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
111 1
|
5月前
|
算法
基于粒子群优化的图像融合算法matlab仿真
这是一个基于粒子群优化(PSO)的图像融合算法,旨在将彩色模糊图像与清晰灰度图像融合成彩色清晰图像。在MATLAB2022a中测试,算法通过PSO求解最优融合权值参数,经过多次迭代更新粒子速度和位置,以优化融合效果。核心代码展示了PSO的迭代过程及融合策略。最终,使用加权平均法融合图像,其中权重由PSO计算得出。该算法体现了PSO在图像融合领域的高效性和融合质量。
|
6月前
|
机器学习/深度学习 算法 固态存储
m基于深度学习的卫星遥感图像轮船检测系统matlab仿真,带GUI操作界面
在MATLAB 2022a中,使用GoogLeNet对卫星遥感图像进行轮船检测,展示了高效的目标识别。GoogLeNet的Inception架构结合全局平均池化增强模型泛化性。核心代码将图像切块并分类,预测为轮船的部分被突出显示,体现了深度学习在复杂场景检测中的应用。
412 8
|
6月前
|
算法 计算机视觉 异构计算
基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
```markdown ## FPGA 仿真与 MATLAB 显示 - 图像处理的 FFT/IFFT FPGA 实现在 Vivado 2019.2 中仿真,结果通过 MATLAB 2022a 展示 - 核心代码片段:`Ddddddddddddddd` - 理论:FPGA 实现的一维 FFT/IFFT,加速数字信号处理,适用于高计算需求的图像应用,如压缩、滤波和识别 ```
|
6月前
|
算法 计算机视觉
基于Chan-Vese算法的图像边缘提取matlab仿真
**算法预览展示了4幅图像,从边缘检测到最终分割,体现了在matlab2022a中应用的Chan-Vese水平集迭代过程。核心代码段用于更新水平集并显示迭代效果,最后生成分割结果及误差曲线。Chan-Vese模型(2001)是图像分割的经典方法,通过最小化能量函数自动检测平滑区域和清晰边界的图像分割,适用于复杂环境,广泛应用于医学影像和机器视觉。**
|
6月前
|
算法 计算机视觉 异构计算
基于FPGA的图像直方图均衡化处理verilog实现,包含tb测试文件和MATLAB辅助验证
摘要: 在FPGA上实现了图像直方图均衡化算法,通过MATLAB2022a与Vivado2019.2进行仿真和验证。核心程序涉及灰度直方图计算、累积分布及映射变换。算法旨在提升图像全局对比度,尤其适合低对比度图像。FPGA利用可编程增益器和查表技术加速硬件处理,实现像素灰度的均匀重分布,提升视觉效果。![image preview](https://ucc.alicdn.com/pic/developer-ecology/3tnl7rfrqv6tw_a075525027db4afbb9c0529921fd0152.png)
|
7月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于DCT变换和位平面分解的数字水印嵌入提取算法matlab仿真
这是一个关于数字水印算法的摘要:使用MATLAB2022a实现,结合DCT和位平面分解技术。算法先通过DCT变换将图像转至频域,随后利用位平面分解嵌入水印,确保在图像处理后仍能提取。核心程序包括水印嵌入和提取,以及性能分析部分,通过PSNR和NC指标评估水印在不同噪声条件下的鲁棒性。