Docstoc

Introduction to Matlab - VLSI Signal Processing Lab_ EE_ NCTU

Document Sample
Introduction to Matlab - VLSI Signal Processing Lab_ EE_ NCTU Powered By Docstoc
					    Introduction to Matlab


                                                     張國強

                           VLSI Signal Processing Lab, NCTU
                                                 10/11, 2011



*source: “張智星, Matlab 程式設計與應用, 清蔚科技出版”
Outline
n   Introduction
n   Environment
n   Basic operations
n   Filter design
n   Example
n   On-line resources
Introduction
n   Matlab = MATrix LABoratory
    q   作者:Cleve Moler
    q   由 MathWorks 於1984年推出
n   特色
    q   強力數值運算能力(超強計算機)
    q   完整矩陣運算指令
    q   豐富的toolbox以及函式庫
n   應用
    q   動態系統模擬
    q   數位訊號處理
    q   … (各種科學計算)
Environment




              n   Command window
              n   Workspace window
              n   Current directory
              n   Command history
Outline
n   Introduction
n   Environment
n   Basic operations
n   Filter design
n   On-line resources
基本運算
n   一般數學符號運算
    q   在MATLAB 命令視窗(Command Window)內的提示符號(>>)之後輸
        入運算式,並按入 Enter 鍵即可。例如:
        >> (5*2+3.5)/5
        ans =
             2.7000
    q   若不想讓 MATLAB 每次都顯示運算結果,只需在運算式最後加上分號(;
        )即可,例如:
        >> (5*2+3.5)/5;
變數使用與命名規則
n   第一個字母必需是英文字母。
n   字母間不可留空格。
n   最多只能有 31 個字母,MATLAB 會忽略多餘字母(在 MATLAB 第
    4 版,則是 19 個字母)。 
n   MATLAB 在使用變數時,不需預先經過變數宣告(Variable
    Declaration)的程序,而且所有數值變數均以預設的 double
    precision floating-point資料型式儲存。
向量及矩陣
n   MATLAB 中的變數還可用來儲存向量及矩陣以進行各種運算,例如:
    q   N 維向量
        n   >> s = [1 3 5 2];% 注意 [] 的使用,及各數字間的空白間隔
        n   >> t = 2*s+1
        n   t = 3 7 11 5
    q   N-by-M矩陣
        n   A = [1 2 3 4; 5 6 7 8; 9 10 11 12]; % 建立 3×4 的矩陣 A
n   矩陣索引
    q   矩陣 A 中,位於第 i 橫列、第 j 直行的元素可表示為 A(i, j)
        u   i 與 j 即是此元素的下標(Subscript)或索引(Index)
    q   MATLAB 中,所有矩陣的內部表示法都是以直行為主的一維向量
        u   A(i, j) 和 A(i+(j-1)*m) 是完全一樣的~m為矩陣A的列數
    q   我們可以使用一維或二維下標來存取矩陣
矩陣索引及下標
矩陣運算
n   矩陣的加減與一般純量(Scalar)的加減類似
n   相加或相減的矩陣必需具有相同的維度
    q   >>A = [12 34 56 20];
    q   >>B = [1 3 2 4];
    q   >>C = A + B; %C = 13     37   58   24
n   矩陣與純量可以直接進行加減,MATLAB 會直接將加減應用到每一個
    元素
    q   >> A = [1 2 3 2 1] + 5
    q   A=6 7 8 7 6
矩陣運算 (cont’d)
n   純量對矩陣的乘或除,可比照一般寫法
    q   >> A = [123 , 442];
    q   >> C = A/3; % C = 41.0000 147.3333
    q   >> B = 2*A; % B = 246 884
n   欲進行矩陣相乘,必需確認第一個矩陣的直行數目( Column
    Dimension) 必需等於第二個矩陣的橫列數目(Row Dimension)
    q   A = [1; 2];
    q   B = [3, 4, 5];
    q   C = A*B; % C =   3   4    5
    q                    6   8   10
n   矩陣的除法,常藉由反矩陣或解線性方程式來達成
n   Operator 之前加上一個句點,MATLAB 將會執行矩陣內「元素對元
    素」(Element-by-element) 的運算
常用之運算函式
n   MATLAB 是一個科學計算軟體,因此可以支援很多常用到的數學函數
    q   >> y = abs(x) % 取 x 的絕對值
    q   >> y = sin(x) % 取 x 的正弦值
    q   >> y = exp(x) % 自然指數 exp(x)
    q   >> y = log(x) % 自然對數 ln(x)
n   MATLAB 也支援複數運算,通常以 i 或 j 代表單位虛數
n   有一些函數是特別針對向量而設計
    q   >> y = min(x) % 向量 x 的極小值
    q   >> y = max(x) % 向量 x 的極大值
    q   >> y = mean(x)% 向量 x 的平均值
    q   >> y = sum(x) % 向量 x 的總和
    q   >> y = sort(x) % 向量 x 的排序
特殊矩陣
指令            說明
zeros(m, n)   產生維度為m x n,構成元素全為0的矩陣
ones(m, n)    產生維度為m x n,構成元素全為1的矩陣
eye(n)        產生維度為n x n,主對角線為1,其餘元素全為0的單位矩陣
pascal(n)     產生維度為n x n的Pascal矩陣
vander(1:n)   產生維度為n x n的Vandermore矩陣
hilb(n)       產生維度為n x n的hilbert矩陣
rand(m, n)    產生維度為m x n的亂數矩陣,亂數值[0, 1],uniform distribution
randn(m, n)   產生維度為m x n的亂數矩陣,μ=0, σ=1, normal distribution
magic(n)      產生維度為n x n的矩陣,其任一行、列、對角的和均相等
Outline
n   Introduction
n   Environment
n   Basic operations
n   Filter design
n   On-line resources
Filter Representation in Matlab
n   Digital filter representation
    q               B(ejw)      b(1) + b(2)e-jw + .... + b(m+1)e-jmw
    q     H(ejw) = --------- = ------------------------------------------
    q               A(ejw)      a(1) + a(2)e-jw + .... + a(n+1)e-jnw


n   A filter is specified by the two vector a and b
Filter Response Analysis
n   [H, W] = freqz(b, a, N)
    q   returns the N-point complex frequency response vector H and the
        N-point frequency vector W in radians/sample of the filter
n   Use plot command to plot the frequency response
    q   Plot( w/pi, db(abs(H)) )
    q   Axis([0 1 -150 10])
Filter Response Analysis (cont’d)
n   freqz(B,A,...) with no output arguments plots the response
FDATool
n   Type fdatool in the command window
    q   Choose filter type
    q   Set constraints
    q   Design filter
    q   File > export
Example 2.1
n   A=1;
n   n_max = 11;
n   n = -n_max:1:n_max;
n   X = zeros(size(n));
n   I = find(n==1);
n   II = find (n==-1);
n   III = find(mod(n,2)==0);
n   X(I) = -j*A/4;
n   X(II) = j*A/4;
n   X(III) = A./(pi*(1.-n(III).^2));
n   [arg_X, mag_X] = cart2pol(real(X), imag(X));
n   stem(n, mag_X);
n   stem(n, arg_X);
On-line Resources
n   MATLAB 程式設計與應用(網路版), 張智星
    q   http://www.cs.nthu.edu.tw/~jang/mlbook/
n   Matlab線上教材
    q   http://libai.math.ncu.edu.tw/bcc16/B/matlab/
n   Matlab 簡介, 馮丁樹
    q   http://ecaaser5.ecaa.ntu.edu.tw/weifang/matlab/index-matlab.htm

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:4/13/2014
language:English
pages:20