Xử lý tín hiệu nâng cao - Chương 2: Tín hiệu rời rạc

Trong DSP, tín hiệu thời gian rời rạc, được

biểu thị bằng một dãy rời rạc:

x(n)={-3 , 2, 4, -4, 0, 1 }

Quá trình rời rạc hóa còn gọi là quá trình lấy

mẫu tín hiệu

pdf 54 trang dienloan 19200
Bạn đang xem 20 trang mẫu của tài liệu "Xử lý tín hiệu nâng cao - Chương 2: Tín hiệu rời rạc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Xử lý tín hiệu nâng cao - Chương 2: Tín hiệu rời rạc

Xử lý tín hiệu nâng cao - Chương 2: Tín hiệu rời rạc
Xử lý tín hiệu nâng cao
Chương 2
Tín hiệu rời rạc
-Advanced signal processing-
Khái niệm về tín hiệu rời rạc
Trong DSP, tín hiệu thời gian rời rạc, được 
biểu thị bằng một dãy rời rạc:
x(n)={-3 , 2, 4, -4, 0, 1}
Quá trình rời rạc hóa còn gọi là quá trình lấy 
mẫu tín hiệu 
Tín hiệu rời rạc
MATLAB chỉ có khả năng biểu diễn một dãy số với 
độ dài hữu hạn
  Khi đó dãy số được khai báo và lưu trữ dưới dạng 
vector, ví dụ: 
>> x = [3, 2, -1, 7, -5]
  dãy số không thể hiện được chỉ số của các thành phần 
trong dãy. 
  Để biểu diễn một dãy rời rạc có độ dài hữu hạn, ta cần 
khởi tạo và lưu trữ chúng dưới dạng 2 vector. Ví dụ: 
>> n = [-2:2] 
>> x = [3, 2, -1, 7, -5] 
plot và stem 
vẽ đồ thị của một dãy số
 plot: để thể hiện dạng liên tục
 stem: để thể hiện dạng rời rạc
