err帧和5.m

来自「各种SVM分类算法」· M 代码 · 共 87 行

M
87
字号
clear all
 for i=1:20
   fname=sprintf('D:\\样本\\speech with music\\%d.wav',i);
   x=wavread(fname);
   x=x(:,1);
   [c,l]=wavedec(x,3,'db4');
   ca=appcoef(c,l,'db4',3);%近似系数
   x=ca;
   enframex=enframe(x,128,64);%对信号x分帧处理,每帧有128个采样点,相邻帧之间有50%的叠加率
   [row,col]=size(enframex);%返回行,列,每一行代表一帧,每一列表示1到128个采样点
   A=abs(enframex).^2;
   for j=1:row
     energy(j)=sum(A(j,:));
   end
    se=0;
   for j=1:row
       se=se+energy(j);
   end
   for j=1:row
       p(j)=energy(j)./se;
   end
   s=0;
   for j=1:row
     s=s+p(j).*log2(p(j));
   end
   Err=-s;
   swmErrzhuzhi(i,1)=mean(Err);
 end
  swmErrzhuzhi

for i=1:20
   fname=sprintf('D:\\样本\\speech\\%d.wav',i);
   x=wavread(fname);
   x=x(:,1);
   [c,l]=wavedec(x,3,'db4');
   ca=appcoef(c,l,'db4',3);%近似系数
   x=ca;
   enframex=enframe(x,128,64);%对信号x分帧处理,每帧有128个采样点,相邻帧之间有50%的叠加率
   [row,col]=size(enframex);%返回行,列,每一行代表一帧,每一列表示1到128个采样点
   A=abs(enframex).^2;
   for j=1:row
     energy(j)=sum(A(j,:));
   end
   se=0;
   for j=1:row
       se=se+energy(j);
   end
   for j=1:row
       p(j)=energy(j)./se;
   end
   s=0;
   for j=1:row
     s=s+p(j).*log2(p(j));
   end
   Err=-s;
  speechErrzhuzhi(i,1)=mean(Err);
end
  speechErrzhuzhi

for i=1:20
   fname=sprintf('D:\\样本\\music\\%d.wav',i);
   x=wavread(fname);
   x=x(:,1);
   [c,l]=wavedec(x,3,'db4');
   ca=appcoef(c,l,'db4',3);%近似系数
   x=ca;
   enframex=enframe(x,128,64);%对信号x分帧处理,每帧有128个采样点,相邻帧之间有50%的叠加率
   [row,col]=size(enframex);%返回行,列,每一行代表一帧,每一列表示1到128个采样点
   A=abs(enframex).^2;
   for j=1:row
     energy(j)=sum(A(j,:));
   end
   se=0;
   for j=1:row
       se=se+energy(j);
   end
   for j=1:row
       p(j)=energy(j)./se;
   end
   s=0;
   for j=1:row
     s=s+p(j).*log2(p(j));
   end
   Err=-s;
   musicErrzhuzhi(i,1)=mean(Err);
end
   musicErrzhuzhi

⌨️ 快捷键说明

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