天天看點

【數字水印】基于離散餘弦變換DCT音頻數字水印嵌入提取含Matlab源碼

1 簡介

提出了一種将灰階圖像嵌入到音頻信号的數字水印算法.該算法以包含豐富資訊的灰階圖像作為數字水印 , 首先利用 DC T靜态圖像壓縮技術 ,将二維數字水印 (灰階圖像 )編碼成一維二進制序列并進行随機置亂 ,再對數字音頻 信号進行分段處理并依據人類聽覺系統 ( HAS)擇段做離散餘弦變換 ( DCT) ,最後在離散餘弦變換域内通過修改中高 頻 DCT系數完成水印資訊的自适應嵌入 .實驗結果表明: 該自适應數字音頻水印算法不僅具有較好的透明性 ,而且對 諸如疊加噪聲、有損壓縮、低通濾波、重新采樣、重新量化等攻擊均具有較好的魯棒性.

【數字水印】基于離散餘弦變換DCT音頻數字水印嵌入提取含Matlab源碼
【數字水印】基于離散餘弦變換DCT音頻數字水印嵌入提取含Matlab源碼
【數字水印】基于離散餘弦變換DCT音頻數字水印嵌入提取含Matlab源碼
【數字水印】基于離散餘弦變換DCT音頻數字水印嵌入提取含Matlab源碼
【數字水印】基于離散餘弦變換DCT音頻數字水印嵌入提取含Matlab源碼
【數字水印】基于離散餘弦變換DCT音頻數字水印嵌入提取含Matlab源碼

2 部分代碼

function exteredmark=extract(MarkedX,wrow,wcol)
%水印提取----------------------------------------
[cm,lm]=wavedec(MarkedX,2,'db4'); %  
cma2=appcoef(cm,lm,'db4',2); % 
cmd2=detcoef(cm,lm,2); % 
cmd1=detcoef(cm,lm,1); % 
lcma=length(cma2);  %低頻長度
blocksize=fix(lcma/(wrow*wcol)); %每塊的大小
water_exter=zeros(1,wrow*wcol);  %建立一個一維向量存儲提取的水印資訊
a=0.25;  %量化步長
j=1;
for i=1:wrow*wcol
    Blockm=cma2(j:j+blocksize-1);
    [UM,SM,VM]=svd(double(Blockm));   %對每塊進行SVD變換
    if(mod(round(SM(1,1)/a),2)==0)  %如果為靠近步長的偶數倍,則水印信号為0
        water_exter(i)=0;
    else
        water_exter(i)=1;    %如果為靠近步長的偶數倍,則水印信号為0
    end 
    j=j+blocksize;
end
exteredmark=reshape(water_exter,wrow,wcol);%恢複和原圖一樣大小的圖像      

3 仿真結果

【數字水印】基于離散餘弦變換DCT音頻數字水印嵌入提取含Matlab源碼

4 參考文獻

[1]陽鑫. 基于DCT變換的數字水印研究及其MATLAB實作[J].  2022(11).

部落客簡介:擅長智能優化算法、神經網絡預測、信号處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

部分理論引用網絡文獻,若有侵權聯系部落客删除。

繼續閱讀