Tín hiệu và hệ thống
91
Chương 9
9.
TÍN HIEÄU VAØ HEÄ THOÁNG
Mô phỏng một hệ thống viễn thông là một quá trình làm việc với các tín hiệu: khởi tạo, biến
đổi, thu phát, so sánh, xử lý,... Để việc mô phỏng được tiến hành thuận lợi và hiệu quả, cần
phải có đầy đủ các công cụ xử lý tín hiệu cơ bản. Đối với MATLAB, các công cụ này được
cung cấp trong MATLAB Signal Processing Toolbox. Đó là một tập hợp các hàm được xây
dựng trên cơ sở các giải thuật toán học và hỗ trợ hầu hết các thao tác xử lý tín hiệu, bao gồm:
khởi tạo tín hiệu, phân tích và thiết kế các bộ lọc tương tự và số, phân tích phổ, xử lý tín hiệu
thống kê, phân tích các hệ thống tuyến tính,...
9.1. BIEÅU DIEÃN MOÄT TÍN HIEÄU TRONG MATLAB
MATLAB là một môi trường tính toán số, do đó một tín hiệu phải được biểu diễn thông
qua các mẫu dữ liệu rời rạc của nó (tín hiệu được lấy mẫu). Nói cách khác, một tín hiệu bất kỳ
được biểu diễn bằng một vector hàng (kích thước 1 x n) hoặc vector cột (kích thước n x 1). Ví
dụ:
>> x = [1 1.2 1.5 1.2 1 0.8 0.5 0.8];
Để biểu diễn một tín hiệu đa kênh, ta sử dụng dạng ma trận. Một tín hiệu m kênh có chiều
dài ứng với mỗi kênh đều bằng n được biểu diễn bằng một ma trận kích thước n x m, trong đó
mỗi cột của ma trận tương ứng với một kênh, mỗi hàng của ma trận ứng với một thời điểm lấy
mẫu. Ví dụ: sau đây là biểu diễn của một tín hiệu 3 kênh:
>> y = [x’ 2*x’ x’/pi]
y =
1.0000 2.0000 0.3183
1.2000 2.4000 0.3820
1.5000 3.0000 0.4775
1.2000 2.4000 0.3820
1.0000 2.0000 0.3183
0.8000 1.6000 0.2546
0.5000 1.0000 0.1592
0.8000 1.6000 0.2546
9.2. TAÏO TÍN HIEÄU: VECTOR THÔØI GIAN
Để tạo một tín hiệu tương tự trong MATLAB, cần có một vector thời gian để xác định các
thời điểm lấy mẫu tín hiệu. Tín hiệu tạo ra sẽ là một vector mà mỗi phần tử của nó chính là
giá trị của mẫu tín hiệu được lấy ở thời điểm xác định bởi phần tử tương ứng của vector thời
gian. Ví dụ, để tạo tín hiệu y = sin(100
πt) + 2sin(240πt), ta lấy mẫu tín hiệu tại các thời điểm
cách nhau 0,001s và ta có các vector thời gian và vector biểu diễn tín hiệu y như sau:
>> t = (0:0.001:1)’;
>> y = sin(2*pi*50*t) + 2*sin(2*pi*120*t);
Dùng hàm plot để vẽ 100 mẫu đầu tiên của y:
>> plot(t(1:100),y(1:100))