matlab實驗心得體會
這個就是我自己做出來的,發(fā)現(xiàn)用soundsc聽出來還行,但是用wavwrite就變的很難聽。后來發(fā)現(xiàn)PB寫的很好,而且還能夠把前面一段沒有噪音的部分給保存下來,我就看了他的代碼,有幾點體會:
1.將代碼寫在.m文件里,這樣只需要該文件里的.就可以而不必每次都去敲命令;
2.PB對于vector使用的比較熟,我一開始也想到能不能只將后面一段由噪聲的給濾掉而保留以前的,但是沒想到什么方法,看了PB的代碼發(fā)現(xiàn),他對于vector了解的比較深刻,我上面的想法最后只使用一句代碼就搞定了
3.對于噪聲頻率,一定要選準確,PB對每一段噪聲只使用的一個頻率,就將噪聲濾干凈了,我用了每段噪聲附近的幾個波形還沒有得到理想波形,最后我發(fā)現(xiàn)我選的中心頻率和PB的只相差10~25赫茲,所以一定要精確,后來WH又試了一下,只發(fā)現(xiàn)改變5HZ的頻率都不行
4.加入團隊以來,尤其是加入種子班之后就一直告誡自己要時刻抱著一個學(xué)習(xí)的心態(tài),對于任務(wù)不要只是敷衍,完成就好,而是自己一定要從中學(xué)到東西,而且在這個過程中一定要逐步掌握自己的學(xué)習(xí)方法,但是就是這個Matlab,我就是在敷衍了事,所以沒有什么事情是可以敷衍的,學(xué)習(xí)發(fā)生在每時每刻,不能因為這是必上的課程而自己沒有興趣就蒙混過關(guān),應(yīng)該利用這個機會鍛煉自己,積極起來,改變自己懶惰的弱點。
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實驗心得體會】相關(guān)文章:
做matlab實驗心得09-27
MATLAB實驗報告模板01-27
楊氏雙縫干涉實驗的MatLab模擬10-07
MatLab實習(xí)心得體會07-05
基于Matlab仿真的聯(lián)合變換相關(guān)器實驗10-18
matlab實訓(xùn)心得體會01-05
Matlab用于發(fā)動機故障預(yù)報及Delphi對Matlab的調(diào)用07-25
matlab線性規(guī)劃11-08
LabVIEW與MATLAB混合編程01-20