1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx

43 1,2K 10

Đ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 43
Dung lượng 1,22 MB

Nội dung

• Sử dụng MATLAB để thực hiện một số tính toán thông dụng với vector, ma trận và số phức • Sử dụng MATLAB để biểu diễn và vẽ đồ thị của một số tín hiệu.. Một đặc điểm hết sức quan trọng

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA ĐIỆN

CÁC BÀI THỰC HÀNH

MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG

( 6 bài)

Họ và tên sinh viên:

Mã lớp thí nghiệm: Mã số sinh viên:

(Sinh viên phải nộp lại vào buổi bảo vệ tuần cuối cùng để chấm điểm)

HÀ NỘI - 2010

Trang 2

BÀI 1 Tính toán và vẽ đồ thị với MATLAB

I Mục đích

• Làm quen công cụ phần mềm MATLAB

• Sử dụng MATLAB để thực hiện một số tính toán thông dụng với vector, ma trận và số phức

• Sử dụng MATLAB để biểu diễn và vẽ đồ thị của một số tín hiệu

II Yêu cầu đối với sinh viên

• Cài đặt phần mềm MATLAB, thực hiện trước bài 1.1 ở nhà

• Đọc tài liệu hướng dẫn và trả lời được các câu hỏi của CBHD trước khi làm thực hành

• Hoàn thành nội dung bài thực hành (kể cả các bài về nhà) trước khi tham dự buổi tiếp theo

III Nội dung

3.1 Làm quen với cửa sổ lệnh và soạn thảo chương trình m file trong MATLAB

Mục này do CBHD hướng dẫn cho SV (khoảng 10ph)

3.2 Tính toán với MATLAB

Bài 1.1 (tự chuẩn bị và làm ở nhà): Phép nhân, chia và luỹ thừa với vector và ma trận

MATLAB là một công cụ phần mềm tính toán rất mạnh, đặc biệt thích hợp cho các lĩnh vực khoa học và kỹ thuật Một đặc điểm hết sức quan trọng là mọi tính toán trong MATLAB đều được dựa trên cơ sở các phép toán cơ bản với vector và ma trận của số phức

MATLAB phân biệt hai cách thực hiện phép nhân, chia và lũy thừa Đó là nhân, chia, lũy thừa kiểu

ma trận, và nhân, chia, lũy thừa kiểu từng phần tử Chúng được định nghĩa như sau:

1 Phép nhân ma trận (nhân vector hàng với vector cột)

Đặt A = [ a1 a2 a3 … an]

và B = [b1 b2 b3 … b ′ n]

là hai vector Để ý rằng A được định nghĩa là vector hàng trong khi B được định nghĩa là vector cột,

vì được chỉ thị bởi dấu chuyển vị (’) Ở đây, phép nhân giữa vector hàng A với vector cột B được thực hiện bởi toán tử nhân ma trận (*) Do đó:

A*B = a b1 1+ a b2 2+ a b3 3+ + a bn n = một giá trị

Ví dụ, nếu A = [1 2 3 4 5] và B = [-2 6 -3 8 7]’ thì phép nhân ma trận A*B sẽ cho kết quả là

68, tức là

A*B = 1 ( 2) 2 6 3 ( 3) 4 8 5 7 68 × − + × + × − + × + × = Điều này được kiểm chứng bởi đoạn lệnh MATLAB sau đây:

A=[1 2 3 4 5]; B=[ −2 6 −3 8 7]'; A*B % Observe transpose operator (‘) in B

ans =

68

Bây giờ, giả thiết A và B đều là vector hàng, chúng ta hãy thử thực hiện phép nhân ma trận với các câu lệnh MATLAB sau:

A=[1 2 3 4 5]; B=[−2 6 −3 8 7]; A*B % No transpose operator (‘) here

Khi các lệnh này được thực hiện, MATLAB sẽ hiển thị dòng tin nhắn:

??? Error using ==> *

Inner matrix dimensions must agree

) Các em hãy giải thích dòng tin nhắn đó:

2 Phép nhân từng phần tử (nhân vector hàng với vector hàng)

Đặt C = [ c1 c2 c3 … cn]

và D = [ d1 d2 d3 … dn]

là hai vector hàng Ở đây phép nhân giữa vector hàng C với vector hàng D được thực hiện bởi toán

tử nhân chấm (.*) Không có khoảng trống giữa dấu chấm và dấu nhân Do đó:

Trang 3

C.*D = [ c d1 1 c d2 2 c d3 3 … c dn n] Kết quả của phép nhân chấm là một vector hàng khác, với cùng số phần tử của các vector hàng C và

D Ví dụ, đặt C = [1 2 3 4 5] và D = [-2 6 -3 8 7], phép nhân chấm của hai vector này cho kết quả sau:

C.*D = [ 1 ( 2) 2 6 3 ( 3) 4 8 5 7 × − × × − × × = − ] [ 2 12 − 9 32 35 ]

Kiểm tra với MATLAB bằng đoạn lệnh sau:

C=[1 2 3 4 5]; % Vectors C and D must have

D=[−2 6 −3 8 7]; % same number of elements

C.*D % We observe that this is a dot multiplication

ans =

-2 12 -9 32 35

Tương tự như vây, toán tử chia (/) và lũy thừa (^) được sử dụng cho phép chia và lũy thừa kiểu ma trận, trong khi đó toán tử chia chấm (./) và lũy thừa chấm (.^) được sử dụng cho phép chia và lũy thừa từng phần tử Chú ý rằng, dấu chấm (.) không cần thiết với toán tử cộng (+) và (−)

3.3 Vẽ đồ thị với MATLAB

Bài 1.2 (thực hiện có hướng dẫn tại PTN): Vẽ đồ thị đặc tính tần số

Xét mạch điện trên Hình 1.1, trong đó tần số góc ω (radian/s) của điện áp

cung cấp thay đổi từ 300 đến 3000 với bước tính là 100 radian/s, trong

khi biên độ của điện áp được giữ không đổi Ứng với mỗi tần số, thiết bị

đo ghi lại độ lớn của trở kháng Z =V A và các số liệu được cho trong

Bảng 1.1 Hãy vẽ độ lớn của trở kháng, tức là Z theo tần số góc ω

Bảng 1.1

Nhập số liệu dưới dạng vector: Thông thường chúng ta muốn vẽ đồ thị của một tập hợp các cặp số liệu được sắp xếp theo thứ tự Trong MATLAB, tất cả các dãy số đều được nhập vào dưới dạng

vector hoặc ma trận, cụ thể cho bài tập ta cần sử dụng hai biến w và z như sau (giữa các phần tử của

vector được phân biệt bởi một dấu cách):

w=[300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900

2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000];

%

z=[39.339 52.789 71.104 97.665 140.437 222.182 436.056 1014.938 469.830 266.032 187.052 145.751 120.353 103.111 90.603 81.088 73.588 67.513 62.481 58.240 54.611 51.468 48.717 46.286 44.122 42.182 40.432 38.845];

Hình 1.1

Trang 4

Lưu ý: Chúng ta không thể gõ ω (omega) trong cửa sổ lệnh MATLAB, do đó chúng ta sẽ sử dụng chữ cái w để thay thế Nếu một câu lệnh, hay một vector hàng quá dài để vừa một dòng, nó có thể

được tiếp tục ở dòng tiếp theo bằng cách gõ dấu ba chấm, sau đó ấn <enter> để bắt đầu dòng mới, và

tiếp tục nhập dữ liệu Ngoài ra, chúng ta sử dụng dấu chấm phẩy (;) để tránh việc hiển thị dữ liệu chúng ta không quan tâm lên màn hình

Sử dụng lệnh plot(x,y): Lệnh plot(x,y) của MATLAB cho phép vẽ đồ thị biểu diễn từng giá trị chứa

trong vector y theo giá trị của phần tử thứ tự tương ứng trong vector x Sau khi gõ tiếp lệnh

plot(w,z) trong cửa sổ lệnh MATLAB, ta sẽ nhận được đồ thị biểu diễn hàm w theo z trong một cửa

sổ riêng Đồ thị này được gọi là đáp ứng biên độ tần số của mạch điện Các em hãy vẽ lại đồ thị này

vào Hình 1.2 dưới đây

Ta có thể tạo cho đồ thị trên, hay một đồ thị bất kỳ, trông đẹp mắt hơn bằng các lệnh sau:

grid on: kẻ các đường lưới cho

semilogx(w,z); grid; % Replaces the plot(w,z) command

title('Magnitude of Impedance vs Radian Frequency');

xlabel('w in rads/sec'); ylabel('|Z| in Ohms')

) Các em hãy vẽ lại đồ thị sau khi thực hiện đoạn lệnh trên vào Hình 1.3 dưới đây

0 200 400 600 800 1000

thang đo logarithm cho cả hai trục ta sử dụng lệnh loglog(x,y)

Hình 1.2 Đồ thị biểu diễn trở kháng Z theo tần số ω

cho Bài 1.2.

Trang 5

Bài 1.3 (thực hiện có hướng dẫn tại PTN): Vẽ tín hiệu hình sin

Ta sẽ thực hành vẽ đồ thị các sóng sin 3 pha Lưu ý rằng, thực chất trên máy tính ta chỉ có thể vẽ các tín hiệu không liên tục (tức là chỉ vẽ được các điểm rời rạc) Tuy nhiên, những tín hiệu không liên tục có thể biểu diễn gần đúng bằng vẽ các điểm dữ liệu rời rạc gần nhau

Trước hết, ta cần tạo một vector lưu trữ dãy giá trị thời gian (cách đều nhau) Điều này có thể thực hiện bởi hàm linspace(giá trị đầu, giá trị cuối, số điểm dữ liệu):

t=linspace(0, 2*pi, 60); % pi is a built−in function in MATLAB;

Hàm này quy định số điểm dữ liệu nhưng không quy định khoảng cách giữa các điểm dữ liệu đó Ta

cũng có thể sử dụng lệnh t = first: increment: last để qui định khoảng cách giữa các điểm dữ liệu chứ không phải số điểm dữ liệu, ví dụ t = 0:0.02*pi:2*pi hoặc t = (0: 0.02: 2)*pi;

