Tải bản đầy đủ (.ppt) (21 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.37 MB, 21 trang )

Xử lý tín hiệu nâng cao

CHƯƠNG II
Tín hiệu rời rạc


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à q
trình lấy mẫu tín hiệu

2


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:





 1, n 0
 (n) 
 ,0,0, 1,0,0, 

 0, n 0


 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ị


x[n]   x[k ] [n  k ]
k 

3


Dãy xung đơn vị (tiếp)
 Trong Matlab ta có thể biểu diễn như sau:
 1, n n0
 ( n  n0 ) 
, n1 n n2 , n1 n0 n2
0
,
n

n
0

function[x,n]=impseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)==0];

 Ví dụ: Tạo dãy xung đơn vị trong khoảng [-5:5]
n=[-5:5]
x=impseq(0,-5,5)
stem(x)


 Kết quả:
4


Các tín hiệu cơ sở (tiếp)
 Dãy nhảy bậc đơn vị: Dãy nhảy bậc đơn vị có giá trị
bằng đơn vị khi đối số lớn hơn hoặc bằng 0, và bằng 0
khi đối số nhỏ hơn 0.
 1 when n 0
u n 
 0 when n  0

 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 thành một tổng các dãy xung nhảy bậc
đơn vị


x n   x k  (u n  u n  1 )
k 

5


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)
n=[n1:n2];
x=[(n-n0)>=0];


 Ví dụ: tạo dãy nhảy bậc đơn vị trong khoảng [-5:5]
x=stepseq(0,-5,5)
stem(x)

 Kết quả:

6


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]

7


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). Trong Matlab, hàm sin
(hoặc cos) được sử dụng để tạo ra dãy tín hiệu này.
 Ví dụ tạo dãy tín hiệu:
 n  
 n  
x n 2 cos
   sin
 
 10 2 

 20 2 

trên đoạn [0:50]

 Kết quả:

8


Dãy tín hiệu hình sin (tiếp)
 Ví dụ 2:
n  
 n  
   sin
 
 10 2 
 20 2 


Tín hiệu x n 2 cos

(trong ví dụ trên)

bị ảnh hưởng bởi nhiễu Gauss: y[n]=x[n]+0.2*w[n]

 Kết quả:

9



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:
x n ae j (n ) a cosn     j sin n    

 Trong Matlab ta sử dụng hàm exp để tạo ra các dãy e-mũ

phức.
 Ví dụ với dãy

x n e

0.1jn
trên đoạn [-10:30]

clc
n=[-10:30];
x=exp(0.1j*n*pi);
subplot(221);stem(real(x));title('Phan thuc');
subplot(222);stem(imag(x));title('Phan ao');
subplot(223);stem(abs(x));title('Bien do');
subplot(224);stem(angle(x));title('Pha cua x');
10


Dãy e-mũ phức (tiếp)

Hàm e-mũ phức là một hàm tuần hoàn
11



Các phép tốn trên tín hiệu
 Phép dịch chuyển
 Phép nhân, cộng tín hiệu
 Phép nhân chập 2 tín hiệu

12


Thực hành
 Tạo hàm dịch chuyển sigshift, thực hiện
dịch tín hiệu xung đơn vị trễ pha 5 mẫu
 Thực hiện nhân chập 2 tín hiệu sau:
x[n]=[1, 2, 3, 4, 5] và h[n]=[2, 2]

13


Phương trình sai phân
 Với kích thích đầu vào x(n) và đáp ứng ra
y(n) của hầu hết các hệ thống tuyến tính
thỏa mãn:
N

a
k 0

M

k


y (n  k )  br x(n  r )
r 0

14


Phương trình sai phân
 Biểu diễn trong Matlab, người ta sử dụng một
hàm filter, hàm này có định dạng 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=impseq(0,-10, 100);
h=filter(b,a,x);
stem(h);
15


Phương trình sai phân

16


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).
17


Biểu diễn ảnh

 Một ma trận tọa độ ảnh trong Matlab được biểu diễn

18


Đọc ảnh, hiển thị ảnh
 Trong Matlab sử dụng hàm
imread(‘filename’) để đọc một ảnh:
 Hàm imshow(image) trong được sử dụng
để hiện ảnh.
 Lưu một ảnh từ ma trận I ra một file, sử
dụng hàm imwrite(image,’filename’):

19


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('pout.tif');
J = imadjust(I,[0.3 0.7],[]);
imshow(I), figure, imshow(J);
20


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)

21



×