第一篇:實驗一MATLAB工作環境熟悉及簡單命令的執行
實驗一MATLAB工作環境熟悉及簡單命令的執行
一、實驗目的:熟悉MATLAB的工作環境,學會使用MATLAB進行一些簡單的運算。
二、實驗內容:MATLAB的啟動和退出,熟悉MATLAB的桌面(Desktop),包括菜單
(Menu)、工具條(Toolbar)、命令窗口(Command Window)、歷史命令窗口、工作空間(Workspace)等;完成一些基本的矩陣操作;學習使用在線幫助系統。
三、實驗步驟:
1、啟動MATLAB,熟悉MATLAB的桌面。
2、在命令窗口執行命令完成以下運算,觀察workspace的變化,記錄運算結果。
(1)(365-52?2-70)?3
(2)>>area=pi*2.5^2
(3)已知x=3,y=4,在MATLAB中求z:
x2y3
z?2x?y(4)將下面的矩陣賦值給變量m1,在workspace中察看m1在內存中占用的字節數。
?162313??511108?? m1=??97612????414151?
執行以下命令
>>m1(2 , 3)
>>m1(11)
>>m1(: , 3)
>>m1(2 : 3 , 1 : 3)
>>m1(1 ,4)+ m1(2 ,3)+ m1(3 ,2)+ m1(4 ,1)
(5)執行命令>>help abs
查看函數abs的用法及用途,計算abs(3 + 4i)
(6)執行命令
>>x=0:0.1:6*pi;
>>y=5*sin(x);
>>plot(x,y)
(6)運行MATLAB的演示程序,>>demo,以便對MATLAB有一個總體了解。
四、思考題
1、以下變量名是否合法?為什么?
(1)x2
(2)3col
(3)_row
(4)for2、求以下變量的值,并在MATLAB中驗證。
(1)a = 1 : 2 : 5;
(2)b = [ a'a'a' ];
(3)c = a + b(2 , :)
第二篇:實驗一 熟悉MATLAB軟件環境及命令窗口的使用實驗報告
三、實驗內容
1.命令窗口的簡單使用
(1)簡單矩陣的輸入
A=[1 2 3;4 5 6;7 8 9] 或者[1,2,3;4,5,6;7,8,9]
——》
A=(2)求[12+2×(7-4)]÷3的算術運算結果——》
a=7;b=4;c=2;d=12;e=3;f=a-b;g=c*f;h=d+g;k=d/e;m=k/e----->m
=2 2.有關向量、矩陣或數組的一些運算
(1)設A=15;B=20;求C=A+B與c=a+b? A=15;B=20;C=A+B------->C=
35(2)設A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B與A.*B?
A=[1 2 3;4 5 6;7 8 9];B=[9 8 7;6 5 4;3 2 1];C=A*B------->C=
C=A.*B--------->C= 16 21 25 24
16 9
(3)設A=10,B=20;求C=A/B與D=AB? A=10;B=20;C=A/B------------->C=
0.5
D=AB-------->D=
2(4)設a=[1-2 3;4 5-4;5-6 7] 請設計出程序,分別找出小于0的矩陣元素及其位置(單下標、全下標的形式),并將其單下標轉換成全下標。n=0;For i=0:1:2 For j=0:1:2 While(a[i][j]<0)b[n]=a[i][j];n=n+1;End B[n](5)在MATLAB命令行窗口運行A=[1,2;3,4]+i*[5,6;7,8];看結果如何?如果改成運行A=[1,2;3,4]+i[5,6;7,8],結果又如何?
(6)請設計出程序完成下列計算:
a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?
a=[1 2 3;3 4 2;5 2 3];b=[1 2 3;3 4 2;5 2 3];c=a*b----------->c=
C=a.*b---------->c=
(7)有一段程序設計如下,請思考并說明運行結果及其原因
clear
X=[1 2;8 9;3 6];
X(:)8)使用兩種方法,創建一對角矩陣
第三篇:MATLAB實驗4
學 生 實 驗 報 告
課程名稱:
學生學號:
所屬院部:
(理工類)
專業班級:
學生姓名:
指導教師: ——20 學年 第 學期
實驗項目名稱: MATLAB綜合運用 實驗學時: 同組學生姓名: 實驗地點: 實驗日期: 實驗成績: 批改教師: 批改時間:
一、實驗目的和要求
1、會用MATLAB求電阻電路。(節點電壓法、戴維南定理等)
2、會用MATLAB求正弦穩態電路。
3、掌握自動控制系統中模型的轉換方法。
4、會用MATLAB求自動控制系統的傳遞函數。
二、實驗儀器和設備
計算機一臺
三、實驗過程
1、已知條件如下圖所示。求:RL為何值時,能獲得最大功率.U1 U2
RL
R1=6Ω R2=1Ω R3=3Ω
經過R1的電流為I1,經過R2的電流為I2,把RL用電流源代替(Ia方向從上到下),經過電路化簡得:Ia=4/3+I2 列出節點方程:(1/6+1+1/3)U1-U2=I1(其中I1=12/6=2A,I2=2A)(節點電流的流入和流出)
-U1+U2=I2-Ia(等效的U1,U2)
運用MATLAB計算出U1,U2的值,U2即是戴維南等效電路中的Uoc,令電壓源短路,電流源斷路,求得ab左邊等效電阻Req,當Req=RL時,PMAX=Uoc^2/4Req
2、已知Us=100V,I1=100mA,電路吸收功率P=6W,XL1=1250?,XC2=750?,電路呈感性,求R3及XL3。
設電源的總阻抗為Z?R?jX,由圖可知Z?Z1?UZ2*Z3,總阻抗的模為Z?s
IZ2?Z3由于Z1,Z2為純阻抗元件,它們不吸收有功功率,故
R?P I22Z?R2?X2?X??Z?R2 得知電感電路呈感性,取“+”,即有Z?R?jX Z2,Z3的并聯阻抗為Z23?Z?Z1?Z?jXL1 而Z3?Z2*Z23
Z2?Z23有R3?real(Z3),XL3=imag(Z3)
3、求圖示系統的傳遞函數,其中K1=10,K2=20。
4、已知系統狀態空間模型為:
求其零極點模型。
5、系統的零極點增益模型如下:
求系統的傳遞函數模型和狀態空間模型。
四、實驗結果與分析
在本次實驗中,初步了解了MATLAB在自動控制系統中的運用,通過從實驗中得到的鍛煉,提高了動手能力和自我學習能力。
第四篇:MATLAB實驗指導書
MATLAB及其應用
實驗指導書
物理與信息工程系
目錄
實驗一 MATLAB編程環境..............................................3 實驗二 矩陣基本運算
(一)..........................................5 實驗三 矩陣基本運算
(二)..........................................7 實驗四 矩陣分析...................................................9 實驗五 分支結構程序設計..........................................11 實驗六 循環結構程序設計..........................................13 實驗七 文件操作..................................................15 實驗八 二維曲線的繪制............................................17 實驗九 三維曲線和曲面的繪制......................................19 實驗十 MATLAB數據統計處理........................................21 實驗十一 多項式四則運算..........................................23 實驗十二 線性方程組求解及函數求極值.............................25 實驗一 MATLAB編程環境
一、實驗目的
1.熟悉MATLAB編程環境
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.首先應熟悉MATLAB7.0運行環境,正確操作 2.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)命令窗口的使用。(2)工作空間窗口的使用。(3)工作目錄、搜索路徑的設置。(4)命令歷史記錄窗口的使用。(5)幫助系統的使用。(6)了解各菜單的功能。2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗二 矩陣基本運算
(一)一、實驗目的
1.通過實驗,進一步熟悉MATLAB編程環境 2.通過實驗掌握建立矩陣的幾種方法 3.通過實驗理解常用的矩陣運算
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.首先應熟悉MATLAB7.0運行環境,正確操作 2.自主編寫程序,必要時參考相關資料 3.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)設A和B是兩個同維同大小的矩陣,問:
1)A*B和A.*B的值是否相等? 2)A./B和B.A的值是否相等?
3)A/B和BA的值是否相等?操作過程參照教材中除法的矩陣生成。4)A/B和BA所代表的數學含義是什么?(2)寫出完成下列操作的命令。
1)將矩陣A第2—5行中第1,3,5列元素賦給矩陣B。2)刪除矩陣A的第7號元素。3)將矩陣A的每個元素值加30。4)求矩陣A的大小和維數。(3)下列命令執行后,L1、L2、L3、L4的值分別是多少/ A=1:9;B=10-A;L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗三 矩陣基本運算
(二)一、實驗目的
1.熟悉矩陣的建立方式 2.理解矩陣拆分的方法
3.通過實驗進一步掌握矩陣的基本運算
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
??15?4??83?1??,B??253? 078(1)已知A??????????320???3617??求下列表達式的值:
1)A+6B和A2-B+I(I為單位矩陣,matlab中使用eye來生成)2)A*B,A.*B和B*A 3)A/B和BA
4)[A,B]和 [A([1,3],:);B^2](2)已知
?0.7780??2310?41?45?655?,取出其前三行構成矩陣B,其前兩列構成矩A???325032???543.14??6?9.54陣C,其右下角3×2子矩陣構成矩陣D,B與C的乘積構成矩陣E,分別求E
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗四
矩陣分析
一、實驗目的
1.學會求矩陣的對角線元素、對角陣和逆矩陣 2.學會求矩陣的行列式的值、秩 3.學會求矩陣的特征值和特征向量 4.通過練習熟悉矩陣分析方法
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)使用函數,實現方陣左旋90°或右旋90°的功能。例如,原矩陣為A,A左旋后得到B,右旋后得到C。使用函數rot90(A,k)來實現;
?101112??32?14710??789??65?,???A??25811??B??456?,C??98?????36912??123???12111?4?? 7??10?(2)建立一個方陣A,求A的逆矩陣和A的行列式的值,并驗證A與A-1是互逆的。A的逆(inv(A));A的行列式(det(A))(3)求下列矩陣的主對角線元素、上三角陣、下三角陣、秩和跡。參考教材
?1?12?51?41)A???305??111503?0.43432?2??
2)B????8.9421? 2????9?(4)求矩陣A的特征值。參考教材
10.5??1? A??110.25????0.50.252??2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗五
分支結構程序設計
一、實驗目的
1.理解MATLAB的編程方法
2.掌握if語句和switch語句的使用 3.掌握分支結構程序設計方法
4.通過練習理解MATLAB編程方法和分支結構程序設計方法。
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)從鍵盤輸入一個數,將它反向輸出,例如輸入693,輸出為396(2)輸入一個百分制成績,要求輸出成績等級A,B,C,D,E其中90-100位A,80-89為B,70-79為C,60-69為D,60以下為E 1)分別用if語句和switch語句實現
2)輸入百分制成績后要判斷成績的合理性,對不合理的成績應輸出出錯信息
2.實驗步驟(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗六
循環結構程序設計
一、實驗目的
1、理解循環控制結構的執行過程
2、掌握for語句和while語句的使用
3、掌握循環結構程序設計方法
4、通過練習進一步理解MATLAB的編程方法和循環結構程序設計方法
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)編寫程序實現求兩矩陣A.*B.(2)編寫程序實現求矩陣的轉置。2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗七
文件操作
一、實驗目的
1、掌握文件的建立、打開與關閉和文件的讀寫操作
2、理解文件定位操作
3、通過練習理解文件的基本操作
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 4.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)以讀寫方式打開二進制格式數據文件,將浮點數X添加到文件末尾,將文件內容以浮點數格式讀入變量Z,將文本文件的第二行讀入變量H,向文件尾部移動文件指針6個字節。
sin(x?1.7)ln??x,當x取-3.0、-2.9、-2.8、…、2.8、2.9、3.0時,(2)已知y?21?cos(x?1.7)求各點的函數值。要求:將函數值輸出到一個數據文件中;從數據文件中讀出數據,求各點函數值的平均值;將平均值添加到數據文件末尾。(3)編寫程序,該程序能讀取一個文本文件,并能將文本文件中的小寫字母轉換為相應的大寫字母而生成一個新的文本文件。2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗八
二維曲線的繪制
一、實驗目的
1、理解MATLAB繪圖方法
2、掌握繪制二維數據曲線圖的方法
3、掌握用plot函數和fplot函數繪制曲線的方法
4、通過練習掌握繪制二維數據曲線圖的方法和plot函數和fplot函數的使用
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 4.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)繪制下列曲線:
x1①y?x?
②y?e32?3x22?x?rsint
③x?2y?6④?
y?rcost?22(2)通過用plot和fplot函數繪制y?sin1的曲線,并分析其區別。x解釋:fplot函數的調用格式為: fplot(fname,lims,tol,選項)
其中fname為函數名,以字符串形式出現,lims為x,y的取值范圍,tol為相對允許誤差,其系統默認值為2e-3。選項定義與plot函數相同。2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗九
三維曲線和曲面的繪制
一、實驗目的
1、理解三維曲線的繪制
2、理解曲面圖的繪制
3、通過練習熟悉三維曲線和曲面圖的繪制方法
二、實驗器材
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.自主編寫程序,必要時參考相關資料 2.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)繪制下列三維曲線
?x?e?t/20cost??t/201)?y?esint,0?t?2?
2)?z?t?(2)繪制下列曲面圖
1)z=5,|x|≤5,|y|≤5
2)f(x,y)???x?t?2?y?t,0?t?1 ?z?t3?51?x?y22,x?3,y?3
2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(4)編輯程序并進行保存。
(5)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(6)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗十
MATLAB數據統計處理
一、實驗目的
1、掌握MATLAB求最大最小值的方法
2、掌握MATLAB求均值與方差的方法
3、通過練習以下內容熟悉數據統計處理的幾種方法
二、實驗器材
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.自主編寫程序,必要時參考相關資料 2.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
利用MATLAB提供的rand函數生成30000個符合均勻分布的隨機數,然后檢驗隨機數的性質:均值mean和標準方差std;最大元素max和最小元素min;大于0.5的隨機數個數占總數的百分比 2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(4)編輯程序并進行保存。
(5)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。(6)檢查程序輸出結果。
五、實驗報告要求
1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗十一
多項式四則運算
一、實驗目的
1、掌握多項式求值、求根的方法
2、理解多項式四則運算
3、通過練習熟悉多項式四則運算和多項式求值、求根的方法
二、實驗器材
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.自主編寫程序,必要時參考相關資料 2.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
4322有3個多項式P1(x)?x?2x?4x?5,P2(x)?x?2,P3(x)?x?2x?3,1)求P(x)= P1(x)+ P2(x)P3(x)2)求P(x)的根
3)當x取矩陣A的每一元素時,求P(x)的值,其中
??11.2?1.4?? A??0.7523.5???52.5??0?4)當以矩陣A為自變量時,求P(x)的值 2.實驗步驟(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(4)編輯程序并進行保存。
(5)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(6)檢查程序輸出結果。
五、實驗報告要求
1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗十二
線性方程組求解及函數求極值
一、實驗目的
1、理解線性方程組求解方法
2、理解函數求極值方法
3、通過練習以下內容熟悉求解線性方程組的方法和函數求極值的方法
二、實驗器材
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.自主編寫程序,必要時參考相關資料 2.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)求下列方程組的解
?2x?3y?5z?10?1)?3x?7y?4z?2)
?x?7y?z?5??6x1?5x2?2x3?5x4??4?9x?x?4x?x?13?1234 ?3x?4x?2x?2x?1234?1??3x1?9x2?2x4?11(2)求下列函數在指定區間的最大值
1?x2,x?(0,2)
2)f(x)?sinx?cosx2,x?(0,?)1)f(x)?41?x2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(4)編輯程序并進行保存。
(5)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(6)檢查程序輸出結果。
五、實驗報告要求
1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
第五篇:matlab實驗心得體會
matlab實驗心得體會
]這個就是我自己做出來的,發現用soundsc聽出來還行,但是用wavwrite就變的很難聽。后來發現PB寫的很好,而且還能夠把前面一段沒有噪音的部分給保存下來,我就看了他的代碼,有幾點體會:
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(du100 : 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(du100 : du + 80)= 0;
%paint the picture and play it figure(3);specgram(yy, [], fs);soundsc(yy,fs);wavwrite(yy,fs,32,'filter2');