matlab实验心得体会

发布时间:2020-01-06 03:07:24

matlab实验心得体会

后来发现PB写的很好,而且还能够把前面一段没有噪音的部分给保存下来,我就看了他的代码,有几点体会:

1.将代码写在.m文件里,这样只需要该文件里的就可以而不必每次都去敲命令;

2.PB对于vector使用的比较熟,我一开始也想到能不能只将后面一段由噪声的给滤掉而保留以前的,但是没想到什么方法,看了PB的代码发现,他对于vector了解的比较深刻,我上面的想法最后只使用一句代码就搞定了

3.对于噪声频率,一定要选准确,PB对每一段噪声只使用的一个频率,就将噪声滤干净了,我用了每段噪声附近的几个波形还没有得到理想波形,最后我发现我选的中心频率和PB的只相差10~25赫兹,所以一定要精确,后来WH又试了一下,只发现改变5HZ的频率都不行

4.加入团队以来,尤其是加入种子班之后就一直告诫自己要时刻抱着一个学习的心态,对于任务不要只是敷衍,完成就好,而是自己一定要从中学到东西,而且在这个过程中一定要逐步掌握自己的学习方法,但是就是这个Matlab,我就是在敷衍了事,所以没有什么事情是可以敷衍的,学习发生在每时每刻,不能因为这是必上的课程而自己没有兴趣就蒙混过关,应该利用这个机会锻炼自己,积极起来,改变自己懒惰的弱点。

PS:附上修改后的代码

%getthesamplesrateandvectorofthewave

[xx,fs]=wavread('SunshineSquare');

xx=xx';

specgram(xx,[],fs);

%^gettheAfromthefrequenciesofthenoises

fnoise=[0157531504725];

ww=2*pi*fnoise/fs;

A=-2*cos(ww);

%seperatethewavebasedonthetone"du"

leng=length(xx);

du=floor((7.749/10.791)*leng);

%determinetheh[n]ofcorrespondnoise

hh=[1A(1)1];

fori=2:4

hh1=[1A(i)1];

hh=conv(hh,hh1);

end

%filterthenoise

yy=filter(hh,1,xx);

%deletethetone"du"

yy(du-65:du+65)=0;

du=floor(10.751/10.791*leng);

yy(du-100:du+80)=0;

figure(2);

specgram(yy,[],fs);

wavwrite(yy,fs,32,'filter1');

%replacethewavewhichhasbeenfilteredwiththegoodpart

du=floor((7.749/10.791)*leng);

yy(1:du)=xx(1:du);

%deletethetone"du"

yy(du-65:du+65)=0;

du=floor(10.751/10.791*leng);

yy(du-100:du+80)=0;

%paintthepictureandplayit

figure(3);

specgram(yy,[],fs);

soundsc(yy,fs);

wavwrite(yy,fs,32,'filter2');

matlab实验心得体会

相关推荐