1. Trang chủ
  2. » Luận Văn - Báo Cáo

bao cao xu ly so tin hieu(Đai học ĐàLạt)

80 204 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 2,15 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

giúp các bạn sinh viện đại học đà lạt có thêm tài liệu tham khảo về chuyên ngành, chúc các bạn viết báo cáo thật tốt nhé MATLAB là một công cụ tính toán toán học.MATLAB có thể được sử dụng để tính toán, nó cũng cho phép chúng ta vẽ các biểu đồ, đồ thị theo nhiều cách khác nhau, giống như một chương trình phần mền, chúng ta có thể tạo, thực thi và lưu một dãy các lệnh để máy tính có thể chạy tự động. Cuối cùng MATLAB cũng có thể được coi như một ngôn ngữ lập trình, là một môi trường dùng để lập trình hay tính toán. MATLAB được thiết kế để làm việc với những tập dữ liệu đặc biệt chẳng hạn như ma trận, vector, hình ảnh.

Trang 1

THỰC HÀNH XỬ LÝ SỐ TÍN HIỆU MATLAB là một công cụ tính toán toán học.MATLAB có thể được sử dụng

để tính toán, nó cũng cho phép chúng ta vẽ các biểu đồ, đồ thị theo nhiều cách khác nhau, giống như một chương trình phần mền, chúng ta có thể tạo, thực thi

và lưu một dãy các lệnh để máy tính có thể chạy tự động Cuối cùng MATLAB

cũng có thể được coi như một ngôn ngữ lập trình, là một môi trường dùng để

lập trình hay tính toán MATLAB được thiết kế để làm việc với những tập dữ

liệu đặc biệt chẳng hạn như ma trận, vector, hình ảnh

BÀI 1:

LÀM QUEN VỚI MATLAB

1 Mở một hàm m-file và thực hiện các yêu cầu sau:

a tạo hai ma trận có chiều dài n*m ,n và m là tùy ý

Trang 3

2.1 Trong không gian 2D:

Mở một hàm m-file và vẽ đồ thị của các hàm ( vẽ trên cùng 1 cửa sổ )

Trang 4

title('do thi y3')

Trang 5

Nhận xét : Chương trình nhằm mô phỏng cách sử dụng hàm vẽ đồ thị plot, hàm

tạo nhãn đồ thị title, hàm tạo đường kẻ gird, hàm tạo nhiều cửa sổ con trong cùng một cửa sổ bằng subplot Qua chương trình mô phỏng ta biết được cách thức thực hiện của chương trình cũng như chức năng của từng câu lệnh trong chương trình

Để chỉ định màu và kiểu đường của nét vể ta dùng lệnh plot(x,y,’r ‘)

2.2 Trong không gian 3D:

Trang 8

Nhận xét:

- Từ các chương trình trên ta thấy về hình thức các lệnh sử dụng trong hàm 3D giống với 2D, tuy nhiên với việc sử dụng hàm plot3 trong hàm 3D nó sẽ mở rộng thêm cho một trục tọa độ thứ 3 Trong không gian 2D ta có thể chỉ định màu và kiểu đường của nét vẻ thì trong không gian 3D màu sắc của đồ thị được thực hiện bởi lệnh mesh thay cho lệnh plot3

3 Nhận xét chung:

-Với bài thực hành làm quen với phần mềm MATLAB Ta đã thực hiện các phép

tính toán ma trận, các tạo ma trận Cách vẽ trong không gian 2D, 3D, mục đích chính là để làm với các bài toán đơn giản trước sau đó đến các bài toán phức tạp hơn

Trang 9

BÀI 2:MÔ PHỎNG VÀ TẠO TÍN HIỆU

 Tín hiệu thời gian rời rạc có thể là một dãy mẫu có chiều dài vô hạnhoặc hữu hạn Dãy có chiều dài hữu hạn là dãy có giá trị khác không trongmột khoảng thời gian hữu hạn từ thời điểm N1 đến N2:

Trang 10

