⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 embed.m

📁 matlab编写的一个音频加密的程序
💻 M
字号:
%Name:		Yan Diqun
%Context:	Embedding Process(cDint)
%Project: 	Least Significant Bit 
% global bitstream LengthOfBitstream

%LSB嵌入过程

%读取载体音频
[coverfile_name,path_name]=uigetfile('*.wav');
coverfile_name = fullfile(path_name,coverfile_name);
[audio,fs,wmode,fidx]=readwav(coverfile_name,'r');

cover_object=audio+32768;
LengthOfCover=length(cover_object);

HidingInf=floor(16*rand(1,LengthOfCover));
% HidingInf = zeros(1,LengthOfCover);
% for i = 1:LengthOfCover
%     j = i*2-1;
%     HidingInf(j) = mod(randnum(i),16);
%     HidingInf(j+1) = bitshift(randnum(i),-4);
% end
    
% rand('state',5);
% index_embed=randperm(LengthOfCover);


% 保密语音暂存
watermark=HidingInf;

% 算法开始时间
start_time=cputime;

for i = 1:LengthOfCover
    if i <= 100
        LocalMean = mean(cover_object(1:i));
        for j = 1:i
            uworks(j) = (cover_object(j)-LocalMean)^2;
        end
    var(i) = sum(uworks)/(i^2);
    else
        LocalMean = mean(cover_object((i-100):i));
        for j = (i-100):i
            uworks(j) = (cover_object(j)-LocalMean)^2;
        end
    var(i) = sum(uworks)/(100^2);
    end
    cover_object(i) = cover_object(i)-mod(cover_object(i),16)+watermark(i);
end


watermarked_audio=cover_object;

%------------------ 嵌入过程结束---------------------------------------
% 显示算法的处理时间
elapsed_time=cputime-start_time,

% 创建含保密语音的音频文件
watermarked_audio=watermarked_audio-32768;
writewav(watermarked_audio,fs,'watermarked.wav','r');

% 评估

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%calculate the snr:signal-noise-ratio
snr_numerator=sum(audio.^2);
snr_denominator=sum((watermarked_audio-audio).^2);
snr_dwt=10.*log10(snr_numerator/snr_denominator)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%calculate the peak snr:signal-noise-ratio
psnr_numerator=max(audio.^2);
psnr_denominator=sum((watermarked_audio-audio).^2);
psnr_dwt=10.*log10(LengthOfCover*psnr_numerator/psnr_denominator)


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%calculate the ADDM:average difference distortion metrics
addm_dwt=sum(watermarked_audio-audio)/LengthOfCover
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%相关波形显示
%figure(3);
%plot(watermarked_audio1);
%yLabel('Audio include speech');
%axis tight;





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -