48MATLAB語言在DSP設(shè)計中的應(yīng)用_第1頁
48MATLAB語言在DSP設(shè)計中的應(yīng)用_第2頁
48MATLAB語言在DSP設(shè)計中的應(yīng)用_第3頁
48MATLAB語言在DSP設(shè)計中的應(yīng)用_第4頁
48MATLAB語言在DSP設(shè)計中的應(yīng)用_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、DSP與通信技術(shù)應(yīng)用綜合實驗PAGE 126 MATLAB語言在DSP設(shè)計中的應(yīng)用隨著計算機技術(shù)的高速發(fā)展,計算機語言也得到了迅速發(fā)展。我們熟知的BASIC、FORTRAN、C等廣泛地應(yīng)用于各種場合。但從工程計算和圖形顯示的角度,這些語言并不方便。1984年,美國Mathworks公司正式推出了 MATLAB語言。MATLAB是“矩陣實驗室”(MATrix LABoratoy)的縮寫,是一種科學(xué)計算軟件,主要適用于控制和信息處理領(lǐng)域的分析設(shè)計。它是一種以矩陣運算為基礎(chǔ)的交互式程序語言,能夠滿足工程計算和繪圖的需求。與其它計算機語言相比,其特點是簡潔和智能化,適應(yīng)科技專業(yè)人員的思維方式和書寫習(xí)慣

2、,使得編程和調(diào)試效率大大提高,并且很容易由用戶自行擴展。因此,當(dāng)前已成為美國和其它發(fā)達(dá)國家大學(xué)教學(xué)和科學(xué)研究中必不可少的工具。MATLAB語言自1988年推出3.x(DOS)版本,目前已出了4.x,5.x,6.x等(Windows)版本。隨著版本的升級,內(nèi)容不斷擴充。1MATLAB的工作環(huán)境MATLAB的工作環(huán)境主要由命令窗(Command Windows)、文本編輯器(File Editor)、若干個圖形窗(Figure Windows)及文件管理器組成。MATLAB視窗采用了WINDOWS視窗風(fēng)格(如圖5-1-1)。各視窗之間的切換可用快捷鍵Alt+Tab。圖5-1-1 MATLAB的命令

3、窗、文本編輯窗和圖形窗使用MATLAB4.x以上的版本,可在WINDOWS主界面上直接點擊MATLAB圖標(biāo),進入MATLAB命令窗口。在MATLAB命令窗下鍵入一條命令,按Enter鍵,該指令就被立即執(zhí)行并顯示結(jié)果。如果一個程序稍復(fù)雜一些,則需要采用文件方式,把程序?qū)懗梢粋€由多條語句構(gòu)成的文件。這時就需要用到文本編輯器。建立一個新文件,應(yīng)在MATLAB命令窗口下點擊空白文檔符號或在File菜單下點擊New,將打開MATLAB文本編輯器窗口,顯示一個空白的文檔。對已經(jīng)存在的文件,則點擊打開文件或在File菜單下點擊Open,會自動進入文件選擇窗口,找到文件后點亮并打開即可進入MATLAB文本編輯

4、器窗口。在MATLAB文本編輯器窗口中建立的文件默認(rèn)為.m文件。如果要建立的文件是M函數(shù)文件,即希望被其它程序象MATLAB中的庫函數(shù)那樣被調(diào)用,則文件的第一句應(yīng)是函數(shù)申明行,如:function y,w=XYZ(x,t)式中,function為MATLAB關(guān)鍵字,放置輸出宗量,()中放置輸入宗量,XYZ為函數(shù)名。當(dāng)其它程序調(diào)用該函數(shù)時,只需在程序中直接使用function關(guān)鍵字后面的部分。函數(shù)申明行是M函數(shù)文件必不可少的一部分。程序執(zhí)行的結(jié)果以圖形方式顯示時,將自動打開圖形窗。在程序中,圖形窗命令為figure。MATLAB允許打開多個圖形窗。如果程序中對圖形窗沒有編號,將按程序執(zhí)行的順序自

5、動給圖形窗編號。在MATLAB命令窗下,還具有許多文件管理的功能。例如,我們自己編寫的文件放在一個專門的文件夾中,則需要將這個文件夾的路徑存盤。否則,這個文件夾中的文件將不能在MATLAB環(huán)境下執(zhí)行。在MATLAB命令窗口File下選set Path,將打開一個路徑設(shè)置窗口。在這個窗口的Path菜單下選Add to Path,找到需要的文件夾,列入MATLAB路徑,然后在File菜單下Save Path即可。MATLAB提供了許多演示程序供使用者參考學(xué)習(xí)。在MATLAB命令窗下鍵入demo,將出現(xiàn)MATLAB演示圖形窗。使用者可根據(jù)提示進行操作。通常畫面的上半部是圖形,下半部是相應(yīng)的MATLA

6、B程序語句。使用者可以在界面上直接修改其中的程序語句并執(zhí)行,觀察其結(jié)果。因此demo是一個很好的學(xué)習(xí)輔助手段。MATLAB語言支持使用DOS命令。在MATLAB命令窗下執(zhí)行DOS命令,只需在原DOS命令前加?。@嘆號),回車后將直接執(zhí)行該命令。在用MATLAB語言編寫的程序中也可以直接使用!加DOS命令,作為一條MATLAB程序來執(zhí)行。2MATLAB的基本語法在MATLAB中,變量和常量的標(biāo)識符最長允許19個字符,標(biāo)識符中第一個字符必須是英文字母。MATLAB區(qū)分大小寫,默認(rèn)狀態(tài)下,A和a被認(rèn)為是兩個不同的字符。一、數(shù)組和矩陣(一)數(shù)組的賦值數(shù)組是指一組實數(shù)或復(fù)數(shù)排成的長方陣列。它可以是一維的

7、“行”或“列”,可以是二維的“矩形”,也可以是三維的甚至更高的維數(shù)。在MATLAB中的變量和常量都代表數(shù)組,賦值語句的一般形式為 變量=表達(dá)式(或數(shù))如鍵入a=1 2 3; 4 5 6; 7 8 9則將顯示結(jié)果:a= 1 2 3 4 5 6 7 8 9如鍵入X=-3.5 sin(6*pi) 8/5*(3+4) sqrt(2)則將顯示:X = -3.5000 -0.0000 11.2000 1.4142數(shù)組放置在 中;數(shù)組元素用空格或逗號“,”分隔;數(shù)組行用分號“;”或“回車”隔離。(二)復(fù)數(shù)MATLAB中的每一個元素都可以是復(fù)數(shù),實數(shù)是復(fù)數(shù)的特例。復(fù)數(shù)的虛部用i或j表示。復(fù)數(shù)的賦值形式有兩種:

8、z=1+1i ,2+2i ;3+3i ,4+4i z=1,2;3,4+1,2;3,4*i得 z=1.000+1.000i 2.000+2.000i 3.000+3.000i 4.000+4.000i以上兩式結(jié)果相同。注意,在第二式中“*”不能省略。在復(fù)數(shù)運算中,有幾個運算符是常用的。運算符“”表示把矩陣作共軛轉(zhuǎn)置,即把矩陣的行列互換,同時把各元素的虛部反號。函數(shù)conj表示只把各元素的虛部反號,即只取共軛。若想求轉(zhuǎn)置而不要共軛,就把conj和“”結(jié)合起來完成。例如鍵入 w=z,u=conj(z),v=conj(z)可得 w=1.000-1.000i 3.000-3.000i 2.000-2.0

9、00i 4.000-4.000iu=1.000-1.000i 2.000-2.000i 3.000-3.000i 4.000-4.000iv=1.000+1.000i 3.000+3.000i 2.000+2.000i 4.000+4.000i(三)數(shù)組尋訪和賦值的格式表M-1 常用子數(shù)組的尋訪、賦值格式子數(shù)組的尋訪 和賦值 使 用 說 明 a(r,c) 由a的“r指定行”和“c指定列”上的元素組成的子數(shù)組 a(r,:) 由a的“r指定行”和“全部列”上的元素組成的子數(shù)組 a(:,c) 由a的“全部行”和“c指定列”上的元素組成的子數(shù)組 a(:) 由a的各列按自左到右的次序,首尾相接而生成“一

10、維長列”數(shù)組 a(s) “單下標(biāo)”尋訪。生成“s指定的”一維數(shù)組。s若是“行數(shù)組”(或“列數(shù)組”),則a(s)就是長度相同的“行數(shù)組”(或“列數(shù)組”)例:a=1 2 3; 4 5 6; 7 8 9;鍵入a(1,2)顯示:ans = 2鍵入a(2,:)顯示:ans = 4 5 6鍵入a(:,3)顯示:ans = 3 6 9其它情況讀者可以自行上機觀察使用,此處不再一一舉例。(四)執(zhí)行數(shù)組運算的常用函數(shù)表M-2 三角函數(shù)和雙曲函數(shù) 名 稱 含 義 名 稱 含 義 名 稱 含 義 acos 反余弦 asinh 反雙曲正弦 csch 雙曲余割 acosh 反雙曲余弦 atan 反正切 sec 正割 a

11、cot 反余切 atan2 四象限反正切 sech 雙曲正割 acoth 反雙曲余切 atanh 反雙曲正切 sin 正弦 acsc 反余割 cos 余弦 sinh 雙曲正弦 acsch 反雙曲余割 cosh 雙曲余弦 tan 正切 asec 反正割 cot 余切 tanh 雙曲正切 asech 反雙曲正割 coth 雙曲余切 asin 反正弦 csc 余割 表M-3 指數(shù)函數(shù) 名 稱 含 義 名 稱含 義 名 稱 含 義 exp 指數(shù) log10 常用對數(shù) pow2 2的冪 log 自然對數(shù) log2 以2為底的對數(shù) sqrt 平方根說明:表M-3、表M-4的使用形式與其它語言相似。如X=t

12、an(60), Y=20*log(U/0.775), Z=1-exp(-1.5*t)。表M-4 復(fù)數(shù)函數(shù) 名 稱含 義 名 稱含 義 名 稱 含 義 abs 模,或絕對值 conj 復(fù)數(shù)共軛 real 復(fù)數(shù)實部 angle 相角(弧度) imag 復(fù)數(shù)虛部例:已知h=a+jb,a=3,b=4,求h的模。輸入:a=3b=4h=a+b*jabs(h)將顯示:ans =5鍵入:angle(h)將顯示:ans =9273鍵入:real(h)將顯示:ans =3鍵入:imag(h)則顯示:ans =4 表M-5 取整函數(shù)和求余函數(shù) 名 稱 含 義 名 稱 含 義 ceil 向+舍入為整數(shù) rem(a,b

13、) a整除b,求余數(shù) fix 向0 舍入為整數(shù) round 四舍五入為整數(shù) floor 向-舍入為整數(shù) sign 符號函數(shù) mod(x,m) x整除m取正余數(shù)例:鍵入ceil(1.45)顯示:ans = 2鍵入:fix(1.45)顯示:ans = 1鍵入:floor(-1.45)顯示:ans = -2 鍵入:round(1.45)顯示:ans = 1鍵入:round(1.62)顯示:ans =2 鍵入:mod(-55,7) 顯示:ans = 1 鍵入:rem(-55,7) 顯示:ans =-6 (五)基本賦值數(shù)組表M-6 常用基本數(shù)組和數(shù)組運算 基本數(shù)組zeros全零數(shù)組(mn階)logspa

14、ce 對數(shù)均分向量(1n階數(shù)組)ones 全么數(shù)組(mn階)freqspace頻率特性的頻率區(qū)間rand隨機數(shù)數(shù)組(mn階)meshgrid畫三階曲面時的X,Y網(wǎng)格randn 正態(tài)隨機數(shù)數(shù)組(mn階)linspace均分向量(1n階數(shù)組)eye(n)單位數(shù)組(方陣): 將元素按列取出排成一列 特殊變量和函數(shù) ans 最近的答案 Inf Infinity(無窮大) eps浮點數(shù)相對精度 NaN Not-a-Number(非數(shù))realmax 最大浮點實數(shù) flops 浮點運算次數(shù) realmin 最小浮點實數(shù) computer 計算機類型 pi3.14159235358579 inputname

15、 * 輸入變量名 i,j虛數(shù)單位 size 多維數(shù)組的各維長度 length 一維數(shù)組的長度 為便于大量賦值,MATLAB提供了一些基本數(shù)組。舉例說明:A=ones(2,3),B=zeros(2,4),C=eye(3)得 A=1 1 1 B=0 0 0 0 C=1 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 線性分割函數(shù)linespace(a,b,n)在a和b之間均勻地產(chǎn)生n個點值,形成1n元向量。如D=linspace(0,1,5)得 D= 0 0.2500 0.5000 0.7500 1.0000(六)數(shù)組運算和矩陣運算 MATLAB中最基本的運算是矩陣運算。但是在MATL

16、AB的運用中,大量使用的是數(shù)組運算。從外觀形狀和數(shù)據(jù)結(jié)構(gòu)上看,二維數(shù)組和(數(shù)學(xué)中的)矩陣沒有區(qū)別。但是,矩陣作為一種變換或映射算子的體現(xiàn),其運算有著明確而嚴(yán)格的數(shù)學(xué)規(guī)則。而數(shù)組運算是MATLAB軟件所定義的規(guī)則,其目的是為了數(shù)據(jù)管理方便、操作簡單、指令形式自然簡便以及執(zhí)行計算有效。雖然數(shù)組運算尚缺乏嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)推理,數(shù)組運算本身仍在完善和成熟中,但它的作用和影響正隨著MATLAB的發(fā)展而擴大。為更清晰地表述數(shù)組運算與矩陣運算的區(qū)別,我們以表M-7敘述各數(shù)組運算指令的意義。其中假定S=2,n=3,P=1.5。A=1 2 3; 4 5 6; 7 8 9,B=2 3 4; 5 6 7; 8 9 1。表

17、M-7 舉例說明數(shù)組運算指令的意義 指 令 含 義 運 算 結(jié) 果 s+A 標(biāo)量s分別與A元素之和 3 4 5 6 7 8 9 10 11 A-s A分別與標(biāo)量s的元素之差-1 0 1 2 3 4 5 6 7 s.*A 標(biāo)量s分別與A的元素之積 2 4 6 8 10 12 14 16 18s./A或A.s s分別被A的元素除 2.0000 1.0000 0.6667 0.5000 0.4000 0.3333 0.2857 0.2500 0.2222 A.n A的每個元素自乘n次 1 8 27 64 125 216 343 512 729 p.A 以p為底,分別以A的元素為指數(shù) 求冪值1.500

18、0 2.2500 3.3750 5.0625 7.5938 11.3906 17.0859 25.6289 38.4434 A+B 對應(yīng)元素相加 3 5 7 9 11 13 15 17 10 A-B 對應(yīng)元素相減-1 -1 -1 -1 -1 -1 -1 -1 8 A.*B 對應(yīng)元素相乘 2 6 12 20 30 42 56 72 9 A./B或 B.A A的元素被B的對應(yīng)元素除 0.5000 0.6667 0.7500 0.8000 0.8333 0.8571 0.8750 0.8889 9.0000 exp(A) 以自然數(shù)e為底,分別以A的元素為指數(shù),求冪 1.0e+003 * 0.0027

19、 0.0074 0.0201 0.0546 0.1484 0.4034 1.0966 2.9810 8.1031 log(A) 對A的各元素求對數(shù) 0 0.6931 1.0986 1.3863 1.6094 1.7918 1.9459 2.0794 2.1972 sqrt(A) 對A的各元素求平方根 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458 2.8284 3.0000例:有一函數(shù)X(t)=tsin3t,在MATLAB程序中如何表示?解: X=t.*sin(3*t)例:有一函數(shù)X(t)=sin3t/3t, 在MATLAB程序中如何表示?解:

20、 X=sin(3*t)./(3*t)二、邏輯判斷與流程控制(一)關(guān)系運算關(guān)系運算是指兩個元素之間數(shù)值的比較,一共有六種可能。如表M-8所列。關(guān)系運算的結(jié)果只有兩種可能,即0或1。0表示該關(guān)系式為“假”,1表示該關(guān)系式為“真”。例1:A=3+4=7,得 A=1。例2:已知N=0,B=N=0,得 B=1。 若N=2,B=N=0,得 B=0。表M-8 關(guān)系運算符 指 令 含 義 指 令 含 義 = 大于等于 大于 = 不等于(二)邏輯運算邏輯量的基本運算為“與(&)”、“或()”、“非()”三種,另外還可以用“異或(xor)”,如表M-9所示。表M-9 邏輯運算符 運 算 A=0 A=1 B=0 B

21、=1 B=0 B=1 A&B 0 0 0 1 A|B 0 1 1 1 A 1 1 0 0 xor(A,B) 0 1 1 0 (三)基本的流程控制語句 if條件執(zhí)行語句格式: if 表達(dá)式 語句, end if 表達(dá)式1 語句組A, else 語句組B, endif 表達(dá)式1 語句組A, elseif 表達(dá)式2 語句組B, else 語句組C, end執(zhí)行到該語句時,計算機先檢驗if后的邏輯表達(dá)式,為1則執(zhí)行語句A;如為0則跳過A檢驗下一句程序,直到遇見end,執(zhí)行end后面的一條語句。例:if n3 x=3; end若n=5,則結(jié)果 x=3 while循環(huán)語句格式: while 表達(dá)式 語句組

22、A, end執(zhí)行到該語句時,計算機先檢驗while后的邏輯表達(dá)式,為1則執(zhí)行語句A;到end處,它就跳回到while的入口,再檢驗表達(dá)式,如仍為1則再執(zhí)行語句A,直到結(jié)果為0,就跳過語句組A,直接執(zhí)行end后面的一條語句。例:while k”來實現(xiàn)。如要產(chǎn)生在n1n0n2上的單位階躍序列 則可采用MATLAB實現(xiàn): n=n1:n2; x=(n-n0)0; %n-n00為真,x=1;n-n00時為假,x=0 3實指數(shù)序列采用MATLAB實現(xiàn): n=0:N-l; x=a.n; 4復(fù)指數(shù)序列采用MATLAB實現(xiàn): n=0:N-1; x=exp(lu+j*w0)*n); 5正(余)弦序列 采用MATL

23、AB實現(xiàn): n=0:N-l; x=cos(w0*n+Q); 6隨機序列 MATLAB中提供了兩類(偽)隨機信號: rand(1,N)產(chǎn)生0,1)上均勻分布的隨機矢量; randn(1,N)產(chǎn)生均值為0,方差為1的高斯隨機序列,也就是白噪聲序列。其它分布的隨機數(shù)可通過上述隨機數(shù)的變換而產(chǎn)生。 7周期序列 例如,設(shè)t1表示T序列中一個周期的序列,要產(chǎn)生4個周期的T序列,用MATLAB實現(xiàn):Tt1 t1 t1 t1;(二)信號波形 l. sawtooth 功能:產(chǎn)生鋸齒波或三角波。 格式:x=sawtooth(t) x=sawtooth(t,width) 說明:sawtooth(t)函數(shù)類似于sin

24、(t),它產(chǎn)生周期為2,幅值從-1到+1的鋸齒波,在2的整數(shù)倍處,其值為-1,并以1的斜率線性上升至+1。 sawtooth(t,width)用于產(chǎn)生三角波,其width(Owidth1的標(biāo)量)用于確定最大值的位置,即從0到2*width函數(shù)從-1上升到+1,然后在2*width至2之間又線性地從+1降至-1,周而復(fù)始。例如,當(dāng)width0.5時,可產(chǎn)生一對稱的標(biāo)準(zhǔn)三角波,當(dāng)width=1時,就產(chǎn)生鋸齒波,即sawtooth(t,1)=sawtooth(t)。 2square 功能: 產(chǎn)生方波。 格式: xsquare(t) xsquare(t,duty)說明:square(t)類似于sin(

25、t),產(chǎn)生周期是2,幅值為士l的方波,square(t,duty)產(chǎn)生指定周期的方波,其duty用于指定正半周期的比例。 sinc功能:產(chǎn)生sinc或 EQ 函數(shù)。格式:y=sinc(x)說明: MATLAB中的sinc子函數(shù)可用于計算下列函數(shù)這個函數(shù)是寬度為2,幅度為1的矩形脈沖的連續(xù)逆傅里葉變換,即 diric功能: 產(chǎn)生Dirichlet或周期sinc函數(shù)。格式: y=diric(x,n)說明:在 y=diric(x,n)中,n必須為正整數(shù),y為相應(yīng)的x元素的Dirichlet函數(shù),即Dirichlet函數(shù)是周期信號,當(dāng)n為奇數(shù)時,周期為2;當(dāng)n為偶數(shù)時,周期為4。二、多項式運算常用函數(shù)

26、多項式在近代信息和控制理論中具有十分重要的位置。MATLAB中提供了解決這些問題的工具,如表M-13所示。多項式的直接表達(dá)方式: MATLAB約定,降冪多項式其系數(shù)行向量表達(dá)式為:表M-13 多項式運算子函數(shù) 多 項 式roots多項式求根polyfit用多項式曲線擬合數(shù)據(jù)poly按根組成多項式polyder多項式求導(dǎo)數(shù)polyval多項式求值poly2str由系數(shù)行向量求符號多項式polyvalm矩陣作變元的多項式求值conv多項式相乘,卷積residue部分分式展開(留數(shù))deconv多項式相除,反卷積在程序中可以按上式的格式直接輸入。注意:多項式系數(shù)應(yīng)以降冪次序排列。假如缺項,則認(rèn)為該項

27、系數(shù)為零。若要表示,可建立,再利用指令:。多項式P是一個特征多項式,的元素被認(rèn)為是多項式P的根。例1:已知多項式的根向量R,求其特征多項式P和以降冪形式表示的S的多項式。R=2 2 3; %建立根向量P=poly(R) %求R的特征多項式PR=poly2str(P,S) %求以降冪形式表示的S多項式程序運行結(jié)果:P = 1 -3 -4 12PR = S3 - 3 S2 - 4 S + 12注意: 特征多項式P的系數(shù)向量一定是(n+1)維的。 特征多項式系數(shù)向量的第一個元素必是1。例2:由給定的根向量R求X多項式。R=-4,1+4*i,-1-4*i; %建立根向量P=poly(R) %求R的特征

28、多項式PR=real(P) %求P的實部PPR=poly2str(PR,X) %求以降冪形式表示的X多項式程序運行結(jié)果:P = 1 6 25 68PR = 1 6 25 68PPR = X3 + 6 X2 + 25 X + 68注意: 實系數(shù)多項式要求根向量中的復(fù)數(shù)根必須共軛成對。 含復(fù)數(shù)的根向量所生成的多項式系數(shù)向量(如P),其系數(shù)可能帶有截斷誤差數(shù)量級的虛部。因而采用“real”指令取實部,將很小的虛部濾掉。三、快速傅里葉變換函數(shù)1fft 功能:一維快速傅里葉變換(FFT)。 格式: y=fft(x) y=fft(x,n) 說明:fft函數(shù)用于計算矢量或矩陣的離散傅里葉變換,這可通過實現(xiàn),

29、其中,。 y=fft(x)為利用FFT算法計算矢量x的離散傅里葉變換,當(dāng)x為矩陣時,y為矩陣x每一列的FFT。當(dāng)x的長度為2的冪次方時,則fft函數(shù)采用基2的FFT算法,否則采用稍慢的混合基算法。y=fft(x,n)采用n點FFT。當(dāng)x的長度小于n時,fft函數(shù)在x的尾部補零,以構(gòu)成n點數(shù)據(jù);當(dāng)x的長度大于n時,fft函數(shù)會截斷序列x。當(dāng)x為矩陣時,fft函數(shù)按類似的方式處理列長度。 2. ifft功能:一維逆快速傅里葉變換(IFFT)。格式: y=ifft(x) y=ifft(x,n) 說明: ifft函數(shù)用于計算矢量或矩陣的逆傅里葉變換,即 其中,。 y=ifft(x)用于計算矢量x的IF

30、FT。當(dāng)x為矩陣時,計算所得的y為矩陣x中每一列的IFFT。 y=ifft(x,n)采用n點IFFT。當(dāng)length(x)n時,將x截斷,使length(x)n。ifft函數(shù)是fft函數(shù)的逆,其相應(yīng)的M文件中采用的算法類似。3cftbyfft功能:cftbyfft子函數(shù)采用FFT計算連續(xù)時間Fourier變換。格式:AW,f=cftbyfft(wt,t,flag)輸出幅頻譜數(shù)據(jù)對為AW,f,輸入量(W,t)為已經(jīng)窗口化了的時間函數(shù)W(t),它們分別是長度為N的向量。flag取非0時(缺省使用),頻率范圍在0,Fs;flag取0時,頻率范圍在-Fs/2,Fs/2。四、系統(tǒng)分析與實現(xiàn)函數(shù)1. ab

31、s功能:求絕對值(幅值)。格式:y=abs(x)說明:y=abs(x)用于計算x的絕對值。當(dāng)x為復(fù)數(shù)時,得到的是復(fù)數(shù)模(幅值),即: 當(dāng)x為字符串時,abs(x)得到字符串的各個字符的ASC碼,例如x=123,則abs(x) 得到49 50 51。2angle功能:求相角。格式:p=angle(h)說明:p=angle(h)用于求取復(fù)矢量或復(fù)矩陣H的相角(以弧度為單位),相角介于-和+之間。例如,某復(fù)數(shù)h可用兩種方法表示: 則幅值m和相角可由x+jy格式求出 m=abs(h) =angle(h)當(dāng)然,由m和也可求取x+jy格式 h=m.*exp(j*) x=real(h) y=imag(h)3

32、conv功能:求卷積格式:c=conv(a,b)說明:conv(a,b)用于求取矢量a和b的卷積,即 其中N為矢量a和b的最大長度。例如,當(dāng)a=1 2 3,b= 4 5 6時,則 c=conv(a,b) c= 4 13 28 27 18此函數(shù)可直接用于求兩個有限長序列的卷積。設(shè)x(n)和h(n)的長度分別為M和N,則 y=conv(x,h)y的長度分別為N+M-1。4.filter功能:利用IIR濾波器和FIR濾波器對數(shù)據(jù)進行濾波。格式:y=filter(b,a,x) y,zf=filter(b,a,x) y=filter(b,a,x,zi)說明:filter采用數(shù)字濾波器對數(shù)據(jù)進行濾波,其實

33、現(xiàn)采用移位直接型結(jié)構(gòu),因而適用于IIR和FIR濾波器。濾波器的系統(tǒng)函數(shù)為 即濾波器系數(shù)a=a0 a1 a2 .an,b=b0 b1 .bm,輸入序列矢量為x。這里,標(biāo)準(zhǔn)形式為a0=1,如果輸入矢量a時,a01,則MATLAB將自動進行歸一化系數(shù)的操作;如果a0=0,則給出出錯信息。y=filter(b,a,x)利用給定系數(shù)矢量a和b對x中的數(shù)據(jù)進行濾波,結(jié)果放入y矢量中,y的長度取max(N,M)。y=filter(b,a,x,zi)可在zi中指定x的初始狀態(tài)。y,zf=filter(b,a,x)除得到矢量y外,還得到x的最終狀態(tài)矢量zf。5freqs功能:連續(xù)時間系統(tǒng)的頻率響應(yīng)。格式:h=f

34、reqs(b,a,w) h,w=freqs(b,a) h,w=freqs(b,a,n) freqs(b,a)說明:freqs用于計算由矢量a和b構(gòu)成的連續(xù)時間系統(tǒng) 的復(fù)頻響應(yīng)H(j)。其系統(tǒng)函數(shù)的系數(shù)a=a0 a1 a2 .an,b=b0 b1 .bm。h=freqs(b,a,w)用于計算連續(xù)時間系統(tǒng)的復(fù)頻響應(yīng),其中實矢量w用于指定頻率值。h,w=freqs(b,a)自動設(shè)定200個頻率點來計算頻率響應(yīng),其200個頻率值記錄在w中。h,w=freqs(b,a,n) 設(shè)定n個頻率點計算頻率響應(yīng)。不帶輸出變量的freqs函數(shù),將在當(dāng)前圖形窗口中描繪幅頻和相頻曲線。 freqz 功能:離散時間系統(tǒng)的

35、頻率響應(yīng)。格式:h,w=freqz(b,a,n) h,f=freqz(b,a,n,Fs) h=freqz(b,a,w) h=freqz(b,a,f,Fs) freqz(b,a,n)說明: freqz 用于計算數(shù)字濾波器H(Z)的頻率響應(yīng)函數(shù)H(ej)。h,w=freqz(b,a,n)可得到數(shù)字濾波器的n點復(fù)頻響應(yīng)值,這n個點均勻地分布在0,上,并將這n個頻點的頻率記錄在w中,相應(yīng)的頻響值記錄在h中。要求n為大于零的整數(shù),最好為2的整數(shù)次冪,以便采用FFT計算,提高速度。缺省時n =512。 h,f=freqz(b,a,n,Fs)用于對H(ej)在0,Fs/2上等間隔采樣n點,采樣點頻率及相應(yīng)頻

36、響值分別記錄在f 和h中。由用戶指定FS(以HZ為單位)值。h=freqz(b,a,w)用于對H(ej)在0,2上進行采樣,采樣頻率點由矢量w指定。h=freqz(b,a,f,Fs) 用于對H(ej)在0,FS上采樣,采樣頻率點由矢量f指定。freqz(b,a,n) 用于在當(dāng)前圖形窗口中繪制幅頻和相頻特性曲線。7.freqz_m功能:離散時間系統(tǒng)的幅值響應(yīng)、相位響應(yīng)及群遲延響應(yīng)。格式:db,mag,pha,grd,w= freqz_m(b,a)說明:freqz_m函數(shù)是freqz函數(shù)的修正函數(shù),可獲得幅值響應(yīng)(絕對和相對)、相位響應(yīng)及群遲延響應(yīng)。式中db中記錄了一組對應(yīng)0, 頻率區(qū)域的相對幅值

37、響應(yīng)值;mag中則記錄了一組對應(yīng)0, 頻率區(qū)域的絕對幅值響應(yīng)值;pha中記錄了一組對應(yīng)0, 頻率區(qū)域的相位響應(yīng)值;grd中記錄了一組對應(yīng)0, 頻率區(qū)域的群遲延響應(yīng)值;w中記錄了對應(yīng)0, 頻率區(qū)域的501個頻點的頻率值。 impulse功能:求解連續(xù)系統(tǒng)的沖激響應(yīng)。 格式:impulse(b,a) impulse(b,a,t) y=impulse(b,a,t) 說明:impulse用于計算由矢量a和b構(gòu)成的連續(xù)時間系統(tǒng) 的沖激響應(yīng)。其系統(tǒng)函數(shù)的系數(shù)a=a0 a1 a2 .an,b=b0 b1 .bm。impulse(b,a)計算并顯示出連續(xù)系統(tǒng)的沖激響應(yīng)h(t)的波形,其中t將自動選取。impu

38、lse(b,a,t)可由用戶指定t值。若t為一實數(shù),將顯示連續(xù)系統(tǒng)在0t秒間的沖激響應(yīng)波形;若t為數(shù)組例如t1:dt:t2,則顯示連續(xù)系統(tǒng)在指定時間t1t2內(nèi)的沖激響應(yīng)波形,時間間隔為dt。y=impulse(b,a,t)將結(jié)果存入輸出變量y,不直接顯示系統(tǒng)沖激響應(yīng)波形。 impz 功能:求解離散系統(tǒng)的沖激響應(yīng)。 格式:h,t=impz(b,a) h,t=impz(b,a, n) h,t=impz(b,a,n,Fs) impz(b,a) 說明:由矢量a和b構(gòu)成離散時間系統(tǒng),即 h,t=impz(b,a)計算出離散系統(tǒng)的沖激響應(yīng)h,取樣點數(shù)n由impz函數(shù)自動選取,并記錄在矢量t中(t=0:n-

39、1)。 h,t=impz(b,a, n)可由用戶指定取樣點或取樣時刻。當(dāng)n為標(biāo)量時,t=0:n-1,即在0 n-1時刻計算沖激響應(yīng),0時刻表示離散系統(tǒng)的起始點;當(dāng)n為矢量(其值應(yīng)為整數(shù)),則表示t= n,即在這些指定的時刻計算沖激響應(yīng)。 h,t=impz(b,a,n,Fs) 表示取樣間隔為1/Fs,在缺省Fs時,則取為1。不帶輸出變量的impz將在當(dāng)前圖形窗口中利用stem(t,h)函數(shù)繪出沖激響應(yīng)。 lsim功能:對連續(xù)系統(tǒng)的響應(yīng)進行仿真。格式:lsim(b,a,x,t) y= lsim(b,a,x,t)說明:a=a0 a1 a2 .an,b=b0 b1 .bm是連續(xù)時間系統(tǒng)的傳遞函數(shù)的系數(shù)

40、。x和t是系統(tǒng)輸入信號的行向量。例如t=0:0.01:10;x=sin(t);定義輸入信號為一正弦信號sin(t),且這個信號在010秒的時間內(nèi)每間隔0.01秒選取一個取樣點。lsim(b,a,x,t)當(dāng)將輸入信號加在由a、b所定義的連續(xù)時間系統(tǒng)輸入端時,將顯示系統(tǒng)的零狀態(tài)響應(yīng)的時域仿真波形。y= lsim(b,a,x,t)當(dāng)將輸入信號加在由a、b所定義的連續(xù)時間系統(tǒng)輸入端時,不直接顯示仿真波形,而是將求出的數(shù)值解存入輸出變量y。 step功能:求解連續(xù)系統(tǒng)的階躍響應(yīng)。格式:step(b,a) step(b,a,t) y=step(b,a,t)說明:step用于計算由矢量a和b構(gòu)成的連續(xù)時間系

