So sánh với các ph-ơng pháp giấu tin khác

Một phần của tài liệu Nghiên cứu phương pháp che giấu thông tin trong tín hiệu âm thanh (Trang 92)

Tiến hành so sánh mô hình đề xuất với một số ph-ơng pháp khác sau khi xử lý tín hiệu đánh dấu (tệp Lmid.Wav đã nhúng tin). Các ph-ơng pháp so sánh là Hide4PGP [17], Audio watermarking [22] và AudioMark [18]. • Hide4PGP: sử dụng ph-ơng pháp thay thế bit ít quan trọng nhất LSB để giấu tin.

• Audio watermarking là ch-ơng trình giấu tin trong tệp audio nén Wav do hai tác giả D. Kirovski và H.S. Malvar của Phòng nghiên cứu hãng Mircosoft phát triển. Ch-ơng trình này sử dụng ph-ơng pháp trải phổ để giấu tin, tuy nhiên dung l-ợng tin giấu không cao.

• AudioMark (bản demo), đây là phần mềm th-ơng mại trong lĩnh vực bảo vệ bản quyền âm nhạc của hãng AlphaTech. Số l-ợng bit đem giấu trong phiên bản demo này là 48 bit (6 ký tự).

Do các ph-ơng pháp giấu tin trên đều giới hạn số l-ợng bit nhúng, cho nên đồ án chọn chuỗi tin giấu dài 48 bit (6 ký tự). Thực hiện nhúng chuỗi tin này vào một bộ dữ liệu kiểm tra audio chuẩn [17] gồm 10 tập tin, tần số lấy mẫu là 44100 Hz, stereo, số bit mẫu là 16 bit. Đây là bộ dữ liệu miễn phí, đ-ợc nhiều ng-ời sử dụng. Ngoài ra, nếu không ngại về tài chính, ta có thể tham khảo bộ dữ liệu của JASRAC (Hiệp hội bảo vệ bản quyền tác giả, nhà sáng tác và các nhà xuất bản của Nhật). Tổ chức này đã hoàn thành

các dự án về đánh giá và chứng thực các công nghệ giấu tin trên tín hiệu số, bao gồm tiêu chuẩn STEP2000 và STEP2001. Các tiêu chuẩn này đã đ-ợc chứng thực bởi 5 công ty hàng đầu là: IBM, Blue Spike Inc (Mỹ), Sigum (Anh), MarkAny Inc (Hàn Quốc), Victor Co. Ltd (Nhật).

Chuỗi tin giấu trong tr-ờng hợp này là “HVKTQS”.

Ta quy -ớc cách tính tỉ lệ chiết rút tin giấu thành công nh- sau:

• Nếu khôi phục đ-ợc 90% tổng số bit tin đã giấu thì ta coi nh- khôi phục đ-ợc hoàn toàn chuỗi tin.

• Tỉ lệ chiết rút thành công cho một bộ dữ liệu kiểm tra là tỉ số giữa các tệp audio đã chiết rút thành công với tổng số l-ợng các tệp audio có trong bộ dữ liệu này.

Kết quả thực nghiệm:

a/ Tr-ớc khi xử lý, biến đổi tín hiệu: Trải phổ + mô hình giả lập thính giác Hide 4PGP Audio watermarking AudioMark Bass47_1.wav 100% 100% 100% 100% Frer07_1.wav 100% 100% 100% 100% Gspi35_1.wav 100% 100% 100% 100% Gspi35_2.wav 100% 100% 100% 100% Harp40_1.wav 100% 100% 100% 100% Horn23_2.wav 100% 100% 100% 100% Quar48_1.wav 100% 100% 100% 100% Sopr44_1.wav 100% 100% 100% 100% Trpt21_2.wav 100% 100% 100% 100% Vioo10_2.wav 100% 100% 100% 100%

Các kết quả trong bảng 3.4.4 (a) cho ta nhận xét rằng nếu không xảy ra các biến đổi tín hiệu nào trong thực tế thì hoàn toàn khôi phục lại 100% tin mật đã giấu. Trong điều kiện “lý t-ởng” trên, ph-ơng pháp Hide4PGP cho phép nhúng một l-ợng tin rất lớn, khoảng 1/3 dung l-ợng tệp audio gốc. Sau đó đến ph-ơng pháp trải phổ kết hợp với mô hình thính giác, Audio watermarking, và cuối cùng, AudioMark (bản demo) chỉ cho nhúng một l-ợng tin tối đa là 48 bit.

b/ Sau khi tiến hành xử lý, biến đổi tín hiệu: Trải phổ + mô hình giả lập thính giác Hide 4PGP Audio watermarking AudioMark Đổi tần số lấy mẫu

44,1kHz32kHz 90% 10% 100% 90% Đổi định dạng (Wav--->Mp3) 90% 0% 90% 100% Chèn nhiễu 100% 10% 90% 90% Lọc thông thấp 90% 30% 90% 90% Lọc thông cao 90% 20% 90% 90%

Tạo tiếng vang 100% 20% 100% 100%

Hiệu ứng Doppler 100% 0% 100% 90%

Biến đổi biên độ 100% 50% 100% 90%

Thay đổi dải động 90% 60% 100% 80%

Biến đổi

D/A và A/D 90% 0% 90% 60%

Trung bình 94% 20% 95% 88%

Dựa vào bảng thống kê 3.4.4 (b), có thể nhận xét rằng hiệu quả của ph-ơng pháp giấu tin trong mô hình đề xuất t-ơng đối cao (trung bình 94%) khi so sánh với các ph-ơng pháp khác. Đặc biệt, trong điều kiện có nhiễu và hiệu ứng Doppler tác động thì ph-ơng pháp này vẫn cho tỉ lệ chiết rút thành công tin giấu cao (100%) trong khi các ph-ơng pháp khác tỏ ra kém bền vững với các tác động loại này. Nh- vậy, xét ở một mặt nào đó, ph-ơng pháp đề xuất chỉ đứng sau Audio watermarking, nh-ng xét kết hợp thêm khả năng cho phép nhúng dung l-ợng tin tối đa thì nó có -u điểm hơn hẳn các ph-ơng pháp khác.

Kết luận

Ch-ơng 3 đã trình bày cụ thể các b-ớc thiết kế một mô hình giấu tin bằng kỹ thuật trải phổ kết hợp với mô hình giả lập thính giác. Mô hình đề xuất đã giấu thành công một chuỗi tin cho tr-ớc vào tệp audio nén Wav. Chất l-ợng tín hiệu âm thanh sau khi đánh dấu đ-ợc bảo đảm, và có tính bền vững t-ơng đối cao đối với các thao tác biến đổi, xử lý tín hiệu. Đặc biệt, mô hình không yêu cầu bất cứ thông tin gì của tín hiệu gốc khi muốn khôi phục lại chuỗi tin giấu. Điều này cho phép ta thiết kế mô hình trong thời gian thực bằng công nghệ DSP.

Kết luận

Sau một thời gian làm việc, với sự nỗ lực của bản thân và đ-ợc sự h-ớng dẫn tận tình của các thầy giáo, đồ án đã hoàn thành đồ án của mình. Nội dung chủ yếu của đồ án là nghiên cứu các ph-ơng pháp che giấu thông tin trong tín hiệu âm thanh. Qua quá trình tìm hiểu và phân tích các công nghệ hiện có, đồ án đã đạt đ-ợc một số kết quả sau:

• Tổng hợp các ph-ơng pháp che giấu thông tin đang đ-ợc sử dụng phổ biến trong tín hiệu âm thanh.

• Đề xuất và tiến hành mô phỏng trên MATLAB một mô hình giấu tin bằng kỹ thuật trải phổ kết hợp với mô hình giả lập thính giác.

• Đánh giá mô hình đề xuất thông qua thực nghiệm.

• So sánh ph-ơng pháp giấu tin trong mô hình đề xuất với các ph-ơng pháp khác.