Các sóng sin ba pha được tạo bởi các hàm MATLAB:

y=sin(t); u=sin(t+2*pi/3); v=sin(t+4*pi/3);

Ta sẽ vẽ 3 tín hiệu trên một đồ thị bằng lệnh:

plot(t,y,t,u,t,v); % The x−axis must be specified for each function

hoặc

plot(t,[y;u;v]); % [y;u;v] is a three-row matrix

Sau đó vẽ thêm lưới và bổ sung các chú thích như sau:

grid on, box on, % turn grid and axes box on

text(0.75, 0.65, 'sin(x)'); text(2.85, 0.65, 'sin(x+2*pi/3)'); text(4.95, 0.65, 'sin(x+4*pi/3)')

) Sau khi thực hiện đoạn lệnh trên, ta sẽ nhận được đồ thị trong đó các tín hiệu được biểu diễn như liên tục Các em hãy vẽ lại đồ thị đó (ghi đủ các thông ghi chú) vào Hình 1.4 dưới đây:

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

s là chuỗi ký tự bao gồm những ký tự được cho trong ba cột của Bảng 1.2 MATLAB không có màu mặc định, nó bắt đầu từ màu xanh dương và quay vòng theo bảy màu đầu tiên được liệt kê trong Bảng 1.2 Cũng như vậy, không có kiểu đánh dấu mặc định, sẽ không có kiểu đánh dấu nào được vẽ trừ phi

Trang 6

chúng ta chỉ định chúng Kiểu đường mặc định là đường nét liền Tuy nhiên, với những phiên bản MATLAB mới nhất, chúng ta có thể chọn màu sắc, độ rộng của đường và các lựa chọn khác trực tiếp

trên Cửa sổ hình vẽ

Bảng1.2 Các kiểu đường, màu sắc, và kiểu đánh dấu trong MATLAB

Ví dụ, plot(x,y,‘m*:’) vẽ một đường chấm chấm màu đỏ tươi, với các dấu sao tại các điểm dữ liệu,

nào Nếu chúng ta muốn nối các điểm dữ liệu bằng đường nét liền, chúng ta phải gõ plot(x,y,‘rs−’) Nếu cần thêm thông tin, chúng ta có thể gõ help plot trên Cửa sổ lệnh của MATLAB

Bài 1.4 (thực hiện có hướng dẫn tại PTN): Dịch tín hiệu (thời gian)

Chương trình sau đây vẽ tín hiệu sin và đồ thị của nó khi thực hiện phép dịch tín hiệu (một khoảng thời gian) Các em hãy gõ lại chương trình này trong file soạn thảo của MATLAB và lưu lại với một tên file (ví dụ t_shift.m), thực hiện chương trình này và vẽ lại đồ thị (cuối cùng) của nó trên

Hình 1.5 Ngoài ra, hãy ghi lời chú thích vào sau các dấu % của một số dòng lệnh (một số dòng đã được làm mẫu)

% Chuong trinh 1.3 Phep dich mot tin hieu

% Dich cua tin hieu 3*cos(2*pi*t/4)u(t)

clear; % xoa cac bien va ham trong bo nho

clf; %

tinc=0.01; % khoang cach cac diem tren truc thoi gian

T=5; %

for k=[-1 1 2] % cac gia tri thoi gian duoc dich: -1, 1 va 2 buoc

m=1; % chi so cua mang

Trang 7

xlabel('t') %

legend('x(t)',['x(t+(',num2str(k),'))'])

title('shift of x(t)=3cos(2\pit/4)u(t)')

disp('see the plot and press any key to continue')

pause % doi cho den khi an mot phim bat ky

end

-3 -2 -1 0 1 2 3

t

shift of x(t)=3cos(2 π t/4)u(t)

x(t) x(t+(2))

Hình 1.5 Phép dịch tín hiệu cho Bài 1.4

Bài 1.5 (thực hiện có hướng dẫn tại PTN)

Viết đoạn Script MATLAB để vẽ đồ thị cho tín hiệu sau:

t=0: 0.01: 5; % Define t−axis in 0.01 increments

y=3 * exp(−4 * t) * cos(5 * t)−2 * exp(−3 * t) * sin(2 * t) + t ^2 / (t+1);

plot(t,y); grid; xlabel('t'); ylabel('y=f(t)'); title('Plot for Example 2.2')

) Các em hãy vẽ lại đồ thị của bài tập này lên Hình 1.6

-1 0 1 2 3 4 5

Trang 8

x=linspace(0,2*pi,100); % Interval with 100 data points

y=(sin(x).^ 2); z=(cos(x).^ 2);

w=y.* z;

v=y./ (z+eps); % add eps to avoid division by zero

subplot(221); % upper left of four subplots

plot(x,y); axis([0 2*pi 0 1]);

title('y=(sinx)^2');

subplot(222); % upper right of four subplots

plot(x,z); axis([0 2*pi 0 1]);

title('z=(cosx)^2');

subplot(223); % lower left of four subplots

plot(x,w); axis([0 2*pi 0 0.3]);

title('w=(sinx)^2*(cosx)^2');

subplot(224); % lower right of four subplots

plot(x,v); axis([0 2*pi 0 400]);