• thường sử dụng hàm stem để vẽ tín hiệu ở miền n. 
Các tín hiệu cơ sở
Dãy xung đơn vị: hay còn gọi là hàm Delta, có giá trị
bằng đơn vị khi đối số = 0 và có giá trị bằng 0 trong các
trường hợp còn lại:
{ } ,0,0,1,0,0,
0,0
0,1)(
↑
=



≠
=
=
n
n
nδ
Một tín hiệu thời gian rời rạc bất kỳ có thể được khai
triển từ các dãy xung đơn vị
( ) ( ) ( )
k
x n x n n kδ
∞
=−∞
= −∑
Dãy xung đơn vị (tiếp)
 Để vẽ tín hiệu này, có thể sử dụng hàm số zeros(1,N) để tạo 
ra một vecto hàng N giá trị 0. 
% Day xung don vi
{ } ,0,0,1,0,0,
0,0
0,1)(
↑
=



≠
=
=
n
n
nδ
Day xung don vi
n=-10:20;
delta=[zeros(1,10) 1 zeros(1,20)];
stem(n,delta);
xlabel('Thoi gian roi rac n');
ylabel('Bien do');
title('Day xung don vi');
axis([-10 20 0 1.2]); -10 -5 0 5 10 15 200
0.2
0.4
0.6
0.8
1
Thoi gian roi rac n
B
i
e
n
d
o
Dãy xung đơn vị (tiếp)
 Trong Matlab ta có thể biểu diễn như sau:
function[x,n]=impseq(n0,n1,n2)
%Tao ra day x(n) = delta(n-n0); n1 <= n <= n2 
n=[n1:n2];
x=[(n-n0)==0];
20121
0
0
0 ,,
,0
,1)( nnnnnn
nn
nn
nn ≤≤≤≤



≠
=
=−δ
-5 -4 -3 -2 -1 0 1 2 3 4 5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
 Ví dụ: Tạo dãy xung đơn vị trong khoảng [-5:5]
n=-5:5;
x=impseq(0,-5,5);
stem(n,x);
 Kết quả:
Các tín hiệu cơ sở (tiếp)
 Dãy nhảy bậc đơn vị:
 Một dãy tín hiệu rời rạc theo thời gian bất kỳ x[n] để có thể khai triển
( ) 1 khi n 0
0 khi n 0
u n
≥
= 
<
thành một tổng các dãy xung nhảy bậc đơn vị 
( ) ( ) ( ) ( )( )1
k
x n x k u n u n
+∞
=−∞
= − −∑
Dãy nhảy bậc đơn vị (tiếp)
 Để vẽ dãy này, ta có thể sử dụng hàm ones(1,N) để tạo ra 
một vecto hàng gồm N số một. 
% Tao day nhay don vi
( ) 1 khi n 0
0 khi n 0
u n
≥
= 
<
n=[-10:20];
u=[zeros(1,10) ones(1,21)];
stem(n,u);
xlabel('Thoi gian roi rac n'); 
ylabel('Bien do');
title('Day nhay don vi');
axis([-10 20 0 1.5]);
-10 -5 0 5 10 15 20
0
0.5
1
1.5
Thoi gian roi rac n
B
i
e
n
d
o
Day nhay don vi
Dãy nhảy bậc đơn vị (tiếp)
 Trong Matlab để tạo ra dãy xung nhảy bậc đơn vị ta xây 
dựng hàm stepseq:
function [x,n]=stepseq(n0,n1,n2)
%Tao ra day x(n) = u(n-n0); n1 <= n <= n2 
n=[n1:n2];
x=[(n-n0)>=0];
-5 -4 -3 -2 -1 0 1 2 3 4 5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
 Ví dụ: tạo dãy nhảy bậc đơn vị trong khoảng [-5:5]
[x,n]=stepseq(0,-5,5);
stem(n,x);
 Kết quả:
Thực hành
 Vẽ đồ thị tín hiệu: 
x[n]=2*δ[n-5]-4*δ[n+7] 
trên đoạn [-10:10]
 Vẽ đồ thị tín hiệu:
x[n]=e-0.3(n-10)(u(n-5)-u(n-15))
trên đoạn [0:20]
Thực hành
 Vẽ đồ thị tín hiệu: 
x[n]=2*δ[n-5]-4*δ[n+7] trên đoạn [-10:10]
n=[-10:10];
x=[2*impseq(5,-10,10)-4*impseq(-7,-10,10)];
stem(n,x);
title('Day so theo dau bai x[n]=2*δ[n-5]-4*δ[n+7]'); 
xlabel('n'); ylabel('x(n)'); 
Thực hành
 Vẽ đồ thị tín hiệu:
x[n]=e-0.3(n-10)(u(n-5)-u(n-15))
trên đoạn [0:20]
n=[0:20];
x=[exp(-0.3*(n-10)).*(stepseq(5,0,20)-
stepseq(15,0,20))];
stem(n,x);
Các tín hiệu cơ sở (tiếp)
 Dãy tín hiệu hình sin: Dãy tín hiệu hình sin được biểu thị bằng 
hàm số sin (hoặc cos). 
 Ví dụ tạo dãy tín hiệu: trên [0:50]
n=[0:50];
( ) 2cos sin
10 2 20 2
n n
x n
pi pi pi pi   
= − − +   
   
0 5 10 15 20 25 30 35 40 45 50
-3
-2
-1
0
1
2
3x=[2*cos(pi*n/10-pi/2)-sin(pi*n/20+pi/2)];
stem(n,x);
 Kết quả:
Dãy tín hiệu hình sin (tiếp)
Ví dụ 2: Tín hiệu (trong ví dụ 
trên) bị ảnh hưởng bởi nhiễu Gauss: y[n]=x[n]+0.2*w[n]
 w(n) là hàm có giá trị ngẫu nhiên theo phân bố Gauss, trung bình bằng 
0, phương sai bằng 1 
n=[0:50];
[ ] 





+−





−=
220
sin
210
cos2 pipipipi nnnx
0 5 10 15 20 25 30 35 40 45 50
-3
-2
-1
0
1
2
3
x=[2*cos(pi*n/10-pi/2)-sin(pi*n/20+pi/2)];
w=randn(1,51);
y=[x+0.2*w];
stem(n,y);
Các tín hiệu cơ sở (tiếp)
 Dãy e-mũ phức: được định nghĩa bởi hệ thức:
 Trong Matlab ta sử dụng hàm exp để tạo ra các dãy e-mũ phức.
 real(z) và imag(z) :phần thực và phần ảo của số phức 
z = x + iy.
∠
( ) ( ) ( )( )( ) cos sinj nx n ae a n j nω ϕ ω ϕ ω ϕ+= = + + +
 abs(z) và angle(z) : độ lớn và góc pha của số phức 
z = x + iy = r θ
 polar(theta,r) vẽ đồ thị trong tọa độ cực
• r là độ lớn 
• theta là góc pha tính theo radian.
Các tín hiệu cơ sở (tiếp)
 Dãy e-mũ phức: 
 Ví dụ với dãy trên đoạn [-10:20]
n=[-10:20];
x=exp(0.1j*n*pi);
subplot(221);stem(n,real(x));title('Phan thuc');
( ) 0.1 jnx n e pi=
subplot(222);stem(n,imag(x));title('Phan ao');
subplot(223);stem(n,abs(x));title('Bien do');
subplot(224);stem(n,angle(x));title('Pha cua x');
Dãy e-mũ phức (tiếp)
-10 0 10 20
-1
-0.5
0
0.5
1
Phan thuc
-10 0 10 20
-1
-0.5
0
0.5
1
Phan ao
Hàm e-mũ phức là một hàm tuần hoàn
-10 0 10 20
0
0.5
1
Bien do
-10 0 10 20
-4
-2
0
2
4
Pha cua x
Bài tập
Tạo và vẽ dãy hàm mũ thực 
trong khoảng [n1, n2]
( )
na khi n 0
0 khi n 0
e n
 ≥
= 
<
Tạo và vẽ dãy xung chữ nhật có chiều dài L.
Bài tập
Thể hiện trên đồ thị 4 chu kỳ của dãy tuần 
hoàn với chu kỳ N=5 
( ) { }...5, 4,3, 2,1,5 , 4,3, 2,1,5, 4,3, 2,1,... , 10 9x n n= ↑ − ≤ ≤∼
n = [-10:9]; x = [5 4 3 2 1]; Day so theo de bai
P = 4; 
xtilde = x'*ones(1,P) 
xtilde = xtilde(:)' 
stem(n,xtilde);title('Day tin hieu'); 
xlabel('n'); ylabel('xtilde(n)'); -10 -8 -6 -4 -2 0 2 4 6 8 100
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
n
x
t
i
l
d
e
(
n
)
Các phép toán trên tín hiệu
Phép dịch chuyển
Biến số n đảo 
Phép cộng 2 tín hiệu
Phép nhân 2 tín hiệu
Phép nhân chập 2 tín hiệu
Các phép toán trên tín hiệu
Phép dịch chuyển:
y(n) = x(n-m)
 Trong Matlab, phép toán dịch có thể được thực 
hiện nhờ vào hàm trễ sau:
function [y,n] = sigshift(x,m,n0)
% implements y(n) = x(n-n0)
% -------------------------
%[y,n] = sigshift(x,m,n0)
n = m+n0; 
y = x;
Các phép toán trên tín hiệu
 Biến số n đảo:
y(n)=x(-n)
 Trong Matlab, phép toán này có thể được thực hiện nhờ vào hàm sau:
function [y,n] = sigfold(x,n)
% implements y(n) = x(-n)
% -----------------------
% [y,n] = sigfold(x,n)
y = fliplr(x); 
n = -fliplr(n);
 fliplr: lộn ngược lại thứ tự các phần tử trong một ma trận theo 
hướng xuất phát từ phải qua trái trở thành từ trái qua phải. 
Các phép toán trên tín hiệu
Phép cộng 2 tín hiệu y(n) = x1(n)+ x2(n)
function [y,n] = sigadd(x1,n1,x2,n2)
%Thuc hien y(n) = x1(n)+x2(n) 
%----------------------------------------------
%[y,n] = sigadd(x1,n1,x2,n2) 
% y = day tong co vector chi so n 
% x1 = day thu nhat co vector chi so n1 
% x2 = day thu hai co vector chi so n2 
% n2 co the khac n1
n = min(min(n1),min(n2)):max(max(n1),max(n2)); 
y1 = zeros(1,length(n));y2 = y1;
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; 
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; 
y = y1+y2; 
Các phép toán trên tín hiệu
 Phép nhân 2 tín hiệu: y(n) = x1(n).x2(n)
function [y,n] = sigmult(x1,n1,x2,n2)
%Thuc hien y(n) = x1(n)*x2(n) 
%----------------------------------------------
% y = day tich co vector chi so n 
%x1 = day thu nhat co vector chi so n1 
%x2 = day thu hai co vector chi so n2 
% n2 co the khac n1
n = min(min(n1),min(n2)):max(max(n1),max(n2)); 
y1 = zeros(1,length(n)); y2 = y1; 
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; 
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; 
y = y1 .* y2; 
Các phép toán trên tín hiệu
Phép nhân chập 2 tín hiệu y(n)=x1(n)*x2(n)
 Matlab cung cấp hàm conv để tính phép nhân chập cho
hai dãy có chiều dài hữu hạn. Hàm conv thực hiện phép
nhân chập cho hai dãy có chiều dài hữu hạn từ n =0 và
cho kết quả: y =conv(x,h)
 hàm conv không cho biết thông tin về thời gian.
  Để có thêm thông tin về thời gian và thực hiện phép
nhân chập cho các dãy hữu hạn nhưng có gốc thời gian
khác nhau định nghĩa hàm Matlab conv_m
Các phép toán trên tín hiệu
Phép nhân chập 2 tín hiệu y(n)=x(n)*h(n)
function [y,ny] = conv_m(x,nx,h,nh) 
%Ham tinh tich chap da duoc sua doi danh cho 
%xu ly so tin hieu 
%-------------------------------------------------
%[y,ny] = conv_m(x,nx,h,nh) 
%[y,ny] = day ket qua 
%[x,nx] = day thu nhat 
%[h,nh] = day thu hai 
% 
nyb = nx(1)+nh(1); 
nye = nx(length(x))+nh(length(h)); 
ny = [nyb:nye]; 
y = conv(x,h); 
Năng lượng
Dãy được tính năng lượng có thể là dãy thực hoặc
dãy phức
( ) ( ) ( ) 2*x
n n
E x n x n x n
+∞ +∞
=−∞ =−∞
= =∑ ∑
function[Ex]=energy(x);
Ex=sum(x.*conj(x));
% sum(abs(x).^2)
Công suất
Công suất trung bình của một dãy tuần hoàn 
( )1 2
0
1 N
x
n
P x n
N
−
=
= ∑
function[Px]=power(x);
Px=sum(abs(x).^2)/N
Bài tập
Cho x(n)=2-n với 0≤n≤5
 Vẽ dãy x(n)u(n) theo n
 Vẽ dãy x(n)u(2-n) theo n
 Vẽ dãy x(-n)u(-n) theo n
Bài tập
Cho x=[1, 2, 3↑, 4, 5, 6, 5, 4, 3, 2, 1, 2, 3]. Hãy tạo và 
vẽ các dãy sau:
 y1(n)=2x(n-5) + 3x(n+4) 
 y (n)=2x(3-n) – x(n).x(n+2)2
Với -2 ≤ n≤10
Bài tập
Cho các dãy có chiều dài 7 mẫu sau:
1 3 2 0 1 4 3 2x  = − − ↑ 
2 0 7 1 1 3 4 2x  = ↑ − − 
5 2 3 6 4 0 2x  = − − ↑ 
 Tìm và vẽ các dãy sau đây:
•y(n)=x1(n)+x2(n)
•y(n)=x1(n).x2(n)
•y(n)=x1(n)-x3(n)
3
Bài tập
Cho hai dãy
3 11 7 0 1 4 2x  = ↑ − 
2 3 0 5 2 1h  = ↑ − 
Tính tích chập của x(n) với h(n).
Hệ thống rời rạc 
Hệ thống rời rạc
 Tín hiệu vào được gọi là đầu vào (input) hay kích
thích (excitation) của hệ thống.
 Tín hiệu ra được gọi là đầu ra (output) hay đáp
ứng (response) của hệ thống.
Trong MATLAB, hệ thống được định chung
bởi khái niệm filter
Hệ thống tuyến tính bất biến
Một hệ thống là tuyến tính bất biến (Linear Time-
Invariant – LTI) nếu nó tuyến tính (linearity) và bất
biến theo thời gian (time-invariance).
 Tuyến tính: đáp ứng của hệ thống với kích thích là một tổ
hợp tuyến tính các tín hiệu rời rạc sẽ bằng với tổ hợp tuyến
tính của các đáp ứng, với mỗi đáp ứng này là đầu ra khi
cho từng thành phần của đầu vào qua hệ thống.
 Bất biến theo thời gian: đáp ứng của hệ thống có dạng
giống hệt nhau với cùng một kích thích mà không phụ
thuộc vào thời điểm đưa kích thích tới đầu vào.
Hệ thống tuyến tính bất biến
Một hệ thống tuyến tính bất biến luôn có đáp ứng ra 
y(n) là tích chập (convolution sum) giữa đầu vào x(n) 
với dãy đáp ứng xung h(n) của hệ thống, là đáp ứng 
của hệ thống khi đưa kích thích δ(n) tới đầu vào
( ) ( ) ( ) ( ) ( ) ( )* *y n T x n x n h n h n x n= = = 
( ) ( ) ( ) ( )
k k
x n h n k h n x n k
+∞ +∞
=−∞ =−∞
 
= − = −∑ ∑
Hệ thống nhân quả 
Một hệ thống là nhân quả nếu đáp ứng ra tại thời điểm hiện tại
không phụ thuộc vào kích thích vào tại các thời điểm tương
lai. Một hệ thống tuyến tính bất biến là nhân quả nếu đáp ứng
xung thoả mãn:
( ) 0 0h n khi n= <
Hệ thống ổn định
Một hệ thống là ổn định (Bounded In Bounded Out Stable –
BIBO Stable) nếu với một kích thích bị chặn luôn sinh ra một
đáp ứng cũng bị chặn, tức là giá trị của đáp ứng ra không tiến
đến vô cùng.
Một hệ thống tuyến tính bất biến là ổn định nếu đáp ứng xung
thoả mãn:
( )
n
h n
+∞
=−∞
< ∞∑
Phương trình sai phân
 Tất cả các hệ thống tuyến tính bất biến có thể thực hiện được,
thông qua phần cứng hoặc mô tả phần mềm, đều được mô tả
bởi phương trình sai phân tuyến tính hệ số hằng có dạng:
∑∑
==
−=−
M
r
r
N
k
k rnxbknya
00
)()(
 hay có thể viết dưới dạng sau thích hợp với thể hiện mô hình
sơ đồ khối của hệ thống:
( )
0 1
( ) ( )
M N
r k
r k
y n b x n r a y n k
= =
= − − −∑ ∑
Phương trình sai phân
 Trong MATLAB có hàm filter cho phép tìm dãy đáp ứng
đầu ra y(n) nếu biết trước các biến đầu vào là các hệ số của
phương trình sai phân, dãy ak, br và kích thích đầu vào x(n).
y=filter(b,a,x)
 Ví dụ: y(n)-y(n-1)+0.9y(n-2)=x(n) cần tính h(n)
a=[1,-1,0.9];
b=[1];
[x,n]=impseq(0,-10, 100);
h=filter(b,a,x);
stem(n,h);
-20 0 20 40 60 80 100
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Bài tập
 Viết chương trình tạo dãy hàm mũ thực với các tham số đầu
vào và đầu ra được nhập theo câu lệnh:
[x,n] = expseq(a,n1,n2)
 Chú ý: tham số a có thể thực hoặc phức
 Viết chương trình tạo một dãy thực ngẫu nhiên xuất phát từ
n1 đến n2 và có giá trị của biên độ theo phân bố Gauss với
trung bình bằng 0, phương sai bằng 1. Các tham số đầu vào
và đầu ra được nhập theo câu lệnh:
[x,n] = randnseq(n1,n2)
Bài tập
 Viết chương trình thể hiện trên đồ thị các dãy sau đây:
với w(n) là hàm có giá trị 
( ) ( ) ( ) ( ) ( )
10110 10 10 20 , 0 20
3
n
x n n u n u n u n u n n
−
 
= − − + − − − ≤ ≤       
 
( ) ( ) ( )cos 0.04 0.2 , 0 20x n n w n npi= + ≤ ≤
ngẫu nhiên theo phân bố Gauss, trung bình bằng 0, phương sai bằng 1 
 Sau đó tính năng lượng của từng dãy.
Bài tập
Cho dãy x(n)={1,2,3,4,5,6,7↑,6,5,4,3,2,1} -2≤n ≤ 2. 
Viết chương trình thể trên đồ thị các dãy sau đây:
 x1(n)=2x(n-5)-3x(n+4)
 x (n)=x(3-n)-x(n)x(n-2)2
Bài tập
Viết chương trình thể hiện trên đồ thị kết quả phép 
tính tích chập giữa 2 dãy sau: 
( ) ( )
( )
6
1 0 3
x n rect n
n
n
h n
=

− ≤ ≤
=
Với -4≤n ≤ 10
4
0 3, 0n n

 > <
Bài tập
Đáp ứng xung của hệ thống rời rạc theo thời gian có chiều dài hữu hạn 
 Cho một hệ thống rời rạc có chiều dài hữu hạn có dạng tổng 
quát như sau: 
1 1
0 0
( ) ( )
N M
k r
k r
a y n k b x n r
− −
= =
− = −∑ ∑
a) Hãy sử dụng hàm impz để tính toán và vẽ đáp ứng xung 
của hệ thống. 
b) Kiểm tra lại với các hệ thống sau:
( ) 3 ( 1) 4 ( 2) ( ) 2 ( 1)xy n y n y n x n n− − − − = + −
( ) 0,4 ( 1) 0,03 ( 2) ( )y n y n y n x n− − + − =
Bài tập
Đáp ứng ra của hệ thống mô tả bởi phương trình sai phân tuyến tính hệ số hằng 
 Cho hệ thống được mô tả bởi phương trình sai phân tuyến 
tính hệ số hằng như sau:
y(n)-0.5y(n -1)+ 0.06y(n - 2) = x(n)
 Viết chương trình sử dụng hàm filter của MATLAB thực 
hiện các công việc sau:
• Biểu diễn bằng đồ thị hàm đáp ứng xung đơn vị của hệ thống với 
-20 ≤ n ≤ 100
• Biểu diễn bằng đồ thị dãy đáp ứng của hệ thống với -20 ≤ n ≤ 100 
khi dãy đầu vào là dãy nhảy đơn vị.
Bài tập
Cho hệ thống được mô tả bởi phương trình sai phân 
tuyến tính hệ số hằng như sau: 
 Viết chương trình sử dụng hàm filter của MATLAB thực
( ) ( ) ( ) ( )1 0.9 2y n y n y n x n− − + − =
hiện các công việc sau:
• a. Biểu diễn bằng đồ thị hàm đáp ứng xung đơn vị của
hệ thống với -20 ≤ n ≤ 100
• b. Biểu diễn bằng đồ thị dãy đáp ứng của hệ thống với -
20 ≤ n ≤ 100 khi dãy đầu vào là dãy nhảy đơn vị.
Bài tập
 Cho hai hệ thống có phương trình sai phân tuyến tính hệ số hằng như sau:
Hệ thống 1: y(n)=0,5x(n)+0,25x(n-1)+0,82x(n-2)
Hệ thống 2: y(n)=0,45x(n)+0,5x(n-1)+0,4x(n-2)+0,52y(n-1)-0,45y(n-2)
Viết chương trình Matlab để tính đầu ra của hai hệ thống trên với đầu vào:
2 *10 2 *100( )
256 256
os os
n n
x n c c
pi pi   
= +   
   
Mở rộng
Xem xét việc giải phương trình vi phân tuyến
tính hệ số hằng với các điều kiện đầu cho
trước.
 Gợi ý: dựa trên hàm filter và filtic nằm trong bộ
công cụ Signal Processing Toolbox
Tín hiệu hai chiều (ảnh số)
Biểu diễn ảnh
 Một ảnh được biểu diễn dưới dạng một hàm f(x,y) 
 Đối với ảnh số đơn sắc, giá trị f tại (x,y) được gọi 
là mức xám 
 Kết quả của quá trình lấy mẫu và lượng tử hóa là 
một ma trận số liệu. 
 Một ảnh có kích thước M x N là một ma trận có M 
hàng và N cột, mỗi một giá trị trên ma trận gọi là 
một điểm ảnh (pixel).
Biểu diễn ảnh
 Một ma trận tọa độ ảnh trong Matlab được biểu diễn
Đọc ảnh, hiển thị ảnh
Hàm Ý nghĩa
imread(‘filename’) đọc một ảnh
imshow(image) hiện ảnh
imwrite(image,’filename’) Lưu một ảnh từ ma trận ra 
một file
Cải thiện ảnh
Biểu đồ histogram của ảnh I
figure, imhist(I)
Cân bằng Histogram
I2 = histeq(I);
Hiệu chỉnh Histogram
I = imread(‘D:baby.jpg');
J = imadjust(I,[0.3 0.7],[]);
imshow(I), figure, imshow(J);
Tạo ảnh nhị phân
level = graythresh(I);
(graythresh: xác định ngưỡng mức xám của ảnh sử dụng phương pháp Otsu)
bw = im2bw(I,level);
figure, imshow(bw)

File đính kèm:

  • pdfxu_ly_tin_hieu_nang_cao_chuong_2_tin_hieu_roi_rac.pdf