Các kết quả nhận đ-ợc cho thấy mô hình giấu tin đề xuất đã thành công khi nhúng một chuỗi tin cho tr-ớc vào một tệp audio nén theo chuẩn định dạng Wav mà không làm thay đổi chất l-ợng cảm thụ âm thanh. Mặt khác, nhờ sử dụng kỹ thuật trải phổ mà tính bền vững của mô hình đ-ợc nâng cao rõ rệt đối với các thao tác xử lý và biến đổi tín hiệu. Qua đó, dung hoà đ-ợc hai yêu cầu cơ bản là tính bền vững và dung l-ợng tin một cách tốt nhất. Do vậy, đồ án hoàn toàn có tính khả thi khi thiết kế thời gian thực, và có ý nghĩa rất quan trọng trong lĩnh vực bảo vệ bản quyền, sở hữu trí tuệ, không những đ-ợc áp dụng trong th-ơng mại mà còn mở ra một h-ớng tiếp cận mới cho vấn đề bảo vệ thông tin liên lạc trong quân sự.

Tuy vậy, mô hình đề xuất chỉ mới giấu đ-ợc chuỗi tin “thụ động”, nghĩa là chỉ nhúng đ-ợc một chuỗi tin cho tr-ớc vào một tệp audio có sẵn, và ch-a thực hiện trên nhiều loại tín hiệu gốc khác nhau. Do vậy, h-ớng phát triển tiếp theo của đồ án là tìm cách tối -u các tham số dùng trong bộ trải phổ, tiến hành thực nghiệm để xây dựng biểu đồ BER, và đánh giá hiệu quả mô hình trong tr-ờng hợp xuất hiện fading, xuyên nhiễu do truyền đa

tia trên kênh. Đồng thời, xây dựng mô hình giấu tin trong tín hiệu thoại, tín hiệu truyền thanh phục vụ cho mục đích quốc phòng, an ninh.

Cuối cùng cho phép tôi xin chân thành cảm ơn sự chỉ bảo, h-ớng dẫn tận tình của TS. Nguyễn Thế Hiếu và Th.S Mai Quốc Khánh, cùng các thầy trong Khoa Vô tuyến điện tử, các thầy thuộc Phòng thí nghiệm trọng điểm an toàn thông tin, Viện điện tử viễn thống, Trung tâm KHKT & CN quân sự đã giúp tôi hoàn thiện đồ án tốt nghiệp.

Tài liệu tham khảo

Tài liệu tiếng Việt

[1] Th.S Nguyễn Thuý Anh, T.S Trần Trung Dũng: Lý thuyết truyền tin. Nhà xuất bản khoa học và kỹ thuật.

[2] PGS. TS Nguyễn Quốc Bình, KS. Hoàng Huy Quân: Các hệ thống thông

tin hiện nay trình bày thông qua sử dụng MATLAB. Học viện Kỹ thuật quân

sự 2003.

[3] TS. Nguyễn Phạm Anh Dũng: Lý thuyết trải phổ và ứng dụng. Nhà xuất bản b-u điện 2000.

[4] TS. Nguyễn Lâm Đông: Nhập môn xử lý tín hiệu số. Nhà xuất bản khoa học và kỹ thuật 2004.

Tài liệu tiếng Anh

[5] B.C..J Moore: An introduction to the Psychology of Hearing, Academic Press. 2001

[6] Nedeljko Cvejic: Algorithms for Audio watermarking and

Steganography (University of Oulu, Finland) 2004

[7] Juergen Seitz: Digital watermarking for Digital media (University of Cooperative Education Heidenheim, Germany) 2005

[8] Michel Arnold, Martin Schmucker: Techiques and Application of

Digital watermarking and Content Protection (Artech house, Computer

security series) 2005

[9] Stefan Katzenbeisser and P. Petitcolas: Information Hiding Techniques

for Steganography and Digital watermarking (Artech house, Computer

Security series) 2002

[10] Chun – Shien Lu, Multimedia Security: Steganography and Digital