Trong đó A, 0 và  là những số thực được gọi là biên độ, tần số góc và phaban đầu của dãy hàm số sine x[n], còn f0 = 0

 Tích hai dãy dữ liệu x[n] và h[n] có cùng chiều dài n sẽ thu được dãy

dữ liệu y[n] có cùng chiều dài N và được thực hiện bằng hệ thức:

y[n] = x[n].h[n] (2.10)

 Cộng hai dãy dữ liệu x[n] với h[n] có cùng chiều dài n sẽ thu được

dữ liệu y[n] có cùng chiều dài N và được thực hiện bằng hệ thức:

Trong đó m là một số nguyên dương Đây cũng chính là phép dịch dãy x[n]

về phía phải trục thời gian M mẫu và được ký hiệu là z –M Trường hợp M = 1 thìđược gọi là trễ đơn vị và ký hiệu z – 1 Nếu M lấy dấu âm thì được gọi là sớm,tương đương với việc dịch dãy về phía trái M mẫu trên trục thời gian

2 Thực hành:

2.1 Dãy xung đơn vị  n

a Tạo dãy xung đơn vị  n có chiều dài N mẫu

x= [1,zeros(1,N-1)];

stem(x)

title('tao day xung don vi co chieu dai N mau')

Trang 11

Chạy trương trình cho ra hình 2.1

-Ta khai báo một dãy xung có N=10 mẫu, sau đó khởi tạo một ma trận 1x10 Phần

tử thứ nhất của ma trận có biên độ bằng 1, các phần tử còn lại bằng 0 Lệnh

