《訊號處理軟體》
實驗指導書
河北工業大學資訊工程學院
訊號處理軟體課程組
2010 年8月
前言matlab是乙個為科學和工程計算而專門設計的高階互動式軟體包,以負數矩陣作為基本程式設計單元,語句簡單,程式設計效率高,具有強大的會與功能,並且提供了許多面向應用問題求解的工具箱函式,易擴充套件。matlab與科學計算課程主要介紹矩陣和陣列、字串、元胞陣列、結構、二維繪圖、三維繪圖、曲線擬合、資料插值等內容,通過上機實驗進一步掌握這些知識在matlab的運用,並能夠根據已知條件靈活運用matlab的各項功能,實現數值分析與工程計算。
目錄實驗一陣列構建與陣列運算4
實驗二符號物件的建立及符號計算12
實驗三二維、三維繪圖及函式視覺化26
實驗四數值計算與matlab程式設計基礎34
實驗五字串、元胞陣列和結構陣列37
實驗一數值構建與陣列運算
一、實驗目的
1.熟悉matlab主介面,並學會簡單的選單操作。
2.學會簡單的矩陣輸入
3.掌握矩陣和陣列的基本運算
二、實驗內容
(一)熟悉簡單的矩陣輸入
1、從螢幕上輸入矩陣a=[1 2 3;4 5 6;7 8 9]或a=[1,2,3;4,5,6;7,8,9] 觀察輸出結果。
2、試用回車代替分號,觀察輸出結果。
3、輸入矩陣b=[9,8,7;6,5,4;3,2,1],c=[4,5,6;7,8,9;1,2,3], 鍵入a b c 觀察結果
4、選擇file——new選單中的m-file,輸入b=[9 ,8,7;6,5,4;3,2,1],儲存為檔案,退出編輯環境。此時在工作環境中使用b命令就可調出b矩陣。
[注]4.2版的matlab不能直接存為.m檔案,而存為.txt檔案,需在dos下改為m檔案,即在工作環境下鍵入rename 既可。
5、再試著輸入一些矩陣,矩陣中的元素可為任意表示式,但注意矩陣中各行各列的元素個數需分別相等,否則會給出出錯資訊。
6、輸入who和whos觀察結果,了解其作用。
(二)矩陣的建立
運算子:「+」和「-」分別為加、減運算子。
運算規則:對應元素相加、減,即按線性代數中矩陣的「十」、「一」運算進行。
例2-1 在matlab編輯器中建立m檔案:
a=[1, 1, 1; 1, 2, 3; 1, 3, 6]
b=[8, 1, 6; 3, 5, 7; 4, 9, 2]
a+b=a+b
a-b=a-b
在matlab命令視窗建入lx0701,則
結果顯示:a+b=
9 2 7
4 7 10
5 12 8
a-b=
-7 0 -5
-2 -3 -4
-3 -6 4
運算子:*
運算規則:按線性代數中矩陣乘法運算進行,即放在前面的矩陣的各行元素,分別與放在後面的矩陣的各列元素對應相乘並相加。
(1)兩個矩陣相乘
例2-2 在mtalab編輯器中建立m檔案:
x= [2 3 4 5
1 2 2 1];
y=[0 1 1
1 1 0
0 0 1
1 0 0];
z=x*y
存檔在命令列中建入lx0702,回車後顯示:
z= 8 5 6
3 3 3
(2)矩陣的數乘:數乘矩陣
上例中:a=2*x
則顯示:a =
4 6 8 10
2 4 4 2
(3)向量的點乘(內積):維數相同的兩個向量的點乘。
命令:dot 向量點乘函式
例:x=[-1 0 2];
y=[-2 -1 1];
z=dot(x, y)
則顯示:z =
4還可用另一種演算法:
sum(x.*y)
ans=
4(4)向量叉乘
在數學上,兩向量的叉乘是乙個過兩相交向量的交點且垂直於兩向量所在平面的向量。在matlab中,用函式cross實現。
命令 cross 向量叉乘函式
例2-3 計算垂直於向量(1, 2, 3)和(4, 5, 6)的向量。
在mtalab編輯器中建立m檔案:
a=[1 2 3];
b=[4 5 6];
c=cross(a,b)
結果顯示:
c=-3 6 -3
可得垂直於向量(1, 2, 3)和(4, 5, 6)的向量為±(-3, 6, -3)
(5)混合積
混合積由以上兩函式實現:
例3-4 計算向量a=(1, 2, 3)、b=(4, 5, 6)和c=(-3, 6, -3) 的混合積
在matlab編輯器中建立m檔案:
a=[1 2 3]; b=[4 5 6]; c=[-3 6 -3];
x=dot(a, cross(b, c))
結果顯示:x =
54注意:先叉乘後點乘,順序不可顛倒。
matlab提供了兩種除法運算:左除(\)和右除(/)。一般情況下,x=a\b是方程a*x =b的解,而x=b/a是方程x*a=b的解
例2-4:a=[1 2 3; 4 2 6; 7 4 9]
b=[4; 1; 2];
x=a\b
則顯示:x=
-1.5000
2.0000
0.5000
如果a為非奇異矩陣,則a\b和b/a可通過a的逆矩陣與b陣得到:
a\b = inv(a)*b
b/a = b*inv(a)
運算子:^
運算規則:
(1)當a為方陣,p為大於0的整數時,a^p表示a的p次方,即a自乘p次;p為小於0的整數時,a^p表示a-1的p次方。
(2)當a為方陣,p為非整數時,則其中v為a的特徵向量,為特徵值矩陣
運算子:′
運算規則:與線性代數中矩陣的轉置相同。
例2-5 求的逆矩陣
方法一:在matlab編輯器中建立m檔案:
a=[1 2 3; 2 2 1; 3 4 3];
inv(a)或a^(-1)
則結果顯示為
ans =
1.0000 3.0000 -2.0000
1.5000 -3.0000 2.5000
1.0000 1.0000 -1.0000
方法二:由增廣矩陣進行初等行變換
在matlab編輯器中建立m檔案:
b=[1, 2, 3, 1, 0, 0; 2, 2, 1, 0, 1, 0; 3, 4, 3, 0, 0, 1];
c=rref(b) %化行最簡形
x=c(:, 4:6)
在matlab命令視窗建入lx07052,則顯示結果如下:
c = 1.0000 0 0 1.0000 3.0000 -2.0000
0 1.0000 0 -1.5000 -3.0000 2.5000
0 0 1.0000 1.0000 1.0000 -1.0000
x = 1.0000 3.0000 -2.0000
-1.5000 -3.0000 2.5000
1.0000 1.0000 -1.0000
這就是a的逆矩陣。
命令: det 計算行列式的值
例2-6 計算上例中a的行列式的值
在matlab編輯器中建立m檔案:
a=[1 2 3; 2 2 1; 3 4 3];
d=det(a)
則結果顯示為
d = 2
(三)線性方程組的求解
我們將線性方程的求解分為兩類:一類是方程組求唯一解或求特解,另一類是方程組求無窮解即通解。可以通過係數矩陣的秩來判斷:
若係數矩陣的秩r=n(n為方程組中未知變數的個數),則有唯一解
若係數矩陣的秩r線性方程組的無窮解 = 對應齊次方程組的通解+非齊次方程組的乙個特解;其特解的求法屬於解的第一類問題,通解部分屬第二類問題。這類問題的求法分為兩類:一類主要用於解低階稠密矩陣 —— 直接法;另一類是解大型稀疏矩陣 —— 迭代法。
方程:ax=b
解法:x=a\b
例4-1 求方程組的解
解:在matlab編輯器中建立m檔案:
a=[5 6 0 0 0
1 5 6 0 0
0 1 5 6 0
0 0 1 5 6
0 0 0 1 5];
b=[1 0 0 0 1]';
r_a=rank(a) %求秩
x=a\b %求解
執行後結果如下
r_a =
5x = 2.2662
-1.7218
1.0571
-0.5940
0.3188
這就是方程組的解。
例4-2 求方程組
的乙個特解
a=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8];
數字訊號處理實驗指導書
電氣工程學院 數字訊號處理 實驗指導書 王武編寫 適用專業 測控技術與儀器 貴州大學 二oo 四年六月 前言一 實驗目的 數字訊號處理是一門工程技術基礎性質的課程,因此實驗方法的學習是本門課教學過程中的乙個必不可少的環節。其目的為 一 依據理論課的內容對重要的原理加以驗證,鞏固和加深所學的理論知識,...
數字訊號處理實驗指導書
數字訊號處理 實驗指導書 實驗一離散時間系統及離散卷積 一 實驗目的 1 熟悉matlab軟體的使用方法。2 熟悉系統函式的零極點分布 單位脈衝響應和系統頻率響應等概念。3 利用matlab繪製系統函式的零極點分布圖 系統頻率響應和單位脈衝響應。4 熟悉離散卷積的概念,並利用matlab計算離散卷積...
數字訊號處理》實驗指導書 正文
實驗一離散時間訊號分析 一 實驗目的 1 掌握各種常用的序列,理解其數學表示式和波形表示。2 掌握在計算機中生成及繪製數碼訊號波形的方法。3 掌握序列的相加 相乘 移位 反褶等基本運算及計算機實現與作用。4 掌握線性卷積軟體實現的方法。5 掌握計算機的使用方法和常用系統軟體及應用軟體的使用。6 通過...