watermarking Techniques for Protection of Intellectual Property (Idea

[11] Ingemar J.Cox: Secure Spread spectrum Watermarking for Multimedia

(NEC Research Institute) 2001

[12] L. R. Rabiner, and R. W. Schafer: Digital Processing of Speech Signals

(Prentice Hall, New Jersey) 2000

[13] Hyoung Joong Kim: Audio Watermarking Techniques. Kangwon National University, Korea. 2003

[14] Kirovski and Malvar: Robust spread spectrum audio watermarking. IEEE International Conference on Acoustics, Speech and Signal Processing. [15] Petrovic: Audio signal watermarking based on replica modulation. 2001

[16] Yeo I and Kim H: Modified patchwork algorithm, a novel audio

watermaking scheme. IEEE Transactions on Speech and Audio processing.

[17] http:// watermarkingworld.com [18] http:// Alphatech.com [19] http://GoldWave.com [20] http://Matworks.com [21] http://Herosoft.com [22] http://research.microsoft.com

Phụ lục

Phụ lục1: Ch-ơng trình mô phỏng MATLAB

% phan tao tin hieu gia tap am va nhung tin

clear all close all clc

%Nhap du lieu

expname=input('Chuong trinh thu nghiem so =','s');

wavname=input('Ten tep am thanh dinh dang .*wav =','s'); wstring=input('Chuoi tin mat can nhung (toi da 6 ky tu) =','s'); attn=input('Muc suy giam cua chuoi tin giau (dB)= -','s'); attn=str2num(attn); %Kiem tra gia tri cua attn

attn=-abs(attn); %khoi tao thoi gian tic; [data,FS,BITS]=wavread(wavname); data=data(1:length(data)/1); BLOCK=1024*round(FS/11025); LENGTH=length(data); OVERLAP=round(0.75*BLOCK);

FRAMES=ceil((LENGTH - OVERLAP)/ (BLOCK - OVERLAP)); output=zeros(1,LENGTH); ZT=ceil(barkme2(FS/2)); B=(10.^(spreadfn(1,8)/10)); Pz = zeros(1,ZT); vlimit=zeros(2,ZT); vz=zeros(1,BLOCK/2); vf=zeros(1,BLOCK/2); vlimit(1,1)=1; vlimit(2,ZT)=BLOCK/2; for ii=1:BLOCK/2 f=((ii-1)*FS)/BLOCK; z=barkme2(f); if z==0 z=barkme2(0.5*FS/BLOCK); end vf(ii)=f; vz(ii)=z; Pz(ceil(z))=Pz(ceil(z))+1;

if ii>1 & floor(z)-floor(vz(ii-1))>0 vlimit(2,ceil(z)-1)=ii-1;

vlimit(1,ceil(z))=ii; end

end

% Tao chuoi tin giau bang phuong phap trai pho f0 = 3500; % Tan so trung tam Bo dieu che BPSK m = 5; % He so lap ma

I = 9;

H = 27; % Kich thuoc ma tran Interleaver header = ones(1,24*m); Chuoi Header Fw=100; % Toc do bit cua chuoi tin giau Tw=1/Fw; % Thoi gian bit du lieu

Fd= Fw*m; % tan so du lieu Td=1/Fd;

Td_samples=FS/Fd; N=15; % PG

N=N/m; % dieu chinh thich nghi voi ma lap Fc=Fd*N; % Tan so cua chuoi PN (c)

Tc=1/Fc;

Tc_samples =FS/Fc; temp=strcat(wstring'); watermark(1:6)=temp(1:6); % Chuyen tin mat vao dong bit w=datagen(watermark);

w_length=length(w); % Do dai chuoi bit w

wR=[zeros(1,w_length*m) ones(1,I*H - w_length*m)]; %Lap ma va chen for ii=1:length(w),

wR(m*(ii-1)+1:m*ii)=w(ii); end

% Ma tran interleaver

matrix=zeros(H,I); % H dong, I cot for ii=1:I,

matrix(1:H,ii)=wR(H*(ii-1)+1:H*ii); % viet vao theo cot end;

wI=zeros(1,H*I); for ii=1:H,

wI(I*(ii-1)+1:I*ii)=matrix(ii,1:I); % Doc ra boi cac dong end

%Chen header

d= [header wI]; % chuoi bit du lieu da trai pho d_length=length(d);

%Trai pho va dieu che

dt_length=floor(Td_samples*d_length); dt=d(ceil([1:dt_length]/Td_samples));

% dieu che BPSK

st=dt.*cos(2*pi*[1:dt_length]*f0/FS); % tin hieu dieu che BPSK % Tao chuoi PN trong cung mot thoi diem

load pn_output; % chuoi PN % trai pho chuoi tin hieu pn_random=out1(1:3000); pn_length=length(pn_random); for i=1:pn_length temp=pn_random(i); if temp>0 pn_random(i)=1; else pn_random(i)=-1; end end PN=pn_random; PN_length=length(PN); PN=PN(ceil((mod([1:dt_length],PN_length*Tc_samples)+0.1)/Tc_samples )); xt = st.*PN; xt=[zeros(1,BLOCK/2) xt zeros(1,BLOCK/2)]; xt_length=length(xt);

xt_FRAMES=ceil((xt_length - OVERLAP)/(BLOCK - OVERLAP)); for kk =1:xt_FRAMES,

if kk==xt_FRAMES % kiem tra block cuoi pos1=round((kk-1)*(BLOCK-OVERLAP))+1; pos2=xt_length; frame=[xt([pos1:pos2]) zeros(1,BLOCK-(pos2-pos1)-1)]; else pos1=round((kk-1)*(BLOCK-OVERLAP))+1; pos2=round(kk*(BLOCK-OVERLAP)+OVERLAP); frame=xt([pos1:pos2]); end

% Bien doi sang mien tan so h=hamming(BLOCK); h=h.';

XT(kk,:)=fft(frame.*h); end

% Ket thuc tao tin hieu gia tap am

% xu ly tep audio

p=sin(2*pi*[1:BLOCK]*4000/FS)*(1/(2^BITS)); TH=max(abs(fft(p)).^2);

tone=[zeros(1,FS*.4) sin(2*pi*500*[1:FS*.2]/FS) zeros(1,FS*.4)]; T_POSITION=[];

T_REMOVED=[]; pcount=1;

% Ket thuc viec xac dinh vi tri giau tin warning off

%VONG LAP CHINH: xu ly tin hieu am thanh data=data.';

for kk=1:FRAMES, % hien ban tin if mod(kk,50)==0

disp(sprintf('Dang xu ly block # %d trong tong so %d Thoi gian =%f giay',kk,FRAMES,toc));

end

% phan doan frame if kk==FRAMES

pos1=round((kk-1)*(BLOCK-OVERLAP))+1; pos2=LENGTH;

s=[data([pos1:pos2]) zeros(1,BLOCK -(pos2-pos1)-1)]; else pos1=round((kk-1)*(BLOCK-OVERLAP))+1; pos2=round(kk*(BLOCK-OVERLAP)+OVERLAP); s=data([pos1:pos2]); end % windowing hm=hamming(BLOCK).'; sw=s.*hm; Sw=fft(sw); Sp=abs(Sw).^2;

%Tinh nang luong tren tung Critical band Spz=zeros(1,ZT);

for ii=1:ZT,

spz(ii)=sum(Sp([vlimit(1,ii):vlimit(2,ii)])); end

%Ham trai tren tung critical band Sm=conv(Spz,B);

temp=round(length(B)/2); Sm=Sm([temp:ZT+temp-1]); %Tinh nguong nguy trang %Tinh SFM

Gm=prod(Spz)^(1/ZT); Am=sum(abs(Spz))*(1/ZT); % SFM in dB

SFM=10*log10(Gm/Am); SFMmax=-60;

alpha=min(SFM/SFMmax,1); % Do dich nang luong nguy trang

O=alpha*(14.5+[1:ZT]+0.5)+(1-alpha)*5.5; % Nguong nguy trang tho

Traw=10.^(log10(Sm)-(O/10)); % Chuan hoa nguong nguy trang tho Tnorm=Traw./Pz;

T=Tnorm;

below=find(Tnorm<TH); T(below)=TH;

%Lam tron nhieu above=[];

for ii=1:ZT,

above=[above (find(Sp(vlimit(1,ii):vlimit(2,ii))>T(ii)) + vlimit(1,ii)-1)]; end;

removed=(BLOCK/2)-length(above);

fprintf(fid,'\n sample %d bi go trong tong so %d thanh phan [%0.2f%%]',kk,removed,200*removed/BLOCK);

T_REMOVED(kk)=removed; %Khoi tao Swnew

Swnew=zeros(1,BLOCK/2); Swnew(above)=Sw(above);

Swnew=[Sw(1) Swnew(2:BLOCK/2) Sw(BLOCK/2 +1) conj(fliplr(Swnew(2:BLOCK/2)))]; xframe=mod(kk,xt_FRAMES); if xframe==0 xframe=xt_FRAMES; end if xframe==1 T_POSITION(pcount)=pos1+BLOCK/2; pcount=pcount+1; end; % Tao Xwnew Xwnew=XT(xframe,1:BLOCK/2); Xwnew(above)=0; Xwnew(1)=0; % he so Fz A=10^(attn/20); Fz=[]; for ii=1:ZT temp=max(abs(Xwnew(vlimit(1,ii):vlimit(2,ii))));

if temp==0 Fz(ii)=0; else Fz(ii)=A*sqrt(T(ii))/temp; end % Ap dung he so Xwnew(vlimit(1,ii):vlimit(2,ii))=Xwnew(vlimit(1,ii):vlimit(2,ii))*Fz(ii); end

Xwnew=[0 Xwnew(2:BLOCK/2) 0 conj(fliplr(Xwnew(2:BLOCK/2)))]; OUT=Xwnew + Swnew;

out=real(ifft(OUT)); % Cong vao vecto dau ra

output([pos1:pos2])=output([pos1:pos2])+out(1:(pos2-pos1)+1); end % KET THUC VONG LAP

% hien so luong block xu ly va thoi gian xu ly

disp('============PHAN PHAT========================='); disp(sprintf('%s',datestr(now,0)));

disp(sprintf('\n Ten thu nghiem so: %s',expname)); disp(sprintf('\n Tep am thanh xu ly: %s.wav',wavname)); disp(sprintf('\n Chuoi tin giau: %s', wstring));

disp(sprintf('\n Do suy giam tin hieu danh dau [dB]=%0.2f',attn));

disp('==============================================='); disp('');

disp('==============================================='); disp(sprintf('So block da xu ly = %d trong tong so %d Tong thoi gian = %f giay',kk,FRAMES,toc));

disp('==============================================='); disp('');

fprintf(fid,'\n========================================='); fprintf(fid,'\nBlock da xu ly = %d cua %d Tong thoi gian = %f

giay',kk,FRAMES,toc);

fprintf(fid,'\n========================================='); fclose('all');

% Luu gia tri dau ra

outname=strcat(expname,num2str(abs(attn)),'.wav'); wavwrite(output/2,FS,outname); outname=strcat('Test',expname,num2str(abs(attn)),'.wav'); wavwrite([tone output/2],FS,outname); save(strcat(expname,num2str(abs(attn))),'output','FS','BITS','f0','N','m','I','H', 'header','Fd','Fw','w_length','w','d_length','watermark','T_POSITION','T_RE MOVED'); warning on

% PHAN CHIET RUT TIN MAT clear all close all clc disp(' '); disp('================================================'); disp('PHAN KHOI PHUC CHUOI TIN MAT');

disp('================================================'); %Nhap du lieu

expname=input('Thu nghiem chiet rut lan thu:','s'); wavname=input('Ten cua tep audio phan tich:','s'); % Khoi tao thoi gian

tic;

% xu ly tep audio if ~isempty(wavname)

[data,FS,BITS]=wavread(wavname); data=data.';

disp(sprintf('%s.wav voi tan so FS = %d',wavname,FS)); else

data=output; end

d_length_original=d_length; % de tranh bi viet de BLOCK=1024*round(FS/11025);

LENGTH=length(data);

OVERLAP=round(0.75*BLOCK);

FRAMES=ceil((LENGTH-OVERLAP)/(BLOCK-OVERLAP)); % tin hieu dau ra tren mien thoi gian

resoutput=zeros(1,LENGTH); %Khoi tao mien BARK

ZT=ceil(barkme2(FS/2)); B=(10.^(spreadfn(1,8)/10));

%Thiet lap cac moi quan he giu tan so va ti le Bark Pz=zeros(1,ZT); vlimit=zeros(2,ZT); vz=zeros(1,BLOCK/2); vf=zeros(1,BLOCK/2); vlimit(1,1)=1; vlimit(2,ZT)=BLOCK/2; for ii=1:BLOCK/2

f=((ii-1)*FS)/BLOCK; % bien doi giua chi so --> tan so z=barkme2(f); % tu tan so ---> mien z

z=barkme2(0.5*FS/BLOCK); end

vf(ii)=f; % Tan so vz(ii)=z; % bark

Pz(ceil(z))=Pz(ceil(z))+1; % so diem tren critical band

% Neu khong co su thay doi so don vi cua z, thay doi critical band if ii>1 & floor(z)-floor(vz(ii-1))>0

vlimit(2,ceil(z)-1)=ii-1; vlimit(1,ceil(z))=ii; end

end

% Khoi tao ham do tin hieu

p=sin(2*pi*[1:BLOCK]*4000/FS)*(1/(2^BITS)); TH=max(abs(fft(p)).^2); %VONG LAP XU LY warning off for kk=1:FRAMES, if mod(kk,50)==0

disp(sprintf('Dang xu ly frame # %d cua %d Thoi gian: %f giay',kk,FRAMES,toc));

end;

if kk==FRAMES

pos1=round((kk-1)*(BLOCK-OVERLAP))+1; pos2=LENGTH;

s=[data([pos1:pos2]) zeros(1,BLOCK -(pos2-pos1)-1)]; else

pos1=round((kk-1)*(BLOCK-OVERLAP))+1;

pos2=round(kk*(BLOCK-OVERLAP)+OVERLAP); s=data([pos1:pos2]);

end;

h=hamming(BLOCK).'; % ham hamming sw=s.*h;

Sw=fft(sw); Sp=abs(Sw).^2;

% Tinh nang luong tren tung Critical band Spz=zeros(1,ZT);

for ii=1:ZT,

Spz(ii)=sum(Sp([vlimit(1,ii):vlimit(2,ii)])); end

% Ham trai tren tung critical band Sm=conv(Spz,B);

temp=round(length(B)/2); Sm=Sm([temp:ZT+temp-1]);

%Tinh nguong nguy trang Gm=prod(Spz)^(1/ZT); Am=sum(abs(Spz))*(1/ZT); % SFM (dB) SFM=10*log10(Gm/Am); SFMmax=-60; alpha=min(SFM/SFMmax,1); O=alpha*(14.5+[1:ZT]+0.5)+(1-alpha)*5.5; Traw=10.^(log10(Sm)-(O/10)); Tnorm=Traw./Pz; T=Tnorm; below=find(Tnorm<TH); T(below)=TH; belows=[]; for ii=1:ZT,

belows = [belows (find(Sp(vlimit(1,ii):vlimit(2,ii)) <= T(ii)) + vlimit(1,ii)-1)];

end

%Tim thanh phan thong tin du thua R=zeros(1,BLOCK/2);

R(belows) = Sw(belows);

%Luong tu hoa thanh phan thong tin du thua Fz=[]; for ii=1:ZT temp=max(abs(R(vlimit(1,ii):vlimit(2,ii)))); if temp==0 Fz(ii)=0; else Fz(ii)=1/temp; end R(vlimit(1,ii):vlimit(2,ii))=R(vlimit(1,ii):vlimit(2,ii))*Fz(ii); end

R=[Sw(1) R(2:BLOCK/2) Sw(BLOCK/2+1) conj(fliplr(R(2:BLOCK/2)))]; res=real(ifft(R));

% Cong vao vecto dau ra

resoutput([pos1:pos2])=resoutput([pos1:pos2])+res(1:(pos2-pos1)+1); end

res_data=resoutput;

% KET THUC VONG LAP CHINH % DONG BO HEADER

f0 = 3500; % Tan so trung tam Bo dieu che BPSK m = 5; % He so lap ma

H = 27; % Kich thuoc ma tran interleaver header = ones(1,24*m);

%load pn2;

Fw=100; % Toc do bit cua chuoi tin giau

Một phần của tài liệu Nghiên cứu phương pháp che giấu thông tin trong tín hiệu âm thanh (Trang 92)

Tải bản đầy đủ (PDF)

(118 trang)