Tỷ số tín hiệu trên nhiễu tại anten thứ i có dạng như ta có hàm PDF và CDF của các kênh truyền có dạng: Trong mô hình trên, giả sử phía máy thu sử dụng kỹ thuật SCselect combining, k
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ THÀNH PHỐ HỒ CHÍ MINH
KHOA VIỄN THÔNG 2
BỘ MÔN VÔ TUYẾN
TÀI LIỆU HƯỚNG DẪN THÍ NGHIỆMMôn học: Mô phỏng hệ thống truyền thôngPhòng thí nghiệm: OnlineGV: KVT2
Họ và tên sinh viên: Trần Minh Trung
Nhóm: .1 Tổ: Lớp: D21CQVT01-N
Mục tiêu của môn học: Giúp sinh viên hiểu được những khái niệm cơ bản về ngôn ngữMatlab, hiểu được cách thức mô phỏng các mô hình kênh thông tin cở bản trong viễn thông.Kiểm chứng lại các mô hình toán học của các kênh thông tin cơ bản
Yêu cầu: Cài đặt và sử dụng phần mềm Matlab phiên bản 2019a trở lên hoặc dùng hỗ trợphần mềm Matlab online tại https://www.mathworks.com/products/matlab -online html
PHẦN LÝ THUYẾT LIÊN QUAN CẦN CHUẨN BỊ
a) Lý thuyết về xác suất
Trang 2Cho biến ngẫu nhiên X có hàm mật độ phân phối xác suất là fX x
+ X là biến ngẫu nhiên liên tục
b) Lý thuyết về kênh thông tin cơ bản
Xét mô hình kênh thông tin đơn giản phân tập thu như hình vẽ
Trang 3anten máy thu có công suất là
sau N0 Tỷ số tín hiệu trên nhiễu tại anten thứ i có dạng như
ta có hàm PDF và CDF của các kênh truyền có dạng:
Trong mô hình trên, giả sử phía máy thu sử dụng kỹ thuật SC(select combining), khi đó tỷ
số tín hiệu tương đương phía máy thu ký hiệu là
maxi1,2 i N
Trang 4 1 N 2 1n1 N 1
n 1
Trang 5PHẦN THỰC HÀNH BUỔI 1 CÂU HỎI CHUẨN BỊ Ở NHÀ
Tìm hiểu và điền vào bảng chức năng các hàm matlab dưới đây
1 rand Hàm này được sử dụng để tạo ra các ma trận hoặc vectơ ngẫu nhiên có các giá trị
trong khoảng từ 0 đến 1
2 plot Hàm này được sử dụng để tạo đồ thị từ dữ liệu đầu vào
3 suplot đồ thị và chọn một phần tử cụ thể trong lướiHàm này được sử dụng để tạo ra một lưới
đó để vẽ đồ thị
4 xlabel trục hoành trên đồ thị.Hàm này được sử dụng để thêm nhãn cho
5 ylabel trục tung trên đồ thị.Hàm này được sử dụng để thêm nhãn cho
6 legend cho đồ thị, giải thích ý nghĩa của các dòng Hàm này được sử dụng để thêm chú thích
hoặc điểm trên đồ thị
7 title Hàm này được sử dụng để thêm tiêu đề cho đồ thị
8 length Hàm này trả về số phần tử trong một vectơ hoặc kích thước của một chiều trong một
ma trận
9 zeros trận hoặc vectơ với tất cả các phần tử là số Hàm này được sử dụng để tạo ra một ma
0
10 demention Hàm này trả về kích thước của một ma trận,tức là số hàng và số cột
11 max Hàm này trả về giá trị lớn nhất trong một vectơ hoặc ma trận
12 sort Hàm này được sử dụng để sắp xếp các phầntử của một vectơ hoặc ma trận theo thứ tự
tăng dần hoặc giảm dần
Trang 6Bài 3: Cho một cell array lưu trữ họ và tên các sinh viên, ví dụ fullname={‘Nguyen Van
Tí’, ‘Tran Van Tho’, ‘Nguyen Canh Chan’, ‘ Tran Luu Nam’, ‘ Tan Hiep Phap’} Hãy lậptrình trả về danh sách xếp theo thứ tự abc theo tên
Nam' , 'Tan Hiep Phap' };
sorted_fullname = sort(fullname);
disp(sorted_fullname);
Bài 4: Hãy khai báo một cấu trúc thông tin của sinh viên gồm 3 thành phần gồm họ và
tên, năm sinh, giới tính Kiểm tra có phải là cấu trúc không?
a Liệt kê ra các trường của cấu trúc
b Kiểm tra ‘Gioi_Tinh’ có phải là 1 trường trong cấu trúc sinh viên không?
c Xếp thứ tự các trường
d Thêm một trường ‘Noi_Sinh’
e Kiểm tra tên trường “Ho_va_Ten” có hợp lệ không?
f Tạo ra một mảng cấu trúc với sinh viên thứ 2
i Lấy năm sinh của hai
Trang 7fieldNames = fieldnames(student);
% d Thếm một trường 'Noi_sinh'
Bài 6: Cho ma trận hàng và 2 cột, chứa tọa độ xOy của điểm Hãy tìm hai điểm có n n
khoảng cách xa nhất và trả về chỉ số hàng của hai điểm đó
matrix = [1, 2; 3, 4; 5, 6; 7, 8];
[idx1, idx2] = farthestPoints(matrix);
disp(idx1);
disp(idx2);
function [idx1, idx2] = farthestPoints(matrix)
distances = pdist2(matrix, matrix);
Trang 8Bài 8: Tạo một ma trận ngẫu nhiên A có kích thước m,n nhập từ bàn phím Ma trận B có
d) Đưa ra các phần tử đường chéo của ma trận A
e) Đưa ra ma trận chuyển vị và ma trận nghịch đảo của ma trận A
new_row = randn(1, size(A, 2)); % Tạo hàng mới
new_column = randn(size(A, 1), 1); % Tạo cột mới
Trang 10PHẦN THỰC HÀNH BUỔI 2 CÂU HỎI CHUẨN BỊ
Câu 1: Máy phát là gì ? Máy thu là gì ? Em có nhận xét gì về máy phát và máy thu trong
một hệ thống mạng viễn thông đơn giản ?
Trong một hệ thống mạng viễn thông đơn giản, máy phát và máy thu thường được
sử dụng cặp nhau để truyền và nhận dữ liệu Máy phát chuyển đổi tín hiệu từ dạng đầu vào (ví dụ: âm thanh, dữ liệu số) thành tín hiệu có thể truyền đi, trong khi máy thu nhận tín hiệu đó và chuyển đổi nó thành dạng có thể sử dụng cho mục đích tiếp theo (ví dụ: âm thanh, dữ liệu số)
Máy phát (Transmitter): Máy phát là thiết bị được sử dụng để chuyển đổi tín hiệu từdạng analog hoặc số sang dạng tín hiệu phù hợp để truyền đi qua mạng Trong mạng viễn thông, máy phát có thể là một bộ định tuyến, bộ phát sóng không dây, hoặc bất
kỳ thiết bị nào có khả năng chuyển đổi và truyền tín hiệu
Máy thu (Receiver): Máy thu là thiết bị được sử dụng để nhận và xử lý tín hiệu được gửi từ máy phát Nó có khả năng chuyển đổi tín hiệu nhận được thành dạng số hoặc analog để có thể được sử dụng bởi các thiết bị hoặc hệ thống khác
Câu 2: Thế nào là kỹ thuật select combining (SC) ?
Kỹ thuật Select Combining (SC) là một kỹ thuật trong viễn thông không dây được sử dụng
để cải thiện chất lượng của tín hiệu nhận bằng cách chọn ra tín hiệu tốt nhất từ nhiều anten (hoặc từ nhiều bản sao của cùng một tín hiệu) để kết hợp lại
Trong kỹ thuật này, tín hiệu từ mỗi anten (hoặc từ mỗi bản sao) được đưa vào một hộp chọn (selector) Hộp chọn này sẽ chọn ra tín hiệu có chất lượng tốt nhất dựa trên các tiêu chí như mức độ tín hiệu và nhiễu, độ trễ, hoặc sự suy giảm trong kênh truyền Sau đó, tín hiệu được chọn này sẽ được truyền đến bộ thu để tiếp tục xử lý
Trang 11Câu 3: Xác suất dừng là gì ? Để đánh giá xác suất dừng ta cần dựa vào yếu tố nào ?
Xác suất dừng là xác suất mà một quá trình ngẫu nhiên sẽ kết thúc hoặc dừng lại tại một trạng thái nhất định Trong lý thuyết xác suất và quá trình ngẫu nhiên, việc đánh giá xác suất dừng là một phần quan trọng để hiểu hành vi của các quá trình ngẫu nhiên
Để đánh giá xác suất dừng, chúng ta cần dựa vào các yếu tố sau:
Trạng thái của quá trình: Xác định tất cả các trạng thái mà quá trình có thể đạt được Đối với mỗi trạng thái, chúng ta cần biết liệu quá trình có thể dừng lại ở đó hay không
Xác suất chuyển đổi: Đánh giá xem từ mỗi trạng thái, quá trình có thể di chuyển đến các trạng thái khác với xác suất bao nhiêu Xác suất chuyển đổi này cung cấp thông tin về khả năng của quá trình di chuyển từ trạng thái này sang trạng thái khác.Điều kiện dừng: Xác định điều kiện hoặc sự kiện nào khiến cho quá trình ngừng hoạtđộng và dừng lại ở một trạng thái cụ thể Có thể là một trạng thái dừng hoặc một điều kiện dừng khác như thời gian, số lần lặp, hoặc một sự kiện xác định
PHẦN THỰC HÀNH KIỂM CHỨNG CÁC LÝ THUYẾT XÁC SUẤT
Bài 9: Giả
sử X1 , X , , 2
X n
là các biến ngẫu nhiên độc lập có phân bố đều từ 0 đến 1 Dùng
mô phỏng chứng minh Yn n 1 max X 1 , X 2 , , Xn sẽ hội tụ theo phân bố đều có tham số 1
Trang 12Bài 10: Cho và là hai biến phân bố hàm mũ độc lập và đồng nhất Sử dụng mô phỏng X Y
để kiểm chứng max( X ,Y ) có phải là một hàm mũ không? Kiểm chứng với lý thuyết
max_XY = max(X, Y);
x_values = linspace(0, max(max_XY), 1000);
pdf_max_XY = x_values * exp(-x_values);
Bài 11: Cho biến ngẫu nhiên X có phân phối đều trên đoạn a b,
Trang 13a = 1; b = 5; N = 10000;
X = a + (b - a) * rand(N, 1);
x_values = linspace(a, b, 1000);
cdf_theoretical = min(max((x_values - a) / (b - a), 0), 1);
cdf_simulated = mean(X <= x_values);
[mean_X, var_X] = deal((a + b) / 2, ((b - a)^2) / 12);
subplot(2, 1, 1);
Bài 12: Biến ngẫu nhiên có phân phối Gauss trong đoạn X a b, với hàm mật độ xác suất
a) Hàm phân phối xác suất của X
b) Mô phỏng kiểm chứng bằng matlab hàm CDF của biến ngẫu nhiên X
Trang 14X Y 2 2
bằng 0 và phương sai
a) Chứng minh rằng biến ngẫu nhiên Z có phân phối Rayleigh
b) Tìm hàm CDF của biến ngẫu nhiên Z
c) Mô phỏng kiểm chứng bằng matlab
a) Để chứng minh rằng Z = sqrt(X^2 + Y^2) có phân phối Rayleigh, chúng ta cần tính hàm mật độ xác suất (PDF - Probability Density Function) của Z và so sánh với hàm mật
độ xác suất của phân phối Rayleigh
Biến ngẫu nhiên Z sẽ có hàm mật độ xác suất theo công thức: f(z) = z / gamma^2 * z^2 / (2 * gamma^2))
exp(-So sánh với hàm mật độ xác suất của phân phối Rayleigh: f(z) = z / sigma^2 * exp(-z^2 / (2 * sigma^2)), với sigma là căn bậc hai của phương sai của X và Y
b) Để tìm hàm CDF của biến ngẫu nhiên Z, chúng ta cần tích phân hàm mật độ xác suất f(z) từ 0 đến z
z_values = linspace(0, max(Z), 1000);
rayleigh_pdf = z_values / gamma_squared * exp(-z_values.^2 / (2 * gamma_squared));
Trang 15legend( 'Mố pho <ng' , 'Rayleigh' );
subplot(3,1,3);
plot(t,x_ulaw);
Trang 16
Bài 15: Hãy lập trình cho hàm pammod
và hàmpamdemod So sánh tốc độ thực thi hàm giữa hàm tự lập trình và hàm của Matlab
compare_pam();
function compare_pam()
M = 8;
data = randi([0 M-1], 1, 1000);
tic;
symbols_my = my_pammod(data, M);
data_my = my_pamdemod(symbols_my, M);
time_my = toc;
tic;
symbols_matlab = pammod(data, M);
data_matlab = pamdemod(symbols_matlab, M);
time_matlab = toc;
end
% pammod
function symbols = my_pammod(data, M)
symbols = (2*data - (M-1)) / (M-1);
end
% pamdemod
function data = my_pamdemod(symbols, M)
data = round((symbols + 1) * (M-1) / 2);
end
Bài 16: Hãy lập trình cho hàm qamod
hàm giữa hàm tự lập trình và hàm của Matlab
compare_qam();
function compare_qam()
Trang 17end
% qammod
function symbols = my_qammod(data, M)
num_bits = log2(M);
end
% qamdemod
function data = my_qamdemod(symbols, M)
end
Trang 18Bài 17: Vẽ đồ thị tỷ lệ lỗi bit của điều chế BPSK với mã BCH trên kênh truyền nhiễu trắng.
So sánh độ lợi mã trước và sau mã hóa
% Tính toán BER trước mã hóa
noise = sqrt(N0/2) * (randn(1, N) + 1i * randn(1, N));
Bài 18: Vẽ đồ thị tỷ lệ lỗi bit của điều chế MQAM với mã xoắn trên kênh truyền nhiễu
trắng So sánh độ lợi mã trước và sau khi mã hóa
Trang 19
% Tính toán BER trước mã hóa
noise = sqrt(N0/2) * (randn(1, N) + 1i * randn(1, N));
Trang 20Bài 19: Mô phỏng kênh truyền nhiễu trắng với điều chế MPSK, DPSK MQAM và kiểm
chứng với lý thuyết
data = randi([0 M_MQAM-1], 1, N);
symbols = qammod(data, M_MQAM);
Trang 21noise = sqrt(N0/2) * (randn(1, N) + 1i * randn(1, N));
received_symbols = symbols + noise;
data_received = qamdemod(received_symbols, M_MQAM);
Trang 22Bài 20: Mô phỏng kênh truyền Rayleigh với điều chế MPSK, QMAM và so sánh với lý
thuyết
data = randi([0 M_MQAM-1], 1, N);
symbols = qammod(data, M_MQAM);
Trang 23
noise = sqrt(N0/2) * (randn(1, N) + 1i * randn(1, N));
received_symbols_with_noise = received_symbols + noise;
(Theoretical)' );
MÔ PHỎNG HỆ THỐNG VIỄN THÔNG ĐƠN GIẢN
Bài 21: Xem xét hệ thống phân tập thu kết hợp lựa chọn với hai nhánh hoạt động ở kênh
truyền Rayleigh fading, giả sử rằng 1
2
a) Phân tích xác suất dừng của hệ thống
và các kênh truyền là độc lập Hãy
b) Phân tích tỷ lệ lỗi bit trung bình của hệ thống với điều chế BPSK
Trang 24c) Phân tích dung lượng shannon của hệ thống
d) Viết chương trình mô phỏng trên Matlab kiểm chứng các kết quả ở các câu trên
Trang 25a) Xác suất dừng của hệ thống khi các kênh truyền là độc lập có thể được tính bằng cách
sử dụng phân phối Rayleigh fading và các biến ngẫu nhiên liên quan Đối với hai kênh truyền độc lập, xác suất dừng của hệ thống sẽ là tích của xác suất dừng của mỗi kênh truyền
b) Tỷ lệ lỗi bit trung bình có thể được tính dựa trên xác suất dừng và một số thông số của
hệ thống như tỷ số S/N (tín hiệu/nhiễu) và một số thông tin về điều chế BPSK
c) Dung lượng Shannon của hệ thống có thể được tính bằng cách sử dụng công thức C = B
* log2(1 + S/N), trong đó B là băng thông của kênh và S/N là tỷ số tín hiệu/nhiễu.d)
thế<
gamma1 = 1.5;
gamma2 = 2.0;
system_outage_probability = calculate_system_outage_probability(gamma1, gamma2);
function p_outage = outage_probability(gamma)
gamma
p_outage = 1 - exp(-gamma);
end