是这样的,如果你再程序开始添加holdon这个的画,表示这之后的每一次作图都保留以前的图,这样就可以连续画图了
反之holdoff,表示打开这个之后,每次画图,删除以前的图,
clc;clear
A=[
11000 6 8 29 21 0 9 47 147
11001 6 8 29 21 0 10 89 149
11002 6 8 29 21 0 12 31 142
11003 6 8 29 21 0 13 71 146
11004 6 8 29 21 0 15 12 149
11005 6 8 29 21 0 16 52 151
11006 6 8 29 21 0 17 92 146
11007 6 8 29 21 0 19 32 144
11008 6 8 29 21 0 20 73 148
11009 6 8 29 21 0 22 14 148]
t=A(:,7)1000+A(:,8) %ms
I=A(:,9)
[Imax,idmax]=max(I)
[Imin,idmin]=min(I)
plot(t,I,'o-')
%在噪声环境下语音信号的增强
%语音信号为读入的声音文件
%噪声为正态随机噪声
sound=wavread('c12345wav');
count1=length(sound);
noise=005randn(1,count1);
for i=1:count1
signal(i)=sound(i);
end
for i=1:count1
y(i)=signal(i)+noise(i);
end
%在小波基'db3'下进行一维离散小波变换
[coefs1,coefs2]=dwt(y,'db3'); %[低频 高频]
count2=length(coefs1);
count3=length(coefs2);
energy1=sum((abs(coefs1))^2);
energy2=sum((abs(coefs2))^2);
energy3=energy1+energy2;
for i=1:count2
recoefs1(i)=coefs1(i)/energy3;
end
for i=1:count3
recoefs2(i)=coefs2(i)/energy3;
end
%低频系数进行语音信号清浊音的判别
zhen=160;
count4=fix(count2/zhen);
for i=1:count4
n=160(i-1)+1:160+160(i-1);
s=sound(n);
w=hamming(160);
sw=sw;
a=aryule(sw,10);
sw=filter(a,1,sw);
sw=sw/sum(sw);
r=xcorr(sw,'biased');
corr=max(r);
%为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0
if corr>=08
output1(i)=0;
elseif corr<=01
output1(i)=1;
end
end
for i=1:count4
n=160(i-1)+1:160+160(i-1);
if output1(i)==1
switch abs(recoefs1(i))
case abs(recoefs1(i))<=0002
recoefs1(i)=0;
case abs(recoefs1(i))>0002 & abs(recoefs1(i))<=0003
recoefs1(i)=sgn(recoefs1(i))(0003abs(recoefs1(i))-0000003)/0002;
otherwise recoefs1(i)=recoefs1(i);
end
elseif output1(i)==0
recoefs1(i)=recoefs1(i);
end
end
%对高频系数进行语音信号清浊音的判别
count5=fix(count3/zhen);
for i=1:count5
n=160(i-1)+1:160+160(i-1);
s=sound(n);
w=hamming(160);
sw=sw;
a=aryule(sw,10);
sw=filter(a,1,sw);
sw=sw/sum(sw);
r=xcorr(sw,'biased');
corr=max(r);
%为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0
if corr>=08
output2(i)=0;
elseif corr<=01
output2(i)=1;
end
end
for i=1:count5
n=160(i-1)+1:160+160(i-1);
if output2(i)==1
switch abs(recoefs2(i))
case abs(recoefs2(i))<=0002
recoefs2(i)=0;
case abs(recoefs2(i))>0002 & abs(recoefs2(i))<=0003
recoefs2(i)=sgn(recoefs2(i))(0003abs(recoefs2(i))-0000003)/0002;
otherwise recoefs2(i)=recoefs2(i);
end
elseif output2(i)==0
recoefs2(i)=recoefs2(i);
end
end
%在小波基'db3'下进行一维离散小波反变换
output3=idwt(recoefs1, recoefs2,'db3');
%对输出信号抽样点值进行归一化处理
maxdata=max(output3);
output4=output3/maxdata;
%读出带噪语音信号,存为'101wav'
wavwrite(y,5500,16,'c101');
%读出处理后语音信号,存为'102wav'
wavwrite(output4,5500,16,'c102');
题主是否想询问“matlab生成的exe很大的原因”?matlab生成的exe很大的原因有依赖库文件、数据文件、代码结构、程序功能。
1、依赖库文件:MATLAB程序通常需要依赖许多库文件,包括MEX文件、DLL文件、MATLAB运行时库等。这些文件通常很大,会导致生成的exe文件也很大。解决方法是尽可能减少程序的依赖库文件,如果有必要可以考虑使用静态链接库。
2、数据文件:MATLAB程序可能需要使用大量的数据文件,例如训练数据、测试数据等。这些数据文件通常很大,会导致生成的exe文件也很大。解决方法是尽可能减少程序使用的数据文件大小,可以考虑使用压缩算法对数据文件进行压缩。
3、代码结构:MATLAB程序的代码结构可能会影响生成的exe文件大小。例如,一些不必要的代码、变量和函数可能会导致生成的exe文件大小增加。解决方法是对程序进行优化,删除不必要的代码、变量和函数。
4、程序功能:MATLAB程序的功能也会影响生成的exe文件大小。一些复杂的功能和算法通常需要使用更多的代码和依赖库文件,会导致生成的exe文件也很大。解决方法是尽可能简化程序的功能和算法,避免使用过多的依赖库文件。
以上就是关于matlab程序画图全部的内容,包括:matlab程序画图、如何用matlab做一个提取峰值的程序、谁有关于语音增强的MATLAB的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)