?一、獲取代碼方式
獲取代碼方式1:
完整代碼已上傳我的資源:【語音隱寫】基于matlab LSB音頻水印嵌入提取【含Matlab源碼 3676期】
點(diǎn)擊上面藍(lán)色字體,直接付費(fèi)下載,即可。
獲取代碼方式2:
付費(fèi)專欄Matlab語音處理(初級(jí)版)
備注:
點(diǎn)擊上面藍(lán)色字體付費(fèi)專欄Matlab語音處理(初級(jí)版),掃描上面二維碼,付費(fèi)29.9元訂閱海神之光博客付費(fèi)專欄Matlab語音處理(初級(jí)版),憑支付憑證,私信博主,可免費(fèi)獲得1份本博客上傳CSDN資源代碼(有效期為訂閱日起,三天內(nèi)有效);
點(diǎn)擊CSDN資源下載鏈接:1份本博客上傳CSDN資源代碼
?二、擴(kuò)頻語音水印簡介
1 引 言
數(shù)字水印是20世紀(jì)90年代發(fā)展起來的一項(xiàng)新技術(shù), 它通過在原始的數(shù)字信息中, 隱含特定信息 (如身份標(biāo)志等) , 以確認(rèn)數(shù)字產(chǎn)品的版權(quán), 或驗(yàn)證信息是否屬偽造和有害。數(shù)字水印一般是加在圖像、音頻、視頻或文本中, 依據(jù)使用的目的不同, 水印可分為可見性水印和不可見性水印。隨著應(yīng)用需求的發(fā)展, 在特定的應(yīng)用場合 (如防止通信信號(hào)被偽造或識(shí)別攻擊性信號(hào)等) , 需要在通信信號(hào)中加入水印信息, 確定所接收的信號(hào)是否屬于有效信號(hào), 但又不損害原始信號(hào)的正常接收和使用。在通信信號(hào)中嵌入水印信息的最常見的圖像通信和語音通信。本文主要研究的是語音中通信水印信息的嵌入方法。
一般來說, 話音通信的水印應(yīng)該有如下特性:①不可察覺性, 即加入水印后的語音與原語音信號(hào)相比, 對(duì)人耳來說應(yīng)該聽不出來, 其處理算法通常是在語音的冗余位置嵌入水印信息, 或利用人耳的掩蔽特性。在擴(kuò)頻通信中, 可利用碼字的正交性來達(dá)到嵌入水印信息的目的;②魯棒性, 即未經(jīng)授權(quán)的第三方不能通過一些處理方法, 去除或修改嵌入的水印信息, 或者去除水印信息后, 原語音信號(hào)的質(zhì)量有明顯下降;對(duì)于常用的處理算法, 如傳輸、過濾、采樣等, 嵌入的水印信息損壞很小, 并在一定的正確概率下可以被檢測到;③可靠性, 水印嵌入和檢測方法對(duì)未授權(quán)的第三方而言, 應(yīng)該是保密且不易破解的, 而合法的使用者, 可通過水印證實(shí)其合法性。
語音通信的水印嵌入主要有時(shí)域和變換域嵌入兩種方式。近年來, 隨著擴(kuò)頻技術(shù)的發(fā)展, 利用擴(kuò)頻方式將水印嵌入到原始信息中, 顯示出很大的優(yōu)越性。同時(shí), 隨著抗干擾性、保密性等的要求, 擴(kuò)頻技術(shù)已在通信中得到廣泛應(yīng)用[3], 在擴(kuò)頻通信的基礎(chǔ)上, 加入擴(kuò)頻水印信息, 不僅容易實(shí)現(xiàn), 而且具有非常優(yōu)越的性能。
本文提出一種基于擴(kuò)頻通信的水印嵌入模型, 并分析其相關(guān)的性能。
2 水印的嵌入模型
擴(kuò)頻通信是將原始信息通過與擴(kuò)頻碼 (偽隨機(jī)碼) 進(jìn)行擴(kuò)頻運(yùn)算, 使信號(hào)被擴(kuò)頻到很寬的頻帶上, 接收端通過相關(guān)運(yùn)算, 將原始信息還原到原來的帶寬, 同時(shí)將干擾信號(hào)擴(kuò)展到很寬的頻帶上, 達(dá)到減少干擾信號(hào)的功率譜密度, 從而可通過濾波的方法, 提高信噪比的目的。在擴(kuò)頻信號(hào)中, 通過采用正交擴(kuò)頻碼字, 很容易將水印信號(hào)嵌入到原始信號(hào)中, 并且具有良好的特性。在擴(kuò)頻信號(hào)中嵌入水印信息的框圖如圖1 所示, 接收端處理如圖2所示。
圖1 發(fā)端水印嵌入處理框圖
圖2 接收及水印提取
在發(fā)端的情況, 水印信息和語音信息分別被不同的偽碼擴(kuò)頻 (正交擴(kuò)頻碼, 且碼長一樣) , 擴(kuò)頻后的信號(hào)通過相加器, 疊加在一起, 再經(jīng)過調(diào)制, 送入信道, 類似于多碼擴(kuò)頻通信。在接收端, 接收到的信號(hào)經(jīng)過前端濾波后, 分別以信息擴(kuò)頻碼和水印擴(kuò)頻碼進(jìn)行解擴(kuò)、解調(diào)輸出。由于信息與水印擴(kuò)頻碼的正交性, 水印信息直接疊加于原始信號(hào)上, 并占用相同的帶寬, 相互之間不影響, 達(dá)到了透明性要求;同時(shí)除非通過解擴(kuò)頻來提取水印, 再進(jìn)行抵消水印信號(hào), 而傳統(tǒng)的任何方法均不能除去水印信號(hào), 從而達(dá)到了可靠性的要求;由于擴(kuò)頻系統(tǒng)的本身特性, 傳輸過程中的干擾, 接收過程中的各種算法均對(duì)水印信號(hào)信號(hào)的影響較小, 故而達(dá)到魯棒性的要求。
在圖中數(shù)字語音信息記為m (t) , 信息擴(kuò)頻碼記為Cm (t) , 水印信息記為w (t) , 水印擴(kuò)頻碼記為Cw (t) , 其中Cm (t) 和Cw (t) 正交, 即:
式中T為擴(kuò)頻碼的周期時(shí)間。
發(fā)送到信道中的信號(hào)為
其中, m (t) 、w (t) 、Cm (t) , Cw (t) 都取值{-1, +1}, 則其組合m (t) Cm (t) +w (t) Cw (t) 可能的取值為{-2, 0, +2}, 采用相位調(diào)制時(shí), 則相位的變化為{0, π/2, π}。
信號(hào)在信道中傳輸時(shí), 要疊加上噪聲和干擾, 記為n (t) , 則到達(dá)接收端的信號(hào)r (t) 可表示為
其中, a為幅度衰減, φ載波相位。為分析簡潔, 在式 (3) 中, 我們沒考慮傳播中的多徑效應(yīng)、衰落和多譜勒效應(yīng)的影響。
3 性能分析
在假設(shè)接收端的載波和擴(kuò)頻本地碼均能精確同步的情況下, 分別對(duì)原始信息和水印信息進(jìn)行解擴(kuò)和解調(diào), 則有:
我們考慮解擴(kuò)頻解調(diào)后經(jīng)過低通濾波, 濾除二次諧波及高頻分量, 則有:
式 (5) 中, 第一項(xiàng)為有用信號(hào)的輸出, 第二項(xiàng)為水印信號(hào)對(duì)有用信號(hào)的干擾, 第三項(xiàng)為噪聲的輸出。由于信息擴(kuò)頻碼字與水印擴(kuò)頻碼字的正交性, 由式 (1) 可知, 式 (5) 的第二項(xiàng)為0, 因此, 嵌入的水印對(duì)原始信息沒有任何影響, 保證了透明性要求。在實(shí)際的應(yīng)用中, 由于碼字不正交, 水印信息對(duì)原始信息的接收有一定影響, 但只要信息擴(kuò)頻碼與水印擴(kuò)頻碼之間的互相關(guān)系數(shù)足夠小, 則其影響可忽略。
同理, 水印信號(hào)的解擴(kuò)解調(diào)輸出為
式 (6) 的第二項(xiàng)為0, 原始信息對(duì)水印信息亦不夠成影響。
由上述的基本原理可知, 水印信號(hào)和信息信號(hào)無論在時(shí)域、頻域還是空間域都混疊在一起, 不能通過濾波及其它數(shù)字信號(hào)的處理方法將原始信號(hào)和水印信號(hào)分開, 除非通過解擴(kuò)頻的方法, 恢復(fù)出水印信號(hào), 再將它在混合信號(hào)中加以抵消, 才能消除水印信號(hào)。但由于水印擴(kuò)頻碼對(duì)第三方是未知的, 所以要獲得擴(kuò)頻碼信息是非常難的, 尤其是當(dāng)擴(kuò)頻碼足夠長時(shí), 破譯擴(kuò)頻碼的信息幾乎是不可能的。因此, 在這樣的系統(tǒng)中, 較好地保證了水印信息的魯棒性。
擴(kuò)頻系統(tǒng)對(duì)干擾的抑制程度取決于擴(kuò)頻增益。當(dāng)擴(kuò)頻增益足夠高時(shí), 就可以很好地抑制干擾。因此, 采用擴(kuò)頻的方法, 可以很明顯地提高水印信號(hào)的可靠性。同時(shí), 由于采用正常的接收處理方式, 只要對(duì)有用信號(hào)不構(gòu)成損害, 也就不能對(duì)水印信號(hào)構(gòu)成損害。反之, 若損害了水印信號(hào), 必定損害有用信號(hào)。
由于擴(kuò)頻碼字的正交性, 水印的加入對(duì)擴(kuò)頻話音信號(hào)的正常接收不產(chǎn)生任何影響, 反之, 話音信號(hào)對(duì)水印信號(hào)亦不能夠成任何影響, 非常好地保證了透明性要求。
由上述可知, 在語音擴(kuò)頻通信系統(tǒng)中, 通過采用同體制的擴(kuò)頻方式, 嵌入水印信號(hào), 可取得最佳的水印性能。
?三、部分源代碼
clc;clear;
I=audioread(‘1.wav’);
I=I(:,1);
figure(1)
plot(I);
title(‘原語音’);
Secret=10; %待隱藏?cái)?shù)據(jù)的大小
data=round(rand(1,Secret)); %隨機(jī)生成大小為Secret的待隱藏的2進(jìn)制數(shù)據(jù)
[length,width,~]=size(I);
fprintf(‘隱藏?cái)?shù)據(jù):’);disp(data);
%進(jìn)行信息隱藏
point=1;
for i=1:length
if point>Secret
break;
end
for j=i:width
if point>Secret
break;
end
if point==Secret-mod(Secret,3)+1 %剩余數(shù)據(jù)不足三位時(shí)單獨(dú)處理
I(i,j)=fix(double(I(i,j))/8);
I(i,j)=I(i,j)*8;
num=4;
for k=point:Secret
I(i,j)=I(i,j)+data(k)*num;
num=num/2;
end
break
end
I(i,j)=fix(double(I(i,j))/8); %后三位置0,放入待隱藏?cái)?shù)據(jù)
I(i,j)=I(i,j)*8;
I(i,j)=I(i,j)+data(point)*4+data(point+1)*2+data(point+2);
point=point+3;
end
end
fprintf(‘信息隱藏成功!\r\n’);
figure(2)
plot(I);
title(‘隱藏后圖像’);
%隱藏信息讀取
point=1;
for i=1:length
if point>Secret
break;
end
for j=i:width
if point>Secret
break;
end
if point==Secret-mod(Secret,3)+1 %之前做單獨(dú)放入處理的隱藏點(diǎn)進(jìn)行單獨(dú)讀取
message=double(mod(I(i,j),8));
message=floor(message/2);
if mod(Secret,3)==1
message=floor(message/2);
Data(point)=mod(message,2);
end
if mod(Secret,3)==2
Data(point+1)=mod(message,2);
message=floor(message/2);
Data(point)=mod(message,2);
end
break
end
?四、運(yùn)行結(jié)果
?五、matlab版本及參考文獻(xiàn)
1 matlab版本
2014a
2 參考文獻(xiàn)
[1]韓紀(jì)慶,張磊,鄭鐵然.語音信號(hào)處理(第3版)[M].清華大學(xué)出版社,2019.
[2]柳若邊.深度學(xué)習(xí):語音識(shí)別技術(shù)實(shí)踐[M].清華大學(xué)出版社,2019.
[3]何世彪,楊士中.擴(kuò)頻通信中擴(kuò)頻水印的嵌入方法[J].電訊技術(shù). 2005,(04)文章來源:http://www.zghlxwxcb.cn/news/detail-765312.html
3 備注
簡介此部分摘自互聯(lián)網(wǎng),僅供參考,若侵權(quán),聯(lián)系刪除文章來源地址http://www.zghlxwxcb.cn/news/detail-765312.html
到了這里,關(guān)于【語音隱寫】LSB音頻水印嵌入提取【含Matlab源碼 3676期】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!