title('tao day xung don vi co chieu dai N mau, bi tre M mau (M<N)'

Chạy chương trình cho ra hình 2.2

Trang 12

1 2 3 4 5 6 7 8 9 10 0

- Hoạt động của chương trình trên:

Đầu tiên ta khai báo số lượng mẫu của dãy xung đơn với N=10 và số

lượng mấu lấy trễ M=4 Tiếp theo ta khởi tạo một ma trận x có 1 hàng

với các phần tử từ 1 đến M có giá trị bằng 0 Phần tử tiếp theo sau đó có giá

trị bằng 1 Các phần tử tiếp theo cho đến phần tử N-M-1 có giá trị bằng 0

title('tao day nhay bac don vi u[n]dai N mau ')

Chạy chương trình cho ra hình 2.3

Trang 13

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 0

- Hoạt động của chương trình trên:

Đầu tiên ta khai báo số lượng mẫu của dãy xung N=6 Sau đó ta khởi tạo ma trận u

có một hàng với các phần tử từ 1 đến N có giá trị bằng 1, các phần tử có N<0 có giá trị bằng 0 Lệnh stem(u) cho phép vẽ đồ thị

- Kết quả thu được từ đồ thị ta thấy rằng khi N nằm trong khoảng từ 1 đến 6 thìu[n]=1

d Tạo dãy nhảy bậc đơn vị u[n] dài N mẫu bị trễ M mẫu(M<N):

N=10;

M=4;

u=[ones(1,N-M)];

stem(u)

title('tao day nhay bac don vi u[n]dai N mau tre M nau (M<N) ')

Chạy chương trình cho ra hình 2.4

Trang 14

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 0

e Chương trình phát xung dãy:

% chuong trinh phat day xung

n=-10:20; %Tao mot vector tu -10 den 20

title('Day xung don vi')

Chạy chương trình cho ra hình 2.5

Trang 15

-10 -5 0 5 10 15 20 0

0.5 1 1.5

chi so thoi gian

- Hình thu được cho thấy dãy xung được phát chạy từ -10 đến 20, xung nhịp lên 1 tại vị trí n = 0, các vị trí còn lại có giá trị 0

2.2 Biểu diễn tín hiệu sin phức và sin thực:

% chương trình biểu diễn tín hiệu sin phức (phần thực và phần ảo)

% Tin hieu sin phuc : x[n] = 2exp[-(1/12)+j( / 6)]

Trang 16

chi so thoi gian

chi so thoi gian

- Tín hiệu nhận được có dạng sóng sin, có biên độ giảm dần theo thời gian

2.3 Các tín hiệu thời gian rời rạc sin thực:

% Chương trình biểu diễn tín hiệu thời gian rời rạc sin thực

% Tin hiệu x[n] = 1,5 sin(0,2n)

Trang 17

axis([0 40 -2 2]);

grid;

title('Day tin hieu sin');

xlabel('Chi so thoi gian n');

chi so thoi gian n

- Đây là tín hiệu hình sin tuần hoàn với chu kì T=10, biên độ cực đại A=1,5

2.4 Các tín hiệu ngẫu nhiên thời gian rời rạc

Tín hiệu ngẫu nhiên thời gian rời rạc có chiều dài n mẫu, phân bố đều đặn trong khoảng [0,1]

% Tín hiệu ngẫu nhiên thời gian rời rạc

Trang 18

Chạy chương trình cho ra hình 2.8a1 và 2.8a2

Hình 2.8a2

Nhận xét:

-Tín hiệu nhận được ở hai hình 2.8a1 và 2.8a2 là tín hiệu ngẫu nhiên rời rạc có

chiều dài n mẫu phân bố đều đặn trong khoảng [0,1]

% Tạo tín hiệu ngẫu nhiên dang Gauss

Trang 19

Chạy chương trình cho ra hình 2.8b1 và 2.8b2

Hình 2.8b1

Hình 2.8b2

Nhận xét:

-Tín hiệu nhận được ở hai hình 2.8b1 và 2.8b2 là biễu diễn tín hiệu ngẫu nhiên

dạng gauss có giá trị trung bình bằng không và phương sai bằng đơn vị

3 Mô phỏng:

3.1 Biểu diễm tín hiệu sin thực có tần số 0.9 và 1.1 So sánh các dãy này với dãy trong chương trình 2.3

Trang 20

title('Day tin hieu sin tan so 0.9');

xlabel('Chi so thoi gian n');

title('Day tin hieu sin co tan so 1.1');

xlabel('Chi so thoi gian n');

ylabel('Bien do');

Chạy chương trình cho ra hình 2.9a và 2.9b

Hình 2.9a

Trang 21

a biểu diễn tín hiệu sin thực có chiều dài 50 mẫu:

%Tin hieu x[n]=2.5 sin(0.2pi*n)

n= 0:50; % Vector thời gian

title('Day tin hieu sin tan so 0.08');

xlabel('Chi so thoi gian n');

ylabel('Bien do');

Trang 22

Chạy chương trình cho ra hình 2.10

Hình 2.10

b Thay lệnh stem bằng lệnh plot và lệnh stairs:

% Thay thế lệnh stem bằng lệnh plot

%Tin hieu x[n]=2.5 sin(0.2pi*n)

title('Day tin hieu sin tan so 0.08');

xlabel('Chi so thoi gian n');

ylabel('Bien do');

Trang 23

Chạy chương trình cho ra hình 2.11

Hình 2.11

% Thay thế lệnh stem bằng lệnh stairs

%Tin hieu x[n]=2.5 sin(0.2pi*n)

title('Day tin hieu sin tan so 0.08');

xlabel('Chi so thoi gian n');

ylabel('Bien do');

Trang 24

Chạy chương trình cho ra hình 2.12

xlabel('tin hieu dang luy thua - dung lenh plot');

% Dung lenh stem

xlabel('tin hieu dang luy thua - dung lenh stem');

% Dung lenh stairs

figuren= 0:50;

x= 0.2.*1.2.^n;

stairs(n,x);

Trang 25

axis([0 40 -5 50]);

grid;

xlabel('tin hieu dang luy thua - dung lenh stairs');

Chạy chương trình cho ra hình 2.13

hình 2.13

Chạy chương trình cho ra hình 2.14

hình 2.14

Trang 26

Chạy chương trình cho ra hình 2.15

Hình 2.15

Chạy chương trình cho ra hình 2.16

Hình 2.16

Trang 27

Chạy chương trình cho ra hình 2.17

Hình 2.17

4 Nhận xét chung:

-Qua bài thực hành trên giúp ta biết được cách biểu diễn tín hiệu sin phức vàsin thực, các tín hiệu thời gian rời rạc, và các tín hiệu ngẫu nhiên thời gian rời rạc,các tín hiệu này được quan sát dưới các dạng khác nhau, tính toán và so sánh kếtquả

Trang 28

BÀI 3: HỆ THỐNG LTI

1 Tóm tắt lý thuyết

Hệ thống thời gian rời rạc thực hiện phép ánh xạ tín hiệu lối vào với các giátrị x[n] thành tín hiệu rời rạc lối ra với những tính chất mong muốn bằng cách ápdụng những thuật toán cho trước Bài thực hành này là tiến hành mô phỏng một số

hệ thống rời rạc tuyến tính và bất biến với thời gian đơn giản và nghiên cứu cáctính chất của chúng trên lĩnh vực thời gian Các hệ thống này được đặc trưng bởiđáp ứng xung h[n] và được mô hình hóa trên hình 3.1

Và được ký hiệu bằng: y[n] = x[n]*h[n] (3.2)

 Hai hệ thống LTI có đáp ứng xung lần lượt là h1[n] và h2[n] ghép nối tiếpvới nhau như hình 3.2, thì hệ thống tổng thể có đáp ứng xung:

h[n] = h1[n]*h2[n] (3.3)

Nếu hai hệ thống ghép nối tiếp nhau sao cho: h1[n]*h2[n] =  n (3.4)

thì hệ thống LTI có đáp ứng xung h2[n] được gọi là nghịch đảo của hệ thốngLTI có đáp ứng xung h1[n] và ngược lại

Trang 29

 Một hệ thống LTI được gọi là nhân quả khi và chỉ khi đáp ứng xung của nóthỏa mãn điều kiện: h[n] = 0 khi n < 0 (3.6)

 Quan hệ vào/ ra của một hệ thống LTI còn được biểu thị bằng phương trìnhsai phân hệ số hằng số dạng:    

Giả sử hệ thống là nhân quả, thì phương trình sai phân hệ số hằng số đượcviết lại như sau:      

M m

x[n] = ax1[n] + bx2[n]

(3.10)

sẽ có đáp ứng là: y[n] = ay1[n] + by2[n] (3.11)Phương trình (3.11) đúng đối với các hằng số a và b bất kỳ và đối với tất cảcác giá trị khả dĩ của các tín hiệu lối vào x1[n] và x2[n] Nếu phương trình (3.11)không nghiệm đúng đối với ít nhất một giá trị khác không của a hoặc b, hoặc của

x1[n] hoặc của x2[n] thì hệ thống là phi tuyến

 Hệ thống được gọi là bất biến đối với thời gian nếu y1[n] là đáp ứng đối vớitín hiệu lối vào x1[n], thì đáp ứng đối với phiên bản trễ của tín hiệu lối vào: x[n] = x1[n – n0] (3.12)

ở đây n0 là số nguyên dương hoặc âm

Nếu hệ thức trên không thỏa mãn thì hệ thống được gọi là thay đổi đối vớithời gian

Trang 30

 Trong MATLAB, để mô phỏng các hệ thống thời gian rời rạc LTI nhân quả

có phương trình sai phân (3.7), có thể dùng lệnh filter

y = filter (num,den,x) (3.14)trong đó: x là vector lối vào, num = [b0 b1 … bN]; den = [a0 a1 … aN] là cácvector hệ số của hệ thống; y là vector tín hiệu lối ra, cũng là nghiệm củaphương trình sai phân đối với lối vào x với các điều kiện ban đầu bằng không,

có nghĩa là:

y[-1] = y[-2] = … = y[-N] = 0

 Tín hiệu lối ra y[n] của hệ thốngLTI có đáp ứng xung đơn vị h[n] với lối

vào x[n] cũng được xác định bằng lệnh conv(h,x).

 Đáp ứng xung đơn vị h[n] của một hệ thống được xác định bằng lệnh

h = impz(num,den,N+1)

2.Thực hành

2.1 Các hệ thống tuyến tính và phi tuyến

%Chuong trinh nghien cuu ve tinh chat tuyen tinh va phi tuyen

Trang 31

Chạy chương trình cho ra hình

Nhận xét:

- Hoạt động chương trình : đầu tiên ta cho 2 phương trình x1 và x2 sau đó ta cộng

chúng lại,num là hệ số mẫu của X, den là hệ số tử của Y rồi được đưa qua hệ

thống H bằng lệnh y=filter() X1 được đưa qua hệ thống H bằng y1 = filter(), x2 được đưa qua hệ thống H bằng y2 = filter(), sau đó yt=y1+y2.Kết thúc ta so sánh 2

dơ đồ để kiểm tra tính tuyến tính và d=y-yt là tính sai số của của 2 tín hiệu lối ra

- Code trên matlab để xét tính tuyến tính giống như quá trình lí ta đã học

- Quan sát tín hiệu trên cho ta thấy yt[n] phụ thuộc vào y[n] Hai tín hiệu trên

không tuyến tính với nhau vì có tín hiệu sai số d >0

2.2 Xác định đáp ứng xung đơn vị của hệ thống LTI:

Trong MATLAB chúng ta sử dụng lệnh h=impz(num,den,N) để tính đáp

ứng xung của hệ thống thời gian rời rạc LTI Chương trình sau cho phép tính và vẽđáp ứng xung của hệ thống có phương trình sai phân sau:

Trang 32

Chạy chương trình cho ra hình

Nhận xét:

- Hoạt động của chương trình :ta lấy N=40 mẫu sau đó lấy hệ số tử và hệ số mẫu của bài toán, tìm đáp ứng xung bằng lệnh h =impz() và vẽ đồ thị bằng lệnh stem()

- Trên cho ta đáp ứng xung của bài toán với biên độ giảm dần khi số mẫu tang lên

2.3 Các hệ thống bất biến với thời gian

%chuong trinh he thong bat bien voi thoi gian

Trang 33

title('Tin hieu hieu')

Chạy chương trình cho ra hình

Nhận xét:

- Hoạt động chương trình:ta cho n chạy từ 0 đến 40 mẫu,n0 trễ 10 mẫu, cho

phương trình xn qua hệ thống H tạo thành yn bằng lệnh yn = filter() sau đó lấy trễ

10 mẫu bằng lệnh yn1= [zeros(1,n0) yn] Ta cho xn trễ 10 mẫu trước sau đó đưa qua hệ thống H tạo thành y0 bằng lệnh yn0 = filter(num,den,xn0) Sau đó sẽ tính toán sai số đê kết luận hệ thống có bất biến hay không bằng lệnh dn = yn1 - yn0-Từ kết quả thực hành cho ta thấy tín hiệu lối ra y[n0] bị trễ 10 mẫu so với tín hiệulối ra y[n], sai số giữa hai tin hiệu d=y[n]-y[n0]=0 điều đó cho ta thấy hệ thống này bất biến theo thời gian

Trang 34

2.4 Ghép nối tiếp các hệ thống LTI

*Tính toán theo lí thuyết:

y1[n]+0,9y1[n-1]+0,8y1[n-2]=0,3x[n]-0,3x[n-1] +0,4x[n-2]

<=> y1[z]+0,9y1[z] +0,8 y1[z]=0,3x[z]-0,3 x[z] +0,4 x[z]

<=> y1[z](1+0,9 +0,8 )= x[z](0,3-0,3 +0,4 )

y[n]+0,7y[n-1]+0,85y[n-2]=0,2y1[n]-0,5y1[n-1] +0,3y1[n-2] qua biến đổi z

<=> y[z]+0,7y[z] +0,85 y[z]=0,2y1[z]-0,5 y1[z] +0,3 y1[z]

Ta có

<=> x[z][(0,3-0,3 +0,4 )( 0,2-0,5 +0,3 )]= y[z][(1+0,9 +0,8 ) (1+0,7 +0,85 )]

<=> x[z][0,06-0,21 +0,12 -0,09 +0,12 ]=y[z][1+1,6 +2,28

+1,325 +0,68 ]

* Thực hành:

% Ghep noi tiep cac he thong LTI

x = [1 zeros(1,40)]; % Tao tin hieu vao x[n]

Trang 35

% Ve cac tin hieu

Trang 36

title('Dap ung xung don vi');

%In gia tri tuyet doi cua h(k)

td = abs(h(k));

Chạy chương trình cho ra hình

Trang 37

Nhận xét:

-Hoạt động chương trình :lấy hệ số tử và mẫu của bài toán, khai báo 250 mẫu và

vẽ đáp ứng xung bằng lệnh h = impz(), tính ổn định của hệ thống này nó sẽ suy giảm tới không bằng vòng lặp for và thoát ra vong lặp bằng break khi không đủ điều kiện abs(h(k))<10^(-6)

- -Từ chương trình trên ta thấy sự ổn định của hệ thống từ mẫu 60 tới 250 có biên

độ gần như bằng 0

3.áp dụng

3.1 các hệ thống phi tuyến và tuyến tính

% ap dung cac he thong tuyen tinh va phi tuyen

Trang 38

-Hoạt động chương trình giống với lại mục 2.1

-Ta thu được tín hiệu lối ra của y1[n], y2[n], y[n] Hệ thống trên là hệ thống tuyếntính vì các mẫu tín hiệu có sai số bằng 0

3.2 xác định đáp ứng xung đơn vị của hệ thống LTI Tính ổn định của hệ

thống.

a. y[n] – 0,5y[n - 1] + 0,25y[n - 2] = x[n] + 2x[n-1] + x[n - 3]

Trang 39

%Tinh va ve dap ung xung

title('Dap ung xung cua he thong');

Chạy chương trình cho ra hình

b. y[n] = x[n] – 4y[n – 1] + 3x[n – 2] + 1,7y[n – 1] – y[n – 2]

%Tinh va ve dap ung xung

title('Dap ung xung cua he thong');

Chạy chương trình cho ra hình

Trang 40

Nhận xét :

- Hoạt động chương trình giống với chương trình ở mục 2.2

- Hai hệ thống trên có tính ổn định vì từ mẫu 0 cho tới 90 của câu b) và từ 10 chođến 100 của câu a) gần như là biên độ của đáp ứng xung không thay đổi, lệnh h =impz(num,den,N) có tác dụng là xác định đáp ứng xung đơn vị của hệ thống

