1 簡介
提出了一種基于離散小波變換(DWT)和離散余弦變換(DCT) 的音頻信息隱藏的新算法.首先,對載體音頻信號整體進行小波分解,將其低頻小波系數(shù)分段后進行離散余弦變換;其次根據(jù)人耳聽覺的頻率掩蔽效應,選擇出對人 耳聽覺容差最大的直流系數(shù)組成序列并分段;最后通過修改各段統(tǒng)計特征來嵌入水印.實驗表明,嵌入水印后的語音信號不僅具有良好的不可感知性,而且對諸如加 噪,低通濾波,重采樣,重量化,回聲,MP3壓縮,樣點裁剪,時域線性延伸和縮短等的攻擊具有很強的魯棒性.
2 部分代碼
figure(2);
%讀入原水印圖片
I=imread('a.png');
I=im2bw(I);
%讀取原始語音
audio = audioread('open-cc.wav');?
A=audio(1:160000);
%讀取含水印音頻
[A1,fs]=audioread('new.wav');?
AL=length(A1);
%繪制音頻圖:?
subplot(211);plot(A1);?
axis([0,160000,-1,1]);
title('含水印音頻信號');
%{
%加入攻擊
Dist = A1-A;
sum=0;
for i=1:AL
? ? DAA1=Dist(i)*Dist(i);
? ? sum=sum+DAA1;
end
psnr = 10*log10(maxAA/sum);
%1 誤碼率BER
eber=0;
for i=1:10
? ? for j=1:10
? ? ? ? if I(i,j)==J(i,j)
? ? ? ? else
? ? ? ? ? ? eber=eber+1;
? ? ? ? end
? ? end
end
ber=eber/100;
%2 歸一化系數(shù)NC
IJ = I.*J;
II = I.*I;
JJ=J.*J;
sumII=0;
sumIJ=0;
sumJJ=0;
for i=1:10
? ? for j=1:10
? ? ? ? sumII=sumII+II(i,j);
? ? ? ? sumIJ=sumIJ+IJ(i,j);
? ? ? ? sumJJ=sumJJ+JJ(i,j);
? ? end
end
nc=sumIJ/(sqrt(sumII)*sqrt(sumJJ));
3 仿真結果
4 參考文獻
[1]陳寅秋. 基于奇異值分解和小波變換的音頻數(shù)字水印研究[D]. 湖南師范大學, 2008.
博主簡介:擅長智能優(yōu)化算法霞溪、神經(jīng)網(wǎng)絡預測描滔、信號處理黍翎、元胞自動機、圖像處理挠说、路徑規(guī)劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流悲没。
部分理論引用網(wǎng)絡文獻望门,若有侵權聯(lián)系博主刪除形娇。**完整代碼獲取關注微信公眾號天天matlab**