一种基于DWT-SVD-ICA的数字音频水印算法的制作方法

文档序号:13673212阅读:来源:国知局
技术特征:
1.一种基于DWT-SVD-ICA的数字音频水印算法,其特征是按如下步骤进行:第一步:对原始音频进行预处理,选择合适片段用水印嵌入;第二步:嵌入水印时,对原始音频进行三级小波变换,并对小波变换的近似分量进行奇异值分解,然后利用随机混合法完成水印嵌入;第三步:提取水印时,对嵌有水印的音频信号进行小波变换和奇异值分解,然后利用负熵最大化的固定点算法实现水印盲检测。2.如权利要求1所述的基于DWT-SVD-ICA的数字音频水印算法,其特征是:第一步:设第k帧音频信号的短时能量由Ek表示,定义如下:Ek=Σi=1Nxk2(i)---(1)]]>其中,N为信号帧长;设第k帧音频信号的过零率用Zk表示,定义为:Zk=12Σi=1Nsgn[xk(i)]-sgn[xk(i-1)]---(2)]]>其中,设定两个阈值Eth和Zth,选取过零率Zk≤Zth且短时能量Ek≥Eth的音频帧作为水印嵌入帧ASk。3.如权利要求2所述的基于DWT-SVD-ICA的数字音频水印算法,其特征是:第二步:(1)对每帧ASk进行三级小波变换,得到低频近似分量CA3k和细节分量CD1k,CD2k,CD3k;为了实现对CA3k进行奇异值分解,先将CA3k转换成二维矩阵ca3k:ca3k(i,j)=CA3k(i+N/8·(j-1)),i=1,2...N/8,j=1,2...N/8---(3)]]>对ca3k进行奇异值分解成并将其奇异值矩阵按式(4)转化为一维数组Sk:Sk(i)=Sks(i,i),i=1,2,...,N/8---(4)]]>(2)读取长度为的水印信息Mk,将水印Mk和一维数组Sk融合构成二维矩阵MSk:MSk=SkMk---(5)]]>将MSk与自适应混合矩阵Ak线性相乘得到嵌入水印的矩阵Xk,ICA混合公式如下:Xk=LkRk=AkSkMk=ak11ak12ak21ak22SkMk=ak11Sk+ak12Mkak21Sk+ak22Mk---(6)]]>ak11,ak21在[0.85,0.99]的区间内随机选择;选择SVD特征值来调节水印的嵌入强度;round(x)代表对x四舍五入;将Rk=ak21Sk+ak22Mk作为密钥保存用于水印提取,Lk=ak11Sk+ak12Mk按式(7)转换成奇异值矩阵S',并按式(8)进行奇异值分解获得嵌入水印的ca3'k:S′k(i,i)=Lk(i),i=1,2,...,N/8---(7)]]>ca3′k=Uks×S′k×VksT---(8)]]>将二维矩阵ca3'k按式(9)转换成一维矩阵CA3'k:CA3k′(i+N/8·(j-1))=ca3k′(i,j),i=1,2...N/8,j=1,2...N/8---(9)]]>CA3'k与CD1k,CD2k,CD3k进行小波重构,完成对第k帧音频信号的水印嵌入SWk;(3)重复以上步骤(1)、(2),直至完成对所有帧的水印嵌入,最后得到嵌入水印的音频SW。4.如权利要求3所述的基于DWT-SVD-ICA的数字音频水印算法,其特征是:第三步:①对嵌有水印的音频SW分帧成SWk,k=1,2,…,并对SWk进行分段三级小波分解,得到近似分量CA3'k,转换成二维矩阵ca3'k,再将ca3'k进行SVD分解得到奇异值矩阵S'k,对S'k中的奇异值按式(10)转化为Lk;Lk(i)=S′k(i,i),i=1,2,...N/8---(10)]]>②将密钥Rk和Lk按式(11)融合成Xk;Xk=LkRk---(11)]]>根据Fast-ICA的实现步骤,对矩阵Xk进行解混,得到解混矩阵Wk,计算Yk矩阵:Yk=WkLkRk=Yk1Yk2---(12)]]>由于Fast-ICA分离出两个独立变量不能确定哪一个分量含有水印信号,需将Yk1和Yk2分别与Lk进行相似度比较,选择相似度小于0.8的分量作为含有水印的独立分量;假设Yk1分量是所选含有水印的独立分量,则令WMk=Yk1;③按式(13)进行水印提取:WAk=1,WMk(i)≥E{Σi=1N/8WMk(i)
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1