?? 過零率.m
字號:
clear all
for k=1:30
fname=sprintf('D:\\study\\音頻采樣\\speech\\%d.wav',k);
x=wavread(fname);
x=x(:,1);
y=enframe(x,128,64);
zcr=zeros(size(y,1),1);
delta=0.02;
for i=1:size(y,1)
x=y(i,:);
for j=1:length(x)-1
if x(j)*x(j+1)<0 & abs(x(j)-x(j+1))>delta
zcr(i)=zcr(i)+1;
end
end
end
z=zcr;
dtm=zeros(size(z));%差分函數
for i=3:size(z,1)-2
dtm(i,:)=-2*z(i-2,:)-z(i-1,:)+z(i+1,:)+2*z(i+2,:);
end
dtm=dtm/3;
num=0;
for i=1:size(y,1)
if dtm(i)==0
num=num+1;
end
end
speechzcr(k,1)=num;
end
speechzcr
clear all
for k=1:30
fname=sprintf('D:\\study\\音頻采樣\\music\\%d.wav',k);
x=wavread(fname);
x=x(:,1);
y=enframe(x,128,64);
zcr=zeros(size(y,1),1);
delta=0.02;
for i=1:size(y,1)
x=y(i,:);
for j=1:length(x)-1
if x(j)*x(j+1)<0 & abs(x(j)-x(j+1))>delta
zcr(i)=zcr(i)+1;
end
end
end
z=zcr;
dtm=zeros(size(z));%差分函數
for i=3:size(z,1)-2
dtm(i,:)=-2*z(i-2,:)-z(i-1,:)+z(i+1,:)+2*z(i+2,:);
end
dtm=dtm/3;
num=0;
for i=1:size(y,1)
if dtm(i)==0
num=num+1;
end
end
musiczcr(k,1)=num;
end
musiczcr
clear all
for k=1:30
fname=sprintf('D:\\study\\音頻采樣\\speechwithmusic\\%d.wav',k);
x=wavread(fname);
x=x(:,1);
y=enframe(x,128,64);
zcr=zeros(size(y,1),1);
delta=0.02;
for i=1:size(y,1)
x=y(i,:);
for j=1:length(x)-1
if x(j)*x(j+1)<0 & abs(x(j)-x(j+1))>delta
zcr(i)=zcr(i)+1;
end
end
end
z=zcr;
dtm=zeros(size(z));%差分函數
for i=3:size(z,1)-2
dtm(i,:)=-2*z(i-2,:)-z(i-1,:)+z(i+1,:)+2*z(i+2,:);
end
dtm=dtm/3;
num=0;
for i=1:size(y,1)
if dtm(i)==0
num=num+1;
end
end
swmzcr(k,1)=num;
end
swmzcr
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -