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

📄 extract.asv

📁 matlab编写的一个音频加密的程序
💻 ASV
字号:
%Name:		Yan Diqun
%Context:	Extracting Process
%Project: 	Least Significant Bit 
global bitstream LengthOfBitstream RepeatNum speech
%-----------------------提取过程------------------------------
%file_name='lsb_watermarked.wav';

[file_name]=uigetfile('*.wav');
[audio,fs,wmode,fidx]=readwav(coverfile_name,'r');

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

rand('state',5);
index_embed=randperm(LengthOfCover);

% 算法开始时间
start_time=cputime;
%watermark_recover=zeros(RepeatNum,length_of_bitstream);
for i = 1:LengthOfCover
    watermark_recover(i) = watermark
end

uwork1=0;
uwork2=0;
for i=1:LengthOfBitstream
    temp2=watermark_recover(:,i);
    for j=1:RepeatNum
        if temp2(j)==1
            uwork1=uwork1+1;
        else
            uwork2=uwork2+1;
        end
    end
     if uwork1>uwork2
         watermark(i)=1;
    else
        watermark(i)=0;
    end
    uwork1=0;
    uwork2=0;
end
%显示算法的处理时间
elapsed_time=cputime-start_time,

%求位错误率
 sim_1=0;
 for i=1:length(watermark)
     if(bitstream(i)==watermark(i))
         sim_1=sim_1+1;
     end
 end
ber=(length(bitstream)-sim_1)/length(bitstream);
str=sprintf('位错误率为:%f\n',ber);
disp(str);

%BCH纠错码解码
watermark=decode(watermark,7,4,'bch');

%将比特流文件转换成wav格式文件
uWork=0;
j=1;
for i=1:length(speech)
    for k=0:7
    uWork=uWork+watermark(k+j)*2^k;
    end
    recoverspeech(i)=uWork;
    uWork=0;
    j=j+8;
end
recoverspeech=recoverspeech-128;
writewav(recoverspeech,8000,'recoverspeech.wav','8');

%恢复保密语音显示
figure(4)
plot(recoverspeech);
title('recover speech');
axis tight;




⌨️ 快捷键说明

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