📄 zhifantu.m
字号:
%edit by yinxiong 20070620
%抗TSM攻击的音频水印算法的研究 (In DWT Domain)
function y=zhifantu(a)
% a='D:\zaiti\抗时间伸缩变换音频水印算法In DWT Domain\water.wav';
% %计算音频文件的直方图
% [yCarrier,SampleCarrier,SampleBit]=wavread(a);
% YCarrier=yCarrier*2^SampleBit;
%
% %规定每个段长的尺寸为M(直方图的BIN的尺寸M是相同的)
% M=300;
% %总共音频所拥有的BIN数目记为L
% % L=fix(2^SampleBit)/M);
% if mod(2^SampleBit,M)==0
% L=(2^(SampleBit+1))/M;
% else
% L=fix((2^(SampleBit+1))/M)+1;
% end
%
% % %音频的幅度总共分为L段,
% % L=300;
% % %每段的幅度区间的值为M
% % M=2^(SampleBit+1)/L;
%
% %用数组zf来保存直方图中的纵坐标
% m=0;
% for i=1:L
% j1=-2^(SampleBit)+(i-1)*M;
% j2=-2^(SampleBit)+i*M-1;
% for k=1:length(YCarrierSortCa3)
% if (YCarrierSortCa3(k,1)<j2)
% if (YCarrierSortCa3(k,1)>=j1)
% m=m+1;
% end
% end
% zf(i)=m;
% end
% m=0;
% end
% y=zf;
% n=sum(zf);
% i=1:L;
% % c=zf(1,i);
% % j=i/2^(SampleBit);
% j=i*M;
% plot(j,zf);
% title('a所代表的直方图');
% axis([0 2*10^5 0 2*10^3]);
% grid on;
% function y=zhifantu(a)
%计算音频文件的直方图
[yCarrier,SampleCarrier,SampleBit]=wavread(a);
YCarrier=yCarrier*2^SampleBit;
%将音频文件的幅度值进行排序
[YCarrierSort,IXSort]=sort(YCarrier);
%对排序后的音频文件进行小波分解,用的小波基为'db1',分解层数为3
[YCarrierSortCa1,YCarrierSortCd1]=dwt(YCarrierSort,'db1');
[YCarrierSortCa2,YCarrierSortCd2]=dwt(YCarrierSortCa1,'db1');
[YCarrierSortCa3,YCarrierSortCd3]=dwt(YCarrierSortCa2,'db1');
%规定每个段长的尺寸为M(直方图的BIN的尺寸M是相同的)
M=300;
%总共音频所拥有的BIN数目记为L
% L=fix(2^SampleBit)/M);
if mod(3*10^5,M)==0
L=(3*10^5)/M;
else
L=fix((3*10^5)/M)+1;
end
%用数组zf来保存直方图中的纵坐标
m=0;
for i=1:L
j1=-1.5*10^5+(i-1)*M;
j2=-1.5*10^5+i*M-1;
for k=1:length(YCarrierSortCa3)
if (YCarrierSortCa3(k,1)<=j2)
if (YCarrierSortCa3(k,1)>=j1)
m=m+1;
end
end
zf(i)=m;
end
m=0;
end
y=zf;
n=sum(zf);
i=1:L;
% c=zf(1,i);
j=i*M;
plot(j,zf);
title('所代表的直方图');
axis([0 3*10^5 0 10^3]);
grid on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -