Matrix Laboratory (Matlab)
Gwo-Ruey Lee
Wireless Access Tech. Lab.
MATLAB
z MATLAB 是由MathWorks 公司於1984 年推出的數學 軟體,其名稱是由「矩陣實驗室」( MATrix
LABoratory)所合成,因此可知其最早的發展理念是
提供一套非常完善的矩陣運算指令,但隨著數值運算需
求的演變, MATLAB 已成為各種系統模擬、數位訊號
處理、科學重視的標準語言。
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
MATLAB 5
z MATLAB 第五版的外觀
Wireless Access Tech. Lab.
MATLAB 5
z 在 MATLAB 命令視窗上還有MATLAB 工具列,其中有 三個直接和 MATLAB 操作相關的圖示,分別是(工作 空間瀏覽器, Workspace Browser)、(路徑瀏覽器,
Path Browser)、(Simulink 方塊庫瀏覽器,
Simulink Block Library Browser),以及(線上支援
視窗, Help Window)
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
MATLAB 5
z 工作空間瀏覽器:
¾
MATLAB 用來儲存變數的空間,稱為工作空間(Workspace),工作空間瀏覽器可用於瀏覽位於工作空間中 的變數,包含其名稱、資料形態、維度大小、佔用位元大小等,
其外觀如下:
Wireless Access Tech. Lab.
MATLAB 5
z 路徑瀏覽器:
¾
MATLAB 在執行每一個指令時,會根據一個搜尋路徑(Search Path)來找尋指令的位置。路徑瀏覽器的功能即是 以視窗面的方式來對搜尋路徑進行新增、刪除或修改等功能
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
MATLAB 5
z Simulink 方塊庫瀏覽器:
¾
Simulink 是以方塊圖為基礎的動態模擬系統,他並不是MATLAB 的一部份,而是架於MATLAB 之上的另一個產品。
因此如果您沒有安裝Simulink ,您的MATLAB 就不會出現此 圖示。Simulink 方塊庫瀏覽器可以顯示可用的Simulink 內建方 塊圖
Wireless Access Tech. Lab.
MATLAB 5
z 線上支援視窗:
¾
點選此圖示,可開啟MATLAB 的線上支援視窗,此視窗將MATLAB 所有的指令分門別類,您可以一路點選所要的類別或 指令,直到得到所需的線上支援。
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
MATLAB 6
z MATLAB 第六版的外觀
Wireless Access Tech. Lab.
MATLAB 6
z View/Command Window: 開啟或關閉「命令視窗」。
z View/Command History: 開啟或關閉「命令歷史列」。
z View/MATLAB Browser: 開啟或關閉「MATLAB 瀏覽 器」。
z View/Help Browser: 開啟或關閉「線上支援瀏覽器」。
z View/File Brower: 開啟或關閉「檔案瀏覽器」。
z View/Workspace Browser: 開啟或關閉「工作空間瀏
覽器」。
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
MATLAB 7
z MATLAB 第七版的外觀
Wireless Access Tech. Lab.
Matlab
z
基本概述¾
MATLAB基本運算y
在MATLAB下進行基本數學運算加(+)、減(-)、乘(*)、除(/)、冪次(^),只需將運算式直接打入提示號(>>)之後,並按入Enter鍵即 可。例如: x=2*(4+2)/6 。
y
MATLAB 會將運算結果直接存入預設變數ans,代表MATLAB 運算y
後的答案(Answer),並在螢幕上顯示其運算結果的數值,若要顯示變 數x的值,直接鍵入x即可。y
若不想讓MATLAB每次都顯示運算結果,只需在運算式最後加上分號(;)即可。
y
MATLAB會忽略所有在百分比符號(%)之後的文字,因此百分比之後的 文字均可視為程式的註解(Comments)。y
若一個數學運算是太長,可用三個句點(… )將其延伸到下一行,y
lookfor:用來尋找未知的命令。y
help:用來查詢已知命令的用法。y
Clear: 清除指令。y
Close: 關閉視窗。Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
¾
變數命名的規則y
第一個字母必須是英文字母y
字母間不可留空格y
最多只能有31 個字母,MATLAB 會忽略多餘字母(在 MATLAB 第4 版,則是19 個字母)y
MATLAB 在使用變數時,不需預先經過變數宣告(Variable Declaration)的程序,而且所有數值變數均 以預設的資料型式儲存。
Wireless Access Tech. Lab.
Matlab
z MATLAB 指令處理程序
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z 設定 MATLAB 搜尋路徑
¾
若要檢視MATLAB 已設定的搜尋路徑,鍵入path 指令即可:Wireless Access Tech. Lab.
Matlab
z 目錄操作相關的指令
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z MATLAB 的永久常數
Wireless Access Tech. Lab.
Matlab
z MATLAB 的查詢指令及線上支援
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z 離開 MATLAB
¾
若要結束離開MATLAB 的環境,只要選擇下列三種方式中之一 進行即可:y
1. 在命令視窗內,鍵入exit 指令。y
2. 在命令視窗內,鍵入quit 指令。y
3. 直接關閉MATLAB 的命令視窗。Wireless Access Tech. Lab.
Matlab
¾
矩陣的處理與運算y
名詞解釋y 向量(Vector):一維的矩陣,可分為行向量(Column vectors)及列向量(Row Vectors)。
y 矩陣(Matrices):二維的陣列,一維向量為其特例。
y 陣列(Arrays):為矩陣的延伸,可含有n維,一般二維矩陣及一維向量均為其特 例。
y
特殊矩陣指令 說明
zeros 全為零的矩陣
ones 全為1的矩陣
eye 單位矩陣
pascal Pascal矩陣 vander Vandermonde矩陣
hilb Hilbert矩陣
rand [0, 1] 均勻分佈的亂數矩陣
randn N(0,1)的正規分佈亂數矩陣
magic 魔方陣
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
y 矩陣的加減乘除
y
矩陣的加減與一般純量的加減類似,唯一的要求是:相加或相減的矩 陣必須具有相同的維度。若維度不一致,則 MATLAB 會產生錯誤訊 息。Wireless Access Tech. Lab.
Matlab
y 矩陣的索引和下標
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
Wireless Access Tech. Lab.
Matlab
¾ 向量或矩陣各種運算 y
x=[0,5,2,6]y
列向量(Row vector)運算,y= 2*x+3; y=[0,13,7,15];y
y(2)=2 %更改第三個元素, y=[0,2,7,15];y
y(3)=[] %刪除第四個元素,y=[0,2,15];y
y(2:3)-1 %取出y的第二至第四個元素來做運算,y=[1,14];y
x = 7:3:16 % 公差為3的等差數列,x=[7,10,13,16];y
將列向量轉置(Transpose)後,即可得到行向量(Column vector):y=x’;y
length(y) % y的元素個數y
max(y)/min(y) % z的最大值/最小值Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
¾
MATLAB常用的基本數學函數y
abs(x):純量的絕對值或向量的長度y
angle(z):複數z的相角(Phase angle)y
sqrt(x):開平方y
real(z):複數z的實部y
imag(z):複數z的虛部y
conj(z):複數z的共軛複數y
round(x):四捨五入至最近整數y
sin(x):正弦函數y
cos(x):餘弦函數y
sinh(x):超越正弦函數y
cosh(x):超越餘弦函數y
gcd(x,y):整數x和y的最大公因數y
lcm(x,y):整數x和y的最小公倍數y
exp(x):自然指數y
pow2(x):2的指數y
log(x):以e為底的對數,即自然對數或y
log2(x):以2為底的對數y
log10(x):以10為底的對數Wireless Access Tech. Lab.
Matlab
z Example
¾
y= |x| Æ y=abs(x)ƾ
y= |x| Æ y=abs(x)Æ-1 -0.5 0 0.5 1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
x
y
clear all;
close all;
x=-1:0.01:1;
y=x;
plot(x,y)
clear all;
close all;
x=-1:0.01:1;
z=abs(x);
plot(x,z) 0-1 -0.5 0 0.5 1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
y
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
¾
Πy=sqrt(x) ξ
y=sin(x)Æ y=sin(x)Æ1 1.5 2 2.5 3
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
y = x
clear all;
close all;
x=1:0.01:3;
y=sqrt(x);
plot(x,y)
clear all;
close all;
x=-pi:0.01:pi;
y=sin(x);
plot(x,y)
-8 -6 -4 -2 0 2 4 6 8
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
x
y
Wireless Access Tech. Lab.
Matlab
¾
y=cos(x)Æ y=cos(x)ƾ
y=sinh(x)Æ y=sinh(x)Æ-8 -6 -4 -2 0 2 4 6 8
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
x
y
clear all;
close all;
x=-2*pi:0.01:2*pi;
y=cos(x);
plot(x,y)
-8 -6 -4 -2 0 2 4 6 8
-300 -200 -100 0 100 200 300
x
y
clear all;
close all;
x=-2*pi:0.01:2*pi;
y=sinh(x);
plot(x,y)
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
¾
y=cosh(x)Æ y=cosh(x)ƾ
Æ y=exp(x)Æclear all;
close all;
x=-2*pi:0.01:2*pi;
y=cosh(x);
plot(x,y)
-8 -6 -4 -2 0 2 4 6 8
0 50 100 150 200 250 300
x
y
y = e
x-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0 1 2 3 4 5 6 7 8
x
y
clear all;
close all;
x=-2*pi:0.01:2*pi;
y=exp(x);
plot(x,y)
Wireless Access Tech. Lab.
Matlab
z y=log
e(x) Æ y=log
e(x) Æ
z y=log
10(x) Æ y=log
10(x) Æ
0 0.5 1 1.5 2
-5 -4 -3 -2 -1 0 1
x
y
clear all;
close all;
x=0:0.01:2;
y=log(x);
plot(x,y)
0 0.5 1 1.5 2
-2 -1.5 -1 -0.5 0 0.5
x
y
clear all;
close all;
x=0:0.01:2;
y=log10(x);
plot(x,y)
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z
Æ y=x*(exp(-x))*cos(2*pi*4*x) Æ
cos(2 4 ) y = xe − x π x
0 1 2 3 4 5 6 7 8
-0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4
x
y
clear all;
close all;
x=0:0.01:8;
y=x.*(exp(-x)).*cos(2*pi*4*x) plot(x,y)
Wireless Access Tech. Lab.
Matlab
z MATLAB 提供重複迴圈(Loop)及條件判斷
( Condition)等程式流程控制(Flow Control)的指令,
最簡單的程式重複執行指令是 for 迴(For-loop)
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
¾
重複命令y
for迴圈y
while 條件式x = zeros(1,6);
for i = 1:6, x(i) = 1/i;
end disp(x)
1 1/2 1/3 1/4 1/5 1/6
for 變數 = 向量;
運算式;
end
x = zeros(1,6);
i = 1;
while i <= 6, x(i) = 1/i;
i = i+1;
end
disp(x)
1 1/2 1/3 1/4 1/5 1/6
while 條件式;
運算式;
End
Wireless Access Tech. Lab.
Matlab
¾
邏輯命令y
if 條件式if x =[1,0,1,1]
Y=1+j end
if 條件式;
運算式;
end
h = zeros(6);
for i = 1:6, for j = 1:6,
h(i,j) = 1/(i+j-1);
end end
disp(h)
1 1/2 1/3 1/4 1/5 1/6 1/2 1/3 1/4 1/5 1/6 1/7 1/3 1/4 1/5 1/6 1/7 1/8 1/4 1/5 1/6 1/7 1/8 1/9 1/5 1/6 1/7 1/8 1/9 1/10
if 條件式;
運算式1;
else 運算式2;
end
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
¾
switch-case-otherwise 的多向分支指令for month = 1:12;
switch month case {3,4,5}
season = 'Spring';
case {6,7,8}
season = 'Summer';
case {9,10,11}
season = 'Autumn';
case {12,1,2}
season = 'Winter';
end
fprintf('Month %g is
%s.\n', month, season);
end
switch expression case value 1
statement 1 case value 2
statement 2 .
. .
case value n-1 statement n-1 otherwise
statement n end
Wireless Access Tech. Lab.
Matlab
z 預先配置矩陣
¾
使用zeros 來預先配置(Pre-allocate)一個適當大小的矩陣。若不預先配置矩陣,程式仍可執行,但此時MATLAB 需要動態 地增加(或減小)矩陣的大小,因而降低程式的執行效率。所 以在使用一個矩陣時,若能在事前知道其大小,則最好先使用 zeros 或ones 等指令來預先配置矩陣所需的記憶體大小,以增 進程式的執行效率。
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z
繪圖功能¾
MATLAB不但擅長於矩陣相關的各種數值運算,也具有非常強大的繪圖功能,特別適用於各種科學目視表示法(Scientific Visualization)。
¾
二維繪圖y
plot: x軸和y軸均為線性刻度(Linear scale)y
loglog: x軸和y軸均為對數刻度(Logarithmic scale)y
semilogx: x軸為對數刻度,y軸為線性刻度y
semilogy: x軸為線性刻度,y軸為對數刻度y
plotyy命令可以畫出兩個刻度不同的y軸¾
三度空間立體繪圖y
mesh可畫出立體網狀圖(mesh plots) ,產生的圖形都會依高度而 有不同顏色。y
plot則可畫出立體曲面圖(surface plots),產生的圖形都會依高 度而有不同顏色。Wireless Access Tech. Lab.
Matlab
z 二維繪圖 -plot
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z 三度空間立體繪圖 -plot
0 10 20 30 40 50
-8 -6 -4 -2 0 2 4 6 8 10
Wireless Access Tech. Lab.
Matlab
z 三度空間立體繪圖 -mesh
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
¾ 特殊圖形 y
長條圖y bar, barh, bar3, bar3h
y
面積圖y area
y
扇形圖y pie, pie3
y
針頭圖y stem, stem3
y
階梯圖y stairs
y
實心圖y quiver, quiver3
y
向量場圖y fill, fill3
y
等高線圖y contour, contourf, contour3
Wireless Access Tech. Lab.
Matlab
z 二維繪圖 -bar
1 2 3 4 5 6 7 8 9 10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z 二維繪圖 -barh
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1 2 3 4 5 6 7 8 9 10
Wireless Access Tech. Lab.
Matlab
z 二維繪圖 -area
1 2 3 4 5 6 7 8 9 10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z 二維繪圖 -pie
12%
11%
8%
14%
12%
5%
10%
13%
< 1%
15%
Wireless Access Tech. Lab.
Matlab
z 二維繪圖 -stem
1 2 3 4 5 6 7 8 9 10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z 二維繪圖 -stairs
1 2 3 4 5 6 7 8 9 10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Wireless Access Tech. Lab.
Matlab
z 三維繪圖 - contour
1 1.5 2 2.5 3
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z 三維繪圖 - contour3
1
1.5
2
2.5
3
1 2
3 4
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
Wireless Access Tech. Lab.
Matlab
z 三維繪圖 - contourf
1 1.5 2 2.5 3
1 1.5 2 2.5 3 3.5 4
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z It may be desirable to display the results with more control over the appearance of the plot.The following script plots the same results but shows how to add labels, add titles, define axes scales, etc.
-1 -0.5 0
-10 -5 0 5 10
P ole -Ze ro Dia gra m
Re a l
Imaginary
100 -60
-40 -20 0
Ma gnitude of Bode Dia gra m
Magnitude (dB)
Ra dia n Fre que ncy (ra d/s )
100 -50
0 50
Angle of Bode Dia gra m
Angle (deg)
Ra dia n Fre que ncy (ra d/s )
0 2 4 6
-0.1 -0.05 0 0.05 0.1
S te p Re s pons e
Time (s )
Amplitude
Wireless Access Tech. Lab.
Matlab
t = linspace(0,5,201);
w = logspace(-1,3,201);
num = [1 0];
den = [1 2 101];
[poles,zeros] = pzmap(num,den);
[mag,angle] = bode(num,den,w);
[y,x] = step(num,den,t);
figure(1)
subplot(2,2,1)
plot(real(poles),imag(poles),'x'…
,real(zeros),imag(zeros),'o');
title('Pole-Zero Diagram');
xlabel('Real');
ylabel('Imaginary');
axis([-1.1 0.1 -12 12]);
grid;
subplot(2, 2, 2);
semilogx(w,20*log10(mag));
title('Magnitude of Bode Diagram');
ylabel('Magnitude (dB)');
xlabel('Radian Frequency (rad/s)');
axis([0.1 1000 -60 0]);
grid;
subplot(2, 2, 4);
semilogx(w,angle);
title('Angle of Bode Diagram');
ylabel('Angle (deg)');
xlabel('Radian Frequency (rad/s)');
axis([0.1 1000 -90 90]);
grid;
subplot(2, 2, 3);
plot(t,y);
title('Step Response');
xlabel('Time (s)');
ylabel('Amplitude');
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z
程式設計¾
以MATLAB程式碼所撰寫的檔案通常以“ .m ”為副檔名,所以這 些檔案又稱為「M檔案」(M-files)。
¾
MATLAB的偵錯器(Debugger)可以迅速地找出你的程式錯誤,其功能包含:y
查詢每一個函式的工作空間(Workspace)y
顯示函式呼叫的堆疊(Function call stack)y
一列一列地執行M檔案¾
程式計時y
MATLAB 的 tic 和 toc 指令,是最簡單的計時方法。y
MATLAB 的計時器(Profiler),它可以分別計算每一個指令所佔用的執行 時間,並列出詳細的統計表。y
profile,它可以跟著一個選項,以代表不同功能,列表如下:y
profile on:清除舊的計時資料,並開始對各個函數進行計時。y
profile off:停止計時器。y
profile resume:啟動計時器,但保留舊的計時資料。y
profile clear:清除所有的計時資料。y
profile report:停止計時器,並將計時資料以 HTML 格式在 WWW 瀏覽 器呈現出來Wireless Access Tech. Lab.
Matlab
¾
檔案輸出及輸入類別 函式 功能
開檔/關檔 fopen 開啟檔案
fclose 關閉檔案
二進制資 料
fread 從檔案讀取二進制資料
fwrite 將二進制資料寫入檔案
格式化資 料
fscanf 從檔案讀取格式化資料
fprintf 將格式化資料寫入檔案
fgetl 從檔案讀取一列資料,但捨
去換行字元
fgets 從檔案讀取一列資料,但保
留換行字元
類別 函式 功能
字串 sprintf 將格式化資料寫至字串
sscanf 從字串讀取格式化資料
檔案位置 控制
ferror 檔案輸入/輸出的錯誤狀態
feof 測試是否已到檔案結束位置
fseek 設定檔案定位器
ftell 讀取檔案定位器
frewind 回轉檔案定位器
暫存檔案/
目錄
tempdir 取得暫存目錄的名字
tempname 取得暫存檔案的名字
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
¾
應用程式介面(Application program interface, API)y
MATLAB 與其它外部程式溝通y
利用MATLAB 呼叫 C 函式Example 1
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
%%BPSK function clear all;
clc;
format long g;
%TX M=2;
m=log2(M);
NumDATA=10;
FRAMEIN=
ceil(rand(1,NumDATA)-0.5);
for k=1:length(FRAMEIN)
x=FRAMEIN(1,(m*(k-1)+1):m*k);
% BPSK Mapping
if x==[0]
Map=cos(pi*0) ; elseif x==[1]
Map= cos(pi*1);
end
sample(1,k)=[Map];
end
desample=sample;
%RX
for g=1:length(desample) y=zeros(1,m);
Demap=zeros(1,1);
Dede=desample(1,g);
Demap=mod(phase(Dede),2*pi);
% BPSK DeMapping
if or(Demap>=((3/2)*pi), Demap<(pi/2))
y=[0];
elseif Demap<((3/2)*pi) &
Demap>=(pi/2)
y=[1];
end
FRAMEOUT(1,m*(g-1)+1:m*g)=[y];
end FRAMEIN FRAMEOUT
Wireless Access Tech. Lab.
Matlab
z FRAMEIN =
z 0 1 0 1 1 0 1 0 0 1
z FRAMEOUT =
z 0 1 0 1 1 0 1 0 0 1
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
2 3 4 5 6 7 8 9 10
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Wireless Access Tech. Lab.
Matlab
z Signal constellation
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Example 2
Wireless Access Tech. Lab.
Matlab
z 影像強化技術的主要目的是為了增加影像的視覺效果,
讓人眼或機器更容易去辨識。
z 探究影像如何對不清晰或失真的影像去改善其效果,或 對於受雜訊干擾的影像去做影像還原的技巧,以達到我 們能辨識或得到所需的影像訊息。
z 通常的使用的方法大致可以分為點處理增強、空間與頻 域濾波器幾種。
z 空間濾波器大致可以分為:Lowpass filter、Highpass filter、Bandpass filter、Median filter、Edge- Detection filter、Differentiation filter、
Laplacian filter等,各種濾波器各有其使用的目的
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z Lowpass filter:
¾ Mask:
z Median filter:
¾
其使用方法為把Mask內的各灰階值由大排到小,取其中排序在 中間的那個值。1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
Wireless Access Tech. Lab.
Matlab
z Highpass filter:
¾ Mask
-1/9 -1/9 -1/9
-1/9 -8/9 -1/9
-1/9 -1/9 -1/9
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
-ì¼v¹³ ¸gGa ue s s ia n nois e «á ªº¼v¹³
原圖 加高斯雜訊
Wireless Access Tech. Lab.
Matlab
¨Ï¥Î3x3Lowpa s s filte r§ïµ½¸gGa ue s s ia n nois e ,m=0.5,Va r=0.01«á ªº¼v¹³ ¨Ï¥Î4x4Lowpa s s filte r§ïµ½¸gGa ue s s ia n nois e ,m=0.5,Va r=0.01«á ªº¼v¹³
3x3 low pass 4x4 low pass
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
¨Ï¥Î3x3me dium filte r§ïµ½¸gGa ue s s ia n nois e ,m=0.5,Va r=0.01«á ªº¼v¹³
3x3 mid filter
¨Ï¥Î4x4Me dium filte r§ïµ½¸gGa ue s s ia n nois e ,m=0.5,Va r=0.01«á ªº¼v¹³
4x4 mid filter
Wireless Access Tech. Lab.
Matlab
¨Ï¥Î3x3highpa s s -pre witt filte r§ïµ½«á ªº¼v¹³
3x3 high pass
¨Ï¥Î3x3highpa s s -pre witt filte r§ïµ½«á ªº¼v¹³
4x4 high pass
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
%程式L5_1.m: 直方圖等化法%
%image_1 原影像;image_2 執行直方圖等化後的影像%
image_1=imread('E:/dip/ch5/L5_1.bmp'); %讀取影像 image_2=histeq(image_1); %對上述影像執行直方圖等 化
imshow(image_1) %顯示原影像
figure,imshow(image_2) %顯示處理後的影像 figure,imhist(image_1) %顯示原影像的直方圖 figure,imhist (image_2) %顯示處理後影像的直方圖
%程式L5_2.m: 平滑濾波器%
%Image: 原影像%
%Image_noisy: 受污染的影像%
%Image_low: 執行低通濾波器後的影像%
%Image_med: 執行中值濾波器後的影像%
Image=imread('A:/ch5/L5_2.bmp'); %讀取影像
%將胡椒鹽式的雜訊加入原影像中,其中0.02 是雜訊密度%
Image_noisy= imnoise (Image ,'salt & pepper',0.06);
Image2_noisy=double(Image_noisy)/255; %變為 double格式 h=[1/9 1/9 1/9;1/9 1/9 1/9 ; 1/9 1/9 1/9]; %濾波器的子遮罩 Image_low=filter2(h, Image2_noisy); %執行低通濾波
Image_med=medfilt2(Image_noisy,[3 3]); %中值濾波採3×3矩陣
%顯示影像%
imshow(Image) figure,imshow(Image_noisy) figure,imshow(Image_low) figure,imshow(Image_med)
Wireless Access Tech. Lab.
Matlab
%程式L5_2.m: 平滑濾波器%
%Image: 原影像%
%Image_noisy: 受污染的影像%
%Image_low: 執行低通濾波器後的影像%
%Image_med: 執行中值濾波器後的影像%
Image=imread('A:/ch5/L5_2.bmp');
%讀取影像
%將胡椒鹽式的雜訊加入原影像中,其中0.02 是雜 訊密度%
Image_noisy= imnoise (Image ,'salt &
pepper',0.06);
Image2_noisy=double(Image_noisy)/255;
%變為 double格式
h=[1/16 1/16 1/16;1/16 1/16 1/16 ; 1/16 1/16 1/16 ;1/16 1/16 1/16]; %濾波 器的子遮罩
Image_low=filter2(h, Image2_noisy);
%執行低通濾波
Image_med=medfilt2(Image_noisy,[5 5]); %中值濾波採3×3矩陣
%顯示影像%
imshow(Image) figure,imshow(Image_noisy)
figure,imshow(Image_low) figure,imshow(Image_med)
%程式L5_2.m: 平滑濾波器%
%Image: 原影像%
%Image_noisy: 受污染的影像%
%Image_low: 執行低通濾波器後的影像%
%Image_med: 執行中值濾波器後的影像%
Image=imread('A:/ch5/L5_2.bmp'); %讀取影像
%將胡椒鹽式的雜訊加入原影像中,其中0.02 是雜訊密度%
Image_noisy= imnoise (Image ,'salt & pepper',0.06);
Image2_noisy=double(Image_noisy)/255; %變為 double格式 h=[1/9 1/9 1/9;1/9 1/9 1/9 ; 1/9 1/9 1/9]; %濾波器的子遮罩 Image_low1=filter2(h, Image2_noisy); %執行低通濾波
v=[1/16 1/16 1/16;1/16 1/16 1/16 ; 1/16 1/16 1/16 ;1/16 1/16 1/16]; % 濾波器的子遮罩
Image_low2=filter2(v, Image2_noisy); %執行低通濾波 Image_med1=medfilt2(Image_noisy,[3 3]);
Image_med2=medfilt2(Image_noisy,[5 5]); %中值濾波採3×3矩陣
%顯示影像%
imshow(Image) figure,imshow(Image_noisy) figure,imshow(Image_low1) figure,imshow(Image_low2) figure,imshow(Image_med1) figure,imshow(Image_med2)
Wireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z Homework 1
z Generate AWGN in baseband BPSK systems
BPSK
Mapping AWGN BPSK
Demapping
{ } 1, 1 −
{ } 0,1
Random Data Generator
Wireless Access Tech. Lab.
Matlab
z Random data generator
¾
Generate a random sequence as a vectory
rand : generate a random number between 0 and 1.y
rand (m, n): is an m-by-n matrix with random entries, chosen from a uniform distribution on the interval (0.0,1.0).y
Æ how to generate the sequence only 0 and 1 ??¾
BPSK Mapping / Demappingy
Using signal constellation concept¾
AWGNy
Give SNRÆ compute the signal power Æ Noise power or noise variance Æ generate a AWGN and add it to the signal.y
randn (m,n) : it is an m-by-n matrix with random entries, chosen from a normal distribution with mean zero, variance one and standard deviation one.¾
BER SimulationWireless Access Tech. Lab.
CCU
Wireless Access Tech. Lab.
Matlab
z Homework 2
¾
The Transmission of Direct-sequence Spread Spectrumy
Spread / despread spectrumy
Spread Codey Walsh codes y Random codes
BPSK
Mapping Channel BPSK
Demapping Random
Data Generator
DS-SS (Code 2)
DS-DSS (Code 2) BPSK
Mapping Random
Data Generator
DS-SS (Code 1)
BPSK Mapping Random
Data Generator
DS-SS
(Code 3) BPSK
Demapping DS-DSS
(Code 3)
BPSK Demapping DS-DSS
(Code 1) User 1
User 2
User 3
User 1
User 2
User 3