matlab程序画图

matlab程序画图,第1张

是这样的,如果你再程序开始添加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的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10091102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存