title('v=(sinx)^2/(cosx)^2');

) Các em hãy tìm hiểu và giải thích từng dòng lệnh, sau đó vẽ lại bốn đồ thị đó trên Hình 1.7

0 0.5

1

y=(sinx)2

0 0.5

1

z=(cosx)2

0 0.1

0.2

w=(sinx)2*(cosx)2

0 100 200 300 400

v=(sinx)2/(cosx)2

Hình 1.7 Các đồ thị con cho Bài 1.7

Bài 1.8 (về nhà tự làm): Tính toán và biểu diễn số phức

Bài tập này minh họa khả năng của MATLAB với các số phức

radian

Trang 9

Xét mạch điện ở Hình 1.1, với các giá trị điện trở, điện cảm và điện dung đã cho, trở kháng của mạch Z là một hàm của tần sốab ω có biểu thức như sau:

Hãy viết một đoạn lệnh MATLAB để thực hiện những yêu cầu

sau và vẽ lại các đồ thị trên Hình 1.9

a) Vẽ Re Z (phần thực của trở kháng { } Z ) theo tần số ω

b) Vẽ Im Z (phần ảo của trở kháng { } Z ) theo tần số ω

c) Vẽ trở kháng Z theo tần số ω trong hệ tọa độ cực

) Hãy viết đoạn lệnh vào ô chữ nhật dưới đây (dòng lệnh đầu

tiên được viết sẵn):

Hình 1.8 Mạch điện cho Bài 1.8

w=0: 1: 2000; % Define interval with one radian interval

Trang 10

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA ĐIỆN

CÁC BÀI THỰC HÀNH

MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG

( 6 bài)

Họ và tên sinh viên:

Mã lớp thí nghiệm: Mã số sinh viên:

(Sinh viên phải nộp lại vào buổi bảo vệ tuần cuối cùng để chấm điểm)

HÀ NỘI - 2010

Trang 11

BÀI 2 Khảo sát đáp ứng của hệ thống trên miền thời gian

I Mục đích

 Làm quen với thư viện Simulink của MATLAB

 Sử dụng Simulink để xây dựng sơ đồ khối hệ thống và mô phỏng các tín hiệu trong hệ thống

 Sử dụng MATLAB để soạn thảo các chương trình tính tích chập, tính đáp ứng của hệ thống trên miền thời gian

II Yêu cầu đối với sinh viên

 Thực hiện trước bài 2.1 ở nhà

 Đọc tài liệu hướng dẫn và trả lời được các câu hỏi của CBHD trước khi làm thực hành

 Hoàn thành nội dung bài thực hành (kể cả các bài về nhà) trước khi tham dự buổi tiếp theo

III Nội dung

3.1 Làm quen với Simulink

Mục này do CBHD hướng dẫn cho SV (khoảng 10ph)

3.2 Vẽ đồ thị đáp ứng của hệ thống với MATLAB-Simulink

Bài 2.1 (tự chuẩn bị và làm ở nhà): Giải phương trình vi phân tuyến tính cấp hai

Cho mạch điện trên Hình 2.1, với các sơ kiện là i L(0 ) 0và v C(0 ) 0.5V, điện áp nguồn là tín hiệu bước nhảy đơn vị u t( ).Hãy tính điện áp của tụ

điện v t C( )

Trong bài này, C

dv

dt

   (2.1)

Và theo định luật điện áp của Kirchoff,

( ) L ( ) ( )

di

dt

   (2.2)

Thay (2.1) vào (2.2) ta được

2

2 ( ) ( )

C

dtdt   (2.3)

Thay giá trị của các linh kiện vào và sắp xếp lại (2.3), ta có

2

2

( ) ( )

C

d v dv

v t u t

hay

2 2C 4 C 3 3, 0

C d v dv v t dtdt    (2.4)  Các em hãy giải phương trình vi phân (2.4) và ghi lời giải vào phần dưới đây

Hình 2.1 Mạch điện cho Bài 2.1

Trang 12

 Với kết quả tìm được ở trên, các em hãy sử dụng MATLAB để vẽ đồ thị của ( )v t vào Hình 2.2 C

dưới đây

0 1 2 3 4 5 6 7 8 9 10 0.5

0.6 0.7 0.8 0.9 1

Hình 2.2 Đồ thị cho lời giải của phương trình (2.4)

Bài 2.2 (thực hiện có hướng dẫn tại PTN): Mô tả hệ thống bằng mô hình trạng thái

Với mạch điện ở Bài 2.1, ta có:

0( ) L ( ) ( )

Nếu định nghĩa các biến trạng thái là x1i L, x2 và tín hiệu ra là v C yx2  đồng thời thay các v C

giá trị vào, ta sẽ thu được mô hình trạng thái như sau (sinh viên tự kiểm tra):

Sau đây chúng ta sẽ sử dụng Simulink để thu được và hiển thị tín hiệu ra v t C( )

Cách 1: Mở một file mới trong Simulink và đặt tên file là, ví dụ mhtt_2_5 Sử dụng các khối trong Simulink Library Browser để tạo được sơ đồ khối như Hình 2.3

