求助matlab大神,matlab小白
[a,fs]=audioread('agr_in_meeting.wav');L=length(a);m=max(a);fori=i:L;a(i)=a(i)/m;endm...
[a,fs]=audioread('agr_in_meeting.wav');
L=length(a);
m=max(a);
for i=i: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=[];
for k=1:320
sum=0;
for m=1:N
sum=sum+b(m)*b(m+k-1);
end
A(k)=sum;
end
for k=1:320
B(k)=A(k)/A(1);
end
figure(2);
subplot(2,1,1);
plot(B,'k');
title('中心削波前修正自相关');
xlabel('延时k');
ylabel('幅度');
axis([0,320,-1,1]);
N=320;
A=[];
for k=1:320
sum=0;
for m=1:N
sum=sum+a(m)*a(m+k-1);
end
A(k)=sum;
end
for k=1:320
C(k)=A(k)/A(1);
end
subplot(2,1,2);
plot(C,'k');
title('中心削波后修正自相关');
xlabel('延时k');
ylabel('幅度');
axis([0,320,-1,1]);
这是中心削波及削波前后修正自相关的程序,能编译通过,可在运行时,a的值不知为什么在运行完第一部分的第个一图的程序后莫名的都变成了零,而且两部分的第二个图都不显示,怎么回事,求助大神,是程序不对吗 展开
L=length(a);
m=max(a);
for i=i: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=[];
for k=1:320
sum=0;
for m=1:N
sum=sum+b(m)*b(m+k-1);
end
A(k)=sum;
end
for k=1:320
B(k)=A(k)/A(1);
end
figure(2);
subplot(2,1,1);
plot(B,'k');
title('中心削波前修正自相关');
xlabel('延时k');
ylabel('幅度');
axis([0,320,-1,1]);
N=320;
A=[];
for k=1:320
sum=0;
for m=1:N
sum=sum+a(m)*a(m+k-1);
end
A(k)=sum;
end
for k=1:320
C(k)=A(k)/A(1);
end
subplot(2,1,2);
plot(C,'k');
title('中心削波后修正自相关');
xlabel('延时k');
ylabel('幅度');
axis([0,320,-1,1]);
这是中心削波及削波前后修正自相关的程序,能编译通过,可在运行时,a的值不知为什么在运行完第一部分的第个一图的程序后莫名的都变成了零,而且两部分的第二个图都不显示,怎么回事,求助大神,是程序不对吗 展开
1个回答
展开全部
可这样改:
[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]);
[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]);
更多追问追答
追问
可否有时间告知下原程序存在的问题是什么
追答
原程序存在的问题主要是axis设置不合理,使图像出不来。我把axis这几句全注释掉,图就出来了。
东莞大凡
2024-08-07 广告
2024-08-07 广告
标定板认准大凡光学科技,专业生产研发厂家,专业从事光学影像测量仪,光学投影测量仪.光学三维测量仪,光学二维测量仪,光学二维测量仪,光学三维测量仪,光学二维测量仪.的研发生产销售。东莞市大凡光学科技有限公司创立于 2018 年,公司总部坐落于...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询