求助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 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询