Lưu ý: Khối Step nằm trong Source, khối State-Space trong Continuous, khối Bus Creator trong Common Used Blocks, và khối Scope trong Sink

Lời chú thích cho các khối có thể được thực hiện bằng tay như sau: kích đúp vào dưới mỗi khối và khi một hình chữ nhật nhỏ xuất hiện cùng với con trỏ, ta

có thể gõ các thông tin cho khối đó Để bắt đầu một dòng mới, ta ấn phím Enter

Hình 2.3 Cách thu được v t C( )cho Bài 2.2 với khối State-Space

Trang 13

Tiếp theo, ta kích đúp vào khối State-Space, và trong cửa sổ Function Block Parameters, ta nhập

các thông số như Hình 2.4

Hình 2.4 Các thông số cho khối chức năng trong khối State-Space

Các sơ kiện [x1 x2]’ được chỉ định trên Cửa sổ lệnh của MATLAB như sau

x1=0; x2=0.5;

Chúng ta cũng cần chỉ định thời gian mô phỏng Điều này được thực hiện bằng cách, trên menu

chọn Simulation  Configuration Parameters rồi chọn thời gian mô phỏng là 10s Để bắt đầu

mô phỏng, ta chọn Simulation  Start hoặc kích vào biểu tượng và để quan sát tín hiệu ra,

ta kích đúp vào khối Scope, rồi kích vào biểu tượng tự động co giãn đồ thị

 Các em hãy vẽ lại đồ thị đó vào Hình 2.5 và so sánh với đồ thị ở Hình 2.2 trước đó

0 1 2 3 4 5 6 7 8 9 10 0

0.2 0.4 0.6 0.8 1

Trang 14

Hình 2.7 Sơ đồ khối của phương trình (2.6)

 Các em hãy mở một file mới trong Simulink, đặt tên file và xây dựng sơ đồ khối tương tự như Hình 2.7 Sau đó, hãy khai báo tham số cho các khối và thực hiện mô phỏng tín hiệu ra với thời gian mô phỏng là 10s (CBHD kiểm tra) Vẽ lại sơ đồ Simulink đó vào khung dưới đây

Lưu ý: Trong Simulink Library Browser, khối Add (hay Sum) và khối Gain nằm trong Math

Operations, khối Integrator nằm trong Continuous Các sơ kiện được khai báo trong các khối Integrator

Bài 2.3 (thực hiện có hướng dẫn tại PTN): Tính toán và vẽ đồ thị tích chập của hai tín hiệu

Đọc chương trình MATLAB sau đây và cho biết chương trình này dùng để làm gì Sau đó gõ

chương trình vào file soạn thảo và lưu vào với tên file conv.m

 Các em hãy tìm hiểu và giải thích từng dòng lệnh, sau đó vẽ lại đồ thị (với chu kỳ lấy mẫu 0.01 giây) trên Hình 2.8

% Program 2.3 Convolution of two signals

% Approximate the convolution y(t) of the signals

% x(t)=exp(-2(t-2))u(t-2) and h(t)=exp(-3(t+3))u(t+3)

% Plot the approximate convolution output

% Plot the exact convolution output also

% Assume that the first nonzero value of the signals start at time t=0

% and find the convolution output

% Then, use the convolution time shift theorem to find the exact starting

% time of the convolution output

clear; % clear variables and functions from memory

t1=2; % time of the first nonzero value of x(t)

t2=-3; % time of the first nonzero value of h(t)

t3=t1+t2; % time of the first nonzero value of convolution output

for ts=[0.2 0.1 0.01]; % sampling interval

clf; % clear current figure

Trang 15

n=0:1:4/ts; % sample index

x=exp(-2*n*ts);x(1)=0.5*x(1); % sample values of x(t)=exp(-2t)u(t)

% sample value is the average of the two limiting values at any

yf=exp(-2*t)-exp(-3*t); % exact samples of convolution

plot(t3+t,y,t3+t,yf,':') % plot with solid and dashed lines

ylabel('y(t)') % y-axis label of the graph is y(t)

xlabel('t') % x-axis label of the graph is t

legend('computed','exact')

title('convolution of e^{-2(t-2)}u(t-2) and e^{-3(t+3)}u(t+3)')

text(0.6,0.7,['sampling interval = ',num2str(ts)],'units','normalized','fontsize',10)

disp('see the graph and press any key to continue')

pause % wait until a key is pressed

end

-1 0 1 2 3 4 5 6 7 0

0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16

t convolution of e -2(t-2) u(t-2) and e -3(t+3) u(t+3)

Hình 2.5 Đồ thị cho Bài 2.3

Bài 2.4 (thực hiện có hướng dẫn tại PTN): Vẽ đáp ứng của hệ thống không liên tục

Chương trình sau đây tính toán và vẽ đáp ứng của hệ thống tuyến tính không liên tục được mô tả bởi phương trình sai phân cấp hai:

   1 0.8  2 2   3  1 4  2

với các sơ kiện y  1 2,y   2 1,x       và tín hiệu vào 1 x 2 0 x n 0.5n u n 

Các em hãy điền các dòng lệnh còn thiếu vào phần chấm chấm để hoàn thiện chương trình (với gợi ý là các dòng chú thích bên cạnh) và vẽ lại đồ thị sau khi chạy mô phỏng lên Hình 2.9