41、統(tǒng) 的階躍響應(yīng)。其系統(tǒng)函數(shù)的系數(shù)a=a0 a1 a2 .an,b=b0 b1 .bm。step(b,a)計算并顯示出連續(xù)系統(tǒng)的階躍響應(yīng)g(t)的波形,其中t將自動選取。step(b,a,t)可由用戶指定t值。若t為一實數(shù),將顯示連續(xù)系統(tǒng)在0t秒間的階躍響應(yīng)波形;若t為數(shù)組例如t1:dt:t2,則顯示連續(xù)系統(tǒng)在指定時間t1t2內(nèi)的階躍響應(yīng)波形,時間間隔為dt。y=step(b,a,t)將結(jié)果存入輸出變量y,不直接顯示系統(tǒng)階躍響應(yīng)波形。五、IIR濾波器設(shè)計函數(shù) butter功能:Butterworth(巴特沃斯)模擬和數(shù)字濾波器設(shè)計。格式:b,a=butter(n,Wn) b,a=butter(n

42、,Wn,ftype) b,a=butter(n,Wn,s) b,a=butter(n,Wn, ftype,s) z,p,k=butter(.) A,B,C,D=butter(.)說明:butter函數(shù)可設(shè)計低通、帶通、高通和帶阻的數(shù)字和模擬濾波器,其特性為使通帶內(nèi)的幅度響應(yīng)最大限度地平坦,這會損失截止頻率處的下降斜率。因此,在期望通帶平滑的情況下,可使用butter函數(shù),但在期望下降斜率大的場合,應(yīng)使用橢圓和Chebyshev濾波器。數(shù)字域b,a=butter(n,Wn)可設(shè)計出截止頻率為Wn的n階低通Butterworth濾波器,其濾波器為 截止頻率是濾波器幅度響應(yīng)下降至處的頻率,Wn0,1

43、,其中1相應(yīng)于0.5Fs(取樣頻率,即Nyquist頻率)。 當(dāng)Wn=W1 W2 (W1W2)時,butter函數(shù)產(chǎn)生一2 n階的數(shù)字帶通濾波器,其通帶為W1W2。b,a=butter(n,Wn,ftype)可設(shè)計出高通或帶阻濾波器。當(dāng)ftype=high時,可設(shè)計出截止頻率為Wn的高通濾波器; 當(dāng)ftype=stop時,可設(shè)計出帶阻濾波器,這時Wn=W1 W2,且阻帶為W10。模擬域的butter函數(shù)說明與數(shù)字域完全相同,也有六種形式,此處不再贅述。 cheby1功能:Chebyshev(切比雪夫)型濾波器設(shè)計(通帶等波紋)。 格式:b,a= cheby1(n,Rp,Wn) b,a= che

44、by1(n,Rp,Wn, ftype) b,a= cheby1(n,Rp,Wn, s) b,a= cheby1(n,Rp,Wn, ftype,s) z,p,k= cheby1(.) A,B,C,D= cheby1(.)說明:cheby1函數(shù)可設(shè)計低通、帶通、高通和帶阻的數(shù)字和模擬Chebyshev型濾波器,其通帶內(nèi)為等波紋,阻帶內(nèi)為單調(diào)。Chebyshev型濾波器的下降斜率比型大,但其代價是在通帶內(nèi)波紋較大。與butter函數(shù)類似,cheby1函數(shù)可設(shè)計數(shù)字域和模擬域的Chebyshev型濾波器。其通帶內(nèi)的波紋由Rp(分貝)確定。其它各公式的使用方法與butter函數(shù)相同。 cheby2 功能

45、:Chebyshev(切比雪夫)型濾波器設(shè)計(阻帶等波紋)。 格式:b,a= cheby2(n,As,Wn) b,a= cheby2(n,As,Wn, ftype) b,a= cheby2(n,As,Wn, s) b,a= cheby2(n,As,Wn, ftype,s) z,p,k= cheby2(.) A,B,C,D= cheby2(.)說明:cheby2函數(shù)可設(shè)計低通、帶通、高通和帶阻的數(shù)字和模擬Chebyshev型濾波器,與cheby1函數(shù)幾乎一樣,只不過cheby2函數(shù)其通帶內(nèi)為單調(diào),阻帶內(nèi)為等波紋。因此,由As確定阻帶內(nèi)的波紋。其它各公式的使用方法與butter函數(shù)相同,可參考相應(yīng)

46、公式。六、窗函數(shù)boxcar功能:矩形窗格式:w=boxcar(n)說明:boxcar(n)函數(shù)可產(chǎn)生一長度為n的矩形窗函數(shù)。2.triang功能:三角窗格式:w=triang(n)說明:triang(n)函數(shù)可得到n點的三角窗函數(shù)。三角窗系數(shù)為當(dāng)n為奇數(shù)時: 當(dāng)n為偶數(shù)時: 三角窗函數(shù)非常類似于Bartlett窗。Bartlett窗在取樣點1和n上總是以零結(jié)束,而三角窗在這些點上并不為零。實際上,當(dāng)n為奇數(shù)時,triang(n-2)的中心n-2個點等效于Bartlett(n)。3Bartlett功能:Bartlett(巴特利特)窗。格式:w=Bartlett(n)說明:Bartlett(n)可得到n點的Bartlett窗函數(shù)。Bartlett窗函數(shù)系數(shù)為 Bartlett函數(shù)與三角窗窗非常類似,當(dāng)n為奇數(shù)時,Bartlett(n)的中心n-2個點等效于triang(n-2)。 hamming功能:Hamming(哈明)窗。格式:w=hamming(n)說明:hamming(n)可產(chǎn)生n點的Hamming窗,其系數(shù)為 Hanning功能:hanning(漢寧)窗。格式:w=hanning(n)說明:ha

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論