本次開啟新的系列匾效,關(guān)于用Matlab實(shí)現(xiàn)常見信號(hào)和函數(shù)的生成和變換面哼。
同時(shí)如果沒(méi)有MATLAB基礎(chǔ),那么可以跟著本文一步一步學(xué)習(xí)Matlab的相關(guān)操作匈子,本文旨在記錄在信號(hào)與系統(tǒng)課程中MATLAB的學(xué)習(xí)過(guò)程闯袒,歡迎大家指出錯(cuò)誤和補(bǔ)充!
本章為信號(hào)與系統(tǒng)實(shí)驗(yàn)序章其徙,MATLAB的簡(jiǎn)單入門堕仔,本文沒(méi)有特別的難點(diǎn)摩骨,較難的地方在本文都有較詳細(xì)的說(shuō)明朗若,請(qǐng)放心食用!
有空可以來(lái)看看我的個(gè)人博客:ShadowL's Blog
下面開啟正文
一.MATLAB相關(guān)簡(jiǎn)介和安裝灾馒。
(一)MATLAB簡(jiǎn)介遣总。
1.What is MATLAB ?
MATLAB(矩陣實(shí)驗(yàn)室) 是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)容达、數(shù)據(jù)可視化垂券、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分算芯。
2.Why is it called MATLAB ?
MATLAB是matrix&laboratory兩個(gè)詞的組合熙揍,意為矩陣工廠(矩陣實(shí)驗(yàn)室)。是由美國(guó)mathworks公司發(fā)布的主要面對(duì)科學(xué)計(jì)算堪旧、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境奖亚。它將數(shù)值分析、矩陣計(jì)算爆袍、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中陨囊,為科學(xué)研究夹攒、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語(yǔ)言(如C压语、Fortran)的編輯模式编检,代表了當(dāng)今國(guó)際科學(xué)計(jì)算軟件的先進(jìn)水平允懂。
3.MATLAB主要提供以下功能:
-可用于技術(shù)計(jì)算的高級(jí)語(yǔ)言
-可對(duì)代碼、文件和數(shù)據(jù)進(jìn)行管理的開發(fā)環(huán)境
-可以按迭代的方式探查粥航、設(shè)計(jì)及求解問(wèn)題的交互式工具
-可用于線性代數(shù)生百、統(tǒng)計(jì)置侍、傅立葉分析拦焚、篩選杠输、優(yōu)化以及數(shù)值積分等的數(shù)學(xué)函數(shù)
-可用于可視化數(shù)據(jù)的二維和三維圖形函數(shù)
-可用于構(gòu)建自定義的圖形用戶界面的各種工具
-可將基于MATLAB的算法與外部應(yīng)用程序和語(yǔ)言(如C蠢甲、C++、Fortran搞糕、Java曼追、COM以及Microsoft Excel)集成的各種函數(shù)
以上就是MATLAB的大概介紹,總的來(lái)說(shuō)就是這個(gè)軟件是為了數(shù)值分析和矩陣計(jì)算而被廣泛運(yùn)用忆谓,當(dāng)然MATLAB如今的功能已經(jīng)十分的強(qiáng)大而芥,軟件的從當(dāng)初1M左右也變?yōu)楝F(xiàn)在的十幾接近二十個(gè)G,MATLAB也成為了三大數(shù)學(xué)軟件之一族沃,在各個(gè)領(lǐng)域都有廣泛的應(yīng)用脆淹。
無(wú)論你是出于什么目的來(lái)學(xué)習(xí)MATLAB及舍,我們都應(yīng)該細(xì)致的開始,深入的進(jìn)行。
下面開始MATLAB的學(xué)習(xí)過(guò)程吧攘残!
(二)Matlab的安裝
1.正規(guī)途徑
軟件官網(wǎng):https://ww2.mathworks.cn/products/matlab.html
下面為官網(wǎng)的最新報(bào)價(jià)
MATLAB正版的價(jià)格十分昂貴病曾,如果大家能夠支付得起,直接下載官網(wǎng)上的文件按步驟安裝就好鲫竞。
2.非正規(guī)途徑
非正規(guī)途徑MATLAB的安裝方式在網(wǎng)絡(luò)上有很多逼蒙,大家跟著網(wǎng)絡(luò)上的教程就可以實(shí)現(xiàn)完整的安裝。
如果是個(gè)人的使用的話僵井,不涉及商用批什,那么我們不用去在意途徑的正規(guī)與否社搅,但如果條件允許的話,盡量使用正版軟件却汉。
在安裝方面合砂,我們不費(fèi)太多篇幅:
分享一個(gè)很詳細(xì)的MATLAB獲取和安裝教程鏈接:https://mp.weixin.qq.com/s/ky6vCBJrj4q-qlgf7CT5gg
二.MATLAB簡(jiǎn)單使用教學(xué)源织。
(一)使用命令行。
安裝成功后缘屹,顯示的頁(yè)面應(yīng)如下
頁(yè)面相當(dāng)簡(jiǎn)潔轻姿,命令行區(qū)域是我們主要操作的區(qū)域逻炊,MATLAB主要是靠命令的輸入完成相應(yīng)的工作余素;而旁邊的工作區(qū)是我們用來(lái)觀察我們創(chuàng)建的一些變量和函數(shù)的工作情況,我們創(chuàng)建的變量在創(chuàng)建成功后會(huì)在工作區(qū)有相應(yīng)的顯示威根。
而在左上角有一個(gè)新建腳本洛搀,如果你是有豐富的編程經(jīng)驗(yàn)的程序員,那么腳本的方式可能更和你的胃口卷要,如果你不了解腳本独榴,那也無(wú)妨,開始的操作并不需要腳本和函數(shù)的建立瓶堕,熟悉命令行的操作就可以完成很多的工作郎笆,在后面的信號(hào)與系統(tǒng)的實(shí)驗(yàn)中當(dāng)我們用到腳本和函數(shù)的建立時(shí)忘晤,我們自然會(huì)記錄下如何使用它。
1.簡(jiǎn)單的命令凄吏。
下面我們介紹一些簡(jiǎn)單的命令:
(1)退出和中斷痕钢。
exit,quit % 結(jié)束MATLAB會(huì)話序六。程序完成例诀,如果沒(méi)有明確保存,則變量中的數(shù)據(jù)消失
Ctrl-c % 中斷一個(gè)MATLAB任務(wù)暮刃,但會(huì)話并沒(méi)有結(jié)束
其實(shí)這兩個(gè)命令用處不是很大爆土,大部分時(shí)間我們用不上它
(2)清除和清屏步势。
clc % 清屏,清除命令行區(qū)的內(nèi)容
clear % 清除工作區(qū)
這兩個(gè)命令出現(xiàn)的次數(shù)會(huì)極其頻繁
(3)多維矩陣的建立盅抚。
MATLAB的中文名為矩陣實(shí)驗(yàn)室妄均,它的數(shù)據(jù)的基本格式就是矩陣哪自。
科普一下矩陣:在數(shù)學(xué)中壤巷,矩陣(Matrix)是一個(gè)按照長(zhǎng)方陣列排列的復(fù)數(shù)或?qū)崝?shù)集合 ,最早來(lái)自于方程組的系數(shù)及常數(shù)所構(gòu)成的方陣寄症。
如果你是一個(gè)科幻影迷的話矩动,對(duì)Matrix這個(gè)單詞應(yīng)該并不陌生悲没。
二維矩陣是一個(gè)帶有以行和列排列的元素的矩形表。如果有m行渗鬼、n列譬胎,這個(gè)矩陣的大小就是m×n命锄。多維矩陣的維數(shù)大于二,就是說(shuō)其大小為m×n×......×p镐侯。
矩陣這方面的知識(shí)我們不去詳細(xì)解釋驶冒,學(xué)過(guò)線性代數(shù)的話對(duì)矩陣應(yīng)該是十分熟悉。
a.標(biāo)量的指定沈条,如果寫入x=7诅炉,則在屏幕打印為:
>> x=7
x =
7
b.如果僅寫入7涕烧,則結(jié)果變?yōu)椋?/h6>
>> 7
ans =
7
c.2×3維情況下一個(gè)矩陣的定義可以逐行給出元素:
>> A=[1 2 3
4 5 6]
A =
1 2 3
4 5 6
d.也可以在同一行用分號(hào)來(lái)分隔行以給出所有的元素(常用):
>> A=[ 1 2 3; 4 5 6] %構(gòu)建一個(gè)2×3的矩陣
A =
1 2 3
4 5 6
>> 7
ans =
7
>> A=[1 2 3
4 5 6]
A =
1 2 3
4 5 6
>> A=[ 1 2 3; 4 5 6] %構(gòu)建一個(gè)2×3的矩陣
A =
1 2 3
4 5 6
在命令后加一個(gè)分號(hào)可以禁止打印出結(jié)果澈魄。
e.一個(gè)行向量和一個(gè)列向量的定義:
>> rowvec=[1.2 3.2 4]
rowvec =
1.2000 3.2000 4.0000
>> colvec=[2.7;3.4;-9.2] %用分號(hào)隔開
colvec =
2.7000
3.4000
-9.2000
f.若想顯示一個(gè)變量的值,輸入它的名字即可:
>> A
A =
1 2 3
4 5 6
創(chuàng)建過(guò)的變量并沒(méi)有消失铛漓,可以在工作區(qū)查看它的狀態(tài):
g.也可以逐個(gè)地分配元素:
>> B(1,1)=1;
>> B(1,2)=7;
>> B(2,1)=-5;
>> B(2,2)=0
B =
1 7
-5 0
h.通過(guò)間距來(lái)創(chuàng)建矩陣:
例如想創(chuàng)建一個(gè)公差為1的首項(xiàng)為0鲫构,末項(xiàng)為10的數(shù)列:
>> C=[0 : 1 : 10]
C =
0 1 2 3 4 5 6 7 8 9 10
通過(guò) 變量名=[首項(xiàng) : 公差 :末項(xiàng)] 便可以方便的創(chuàng)造數(shù)列浓恶,這個(gè)方式也是MATLAB模擬連續(xù)函數(shù)的方式,在后面的信號(hào)函數(shù)繪制中结笨,我們會(huì)大量的用到它包晰。
(3)算數(shù)表達(dá)式和數(shù)學(xué)函數(shù)。
a.矩陣的簡(jiǎn)單運(yùn)算炕吸。
在MATLAB中通常的慣例是書寫數(shù)字伐憾。對(duì)十進(jìn)制數(shù),使用科學(xué)計(jì)數(shù)法可以十分大和十分小的數(shù)赫模。例如3.14和1.23E-6树肃,這里瀑罗,后者代表1.23×10-6胸嘴。
MATLAB有算數(shù)運(yùn)算符的擴(kuò)展集,它們是:
1)^ 冪
2)* 乘
/ 右除(正常除)
\ 左除
3)+ 加
- 減
這是按順序給出的運(yùn)算斩祭,1是最高優(yōu)先級(jí)劣像。在帶相同優(yōu)先級(jí)的運(yùn)算符表達(dá)式中,按從左到右的順序執(zhí)行摧玫。圓括號(hào)()能夠用于改變優(yōu)先級(jí)次序耳奕。
在算術(shù)運(yùn)算符前加 . 表示元素之間的計(jì)算,與矩陣的運(yùn)算不同,如:.* 表示點(diǎn)乘吮铭,./表示點(diǎn)除时迫,需要特別注意。
b.MATLAB中常用的預(yù)定義變量:
pi %返回Π谓晌,即3.141592653589793,只是一個(gè)近似值
inf %定義為1/0癞揉。當(dāng)出現(xiàn)被零除時(shí)纸肉,MATLAB就返回inf,并不中斷執(zhí)行而繼續(xù)計(jì)算喊熟。
NaN %定義為“Not a Number”柏肪,表示非數(shù)值,可能是inf/inf芥牌。
i,j %定義為√-1烦味,虛數(shù)單位。
c.MATLAB常用的數(shù)學(xué)函數(shù):
sqrt(x) %開平方
real(z) %復(fù)數(shù)z的實(shí)部
imag(z) %復(fù)數(shù)z的虛部
conj(z) %復(fù)數(shù)z的共軛復(fù)數(shù)
round(x) %四舍五入至最近整數(shù)
fix(x) %無(wú)論正負(fù)壁拉,舍去小數(shù)至最近整數(shù) rem(x,y) %求x除以y的余數(shù)
gcd(x,y) %整數(shù)x和y的最大公因數(shù)
lcm(x,y) %整數(shù)x和y的最小公倍數(shù)
exp(x) %自然指數(shù)
pow2(x) %2的指數(shù)
log(x) %以e為底的對(duì)數(shù)
log2(x) %以2為底的對(duì)數(shù)
log10(x) %以10為底的對(duì)數(shù)
常用的三角函數(shù):
sin(x) %正弦函數(shù)
cos(x) %余弦函數(shù)
tan(x) %正切函數(shù)
asin(x) %反正弦函數(shù)
acos(x) %反余弦函數(shù)
atan(x) %反正切函數(shù)
用于向量的常用函數(shù)有:
min(x) %向量x的元素的最小值
max(x) %向量x的元素的最大值
mean(x) %向量x的元素的平均值
median(x) %向量x的元素的中位數(shù)
std(x) %向量x的元素的標(biāo)準(zhǔn)差
diff(x) %向量x的相鄰元素的差
sort(x) %對(duì)向量x的元素進(jìn)行排序
length(x) %向量x的元素個(gè)數(shù)
norm(x) %向量x的歐氏長(zhǎng)度
sum(x) %向量x的元素總和
prod(x) %向量x的元素總乘積
cumsum(x) %向量x的累計(jì)元素總和
cumprod(x) %向量x的累計(jì)元素總乘積
關(guān)于矩陣的運(yùn)算和性質(zhì)谬俄,可參考線性代數(shù)的知識(shí),這里不加說(shuō)明弃理。
基本的MATLAB的命令大部分都在上面溃论,還有一些函數(shù)我們?cè)谥蟮钠轮袝?huì)邊學(xué)邊用,希望對(duì)大家有幫助痘昌。
MATLAB慕課推薦:https://www.coursera.org/learn/matlab/home/welcome
之后的實(shí)驗(yàn)一部分題目來(lái)自于這個(gè)課程的課后習(xí)題
有時(shí)間強(qiáng)烈推薦學(xué)習(xí)此課程
有空可以來(lái)看看我的個(gè)人博客:ShadowL's Blog