% Program 2.4 System response by iteration

% Find the response of the system, for n=0 to n=M,

% governed by second-order difference equation

% y(n)+a1 y(n-1)+a0 y(n-2)=b2 x(n)+b1 x(n-1)+b0 x(n-2)

% by iteration to the input x(n)= (0.5)^n u(n)

% with the given initial conditions, y(-1) and y(-2)

% Plot the response

clear; % clear variables and functions from memory

clf; % clear current figure

ym1=2;ym2=-1; % initial output conditions

Trang 16

% initial input conditions

b2=2;b1=-3;b0=4; % coefficients of the input terms

% coefficients of the output terms

M=10; % iterate up to n=M

x=(0:M)*0;y=x;

for n=0:M

x(n+1)=(0.5)^n; % present input value

yc= % present output

ym2=ym1;ym1= ; % update past output values

xm2=xm1;xm1= ; % update past input values

y(n+1)=yc; % store the output values in array y

end

n=0:1:M; % discrete time base sequence

plot(n,y,'*',n,x,'o') ; % plot with '*' and 'o' symbols

grid on;

ylabel('y(n)') % y-axis label of the graph is y(n)

xlabel('n') % x-axis label of the graph is n

Hình 2.9 Đáp ứng của hệ thống cho Bài 2.4

vẽ lại tín hiệu ra đó vào Hình 2.10 dưới đây

Lưu ý: Tín hiệu sin có thể được tạo ra từ khối Signal Generator trong Sources của Simulink

Library Browser

Trang 17

0 5 10 15 20 25 -2.5

-2 -1.5 -1 -0.5 0 0.5 1 1.5

Hình 2.10 Dạng tín hiệu cho Bài 2.5

Bài 2.6 (về nhà tự làm): Tính toán và vẽ đồ thị đáp ứng của hệ thống không liên tục

Hãy sửa lại chương trình trong Bài 2.4 với các giả thiết sau đây:

Hình 2.9 Đáp ứng của hệ thống cho Bài 2.6

Bài 2.6 (về nhà tự làm) Tính toán và vẽ đồ thị đáp ứng của hệ thống liên tục

Hãy viết chương trình MATLAB để tính toán và vẽ đáp ứng y t( )x t( )h t( ) của hệ thống có đáp ứng xung ( )h te u tt ( ) và tín hiệu vào x t( )u t(  1) u t( 2)

Trang 18

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA ĐIỆN

CÁC BÀI THỰC HÀNH

MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG

( 6 bài)

Họ và tên sinh viên:

Mã lớp thí nghiệm: Mã số sinh viên:

(Sinh viên phải nộp lại vào buổi bảo vệ tuần cuối cùng để chấm điểm)

HÀ NỘI - 2010

Trang 19

BÀI 3

Mô hình trạng thái và đáp ứng xung của hệ thống

I Mục đích

• Tính toán ma trận chuyển trạng thái và đáp ứng xung của hệ thống

• Tìm hiểu một số lệnh hiển thị, lệnh tính toán với ma trận của MATLAB

• Sử dụng MATLAB để soạn thảo các chương trình tính ma trận chuyển trạng thái và đáp ứng

xung của hệ thống

II Yêu cầu đối với sinh viên

• Thực hiện trước Bài 3.1 và 3.2 ở nhà

• Đọc tài liệu hướng dẫn và trả lời được các câu hỏi của CBHD trước khi làm thực hành

• Hoàn thành nội dung bài thực hành (kể cả các bài về nhà) trước khi tham dự buổi tiếp theo

III Nội dung

Bài 3.1 (tự chuẩn bị và làm ở nhà): Tính ma trận chuyển trạng thái của hệ liên tục

Mô hình trạng thái tuyến tính của một hệ SISO liên tục có dạng:

n n n

u

×

Với trạng thái đầu x(0) và tín hiệu vào u(t), đáp ứng của hệ thống được xác định như sau:

( ) 0

t

T

τ τ τ

trong đó ma trận hàm mũ

0

( )

!

k At

k

At e

k

=

việc tính toán đáp ứng của một hệ tuyến tính có thể dựa vào tính toán ma trận chuyển trạng thái Ký

hiệu I là ma trận đơn vị n n × ta đã biết các giá trị riêng , , λi i = 1, 2, , … của ma trận A là các n

nghiệm của đa thức bậc n sau đây

Cách xác định ma trận chuyển trạng thái e , dựa trên định lý Cayley Hamilton được cho như sau At

n

e A =c I +c A+c A +"cA − (3.4)

trong đó các hệ số c là các hàm của các giá trị riêng i λ Trong trường hợp các giá trị riêng của ma

trận A là phân biệt, các hệ số c được tính từ lời giải của hệ phương trình: i

1 2 2 1 0 1 1 2 1 1 1 2 1 0 1 2 2 2 1 2 2 1 0 1 2 1

n n t n n t n n t n n n n c c c c e c c c c e c c c c e λ λ λ λ λ λ λ λ λ λ λ λ − − − − − − + + + + = + + + + = + + + + = " " " "

