matlab实验心得体会
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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');