可这样改:
[a,fs]=audioread('agr_in_meeting.wav');
L=length(a);
m=max(a);
%for i=i:L;
for i=1:L;
a(i)=a(i)/m;
end
m=max(a);
n=min(a);
ht=(m+n)/2;
for i=1:L
a(i)=a(i)-ht;
end
figure(1);
subplot(2,1,1);
plot(a,'k');
%axis([0,1711,-0.08,-0.074]);
title('中心销波前语音波形');
xlabel('样点数');
ylabel('幅度');
coeff=0.4;
th0=max(a)*coeff;
for k=1:L
if a(k)>=th0
a(k)=a(k)-th0;
elseif a(k)<=(-th0);
a(k)=a(k)+th0;
else
a(k)=0;
end
end
m=max(a);
for i=1:L
a(i)=a(i)/m;
end
subplot(2,1,2);
plot(a,'k');
%axis([0,1711,-0.079,-0.075]);
title('中心销波后语音波形');
xlabel('样点数');
ylabel('幅度');
[b,count]=audioread('agr_in_meeting.wav');
N=320;
A=zeros(1,320);
for k=1:320
sum=0;
for m=1:N
sum=sum+b(m)*b(m+k-1);
end
A(k)=sum;
end
B=zeros(1,320);
for k=1:320
B(k)=A(k)/(A(1)+eps);
end
figure(2);
subplot(2,1,1);
plot(B,'k');
title('中心削波前修正自相关');
xlabel('延时k');
ylabel('幅度');
%axis([0,320,-1,1]);
N=320;
A=zeros(1,320);
for k=1:320
sum=0;
for m=1:N
sum=sum+a(m)*a(m+k-1);
end
A(k)=sum;
end
C=zeros(1,320);
for k=1:320
C(k)=A(k)/(A(1)+eps);
end
subplot(2,1,2);
plot(C,'k');
title('中心削波后修正自相关');
xlabel('延时k');
ylabel('幅度');
%axis([0,320,-1,1]);