音频数字水印的算法实现(3)
作者:互联网
[4] 柏玉保, 柏森, 刘程浩. 基于小波和倒谱域的数字音频水印算法[J]. 计算机应用与软件, 2012(3):163-167.
基于小波和倒谱域的数字音频水印算法 [4]
人耳频率分辨率是非线性的,傅里叶变换模拟的话比较困难,小波变换可以将音频划分为若干频带。
倒谱变换后,倒谱系数在中间部分差异小,在两边差异大,且中间能量大,所以通常选择中间部分嵌入水印。
复倒谱变换的实体部分定义为实倒谱:
原理:
对原数据进行分帧,然后求每一帧的倒谱系数,之后定义一个伪随机序列来初始化嵌入位置,对于倒谱变换,将{0,1}的水印信息转化为{-1,1},所以嵌入水印后的模型为:
β和λ是强度控制系数
假设经过噪声攻击后的数据是y = S + n
通过相关性的极性判断来提取水印,相关性:
计算表明
同时数学分析结论可得到,要降低错误比特概率,则要适当增大β 和λ 控制参数因子,进而在满足信噪比的条件下提高算法的鲁棒性。
嵌入:
下面梳理下上述代码,
首先,对于取出要处理的原数据audio,
然后进行离散小波变换,
wavedec( audio,5,'db4'),用db4小波做5级分解
appcoef( C,L,'db4',5),提取低频系数
detcoef(C,L,[5]),提取高频系数
然后进行分帧操作,对于每一帧做倒谱变换,
fft -- log -- ifft -- real 得到实倒谱
然后初始化伪随机序列,用种子数做秘钥
取每一帧中间部分,然后做水印嵌入操作,这时得到嵌入后的倒谱系数,fft -- exp -- ifft -- real,最后将处理过的部分与其他部分进行重构,进行离散小波逆变换。
提取:
对数据进行嵌入时的一系列变换得到低频系数,然后根据秘钥找到水印嵌入位置,根据原理中的r和w的关系,求相关性:
若r>=0,则w=1,若r<0,则w=-1
实验表明:
增大β 和λ控制参数因子,信噪比依次减小,鲁棒性提高。
β=0.05,λ=0.5时,信噪比和鲁棒性达到比较好的平衡。
标签:嵌入,变换,音频,鲁棒性,水印,算法,系数,数字水印,db4 来源: https://blog.csdn.net/qq_24502469/article/details/97794437