(3.5) ) Dựa vào các công thức (3.3) ÷ (3.5), các em hãy tính toán ma trận chuyển trạng thái e A t khi cho 2 1 = 0 1 ⎡− ⎤ ⎢ ⎥ ⎢ − ⎥ ⎣ ⎦ A và ghi lời giải vào phần dưới đây

Trang 20

Bài 3.2 (tự chuẩn bị và làm ở nhà): Tính ma trận chuyển trạng thái và đáp ứng xung của một hệ không liên tục Mô hình trạng thái tuyến tính của một hệ SISO không liên tục có dạng: ( 1) ( ) ( ), , ( ) ( ) ( ), , n n n T n k x k u k y k x k du k d × + = + ∈ ∈ = + ∈ ∈ x A b A b c c \ \ \ \ (3.6) Với trạng thái đầu x(0) và tín hiệu vào u(k), đáp ứng của hệ thống được xác định như sau: 1 1 0 1 1 0 ( ) (0) ( ) ( ) (0) ( ) ( ) k k k i i k T k k i i k bu k y k bu k du k − − − = − − − = = + ⎛ ⎞⎟ ⎜ ⎟ = ⎜ ⎜ ⎜⎝ + ⎟ ⎟⎟ ⎠ + ∑ ∑ x A x A c A x A (3.7) Đáp ứng xung g(k) của hệ sẽ là: g k ( ) = c A bT k− 1 + d k δ [ ] (3.8) Ma trận chuyển trạng thái A n được tính toán từ định lý Cayley Hamilton như sau 2 1 0 1 2 1 n N N A =c I +c A+c A +"+cA − (3.9) trong đó và λ λ1, , ,2 … λNN giá trị riêng phân biệt của ma trận A ) Dựa trên các các công thức (3.8) và (3.9) các em hãy tìm lời giải (dạng biểu thức) cho đáp ứng xung của hệ có các tham số: [ ] 1 1 2 1 0 0 2 0 1 , , 1 0 0 T a b b a a b b a ⎡− ⎤ ⎡ − ⎤ ⎢ ⎥ ⎢ ⎥ = = = ⎢ − ⎥ ⎢ − ⎥ ⎣ ⎦ ⎣ ⎦ A b cd =b2 1 2, 3, 2, 3, 4.0 2 1 0 a = − a = b = b = − b = Kết quả:

Trang 21

Bài 3.3 (thực hiện có hướng dẫn tại PTN): Tính đáp ứng xung của hệ liên tục

Cho hệ thống liên tục có mô hình trạng thái tuyến tính:

( ) T t ( )

g t =c e A b +d t δ (3.10) Bây giờ ta sẽ sử dụng MATLAB để tính toán ma trận chuyển trạng thái eA t và đáp ứng xung ( )

của hệ với bộ tham số:

a) Ta có thể dùng hàm eig(x) để tìm giá trị riêng của một ma trận n n× Ngoài ra, MATLAB còn

có hàm fprintf(fid format, A, ) để viết dữ liệu được định dạng vào file Muốn biết hàm fprint được sử dụng như thế nào, ta có thể gõ lệnh help fprintf

) Các em hãy gõ đoạn lệnh dưới đây và ghi kết quả của đoạn lệnh này vào phần chấm chấm

A=[-2 1;0 -1]; e = eig(A); fprintf(' \n'); fprintf('lambda1 = %5.2f \t', e(1));

fprintf('lambda2 = %5.2f \t', e(2)); fprintf(' \n');

λ λ

λ λ

+ =+ = hay

Q=[1 -2; 1 -1]; q=sym('[exp(-2*t); exp(-t)]'); c=Q\q; fprintf(' \n');

disp('c0 = '); disp(c(1)); disp('c1 = '); disp(c(2));

Kết quả:

c) Tiếp theo ta thực hiện việc thay thế các giá trị trên vào (3.11a) và tính toán ma trận để tìm ma trận chuyển trạng thái Để ý rằng hàm eye(n) trong MATLAB được sử dụng để tạo một ma trận đơn vị n n×

syms t ; c0 = -exp(-2*t)+2*exp(-t); c1 = -exp(-2*t)+exp(-t);

A=[-2 1;0 -1]; eAt=c0*eye(2)+c1*A ;

Kết quả:

d) Cuối cùng ta sử dụng công thức (3.10) để tìm đáp ứng xung của hệ MATLAB có hàm Dirac(t)

để biểu diễn xung đơn vị δ ( ) t

B=[0; 1]; C=[1 1]; D=2;

g=C*eAt*B + D*Dirac(t)

Kết quả:

