Bài giảng Mô phỏng hệ thống truyền thông - Chương 4: Mô phỏng tín hiệu và quá trình thu phát - Võ Nguyễn Quốc Bảo

pdf 247 trang Gia Huy 21/05/2022 2720
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mô phỏng hệ thống truyền thông - Chương 4: Mô phỏng tín hiệu và quá trình thu phát - Võ Nguyễn Quốc Bảo", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_mo_phong_he_thong_truyen_thong_chuong_4_mo_phong_t.pdf

Nội dung text: Bài giảng Mô phỏng hệ thống truyền thông - Chương 4: Mô phỏng tín hiệu và quá trình thu phát - Võ Nguyễn Quốc Bảo

  1. MÔ PHỎNG TÍN HIỆU VÀ QUÁ TRÌNH THU PHÁT
  2. TỔNG QUAN •Biến ngẫu nhiên và tạo ra biến ngẫu nhiên •Mô phỏng nguồn tín hiệu •Mã hóa •Điều chế và giải điều chế •Quá trình lọc
  3. BIẾN NGẪU NHIÊN VÀ TẠO RA BIẾN NGẪU NHIÊN • Biến ngẫu nhiên • Kỳ vọng • Phương sai • Hiệp phương sai • Bất đẳng thức Markov • Bất đẳng thức Chebyshev • Định luật số lớn • Định luật giới hạn trung tâm • Biến ngẫu nhiên rời rạc • Biến ngẫu nhiên liên tục
  4. Biến ngẫu nhiên • Tạo ra số giả ngẫu nhiên • Số giả ngẫu nhiên là một chuỗi số được sinh ra một cách xác định và có đặc tính phân bố đều trong khoảng 0 và 1. • Giải thuật cơ bản nhất để tạo ra số giả ngẫu nhiên là giải thuật đệ quy với trị bắt đầu là x1 (còn gọi là seed). Giá trị xn được tính theo giải thuật sau: xnn= ax−1 mod ulo m với a và m là các số nguyên dương cho trước và n 2
  5. Biến ngẫu nhiên • Tạo ra số giả ngẫu nhiên • Ví dụ 4.1: Tạo N biến phân bố đều theo giải thuật như trên và so sánh kết quả đạt được với hàm rand() của Matlab.
  6. Biến ngẫu nhiên • Giải: Lưu ý là giải thuật tạo biến ngẫu nhiên ở trên là giải thuật đệ quy nên chúng ta không thể áp dụng giải thuật cho tất cả các phần tử trên vector đồng thời.
  7. Biến ngẫu nhiên • Giải: Kết quả mô phỏng Biểu đồ tần suất
  8. Biến ngẫu nhiên • Tạo ra số giả ngẫu nhiên • Ví dụ 4.2:
  9. Biến ngẫu nhiên • Giải: • Khi = 3.14, thì chuỗi giá trị nhận cho các lần chạy luôn là: • Khi , thì chuỗi nhận được là:
  10. Biến ngẫu nhiên • Tạo số ngẫu nhiên rời rạc với hàm xác suất khối cho trước • Để tạo số ngẫu nhiên rời rạc có 3 phương pháp: • Phương pháp biến đổi ngược (Inverse transform method). • Phương pháp chấp nhận – loại trừ (Acceptance – Rejection technique). • Phương pháp tổng hợp (Composition approach).
  11. Biến ngẫu nhiên • Phương pháp biến đổi ngược (Inverse transform method). • Chúng ta muốn tạo ra biến ngẫu nhiên rời rạc X có hàm khối xác suất (PMF) là: • Các bước thực hiện như sau: ➢Bước 1: Tạo biến ngẫu nhiên phân bố đều U trong khoảng (0,1) ➢Bước 2: Cho thì X có hàm khối xác suất (PMF) như mong muốn.
  12. Biến ngẫu nhiên • Phương pháp biến đổi ngược (Inverse transform method). • Ví dụ 4.3: Tạo biến ngẫu nhiên rời rạc X nhận giá trị 1, 2, 3 và 4 có xác suất phân bố tương ứng như sau: Hình 4.2: Hàm mật độ phân bố xác suất của Ví dụ 4.3.
  13. Biến ngẫu nhiên • Giải: Chúng ta sử dụng vòng lặp for và hàm histogram() như sau:
  14. Biến ngẫu nhiên • Giải: Kết quả mô phỏng Hàm mật độ phân bố xác suất
  15. Biến ngẫu nhiên • Phương pháp chấp nhận – loại trừ (Acceptance – Rejection technique). • Giải thuật ba bước của phương pháp chấp nhận và loại trừ như sau: ➢Bước 1: Tạo biến ngẫu nhiên Y có hàm phân bố khối ➢Bước 2: Tạo biến ngẫu nhiên U phân bố đều trong khoảng [0, 1]. ➢Bước 3: Nếu , cho X = Y. Nếu không, lặp lại Bước 1.
  16. Biến ngẫu nhiên • Phương pháp chấp nhận – loại trừ (Acceptance – Rejection technique). • Ví dụ 4.4: Tạo biến ngẫu nhiên rời rạc có giá trị từ 1 đến 10, với xác suất tương ứng là 0.11, 0.12, 0.09, 0.08, 0.12, 0.10, 0.09, 0.09, 0.10 và 0.10.
  17. Biến ngẫu nhiên • Giải: Ta chọn c như sau:
  18. Biến ngẫu nhiên • Giải: Chương trình matlab
  19. Biến ngẫu nhiên • Giải: Kết quả mô phỏng Đồ thị tần suất của biến ngẫu nhiên sinh ra theo phương pháp chấp nhận loại trừ
  20. Biến ngẫu nhiên • Phương pháp tổng hợp (Composition approach). • Phương pháp tổng hợp là phương pháp tạo một biến ngẫu nhiên rời rạc khi đã biết trước hai biến ngẫu nhiên với hàm phân bố khối và biến ngẫu nhiên với hàm phân bố khối . Biến ngẫu nhiên X có hàm phân bố khối
  21. Biến ngẫu nhiên • Phương pháp tổng hợp (Composition approach). • Ví dụ 4.5: Hãy tạo biến ngẫu nhiên Y có hàm phân phối khối như sau: • Giải: Ta chuyển đổi bài toán hiện tại thành bài toán với hai biến ngẫu nhiên và bằng cách để ý rằng,
  22. Biến ngẫu nhiên • Phương pháp tổng hợp (Composition approach). • Giải: Do đó ta chọn
  23. Biến ngẫu nhiên • Phương pháp tổng hợp (Composition approach). • Giải: Hình 4.4: Đồ thị tần suất của biến ngẫu nhiên
  24. Biến ngẫu nhiên • Tạo số ngẫu nhiên liên tục cho hàm ngẫu nhiên • Để tạo biến ngẫu nhiên liên tục có 2 phương pháp: • Giải thuật biến đổi ngược (Inverse Transform Algorithm). • Giải thuật loại bỏ (Rejection method).
  25. Biến ngẫu nhiên • Giải thuật biến đổi ngược (Inverse Transform Algorithm). • Cho U là biến ngẫu nhiên phân bố đều trong khoảng (0,1). Với bất kỳ hàm phân phối F , biến ngẫu nhiên X được định nghĩa như sau:
  26. Biến ngẫu nhiên • Giải thuật biến đổi ngược (Inverse Transform Algorithm). • Ví dụ 4.6: Hãy tạo biến ngẫu nhiên có phân bố mũ với hàm phân phối xác suất tích lũy như sau:
  27. Biến ngẫu nhiên • Giải thuật biến đổi ngược (Inverse Transform Algorithm). • Giải: Phương pháp biến đổi ngược có một nhược điểm là chỉ áp dụng được khi hàm ngược của hàm phân bố xác suất tích lũy tồn tại. Từ
  28. Biến ngẫu nhiên • Giải thuật biến đổi ngược (Inverse Transform Algorithm). • Giải: Chương trình Matlab thực hiện phương pháp biến đổi ngược với giải thuật ba bước như sau: Hình 4.5 Hình biểu đồ tần suất của biến ngẫu nhiên tạo bằng giải thuật biến đổi ngược.
  29. Biến ngẫu nhiên • Giải thuật loại bỏ (Rejection method). • • Nhìn vào giải thuật, chúng ta cần phải xác định giá trị c , cụ thể:
  30. Biến ngẫu nhiên • Giải thuật loại bỏ (Rejection method). • Ví dụ 4.7: Tạo biến ngẫu nhiên có hàm mật độ xác suất
  31. Biến ngẫu nhiên • Giải: Chọn là phân bố đều trong khoảng (0,1) nên, , nên
  32. Biến ngẫu nhiên • Giải: Chương trình Matlab
  33. Biến ngẫu nhiên • Giải: Kết quả mô phỏng Biểu đồ tần suất của biến ngẫu nhiên tạo ra từ giải thuật loại bỏ.
  34. Kỳ vọng • Kỳ vọng của biến ngẫu nhiên (expectation) là một tham số thống kê quan trọng nhất của một biến ngẫu nhiên. • Nếu X là một biến ngẫu nhiên rời rạc sẽ có những giá trị xx12, , , kỳ vọng của X được tính như sau: E X == xiiPr ( X x ) i • Nếu X là một biến ngẫu nhiên liên tục có hàm mật độ phân bố xác suất f, kỳ vọng của biến ngẫu nhiên X được tính như sau: E X = xf( x) dx −
  35. Kỳ vọng • Nếu X là một biến ngẫu nhiên rời rạc có hàm xác suất khối p(x), kỳ vọng của g(X) được tính như sau: E X =  xi p( x) i • Khi X là biến ngẫu nhiên liên tục với hàm mật độ phân bố xác suất f(x) , ta có E X = g( x) f( x) dx −
  36. Kỳ vọng • Nếu a và b là hằng số, ta có E aX+ b = aE X + b • Nếu XX12, là độc lập thống kê, ta có EaX 1 1+ aX 2 2 = aEX 1 1 + aEX 2 2  • Hàm mean() trong matlab để tính kỳ vọng của biến ngẫu nhiên.
  37. Kỳ vọng • Ví dụ 4.8: Dùng hàm rand() để tạo 1000 biến ngẫu nhiên X phân bố đều trong khoảng [0,1] a. Tính kỳ vọng của X. b. Tính kỳ vọng và phương sai của aX b + với a = 2 và b = 3 • Giải: Chúng ta sử dụng hàm rand(), hàm mean() và hàm var()
  38. Kỳ vọng • Giải: Chúng ta sử dụng hàm rand(), hàm mean() và hàm var()
  39. Phương sai • Phương sai là thước đo độ lệch của những giá trị của X so với giá trị trung bình. • Nếu X là biến ngẫu nhiên có kỳ vọng  , phương sai của X được tính như sau: VXEXar =−  2 ( ) ( ) • Hoặc 22 VXEXar ( ) =− 
  40. Phương sai • Phương sai của biến ngẫu nhiên aX+b là: Var( aX+= b) a2 V ar ( X ) • Hàm var() và std() trong matlab để tính phương sai và độ lệch chuẩn của biến ngẫu nhiên.
  41. Phương sai • Ví dụ 4.9: Viết chương trình Matlab kiểm chứng công thức: Var( aX+= b) a2 V ar ( X )
  42. Phương sai • Giải: Để kiểm chứng, chúng ta lần lượt tính giá trị của vế trái và vế phải, sau đó so sánh với nhau. Nhận xét: Kết quả mô phỏng trả về là vế phải và vế trái bằng nhau và đều bằng 0.335.
  43. Phương sai • Ví dụ 4.10: Cho X là biến ngẫu nhiên nhận hai giá trị 1 và -1 với xác suất tương ứng là 1/2 và 1/2. a. Tính kỳ vọng và phương sai của X theo lý thuyết. b. Mô phỏng và ước lượng kỳ vọng và phương sai của X. c. So sánh và nhận xét kết quả câu a) và b).
  44. Phương sai Giải: • Kỳ vọng của X là: • Phương sai của X là: • Mã nguồn Matlab tính kỳ vọng và phương sai của X như sau:
  45. Hiệp phương sai • Hiệp phương sai là độ đo sự biến thiên cùng nhau của hai biến ngẫu nhiên. • Cho hai biến ngẫu nhiên X và Y , hiệp phương sai của X và Y là: covXYEXY , = − − ( ) ( xy)(( )) Với xy==EXEY ,   • Hoặc cov( X , Y) =− E XY E X E Y  VXYVXVYar( +) − ar( ) − ar ( ) cov( XY , ) = 2
  46. Hiệp phương sai • Nếu X và Y độc lập thì: cov( XY ,) = 0 • Và VXYVXVYar( +) = ar( ) + ar ( ) • Hàm cov() và corroef() trong matlab để tính hiệp phương sai và hệ số tương quan
  47. Hiệp phương sai • Ví dụ 4.11: Tạo hai biến ngẫu nhiên X và Y độc lập có phân bố chuẩn dùng hàm randn() có trung bình bằng 0 và phương sai  2 là ZXY= +1 − 2 . Tạo biến ngẫu nhiên a. Tìm hệ số tương quan của Z và X . b. So sánh hệ số tương quan tìm được với .
  48. Hiệp phương sai • Giải: Chúng ta chọn giá trị = 0.5
  49. Bất đẳng thức Markov • Nếu X là biến ngẫu nhiên chỉ lấy giá trị dương, với a bất kỳ, ta có: EX  Pr ( Xa ) a • Chứng minh bất đẳng thức trên bằng cách định nghĩa biến ngẫu nhiên Y: a, X a Y = 0, X < a • Khi X0 thì , X Y • Lấy kỳ vọng 2 vế X Y, ta có: E X E Y = aPr ( X a)
  50. Bất đẳng thức Markov • Ví dụ 4.12: Tạo biến ngẫu nhiên X có chiều dài 1000, kiểm chứng hai vế của bất đẳng thức Markov.
  51. Bất đẳng thức Markov • Giải: Chúng ta lần lượt tính giá trị của vế trái và vế phải sau đó so sánh.
  52. Bất đẳng thức Chebyshev • Nếu X là biến ngẫu nhiên có trung bình  và phương sai  2, cho giá trị k bất kỳ, ta có: 1 Pr( |Xk− | ) k 2 • Ví dụ 4.13: Viết trình Matlab kiểm chứng bất đẳng thức Chebyshev.
  53. Bất đẳng thức Chebyshev • Giải: Mã nguồn Matlab như sau. Kết quả trả về I sẽ là 1.
  54. Định luật số lớn • Cho XXX 12 , , , n là các biến ngẫu nhiên độc lập và phân bố giống nhau với kỳ vọng . • Cho giá trị  ta có: XX1 + +n Pr − → 0 khi n → n • Ví dụ 4.14: Viết chương trình bằng Matlab kiểm chứng định luật số lớn.
  55. Định luật số lớn • Giải: Chúng ta chỉ cần tính vế trái, khi vế phải là 0. Nhận xét: Ta nhận thấy khi tăng giá trị N thì xác suất càng tiến về 0.
  56. Định luật giới hạn trung tâm • Giả sử XXX12, , , n là tập hợp các biến ngẫu nhiên độc lập có cùng phân bố và cùng kỳ vọng  và phương sai  2 hữu hạn. Gọi n  Xni −  Z = i=1 n  n • Ví dụ 4.15: Kiểm chứng lại định lý giới hạn trung tâm với biến có phân bố mũ.
  57. Định luật giới hạn trung tâm • Giải: Đây là một ví dụ quan trọng cho phép người đọc cảm nhận được định lý giới hạn trung tâm. Việc kiểm chứng bao gồm hai bước chính là vẽ biểu đồ tần suất và vẽ phân bố Gauss có trung bình và phương sai phù hợp với biểu đồ tần suất.
  58. Định luật giới hạn trung tâm • Giải: Kết quả mô phỏng Kiểm chứng định lý giới hạn trung tâm với biến phân bố hàm mũ.
  59. Định luật giới hạn trung tâm • Ví dụ 4.16: Tương tự như Ví dụ 4.15, nhưng thực hiện với biến phân bố đều từ -2 đến 2.
  60. Định luật giới hạn trung tâm • Giải: Với phân bố đều chúng ta dùng hàm rand().
  61. Định luật giới hạn trung tâm • Giải: Kết quả mô phỏng Kiểm chứng định lý giới hạn trung tâm với biến phân bố đều từ -2 đến 2.
  62. Định luật giới hạn trung tâm • Ví dụ 4.17: Sử dụng định lý giới hạn trung tâm mô phỏng đường truyền Rayleigh fading.
  63. Định luật giới hạn trung tâm • Giải: • Kênh truyền fading Rayleigh tồn tại giữa máy phát và máy thu khi không có đường truyền thẳng, máy thu nhận nhiều tín hiệu độc lập có phân bố giống nhau từ máy phát do các hiện tượng phản xạ, tán xạ và nhiễu xạ. • Ta có thành phần đồng pha và vuông pha của tín hiệu nhận tại máy thu là:
  64. Định luật giới hạn trung tâm • Giải: Chương trình matlab
  65. Định luật giới hạn trung tâm • Giải: Kết quả mô phỏng Hàm đồ thị tần suất của thành phần đồng pha và vuông pha so sánh với hàm PDF của phân bố Gauss.
  66. Biến ngẫu nhiên rời rạc • Phân bố nhị thức (Binomial distribution): • Phân phối nhị thức là một phân phối xác suất rời rạc với hai tham số cho trước là n và p. • Thường được dùng cho các biến biến ngẫu nhiên thể hiện số lượng lượt thử thành công trong n lượt thử độc lập. • Gọi X là biến ngẫu nhiên có phân phối nhị thức, hàm khối xác suất có dạng như sau: n k nk− Pr( X= k) = p( 1 − p) k • Hàm phân phối tích lũy là: k n i 1−i F( k, n , p) = Pr( X k) = p( 1 − p) i=0 i
  67. Biến ngẫu nhiên rời rạc • Phân bố nhị thức (Binomial distribution): • Các hàm liên quan đến phân bố nhị phân: • Ví dụ 4.18: Vẽ hàm CDF và PDF của phân bố nhị thức
  68. Biến ngẫu nhiên rời rạc • Giải: Sử dụng hàm binornd()
  69. Biến ngẫu nhiên rời rạc • Giải: Kết quả mô phỏng Hàm PDF và CDF của phân bố nhị phân.
  70. Biến ngẫu nhiên rời rạc • Phân bố nhị thức (Binomial distribution): • Ví dụ 4.19: A và B chơi trận chung kết tennis. Luật chơi là nếu ai thắng trước 3 set trước thì thắng cả trận. Giả sử A chơi yếu hơn và được đánh giá xác suất thắng mỗi set là 0.4. Hãy mô phỏng tính toán khả năng thắng trận chung kết của A. So sánh với lý thuyết.
  71. Biến ngẫu nhiên rời rạc • Giải: • Theo luật chơi thì người nào thắng ba trận sẽ thắng, do đó số trận chơi ít nhất là 3 và số trận chơi nhiều nhất là 5. Đối với A, có ba trường hợp xảy ra: ➢Chơi 3 trận: A toàn thắng 3 trận; ➢Chơi 4 trận: A thắng 2 trận trong 3 trận đầu và 1 trận cuối; ➢Chơi 5 trận: A thắng 2 trận trong 4 trận đầu và 1 trận cuối. • Theo lý thuyết xác suất, xác suất A thắng sẽ là tổng của ba trường hợp trên:
  72. Biến ngẫu nhiên rời rạc • Giải: Chương trình mô phỏng Matlab của Ví dụ 4.19 trong trường hợp trên là: Chương trình Malab trên trả về kết quả A thắng B lần lượt là 0.448 cho kết quả lý thuyết và 0.4479 cho kết quả mô phỏng. Sai số tương đối giữa kết quả lý thuyết và mô phỏng là 0.03%, là chấp nhận được cho 1 triệu mẫu.
  73. Biến ngẫu nhiên rời rạc • Phân bố hình học (Geometric Random): • Các hàm liên quan đến phân bố hình học.
  74. Biến ngẫu nhiên rời rạc • Phân bố hình học (Geometric Random): • Ví dụ 4.20: Sử dụng mô phỏng kiểm chứng xác suất mà sau n lần thảy, ta mới có mặt ngửa với xác suất thảy mặt ngửa và sấp là ½. Kiểm chứng với phân tích lý thuyết.
  75. Biến ngẫu nhiên rời rạc • Giải: Chúng ta lưu ý sử dụng hàm all() để kiểm chứng n lần thảy liên tiếp nhau. .
  76. Biến ngẫu nhiên rời rạc • Phân bố Poisson: • Phân bố Poisson là một phân bố rời rạc, được dùng cho các biến ngẫu nhiên mô hình hóa số lần xảy ra của một sự kiện trong một khoảng thời gian nhất định, đặc trưng bởi giá trị trung bình  . • Một biến ngẫu nhiên X được gọi là có phân bố Poisson với tham số  nếu X có giá trị nguyên không âm và EXVX  ==ar   • Giá trị kỳ vọng và phương sai của X là  k Pr ( X== k) e− k!
  77. Biến ngẫu nhiên rời rạc • Phân bố Poisson: • Các hàm liên quan đến phân bố Poisson:
  78. Biến ngẫu nhiên rời rạc • Phân bố Poisson: • Ví dụ 4.21: Tổng đài hỗ trợ khách hàng thống kê có trung bình 5 cuộc gọi trong 1 phút. Gọi X là số cuộc gọi đến tổng đài, hãy mô phỏng quá trình để vẽ ra hàm CDF và PDF và so sánh với lý thuyết.
  79. Biến ngẫu nhiên rời rạc • Giải: Số cuộc gọi trong 1 phút là 5, nghĩa là  = 5.
  80. Biến ngẫu nhiên rời rạc • Giải: Kết quả mô phỏng
  81. Biến ngẫu nhiên liên tục • Phân bố đều • Một biến ngẫu nhiên X có phân bố đều trong khoảng [a, b] với a < b, nếu hàm mật độ phân bố xác suất của X có dạng như sau: • Hàm phân bố xác suất tích lũy của X trong khoảng là:
  82. Biến ngẫu nhiên liên tục • Phân bố đều • Giá trị kỳ vọng và phương sai của biến ngẫu nhiên X là:
  83. Biến ngẫu nhiên liên tục • Phân bố đều • Hàm rand() trong matlab để tạo biến ngẫu nhiên phân bố đều trong khoảng từ 0 đến 1. • Các hàm liên quan đến phân bố đều.
  84. Biến ngẫu nhiên liên tục • Phân bố đều • Ví dụ 4.22: Sử dụng hàm unifrnd() tạo ra biến ngẫu nhiên có phân bố chuẩn từ 0 đến 1. Vẽ hàm PDF và CDF và so sánh với lý thuyết.
  85. Biến ngẫu nhiên liên tục • Giải: Chúng ta sử dụng hàm unifrnd(), unifcdf() và unipdf().
  86. Biến ngẫu nhiên liên tục • Giải: Kết quả mô phỏng CDF và PDF của biến ngẫu nhiên phân bố đều
  87. Biến ngẫu nhiên liên tục • Phân bố đều • Ví dụ 4.23: Tạo 100 biến ngẫu nhiên phân bố đều trong khoảng từ 2 đến 10. Hãy a. Tính giá trị trung bình và phương sai theo công thức lý thuyết. b. Tính giá trị trung bình và phương sai theo mô phỏng và so sánh.
  88. Biến ngẫu nhiên liên tục • Giải: Chúng ta sử dụng công thức mean() và var() để tính giá trị kỳ vọng và phương sai khi mô phỏng.
  89. Biến ngẫu nhiên liên tục • Phân bố đều • Ví dụ 4.24: Sử dụng biến ngẫu nhiên để ước lượng tích phân. • Cho tích phân sau: xây dựng phương pháp tính I và áp dụng cho
  90. Biến ngẫu nhiên liên tục • Giải: • Một trong những ứng dụng lớn nhất của số ngẫu nhiên là sử dụng để ước lượng tích phân, đặc biệt là khi tích phân không tồn tại dạng đóng – được biểu diễn dưới các tổ hợp hàm cơ sở. Phương pháp này gọi là tính tích phân theo phương pháp Monte Carlo. • Để tính I , chúng ta thấy rằng tích phân là từ 0 đến 1, nên ta tận dụng khái niệm tính kỳ vọng với biến ngẫu nhiên phân bố đều trong khoảng 0 đến 1. Cụ thể, ta viết lại I như sau: với f(U) là hàm PDF của biến ngẫu nhiên phân bố đều U từ 0 đến 1, hay f(U) = 1 trong khoảng từ 0 đến 1 và bằng 0 ngoài khoảng.
  91. Biến ngẫu nhiên liên tục • Giải: • Áp dụng định luật số lớn khi N tiến đến vô cùng, ta có: • Khi , ta có tích phân I như sau:
  92. Biến ngẫu nhiên liên tục • Giải: Giá trị chính xác của I là 1/3. Ta có thể dùng giá trị chính xác để so sánh với giá trị ước lượng sau đây:
  93. Biến ngẫu nhiên liên tục • Giải: • Khi cho N =100 và N =1000, ta tìm được giá trị ước lượng của N là 0.3378 và 0.3414. Tuy nhiên, hai giá trị này sẽ thay đổi khi chúng ta lặp lại các mô phỏng. • Có một cách để ta cố định các kết quả sau mỗi lần mô phỏng là đặt lại trạng thái của hàm tạo biến ngẫu nhiên. Hay thử lại đoạn mã trên với hàm “rng default’. • Khi có hàm “rng default’, kết quả của I luôn là .3191.
  94. Biến ngẫu nhiên liên tục • Phân bố đều • Ví dụ 4.25: Ước lượng số bằng kỹ thuật gieo xác suất.
  95. Biến ngẫu nhiên liên tục • Giải: Đây là một bài toán cổ điển để ước lượng số . Để thực hiện phương pháp ước lượng này, chúng ta vẽ một hình vuông và một hình tròn lồng vào nhau có cùng tâm. Hình vuông có tọa độ 4 đỉnh lần lượt là (1,0), (1,1), (-1,1) và (-1,-1). Hình tròn có tâm tại tọa độ (0,0) và bán kính là 1. Giả thử ta thảy ngẫu nhiên các hạt đậu có kích thước rất nhỏ vào hình vuông với (x, y) là tọa độ của hạt đậu. Phép thảy là phù hợp nếu hạt đậu nằm trong hình vuông. Do ta thảy ngẫu nhiên, nên x và y sẽ có phân bố đều trong khoảng (-1,1). Ta có xác suất hạt đậu nằm trong hình tròn là: với và lần lượt là diện tích hình tròn và hình vuông. Ta dễ dàng có được:
  96. Biến ngẫu nhiên liên tục • Giải: Khi tăng số lượng lần thảy, số lượng hạt đậu rơi trong hình tròn sẽ phủ kín diện tích hình tròn trong khi số lượng hạt đậu rơi trong hình vuông là bằng tổng số lần thảy. Do đó, ta có tỷ lệ sau: • Do đó, ta có thể ước lượng số như sau:
  97. Biến ngẫu nhiên liên tục • Giải: Mã nguồn Matlab thực hiện giải thuật tính số như sau:
  98. Biến ngẫu nhiên liên tục • Giải: Chúng ta có kết quả sau khi tăng số lượng lần thử như bảng sau:
  99. Biến ngẫu nhiên liên tục • Phân bố chuẩn • Biến ngẫu nhiên X sẽ có phân bố chuẩn với trung bình  và phương sai  2 khi có hàm mật độ phân bố xác suất như sau:
  100. Biến ngẫu nhiên liên tục • Phân bố chuẩn • Gọi là hàm phân bố xác suất tích lũy của X , ta có:
  101. Biến ngẫu nhiên liên tục • Phân bố chuẩn • Hàm randn() trong matlab để tạo biến ngẫu nhiên có phân bố chuẩn có trung bình  và độ lệch chuẩn  2. • Các hàm liên quan đến phân bố chuẩn.
  102. Biến ngẫu nhiên liên tục • Phân bố chuẩn • Ví dụ 4.26: Tạo biến ngẫu nhiên có phân bố chuẩn phức có trung bình bằng không và phương sai là S cho trước.
  103. Biến ngẫu nhiên liên tục • Giải: Chúng ta cần tính độ lệch chuẩn cho thành phần thực và thành phần ảo từ phương sai, cụ thể: dẫn đến
  104. Biến ngẫu nhiên liên tục • Phân bố chuẩn • Ví dụ 4.27: Tạo ra hai biến ngẫu nhiên phân bố chuẩn có trung bình bằng không và phương sai bằng 1,chứng minh rằng:
  105. Biến ngẫu nhiên liên tục • Giải: Chương trình Matlab • Kết quả của câu a) cho vế trái và vế phải đều là 0.2431 và câu b) cho vế trái và vế phải là 0.7474.
  106. Biến ngẫu nhiên liên tục • Phân bố chuẩn • Ví dụ 4.28: Tạo biến ngẫu nhiên phân bố chuẩn a. Vẽ hàm mật độ phân phối xác suất của biến ngẫu nhiên. b. Vẽ biểu đồ tần suất của biến ngẫu nhiên.
  107. Biến ngẫu nhiên liên tục • Giải: Sử dụng hàm normpdf() và hàm normrnd().
  108. Biến ngẫu nhiên liên tục • Giải: Kết quả mô phỏng Hàm PDF và biểu đồ tần suất của phân bố chuẩn.
  109. Biến ngẫu nhiên liên tục • Phân bố mũ • Biến ngẫu nhiên liên tục X có hàm mật độ phân bố xác suất: với sẽ là biến ngẫu nhiên có phân bố mũ với tham số • X có hàm phân bố xác suất tích lũy như sau:
  110. Biến ngẫu nhiên liên tục • Phân bố mũ • Giá trị kỳ vọng của biến ngẫu nhiên X có phân bố mũ với tham số  là: • Phương sai của biến ngẫu nhiên X có phân bố mũ với tham số  là:
  111. Biến ngẫu nhiên liên tục • Phân bố mũ • Hàm exprnd() trong matlab để tạo biến ngẫu nhiên có phân bố mũ. • Các hàm liên quan đến phân bố mũ.
  112. Biến ngẫu nhiên liên tục • Phân bố mũ • Ví dụ 4.29: Tạo ra biến ngẫu nhiên phân bố mũ có tham số là 5 với kích thước 1 hàng và 100 cột a. Tìm giá trị kỳ vọng và phương sai theo lý thuyết . b. Tìm giá trị kỳ vọng và phương sai theo mô phỏng Matlab . c. Vẽ đồ thị tần suất và so sánh với hàm mật độ phân bố xác suất.
  113. Biến ngẫu nhiên liên tục • Giải: Sử dụng hàm exprnd() để tạo biến ngẫu nhiên và dùng hàm stem() để vẽ đồ thị tần suất.
  114. Biến ngẫu nhiên liên tục • Giải: Kết quả mô phỏng Đồ thị tần xuất và hàm PDF của phân bố mũ có tham số bằng 5.
  115. Biến ngẫu nhiên liên tục • Phân bố Rayleigh • Là một phân bố liên tục . • Được sử dụng để mô hình hóa hiện tượng đa đường trong kênh truyền fading. • Sử dụng trong vật lý để mô hình hóa tốc độ gió, trong kỹ thuật y sinh để mô hình hóa thời gian sống của một đối tượng, trong khoa học y khoa để mô hình hóa phương sai nhiễu của ảnh cộng hưởng từ.
  116. Biến ngẫu nhiên liên tục • Phân bố Rayleigh • Gọi X là biến ngẫu nhiên phân bố Rayleigh, hàm PDF và CDF của X có dạng như sau: và
  117. Biến ngẫu nhiên liên tục • Phân bố Rayleigh • Kỳ vọng của X là: • Phương sai của X theo  như sau:
  118. Biến ngẫu nhiên liên tục • Phân bố Rayleigh • Các hàm liên quan đến phân bố Rayleigh :
  119. Biến ngẫu nhiên liên tục • Phân bố Rayleigh • Ví dụ 4.30: Vẽ hàm PDF của phân bố Rayleigh sử dụng hàm raylpdf() cho tham số 1, 2 và 3.
  120. Biến ngẫu nhiên liên tục • Giải: Sử dụng hàm raylpdf()
  121. Biến ngẫu nhiên liên tục • Giải: Kết quả mô phỏng Hàm PDF của phân bố Rayleigh.
  122. Biến ngẫu nhiên liên tục • Phân bố Rayleigh • Ví dụ 4.31: Hãy tạo ra biến ngẫu nhiên phân bố Rayleigh có  = 2 . Vẽ biểu đồ tần suất và so sánh lý thuyết.
  123. Biến ngẫu nhiên liên tục • Giải: Sử dụng hàm raylrnd(). Chương trình Matlab với 10 4 mẫu như sau:
  124. Biến ngẫu nhiên liên tục • Giải: Kết quả mô phỏng Hàm PDF và CDF của phân bố Rayleigh sử dụng hàm raylrnd()
  125. Biến ngẫu nhiên liên tục • Phân bố Rayleigh • Ví dụ 4.32: Tương tự Ví dụ 4.31, hãy tạo ra biến ngẫu nhiên có phân bố Rayleigh từ biến phân bố chuẩn. Vẽ biểu đồ tần suất và so sánh lý thuyết.
  126. Biến ngẫu nhiên liên tục • Giải: • Từ công thức ta thay thế một dòng lệnh Matlab ở Ví dụ 4.31 như sau: bằng • Kết quả mô phỏng đạt được sẽ tương tự như Ví dụ 4.31
  127. Biến ngẫu nhiên liên tục • Phân bố Nakagami-m • Gọi X là biến ngẫu nhiên có phân bố Nakagami-m, ta có hàm PDF và CDF của X như sau: Với và là hàm Gamma không hoàn chỉnh
  128. Biến ngẫu nhiên liên tục • Phân bố Nakagami-m • Kỳ vọng của X được tính theo công thức sau: • Phương sai của X là hàm của m và  như sau:
  129. Biến ngẫu nhiên liên tục • Phân bố Nakagami-m • Các hàm liên quan đến phân bố Nakagami-m
  130. Biến ngẫu nhiên liên tục • Phân bố Nakagami-m • Ví dụ 4.33: Sử dụng hàm makedist() để tạo đối tượng phân bố ngẫu nhiên có phân bố Nakgami-m vớitham m = 2 và  = 1. Vẽ biểu đồ tần suất và so sánh với hàm PDF lý thuyết.
  131. Biến ngẫu nhiên liên tục • Giải: Chúng ta sử dụng hàm random() để tạo ra biến ngẫu nhiên và hàm pdf() để trả về giá trị của PDF. Chương trình Matlab như sau:
  132. Biến ngẫu nhiên liên tục • Giải: Kết quả mô phỏng Hàm PDF lý thuyết và mô phỏng của phân bố Nakagami-m.
  133. Biến ngẫu nhiên liên tục • Phân bố Nakagami-m • Ví dụ 4.33: Hãy mô phỏng tạo biến ngẫu nhiên có phân bố Nakagami-m m = 3 và  = 2 từ phân bố Gamma. Vẽ biểu đồ tần suất và so sánh với hàm PDF lý thuyết bằng cách sử dụng hàm pdf() từ đối tượng phân bố tạo ra từ hàm makedist().
  134. Biến ngẫu nhiên liên tục • Giải: • Chúng ta sử dụng công thức: • Và hàm chi2rnd() để tạo biến ngẫu nhiên có phân bố Chi. • Chương trình Matlab là như sau:
  135. Biến ngẫu nhiên liên tục • Giải: Chương trình Matlab
  136. Biến ngẫu nhiên liên tục • Giải: Kết quả mô phỏng Vẽ hàm PDF của phân bố Nakagami-m từ phân bố Chi.
  137. MÔ PHỎNG NGUỒN TÍN HIỆU • Tín hiệu tương tự • Tín hiệu số • Tín hiệu ngẫu nhiên •
  138. Tín hiệu tương tự • Bảng liệt kê các hàm tạo và vẽ tín hiệu tương tự.
  139. Tín hiệu tương tự • Ví dụ 4.35: Vẽ hàm Dirichlet trong khoảng (−2 ,2 ) cho n = 5 và n = 7
  140. Tín hiệu tương tự • Giải: Chúng ta sử dụng hàm diric() với chương trình Matlab và kết quả như sau: Tín hiệu Dirichlet .
  141. Tín hiệu tương tự • Ví dụ 4.36: Hãy tạo tín hiệu răng cưa có tần số là 5 Hz, tần số lấy mẫu là 100 Hz và thời gian là 1s.
  142. Tín hiệu tương tự • Giải: Chúng ta sử dụng hàm sawtooth() với chương trình Matlab và kết quả như sau: Tín hiệu răng cưa.
  143. Tín hiệu số • Danh mục các hàm Matlab tạo tín hiệu số.
  144. Tín hiệu số • Cú pháp: • randi(IMAX,N): tạo ra ma trận tín hiệu số rời rạc phân bố đều từ 1 đến IMAX có kích thước N×N. • randi(IMAX,M,N): tạo ra ma trận tín hiệu số rời rạc phân bố đều từ 1 đến IMAX có kích thước M×N. • randi([IMIN IMAX],M,N): tạo ra ma trận tín hiệu số rời rạc phân bố đều từ IMIN đến IMAX có kích thước M×N.
  145. Tín hiệu số • Ví dụ 4.37: Tạo chuỗi bit có chiều dài 1000 bit, tính xác suất xuất hiện của bit 0 và bit 1.
  146. Tín hiệu số • Giải: Chuỗi bit sẽ có hai giá trị 0 và 1. Chúng ta sử dụng hàm randi() để tạo chuỗi bit.
  147. Tín hiệu số • Cú pháp: • OUT = randerr(M): tạo ra ma trận lỗi OUT kích thước M×M có 1 bit một ở vị trí ngẫu nhiên trên mỗi hàng. • OUT = randerr(M,N): tạo ra ma trận OUT kích thước M×N có 1 bit một ở vị trí ngẫu nhiên trên mỗi hàng. • OUT = randerr(M,N,ERRORS): tạo ra ma trận OUT kích thước M×N có số lượng bit 1 trên mỗi hàng quy định bởi ERROR.
  148. Tín hiệu số • Ví dụ 4.38: a. Tạo ma trận lỗi 3x3 có 1 lỗi trên mỗi hàng. b. Tạo ma trận lỗi 3x10 có 1 lỗi trên mỗi hàng. c. Tạo ma trận lỗi 10x5 với 1 lỗi có xác suất 80% và 3 lỗi có xác suất 20%.
  149. Tín hiệu số • Giải: Chúng ta dùng hàm randerr() với chương trình Matlab là như sau: Kết quả:
  150. Tín hiệu số • Cú pháp: • out = randsrc: tạo ra một biến ngẫu nhiên phân bố đều có giá trị 1 hay -1. • out = randsrc(m): tạo ra ma trận có kích thước m×m với các phần tử trong ma trận có thể lấy giá trị 1 hay -1 một cách độc lập với xác suất bằng nhau. • out = randsrc(m,n): tạo ra ma trận có kích thước m×n với các phần tử trong ma trận là 1 hay -1 với xác suất xuất hiện bằng nhau. • out = randsrc(m,n, [A;p]): tạo ra ma trận có kích thước m×n với các phần tử trong ma trận thuộc vector A với xác suất xuất hiện tương ứng thuộc vector p.
  151. Tín hiệu số • Ví dụ 4.39: Tạo một nguồn tín hiệu có 1000 phần tử chỉ có ba giá trị -1, 2 và 5, với xác suất tương ứng là 0.2, 0.3 và 0.5.
  152. Tín hiệu số • Giải: Ta dễ dàng nhận thấy A = [-1 2 5] và p = [0.2 0.3 0.5]. Chương trình Matlab như sau:
  153. Tín hiệu số • Giải: Kết quả mô phỏng: Biểu đồ tần suất chuẩn hóa của các phần tử trong nguồn để kiểm chứng hàm randsrc().
  154. Tín hiệu ngẫu nhiên • Hàm random() trong matlab để tạo tín hiệu ngẫu nhiên theo một phân bố với tham số cho trước. • Cú pháp: R = random(NAME,A,B,C) % NAME là tên phân bố cho trong Bảng (slide kế). % A, B và C là các tham số đầu vào của phân bố.
  155. Tín hiệu ngẫu nhiên • Một số phân bố mà hàm random() hỗ trợ (tham khảo thêm):
  156. Tín hiệu ngẫu nhiên • Ví dụ: Tạo biến ngẫu nhiên có 10 4 phần tử có phân bố Gamma với hai tham số lần lượt là 1 và 2.
  157. Tín hiệu ngẫu nhiên • Giải: Trong Ví dụ 4.40, chúng ta sử dụng hàm histfist() để kiểm chứng kết quả tạo biến ngẫu nhiên.
  158. Tín hiệu ngẫu nhiên • Giải: Kết quả mô phỏng: Đồ thị tần suất của phân phối Gamma.
  159. MÃ HÓA •Mã hóa nguồn •Mã phát hiện và sửa lỗi
  160. Mã hóa nguồn • Mã hóa nguồn là quá trình nén thông tin của nguồn (loại bỏ tín hiệu dư thừa) trước khi truyền đi để tăng hiệu quả cho quá trình truyền thông tin. • Một số phương pháp mã hóa nguồn cho phép tiến tới giới hạn entropy, ví dụ như Huffman, Shannon Fano và LempelZiv-Welch. • Mã hóa nguồn bao gồm ba bước cơ bản sau: • Nén tín hiệu (thường áp dụng cho tín hiệu âm thanh với giải thuật logarithm). • Lượng tử tín hiệu. • Mã hóa tín hiệu.
  161. Mã hóa nguồn • Nén tín hiệu dùng giải thuật logarithm là để tăng giải động của âm thanh hay tăng tỷ số tín hiệu trên nhiễu của tín hiệu, đó là giải thuật “ -law” hay “A-law”. • Matlab hỗ trợ hàmcompand() để thực hiện nén/giải nén cả hai loại giải thuật “  -law” hay “A-law”. • Cú pháp: • out = compand(in,Mu,v) • out = compand(in,Mu,v,'mu/compressor’) • out = compand(in,Mu,v,'mu/expander’) • out = compand(in,A,v,'A/compressor’) • out = compand(in,A,v,'A/expander')
  162. Mã hóa nguồn • Ví dụ 4.41: Cho tín hiệu ye= x với x từ -4 đến 4. Hãy nén theo luật  a. Vẽ tín hiệu trước và sau khi nén b. So sánh giá trị méo dạng trước và sau khi nén.
  163. Mã hóa nguồn • Giải: Chương trình mã Matlab cho Ví dụ 4.41 như sau. Lưu ý rằng hệ số méo dạng là sai số bình phương trung bình giữa tín hiệu trước và sau khi nén với tín hiệu gốc.
  164. Mã hóa nguồn • Giải: Kết quả mô phỏng: Hệ số méo dạng trước và sau khi nén lần lượt là .5348 và .0397. Chúng ta thấy rằng hệ số méo dạng giảm hơn 10 lần sau khi áp dụng luật nén. Tín hiệu trước và sau khi nén
  165. Mã hóa nguồn • Bảng danh mục các hàm cho quá trình lượng tử tín hiệu.
  166. Mã hóa nguồn • Ví dụ 4.42: Hãy tạo tín hiệu cos trong 2 chu kỳ và thực hiện lượng tử với 12 vùng. Vẽ tín hiệu trước và sau khi lượng tử.
  167. Mã hóa nguồn • Giải: Chúng ta chọn một bước mẫu là 0.1. Chương trình matlab:
  168. Mã hóa nguồn • Giải: Kết quả mô phỏng: Tín hiệu gốc và tín hiệu sau khi lấy mẫu.
  169. Mã hóa nguồn • Ví dụ 4.43: Sử dụng giải thuật Lloyds để tối ưu các tham số lượng tử ở Ví dụ 4.42
  170. Mã hóa nguồn • Giải: Với giải thuật Lloyds, chúng ta sử dụng hàm lloyds(). Chương trình Matlab:
  171. Mã hóa nguồn • Giải: Kết quả mô phỏng: Đồ thị so sánh hiệu quả của phương pháp lượng tử Lloyds
  172. Mã hóa nguồn • Ví dụ 4.44: Hãy mã hóa và giải mã DPCM tín hiệu răng cưa dùng hàm sawtooth() trong 3 chu kỳ. Vẽ và so sánh với tín hiệu gốc. Nhận xét về nhiễu trung bình bình phương.
  173. Mã hóa nguồn • Giải: Chúng ta chọn bộ dự đoán (predictor) trong mã DPCM là y(k) = x(k-1). Chương trình matlab:
  174. Mã hóa nguồn • Giải: Kết quả mô phỏng: Tín hiệu gốc và tín hiệu mã hóa DPCM.
  175. Mã hóa nguồn • Sau khi lấy mẫu tín hiệu, chúng ta thực hiện nén tín hiệu. Matlab hỗ trợ chúng ta các giải thuật nén • Các hàm Matlab hỗ trợ mã hóa nguồn.
  176. Mã hóa nguồn • Ví dụ 4.45: Cho nguồn tín hiệu s có 10 ký tự là biến ngẫu nhiên phân bố đều từ 1 đến 6. Xác suất xuất hiện của ký tự 1 đến 6 lần lượt là [.5 .125 .125 .125 .0625 .0625] a. Hãy tính số lượng bit cần thiết để truyền 10 ký tự khi chưa thực hiện mã hóa nguồn. b. Hãy tính entropy của nguồn. c. Hãy mã hóa nguồn theo mã hóa Huffman và cho biết số bit cần thiết để truyền. d. Nhận xét.
  177. Mã hóa nguồn • Giải:Chúng ta có 6 loại ký tự nên phải dùng 3 bit để lưu trữ ký tự, do đó số bit cần thiết để truyền 10 ký tự sẽ là 3x10=30 bit. Entropy của nguồn theo định nghĩa là: bit/ký tự. Do đó, số bit tối thiểu để truyền 10 ký tự là: 21,25 ký tự.
  178. Mã hóa nguồn • Giải: Chương trình matlab: • Nhận xét: Nếu dùng mã hóa Huffman, thì chúng ta sẽ chỉ cần truyền 26 bit trong khi entropy của nguồn tín hiệu là 21,25 bit. Khác với mã hóa Huffman, mã hóa số học sẽ cho hiệu năng tốt hơn khi xử lý với nguồn vào dài và phân bố bị lệch. Hãy xem Ví dụ 4.46 sau đây.
  179. Mã hóa nguồn • Ví dụ 4.46: Xem xét một nguồn tín hiệu từ cảm biến nhiệt độ, dữ liệu trả về trong 1 ngày khoảng 1000lần với chỉ hai trạng thái là nhiệt độ bình thường ký hiệu là mức 1 và quá nhiệt là mức 2, 99% dữ liệu đo đạc trong ngày là ở mức 1. Hãy thực hiện mô phỏng quá trình truyền dữ liệu sử dụng mã hóa số học.
  180. Mã hóa nguồn • Giải: Nếu không thực hiện mã hóa, do có 2 mức và 1000 bảng ghi dữ liệu, nên số bit cần thiết để truyền là 1000 bit và không phụ thuộc vào đặc tính của dữ liệu. Chương trình matlab: • Nhận xét: Kết quả trả về là 89 bit so với 1000 bit nghĩa là quá trình nén dữ liệu rất hiệu quả, đặc biệt trong trường hợp dữ liệu có phân bố bị lệch.
  181. Mã phát hiện và sửa lỗi • Mã hóa phát hiện lỗi và sửa lỗi là chức năng quan trọng trong hệ thống thông tin số. • Matlab hỗ trợ 04 hàm cho mã CRC, 28 hàm cho mã khối, 15 hàm cho mã xoắn và 32 hàm cho trường Galois.
  182. Mã phát hiện và sửa lỗi • Mã CRC • Với mã CRC, Matlab không hỗ trợ hàm độc lập mà hỗ trợ qua đối tượng comm và chúng ta thực hiện gọi hàm thông qua đối tượng comm. • Hàm cho mã CRC.
  183. Mã phát hiện và sửa lỗi • Mã CRC • Ví dụ 4.47: Hãy tạo một chuỗi bit toàn 1 có chiều dài 20 a. Chèn mã CRC có đa thức là xxx42+ + +1 vào chuỗi bit. b. Kiểm tra giải thuật chèn bao nhiêu bit và chèn ở đầu hay cuối chuỗi. c. Thay đổi nội dung của hai bit đầu tiên và thực hiện kiểm tra mã CRC.
  184. Mã phát hiện và sửa lỗi • Giải: Chúng ta dùng hàm ones() để tạo chuỗi bit toàn 1. Số lượng bit chèn vào là 4 và mã CRC được chèn vào cuối chuỗi bit. Chương trình matlab:
  185. Mã phát hiện và sửa lỗi • Mã khối • Mã khối là mã sửa lỗi không nhớ. • Matlab hỗ trợ mã khối ở ba dạng: hàm Matlab, khối Simulink và trong đối tượng comm. • Các hàm Matlab cho mã khối tuyến tính.
  186. Mã phát hiện và sửa lỗi • Mã khối • Ví dụ 4.48: Thực hiện mã hóa và giải mã với mã Hamming (n, k ) = (15,11) . Hãy xem xét hai trường hợp sau: a. Trường hợp 1: bit nhận thứ 3 bị sai. b. Trường hợp 2: bit nhận thứ 1 và 2 bị sai.
  187. Mã phát hiện và sửa lỗi • Giải: Để làm bit sai, chúng ta thực hiện phép đảo bit tại vị trí bị sai. Chương trình matlab: • Nhận xét: Ta nhận thấy rằng số lỗi trong Trường hợp 1 bằng 0 và số lỗi trong Trường hợp 2 bằng 1, nghĩa là mã Hamming (n, k ) = (15,11) chỉ sửa được 1 lỗi.
  188. Mã phát hiện và sửa lỗi • Mã khối • Ví dụ 4.49: Thực hiện mã hóa và giải mã với mã vòng (n, k ) = (15, 5) . Hãy xem xét hai trường hợp: a. Trường hợp 1: sai 4 bit b. Trường hợp 2: sai 6 bit.
  189. Mã phát hiện và sửa lỗi • Giải: Trường hợp 1, chúng ta đảo 4 bit ở vị trí 4 đến 7. Trường hợp 2, chúng ta đảo 6 bit từ vị trí 1 đến 6. Chương trình matlab:
  190. Mã phát hiện và sửa lỗi • Mã khối • Với mã BCH, Matlab hỗ trợ 4 hàm để thực hiện mã hóa và giải mã như bảng sau:
  191. Mã phát hiện và sửa lỗi • Mã khối • Ví dụ 4.50: Thực hiện mã hóa và giải mã với mã BCH (n, k) = (15, 5) a. Kiểm tra khả năng sửa lỗi của mã BCH. b. Trường hợp 1: số lượng bit sai nhỏ hơn hoặc bằng khả năng sửa lỗi của mã. c. Trường hợp 2: số lượng bit sai lớn hơn khả năng sửa lỗi của mã.
  192. Mã phát hiện và sửa lỗi • Giải: Dùng hàm bchnumerr() để kiểm tra số lượng lỗi mà mã có thể sửa được.
  193. Mã phát hiện và sửa lỗi • Mã khối • Các hàm Matlab cho mã Reed-Solomon:
  194. Mã phát hiện và sửa lỗi • Mã khối • Ví dụ 4.51: Mã hóa và giải mã mã RS (n, k) = (7, 3) với chuỗi 10 ký tự. Xem xét ba trường hợp với 1, 2 và 3 lỗi ký tự.
  195. Mã phát hiện và sửa lỗi • Giải: Chuyển dữ liệu mã hóa vào trường Galois bằng hàm gf().
  196. Mã phát hiện và sửa lỗi • Mã khối • Các hàm Matlab cho mã LDPC và mã Turbo:
  197. Mã phát hiện và sửa lỗi • Mã xoắn • Mã xoắn có nhiều ứng dụng trong các hệ thống thông tin vô tuyến như GSM, EDGE, 3G và mạng thông tin vệ tinh. • Danh mục các hàm mã xoắn của Matlab
  198. Mã phát hiện và sửa lỗi • Mã xoắn • Ví dụ 4.52: Mô phỏng mã hóa và giải mã mã xoắn có các tham số lần lượt: constraintLength = [4 3], codeGenerator = [4 5 17;7 4 2] và tracebackLen = 2.
  199. Mã phát hiện và sửa lỗi • Giải: Chúng ta lần lượt sử dụng các hàm poly2trellis(), randi(), convenc() và vitdec().
  200. Mã phát hiện và sửa lỗi • Mã xoắn • Các hàm hỗ trợ mã xoắn và mã Turbo theo đối tượng comm.
  201. ĐIỀU CHẾ VÀ GIẢI ĐIỀU CHẾ • Có hai cách trong Matlab để thực hiện mô phỏng quá trình điều chế và giải điều chế: mô phỏng băng gốc và mô phỏng băng dải. • Mô phỏng băng gốc còn được gọi là phương pháp mô phỏng tương đương thông thấp, có ưu điểm là độ phức tạp thấp. • Toolbox Communications của Matlab hỗ trợ mô phỏng băng gốc cho điều chế số và mô phỏng băng dải cho điều chế tương tự. • Mô hình điều chế băng gốc.
  202. ĐIỀU CHẾ VÀ GIẢI ĐIỀU CHẾ •Điều chế tương tự •Điều chế số
  203. Điều chế tương tự • Điều chế tương tự băng gốc • Matlab chỉ hỗ trợ điều chế FM tương tự băng gốc • Hàm điều chế tương tự FM băng gốc. • Các hàm trên sẽ tạo ra một đối tượng điều chế FM, chứ không trả về một giá trị.
  204. Điều chế tương tự • Điều chế tương tự băng gốc • Ví dụ 4.53: Thực hiện điều chế FM dạng băng gốc với tần số lấy mẫu là 1000 Hz, thời gian lấy mẫu là 0.5 s, độ lệch tần số trong điều chế FM là 50 Hz.
  205. Điều chế tương tự • Giải: Một điểm lưu ý khi thực hiện mô phỏng điều chế FM băng gốc là chúng ta lấy phần thực của tín hiệu thu được sau điều chế khi muốn quan sát tín hiệu. Từ đối tượng tạo ra từ hàm comm.FMModulator(), chúng ta dùng hàm step() để thực hiện điều chế. Chương trình matlab:
  206. Điều chế tương tự • Giải: Kết quả mô phỏng: Tín hiệu thực của điều chế FM.
  207. Điều chế tương tự • Điều chế tương tự băng dải • Matlab hỗ trợ điều chế AM, FM, PM và SSB. • Các hàm điều chế và giải điều chế tương tự băng dải:
  208. Điều chế tương tự • Điều chế tương tự băng dải • Ví dụ 4.54: Hãy thực hiện điều chế AM và SSB cho tín hiệu sin có tần số bằng 10 Hz. Vẽ tín hiệu điều chế.
  209. Điều chế tương tự • Giải: Với tín hiệu vào có tần số 10 Hz, ta chọn tần số lấy mẫu lớn hơn ít nhất 2 lần, nên chúng ta chọn = 50 Hz. Để dễ quan sát, chúng ta khoảng thời gian quan sát là 2 giây. Chương trình Matlab:
  210. Điều chế tương tự • Giải: Kết quả mô phỏng: Nhận xét: Chúng ta dễ dàng nhận thấy rằng, là đường bao của tín hiệu điều chế AM, nhưng không phải là của tín hiệu SSB. Ví dụ 4.55 tiếp theo sẽ vẽ phổ của hai tín hiệu điều chế AM và SSB để giúp chúng ta thấy được sự khác biệt của hai loại điều chế. Tín hiệu điều chế AM và SSB của tín hiệu sin.
  211. Điều chế tương tự • Điều chế tương tự băng dải • Ví dụ 4.55: Hãy thực hiện điều chế AM và SSB cho tín hiệu sin có tần số 10 Hz. Vẽ phổ tín hiệu điều chế.
  212. Điều chế tương tự • Giải: Để vẽ phổ tín hiệu, chúng ta cần số lượng mẫu lớn. Do đó chúng ta chọn thời gian là 100 giây. Cách tạo tín hiệu và tín hiệu điều chế là tương tự như Ví dụ 4.54, chúng ta chỉ cần bổ sung thêm 3 dòng lệnh để vẽ phổ như sau:
  213. Điều chế tương tự • Giải: Kết quả mô phỏng: Phổ của tín hiệu điều chế AM. Phổ của tín hiệu điều chế SSB.
  214. Điều chế tương tự • Điều chế tương tự băng dải • Cách khác để thực hiện điều chế tương tự băng dải là sử dụng các hàm modulate() và demod() của Toolbox Signal Processing ở mục Waveform Generation: Time Vectors and Sinusoids. Cú pháp của hàm modulate() như sau: • Cú pháp: y = modulate(x,fc,fs) [y,t] = modulate(x,fc,fs) [___] = modulate(x,fc,fs,method) x là tín hiệu điều chế, fc là tần số sóng mang, fs là tần số lấy mẫu, method là phương pháp điều chế.
  215. Điều chế tương tự • Điều chế tương tự băng dải • Ví dụ 4.56: Thực hiện điều chế SSB cho tín hiệu sin có tần số 10 Hz với tần số sóng mang là 50 Hz, lấy mẫu với tần số 200 Hz. Biết rằng tín hiệu này bị nhiễu trắng có công suất (phương sai) là 0.01. Vẽ phổ của tín hiệu trước và sau khi điều chế.
  216. Điều chế tương tự • Giải: Nhiễu có phương sai là 0.01, nên biên độ nhiễu sẽ là 0.1. Chúng ta dùng hàm pwelch() để vẽ phổ tín hiệu. Chương trình Matlab:
  217. Điều chế tương tự • Giải: Kết quả mô phỏng: Phổ của tín hiệu AMSSB trước và sau điều chế.
  218. Điều chế tương tự • Điều chế tương tự băng dải • Ví dụ 4.57: Thực hiện điều chế QAM cho 2 tín hiệu sóng sin có tần số lần lượt là 10 Hz và 20 Hz với tần số sóng mang là 70 Hz và tần số lấy mẫu là 200 Hz. Biết rằng phương sai nhiễu của tín hiệu sóng sin là 0.01. Hãy vẽ phổ tín hiệu trước và sau khi điều chế.
  219. Điều chế tương tự • Giải: Chúng ta sẽ vẽ tín hiệu trước điều chế bao gồm cả hai thành phần cùng pha và vuông pha. Chương trình Matlab:
  220. Điều chế tương tự • Giải: Kết quả mô phỏng: Phổ của tín hiệu QAM trước và sau khi điều chế.
  221. Điều chế số • Giống như điều chế tương tự, điều chế số thực hiện thay đổi một hay nhiều tham số của song mang theo sự thay đổi của tín hiệu cần điều chế. • Điểm khác biệt giữa điều chế tương tự và điều chế số là tín hiệu cần điều chế giới hạn ở một tập hữu hạn, do đó tăng khả năng chống nhiễu của điều chế số khi thực hiện giải điều chế. • Matlab hỗ trợ gần như đầy đủ các loại điều chế số và các hàm điều chế xuất ra đường bao phức của tín hiệu điều chế. • Một điểm lưu ý là muốn sử dụng các hàm điều chế và giải điều chế, chúng ta cần cài đặt Toolbox Communications.
  222. Các phương pháp điều chế cho tín hiệu số
  223. Điều chế số • Các hàm điều chế Matlab hỗ trợ.
  224. Điều chế số • Ví dụ 4.58: Xem xét điều chế QPSK cho chuỗi dữ liệu [0 1 2 3] và so sánh với hàm pskmod() trong hai trường hợp: a. Không sử dụng mã Gray b. Có sử dụng mã Gray c. So sánh kết quả câu a) và b) với kết quả từ hàm pskmod().
  225. Điều chế số • Giải: Chúng ta lưu ý sử dụng công thức Euler khi thực hiện điều chế MPSK: . Chương trình Matlab:
  226. Điều chế số • Ví dụ 4.59: Thực hiện điều chế và giải điều chế BPSK trên kênh truyền nhiễu trắng với tỷ số tín hiệu trên nhiễu chạy từ 0 đến 10 dB với bước nhảy là 1 dB. So sánh với công thức lý thuyết.
  227. Điều chế số • Giải: Chương trình Matlab:
  228. Điều chế số • Giải: Kết quả mô phỏng: Tỷ lệ lỗi bit ở kênh truyền nhiễu trắng: Mô phỏng và lý thuyết.
  229. Điều chế số • Matlab có hỗ trợ hàm berawgn() trả về tỷ lệ lỗi bit theo công thức lý thuyết của các kiểu điều chế trên kênh truyền nhiễu trắng. • Cú pháp: BER = berawgn(EbNo, MODTYPE, M) Với: EbNo là tỷ số của năng lượng bit trên mật độ phổ công suất nhiễu theo dB, MODTYPE là kiểu điều chế muốn đánh giá bao gồm: ‘pam’, ‘qam’, ‘psk’, ‘fsk’, ‘msk’, cpfsk’ và M là số mức điều chế, có giá trị 2, 4, 8, 16,
  230. Điều chế số • Ví dụ 4.60: Sử dụng hàm berawgn(), so sánh tỷ lệ lỗi bit của điều chế PAM khi tăng M từ 2 đến 16.
  231. Điều chế số • Giải: Chúng ta sử dụng hàm berawgn(). Chương trình Matlab như sau:
  232. Điều chế số • Giải: Kết quả mô phỏng: Đồ thị của hàm berawgn() cho điều chế PAM
  233. Điều chế số • Ví dụ 4.61: Hãy thực hiện mô phỏng điều chế MPSK với M cho trước và so sánh kết quả mô phỏng với kết quả lý thuyết từ hàm berawgn(). Vẽ đồ thị tỷ lệ lỗi bit của kết quả mô phỏng và lý thuyết trên cùng đồ thị và so sánh.
  234. Điều chế số • Giải: *Một số lưu ý: • Hàm beragwn() cung cấp tỷ lệ lỗi bit lý thuyết điều chế MPSK với mã hóa Gray. Do đó, để kết quả mô phỏng trùng khớp với kết quả lý thuyết, chúng ta phải sử dụng điều chế và giải điều chế có mã hóa Gray, cụ thể là pskmod(m,M,0,'gray') và pskdemod(Rx/sqrt(Ps),M,0,'gray’). • Khi M > 2, chúng ta giả sử công suất nhiễu là 1 thì công suất phát theo symbol sẽ là log2(M)*SNR(idx) với M là mức điều chế và SNR(idx) là tỷ lệ tín hiệu trên nhiễu tại điểm mô phỏng thứ idx. • Khi nhiễu trắng bao gồm cả phần thực và phần ảo, biên độ phần thực và phần ảo của nhiễu cần nhân với hệ số • Chúng ta sử dụng hàm bitterr() để tính số lượng bit lỗi khi chuỗi dữ liệu nhận được có giá trị từ 0 đến M-1. • Số lượng bit truyền và nhận sẽ là log2(M)*N(idx) với N là số lượng bit truyền tại điểm mô phỏng idx.
  235. Điều chế số • Giải: Chương trình matlab:
  236. Điều chế số • Giải: Kết quả mô phỏng: Tỷ lệ lỗi bit lý thuyết và mô phỏng cho điều chế 8-PSK trên kênh truyền nhiễu trắng.
  237. Điều chế số • Ví dụ 4.62: Hãy mô phỏng điều chế và giải điều chế MPAM ở kênh truyền nhiễu trắng trong hai trường hợp có chuẩn hóa và không có chuẩn hóa tín hiệu trước khi phát lên kênh truyền.
  238. Điều chế số • Giải: Chúng ta dùng hàm điều chế qammod() và hàm giải điều chế qamdemod(). Để tính toán hệ số chuẩn hóa, chúng ta dùng hàm modnorm(). Chương trình matlab:
  239. Điều chế số • Giải: • Nhận xét: • Công suất trung bình của tín hiệu khi không có chuẩn hóa công suất là 5.32 và khi có chuẩn hóa là 1. • Khi không có chuẩn hóa công suất, chúng ta sẽ giải điều chế sai mặc dù kênh truyền là không có nhiễu.
  240. Điều chế số • Ví dụ 4.63: Vẽ biểu đồ chòm sao của điều chế 16-QAM tại máy thu của kênh truyền nhiễu trắng với tỷ lệ tín hiệu trên nhiễu là 20 dB trong hai trường hợp: a. Không có chuẩn hóa công suất. b. Có chuẩn hóa công suất.
  241. Điều chế số • Giải: Sử dụng tham số “UnitAveragePower” trong hàm qammod() để thực hiện chức năng chuẩn hóa công suất. Chế độ mặc định của hàm qammod() là không chuẩn hóa công suất. Để vẽ biểu đồ chòm sao, dùng hàm scatterplot(). Chương trình matlab:
  242. Điều chế số • Giải: Kết quả mô phỏng: Biểu đồ chòm sao của 16-QAM khi không chuẩn hóa Biểu đồ chòm sao của 16-QAM khi chuẩn hóa công suất. công suất.
  243. QUÁ TRÌNH LỌC • Matlab cung cấp hàm filter() để thực hiện việc lọc tín hiệu số. • Cú pháp: y = filter(b,a,x) y = filter(b,a,x,zi) y = filter(b,a,x,zi,dim) [y,zf] = filter(___) với x là tín hiệu cần lọc, b và a lần lượt là hệ số của mẫu và tử của hàm truyền; zi là điều kiện bắt đầu cho giá trị trễ của bộ lọc dim là số chiều.
  244. QUÁ TRÌNH LỌC • Ví dụ 4.63: Tạo ra tín hiệu sin trong hai chu kỳ có biên độ bằng 1, cộng vào tín hiệu nhiễu trắng có biên độ bằng 25% biên độ tín hiệu. Cho tín hiệu qua bộ lọc trung bình động có kích thước cửa sổ bằng 10. Vẽ tín hiệu trước và sau khi cộng nhiễu và lọc.
  245. QUÁ TRÌNH LỌC • Giải: Kích thước cửa sổ lọc là 10. Chương trình Matlab như sau.
  246. QUÁ TRÌNH LỌC • Giải: Kết quả mô phỏng: Tín hiệu trước và sau khi lọc nhiễu bằng bộ lọc trung bình động.
  247. HẾT CHƯƠNG 4