stemnx, x, 'filled';: Sử dụng hàm stem để vẽ biểu đồ tín hiệu với trục thời gian nx và giá trị tín hiệu x.. ylabel'x[n]';: Đặt nhãn cho trục y, biểu thị giá trị của tín hiệu tại các điểm
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO: LAB 2 + LAB 3 Giảng viên hướng dẫn: ThS Trần Văn Líc Sinh viên thực hiện: Lê Thành Đạt
MSSV: 106220007 Lớp :22DT1
BÁO CÁO THÍ NGHIỆM TÍN HIỆU VÀ HỆ THỐNG
LAB2:
1 Xét tín hiệu rời rạc
Giả sử N = 12 M lần lượt có giá trị 4, 5, 7, 10 Đồ thị xm[n] chạy từ khoảng
0<n<2N –1 Dùng lệnh stem để vẽ đồ thị và chú thích cho các trục
Phương pháp đại số: Khi N = 12, M = 4, với n tuỳ ý chạy trong khoảng từ 0
sẽ có kết quả khác nhau, lập bảng giá trị và vẽ đồ thị Tương tự đối với các
trường hợp M = 5, 7, 10
Mã lệnh dùng trong MATLAB:
Trang 2
M=4
Trang 3M=7
Trang 4M=10 2) Bây giờ hãy xem xét các tín hiệu sau:
Trang 5Giải thích code:
-N=6;: Đặt giá trị của biến N là 6
-n=[0:7*N];: Tạo 1 vecto n chứa các giá trị từ 0 đến 7*N, tạo ra một khoảng thời gian rời rạc
-x2=2*cos(2*n/N)+cos(3*n/N);: Tính giá trị tín hiệu thời gian rời rạc x2
Trang 6- x3=cos(2*pi*n/N)+3*sin(5*(pi/2)*n/N);: Tính giá trị tín hiệu thời gian rời rạc x3 -subplot(2,1,1): Chia cửa sổ hiện tại thành 2 dòng và 1 cột và chọn dòng 1; cột 1 để
vẽ biểu đồ tiếp theo
-stem(n,x2): Vẽ biểu đồ của x2 sử dụng stem plot
-title(‘x2[n]’): Đặt tiêu đề cho biểu đồ x2
-subplot(2,1,2): Chọn dòng 2, cột 1 để vẽ biểu đồ tiếp theo
-stem(n,x3): Vẽ biểu đồ của x3 sử dụng stem plot
-title(‘x3[n]’): Đặt tiêu đề cho biểu đồ x3
KẾT QUẢ: một cửa sổ hiển thị hai biểu đồ stem plot của x2[n] và x3[n] cùng một
lúc
3) a) Xác định vectơ MATLAB nx là chỉ số thời gian − 3 ≤ n ≤ 7 và
Vectơ MATLAB x là các giá trị của tín hiệu x[n] được cho bởi
Trang 71 nx = [-3:7];: Tạo một vectơ nx chứa các giá trị từ -3 đến 7, tạo ra một khoảng thời gian rời rạc
2 x = [0 0 0 2 0 1 -1 3 0 0 0];: Định nghĩa giá trị của tín hiệu tại các điểm thời gian tương ứng Trong trường hợp này, tại \(n = -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7\) giá trị của tín hiệu là 0, 0, 0, 2, 0, 1, -1, 3, 0, 0, 0
3 stem(nx, x, 'filled');: Sử dụng hàm stem để vẽ biểu đồ tín hiệu với trục thời gian
nx và giá trị tín hiệu x Các điểm trên biểu đồ được đánh dấu bằng các cột dọc (stem)
4 title('x[n]');: Đặt tiêu đề cho biểu đồ là 'x[n]'
5 xlabel('n');: Đặt nhãn cho trục x, biểu thị thời gian rời rạc
6 ylabel('x[n]');: Đặt nhãn cho trục y, biểu thị giá trị của tín hiệu tại các điểm thời gian tương ứng
Trang 8b) For this part, you will define MATLAB vectors y1 through y4 to represent the following discrete-time signals:
Trang 91 n = [-3:7];: Tạo một vectơ n chứa các giá trị từ -3 đến 7, đại diện cho thời gian rời rạc
2.x = [2 0 1 -1 3 0];: Tạo một vectơ x chứa giá trị của tín hiệu tại các điểm thời gian tương ứng
Trang 103.nx = [0 0 0 x 0 0];: Mở rộng vectơ x để có cùng chiều dài với vectơ thời gian n Điều này làm cho tín hiệu chỉ xuất hiện trong khoảng thời gian xác định bởi n 4.ny1 = n + 2;, ny2 = n - 1;, ny3 = -n;, ny4 = -n + 1;: Tạo các vectơ thời gian mới (ny1, ny2, ny3, ny4) dựa trên biến thời gian n Các phép toán này tạo ra các dịch chuyển và đảo ngược thời gian cho tín hiệu
5.figure(1);, figure(2);: Mở hai cửa sổ hình mới để chứa các biểu đồ figure(1) chứa hai biểu đồ, và figure(2) chứa hai biểu đồ khác
6.subplot(2,1,1), stem(ny1, nx, 'filled');: Trong cửa sổ đầu tiên (figure(1)), tạo một biểu đồ ở hàng 1 và cột 1 (subplot(2,1,1)), và vẽ biểu đồ stem của \(x[n+2]\) sử dụng vectơ thời gian mới ny1
7.xlabel('Thời gian');, ylabel('x[n+2]');, title('x[n+2]');: Đặt nhãn và tiêu đề cho biểu
đồ \(x[n+2]\) trong cửa sổ đầu tiên
8.subplot(2,1,2), stem(ny2, nx, 'filled');: Tạo một biểu đồ ở hàng 2 và cột 1
(subplot(2,1,2)), và vẽ biểu đồ stem của \(x[n-1]\) sử dụng vectơ thời gian mới ny2 9.xlabel('Thời gian');, ylabel('x[n-1]');, title('x[n-1]');: Đặt nhãn và tiêu đề cho biểu
đồ \(x[n-1]\) trong cửa sổ đầu tiên
10.subplot(2,1,1), stem(ny3, nx, 'filled');: Trong cửa sổ thứ hai (figure(2)), tạo một biểu đồ ở hàng 1 và cột 1 (subplot(2,1,1)), và vẽ biểu đồ stem của \(x[-n]\) sử dụng vectơ thời gian mới ny3
11.xlabel('Thời gian');, ylabel('x[-n]');, title('x[-n]');: Đặt nhãn và tiêu đề cho biểu đồ
\(x[-n]\) trong cửa sổ thứ hai
12.subplot(2,1,2), stem(ny4, nx, 'filled');: Tạo một biểu đồ ở hàng 2 và cột 1
(subplot(2,1,2)), và vẽ biểu đồ stem của \(x[-n+1]\) sử dụng vectơ thời gian mới ny4
13.xlabel('Thời gian');, ylabel('x[-n+1]');, title('x[-n+1]');: Đặt nhãn và tiêu đề cho biểu đồ \(x[-n+1]\) trong cửa sổ thứ hai
Cảm ơn thầy xem báo cáo Rất mong nhận được sự góp ý của thầy.
Trang 11SOME FUNDAMENTAL PROPERTIES OF
SYSTEMS Objective
Mục tiêu của thử nghiệm này là giới thiệu việc sử dụng MATLAB để xác định hệ thống LTI và xác định các tính năng chính của nó, chẳng hạn như; tuyến tính, nhân quả, ổn định, đảo ngược và thời gian phương sai Điều này đạt được bằng cách kiểm tra hiệu suất của hệ thống cho các đầu vào cụ thể sẽ hiển thị các đặc điểm đó
1 Linearity:
Một hệ thống là tuyến tính nếu sự chồng chất được giữ Cụ thể, một hệ thống tuyến tính phải thỏa mãn hai tính chất:
1 Phụ gia: đáp ứng với x1 (t) + x2 (t) là y1 (t) +y2(t)
2 Chia tỷ lệ: đáp ứng với ax1(t) là ay1(t) trong đó a thuộc c
Kết hợp: ax1(t)+bx2(t) ay1(t) + by2(t)
Viết mã MATLAB để minh họa ví dụ này Điều này có thể được thực hiện như sau:
- Xác định miền của hai tín hiệu là từ -3 đến 3 và lưu nó dưới dạng vectơ n
- Xác định tín hiệu x1 là vectơ của các giá trị [0 0 0 1 0 0 0]
- Xác định tín hiệu x2 = 2x1
- Đánh giá đầu ra tương ứng với đầu vào x1 và gắn nhãn là y1
Bài tập 1
Trang 12- Đánh giá đầu ra tương ứng với đầu vào x2 và gắn nhãn là y2
Trên cùng một cửa sổ đồ thị, vẽ các tín hiệu x1, x2, y1 và y2 bằng các lệnh (subplot) và (stem).Kết quả của bạn phải như được mô tả trong Hình 1 CODE:
n=[-3:3]; nx1=n; nx2=n; x1=[0 0 0 1 0 0 0]; x2=2*x1;
y1=sin((pi/2)*x1); y2=sin((pi/2)*x2); figure(1) subplot(4,1,1),
stem(nx1,x1,'filled') ylabel('Amplitude')
title('x1[n]') subplot(4,1,2),
stem(nx1,y1,'filled')
ylabel('Amplitude')
title('y[n]') subplot(4,1,3),
stem(nx2,x2,'filled')
ylabel('Amplitude')
title('x2[n]') subplot(4,1,4),
stem(nx2,y2,'filled')
ylabel('Amplitude')
title('y[n]')
Trang 13Giải thích đoạn code trên:
1 n=[-3:3]; tạo một vector n chứa các số từ -3 đến 3
2 nx1=n; nx2=n; gán giá trị của n cho nx1 và nx2
3 x1=[0 0 0 1 0 0 0] khởi tạo vector x1 với các giá trị như đã cho
4 x2=2*x1; tạo vector x2 bằng cách nhân mỗi phần tử của x1 với 2
5 y1=sin(pi/2)*x1; y2=sin(pi/2)*x2; tạo hai vector y1 và y2 bằng cách nhân mỗi phần tử của x1 và x2 với sin(pi/2)
6 figure(1) tạo một cửa sổ figure mới
7 subplot(4,1,1): Tạo đồ thị con thứ nhất trong một ma trận gồm 4 hàng và 1 cột stem(nx1,x1,'filled'): Vẽ biểu đồ dạng cột (stem plot) của tín hiệu x1 với trục thời
Trang 14gian nx1 Các điểm cột được lấp đầy với vòng tròn đen ylabel('Amplitude'): Đặt nhãn cho trục y là 'Amplitude' (Biên độ)
title('x1[n]'): Đặt tiêu đề của đồ thị là x1[n] Câu
hỏi: y2 có bằng 2y1 không ?
Với x1=[0 0 0 1 0 0 0]
X2 = 2x1 = [ 0 0 0 2 0 0 0 ]
Ta có y1=sin((pi/2)*x1) với x1 = [0 0 0 1 0 0 0] y1 sẽ là giá trị của hàm sin tại vị trí có giá trị 1 trong x1, và các giá trị khác là 0 Ta có y2=sin((pi/2)*x2); với x2= [ 0 0 0 2 0 0 0 ] y2 sẽ là giá trị của hàm sin tại vị trí có giá trị 2 trong x2, và các
vị trí khác bằng 0 Vậy y2 không bằng 2y1
2 Causality
Hệ nhân quả là một hệ thống trong đó đầu ra hiện tại phụ thuộc vào đầu vào trong quá khứ / hiện tại nhưng không đầu vào trong tương lai
Bài tập 2
Trang 15n=[-6:9]; x=[0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1]; x_shift=[0 0 0 0 0 1 1 1 1 1 1 1 1 1
1 0]; y= x + x_shift; figure(1);
subplot(3,1,1), stem(n,x,'filled');
title('x[n]');
subplot(3,1,2), stem(n,x_shift,'filled');
title('x[n+1]'); subplot(3,1,3),
stem(n,y,'filled');
title('y[n]')
CODE:
Trang 16NHẬN XÉT:
- Tín hiệu x[n]
Đồ thị đầu biểu diễn tín hiệu x[n] trên đoạn [0,9] và có chiều cao là 1
- Tín hiệu x[n+1]
Đồ thị thứ 2 biểu diễn tín hiệu x[n+1] dựa vào tín hiệu x[n] ban đầu và dịch sang trái 1 đơn vị và nằm trên đoạn [-1,8] và có chiều cao là 1
- Tín hiệu y[n]
Đồ thị thứ 3 biểu diễn tín hiệu y[n] = x[n] + x[n+1] và nằm trên đoạn [-1,9] Chiều cao đoạn [-1,0] là 1
Trang 17Chiều cao đoạn [0,8] là 2
Chiều cao đoạn [8,9] là 1
3 Stability
Đối với một hệ thống ổn định, nếu tín hiệu đầu vào bị ràng buộc, thì tín hiệu đầu ra cũng phải bị giới hạn
n=[-2:3]; x=[1 2 0 3 4 5]; y=log(x);
figure(1); subplot(2,1,1), stem(n,x,'filled');
title('x[n]'); subplot(2,1,2), stem(n,y,'filled');
title('y[n]');
Bài tập 3
CODE:
Trang 18Câu hỏi: Bình luận về kết quả của bạn Kết quả này cho thấy hệ thống không ổn định như thế nào?
- Hàm log không xác định tại giá trị 0 và giá trị âm Vì vậy, khi tín hiệu vào x[n] có giá trị
0 và giá trị âm thì thì tín hiệu ra y[n] không ổn định tại các giá trị x= 0, -1, -2
Bài tập 4
Trang 19n = [0:5]; x_n = [0 1
2 3 4 0]; y_n =
sin(2*pi*x_n);
subplot(2,1,1),
stem(n,x_n,'filled')
xlabel('time')
title('x[n]')
subplot(2,1,2), stem(n,y_n,'filled') xlabel('time')
title('y[n]')
CODE:
Trang 20Câu hỏi: Nhận xét về kết quả chứng minh cho nhận định rằng hệ thống không thể nghịch đảo
Trả lời :
Một hệ thống là không khả nghịch khi đầu vào của nó tạo ra một đầu ra không giới hạn Ta xét xn chỉ là một chuỗi giá trị rời rạc với giá trị cuối cùng là 0, nếu áp dụng hàm sin() lên xn thì sẽ tạo ra một chuỗi đầu ra không giới hạn (vô hạn theo chiều dương và âm) nếu biểu đồ được vẽ trên một đoạn thời gian không giới hạn
Cảm ơn thầy xem báo cáo Rất mong nhận được sự góp ý của thầy.