Ngày đăng: 27/06/2014, 03:20

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Đồ thị biểu diễn trở kháng  Z  theo tần số ω - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 1.2. Đồ thị biểu diễn trở kháng Z theo tần số ω (Trang 4)
Hình 1.3. Đồ thị đáp ứng tần số cho Bài 1.2. - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 1.3. Đồ thị đáp ứng tần số cho Bài 1.2 (Trang 4)
Hình 1.4. Các dạng sóng ba pha - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 1.4. Các dạng sóng ba pha (Trang 5)
Hình 1.6.  Đồ thị cho Bài 1.5 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 1.6. Đồ thị cho Bài 1.5 (Trang 7)
Hình 1.5. Phép dịch tín hiệu cho Bài 1.4 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 1.5. Phép dịch tín hiệu cho Bài 1.4 (Trang 7)
Hình 1.7.  Các đồ thị con cho Bài 1.7 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 1.7. Các đồ thị con cho Bài 1.7 (Trang 8)
Hình 1.9 Các đồ thị cho Bài 1.8 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 1.9 Các đồ thị cho Bài 1.8 (Trang 9)
Hình 2.2 Đồ thị cho lời giải của phương trình (2.4) - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 2.2 Đồ thị cho lời giải của phương trình (2.4) (Trang 12)
Hình 2.3 Cách thu được  v t C ( ) cho Bài 2.2 với khối State-Space - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 2.3 Cách thu được v t C ( ) cho Bài 2.2 với khối State-Space (Trang 12)
Hình 2.4 Các thông số cho khối chức năng trong khối State-Space - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 2.4 Các thông số cho khối chức năng trong khối State-Space (Trang 13)
Hình 2.5 Đồ thị của  v t C ( )  cho Bài 2.2 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 2.5 Đồ thị của v t C ( ) cho Bài 2.2 (Trang 13)
Hình 2.7 Sơ đồ khối của phương trình (2.6) - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 2.7 Sơ đồ khối của phương trình (2.6) (Trang 14)
Hình 2.10. Dạng tín hiệu  cho Bài 2.5 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 2.10. Dạng tín hiệu cho Bài 2.5 (Trang 17)
Hình 2.9. Đáp ứng của hệ thống cho Bài 2.6 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 2.9. Đáp ứng của hệ thống cho Bài 2.6 (Trang 17)
Hình 3.1. Đáp ứng xung của hệ thống cho Bài 3.4 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 3.1. Đáp ứng xung của hệ thống cho Bài 3.4 (Trang 22)
Hình 4.2a.  Phổ Fourier của  x t ( ) b)  Với  y t ( )  x t ( ) cos(30 )t  trong đó  cos(30 )t  được gọi là sóng mang,  hãy  vẽ phổ Fourier của  ( ) - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 4.2a. Phổ Fourier của x t ( ) b) Với y t ( )  x t ( ) cos(30 )t trong đó cos(30 )t được gọi là sóng mang, hãy vẽ phổ Fourier của ( ) (Trang 26)
Hình 4.2b.  Phổ Fourier của  y t ( ) c)  Với  z t ( )  2 ( ) cos(30 )y tt  2 ( ) cos (30 ),x t2t  hãy vẽ phổ Fourier của  z t ( )  lên Hình 4.2c - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 4.2b. Phổ Fourier của y t ( ) c) Với z t ( )  2 ( ) cos(30 )y tt  2 ( ) cos (30 ),x t2t hãy vẽ phổ Fourier của z t ( ) lên Hình 4.2c (Trang 26)
Hình 4.4  Khai báo tham số cho các khối tạo sóng sin - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 4.4 Khai báo tham số cho các khối tạo sóng sin (Trang 27)
Sơ đồ Simulink ở Hình 4.6 dưới đây minh họa một hệ thống điều chế/giải điều chế lý tưởng - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
imulink ở Hình 4.6 dưới đây minh họa một hệ thống điều chế/giải điều chế lý tưởng (Trang 27)
Hình 4.5. Tín hiệu vào và ra cho Bài 4.3 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 4.5. Tín hiệu vào và ra cho Bài 4.3 (Trang 27)
Hình 4.7. Khai báo tham số cho các khối tạo sóng sin và khối thiết kế bộ lọc tương tự - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 4.7. Khai báo tham số cho các khối tạo sóng sin và khối thiết kế bộ lọc tương tự (Trang 28)
Hình 4.8. Các tín hiệu cho Bài 4.4 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 4.8. Các tín hiệu cho Bài 4.4 (Trang 29)
Hình 4.9. Tín hiệu vào cho Bài 4.5 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 4.9. Tín hiệu vào cho Bài 4.5 (Trang 29)
Hình 5.2  Các đồ thị cho bài 5.3 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 5.2 Các đồ thị cho bài 5.3 (Trang 33)
Hình 5.3  Các đồ thị cho bài 5.4 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 5.3 Các đồ thị cho bài 5.4 (Trang 35)
Hình 5.4  Đồ thị Bode cho Bài 5.5 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 5.4 Đồ thị Bode cho Bài 5.5 (Trang 36)
Hình 6.2  Các đồ thị đáp ứng bước nhảy, đáp ứng xung, - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 6.2 Các đồ thị đáp ứng bước nhảy, đáp ứng xung, (Trang 40)
Hình 6.4  Sơ đồ Simulink cho trường hợp  n  1. - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 6.4 Sơ đồ Simulink cho trường hợp n  1 (Trang 41)
Hình 6.4  Các đồ thị cho Bài 6.4 - CÁC BÀI THỰC HÀNH MÔN HỌC TÍN HIỆU VÀ HỆ THỐNG docx
Hình 6.4 Các đồ thị cho Bài 6.4 (Trang 43)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w