3.3 các hệ thống bất biến với thời gian.

Cho hệ thống LTI có phương trình sai phân:

y[n] – 0,5y[n - 1] + 0,25y[n - 2] = x[n] + 2x[n-1] + x[n - 3]

Viết chương trình vẽ tín hiệu lối ra y[n] và y[n – n0] với n0 = 5, tín hiệu lối vào làx[n] = 3 cos(0,5n+

3

) + 2 sin(0,2n)

%chuong trinh he thong bat bien voi thoi gian

Trang 41

title('Tin hieu hieu')

Chạy chương trình cho ra hình

Nhận xét:

Hoạt động chương trình giống với chương trình ở mục 2.3

-Hệ thống trên là bất biến với thời gian vì sai số của các mẫu tín hiệu bằng không

3.4 Ghép nối tiếp các hệ thống LTI

Viết chương trình tính và vẽ các tín hiệu lối ra y1[n] và y2[n] thỏa mãnphương trình sai phân sau:

y1[n] = 0,5x[n] + 0,27x[n – 1] + 0,77x [n – 2]

và y2[n] = 0,45x[n] + 0,5x[n – 1] + 0,45x[n – 2] + 0,53y[n – 1] – 0,46y[n – 2]

Ngày đăng: 07/05/2018, 19:49

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w