matlab实验心得体会

时间:2021-07-17 08:07:05 心得体会 我要投稿

matlab实验心得体会

这个就是我自己做出来的,发现用soundsc听出来还行,但是用wavwrite就变的很难听。

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

matlab实验心得体会

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

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

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

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

PS:附上修改后的代码

%get the samples rate and vector of the wave

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

xx = xx';

specgram(xx, [], fs);

%^get the A from the frequencies of the noises

fnoise = [0 1575 3150 4725];

ww = 2*pi*fnoise/fs;

A = -2*cos(ww);

%seperate the wave based on the tone "du"

leng = length(xx);

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

%determine the h[n] of correspond noise

hh = [1 A(1) 1];

for i = 2:4

hh1 = [1 A(i) 1];

hh = conv(hh, hh1);

end

%filter the noise

yy = filter(hh, 1, xx);

%delete the tone "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');

%replace the wave which has been filtered with the good part

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

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

%delete the tone "du"

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

du = floor(10.751/10.791*leng);

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

%paint the picture and play it

figure(3);

specgram(yy, [], fs);

soundsc(yy,fs);

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

【matlab实验心得体会】相关文章:

做matlab实验心得09-27

MATLAB实验报告模板01-27

杨氏双缝干涉实验的MatLab模拟10-07

MatLab实习心得体会07-05

基于Matlab仿真的联合变换相关器实验10-18

matlab实训心得体会01-05

Matlab用于发动机故障预报及Delphi对Matlab的调用07-25

matlab线性规划11-08

LabVIEW与MATLAB混合编程01-20