Tải bản đầy đủ (.pdf) (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.41 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à quá
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:

( n)

1,

n

0



0, n

0

 ,0,0, 1,0,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:
( n n0 )

1,

n

n0

0, n


n0

, n1

n

n 2 , n1

n0

n2

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

0 when n 0

un

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

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:
xn

2 cos

n
10

2

sin

n

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:
Tín hiệu

xn

2 cos

n
10

2

sin

n
20

2


(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:
xn

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 emũ phức.
 Ví dụ với dãy

xn

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 toá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
k 0

ak y ( n k )

M

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



×