Sau khoảng thời gian nghiên cứu, tìm hiểu trong đồ án viễn thông, về đề tài “Mô phỏng, đánh giá chất lượng hệ thống truyền tin số sử dụng mã Hamming với các phương thức điều chế khác nhau” đã được hoàn thành.
Kết quả đạt được:
Xét cùng một giá trị của Eb/No(dB) thì bản tin được mã hóa bằng mã Hamming (7,4) có xác suất lỗi bit sẽ thấp hơn so với bản tin không mã hóa.
Khi truyền tin theo kênh liên lạc có nhiễu, thì có một phần lượng thông tin sẽ bị mất mát trên kênh, vì thế trong số liệu thu về sẽ phát sinh lỗi. Nếu số lượng lỗi như thế có giá trị nhỏ, hoặc chúng phát sinh với tần số cho phép, thì sử dụng kĩ thuật mã hóa mã Hamming để chống nhiễu.
Hạn chế:
Trong mã Hamming M(7,4), trên quá trình mã hóa và giải mã vẫn đang còn một số bit bị lỗi, vì trong bài toán này, vector sửa lỗi E đã cho chỉ có thể sửa được một lỗi, từ hai lỗi bit trở lên thì sẽ không sửa được (xét trong một khung 4 bit).
Trong thực tế bao giờ cũng tồn tại xác xuất lỗi không phát hiện được, không có loại mã nào là hoàn thiện tất cả mà chỉ ở mức tương đối chấp nhận được.
Việc nghiên cứu giúp em hiểu thêm nhiều kiến thức về kỹ thuật mã hóa và giải mã các bit thông tin, xử lý bài toán cho trường hợp cụ thể trên cộng cụ là phần mềm Matlab một cách sinh động.
Mặc dù đã cố gắng hết sức vào việc thực hiện đồ án nhưng không thể không có những sai sót trong quá trình thực hiện em xin được nhận những lời góp ý và bổ sung cho bản đồ án được hoàn thiện hơn.
28 trang |
Chia sẻ: tienthan23 | Lượt xem: 5530 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Mô phỏng, đánh giá chất lượng hệ thống truyền tin số sử dụng mã Hamming với các phương thức điều chế khác nhau, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Lời mở đầu
Ngày nay, sự phát triển của công nghệ diễn ra rất năng động nên nhu cầu truyền tin trong cuộc sống ngày càng trở nên được chú ý đến nhiều hơn. Thông tin đóng vai trò rất quan trọng trong đời sống, quân sự, ngoại giao.vì vậy việc truyền dẫn thông tin càng phải đặt lên hàng đầu. Đảm bảo an toàn về truyền tin giúp chúng ta thu và nhận thông tin một cách chính xác hơn. Tuy nhiên trong quá trình truyền dẫn sẽ không tránh khỏi lỗi và nhiễu. Do vậy việc sửa lỗi là rất cần thiết. Từ đó có rất nhiều phương pháp sửa lỗi ra đời: Mã chập, mã vòng, mã BCH nhị phân, mã Hamming. Mỗi phương pháp sửa lỗi đều mang những ưu điểm và nhược điểm riêng biệt, vì vậy việc lựa chọn phương pháp sửa lỗi phải phù hợp để hệ thống hoạt động ổn định.
Sau đây chúng em xin trình bày về đề tài: “Mô phỏng, đánh giá chất lượng hệ thống truyền tin số sử dụng mã Hamming với các phương thức điều chế khác nhau”. Với sự hướng dẫn của giảng viên: ThS. Phạm Mạnh Toàn.
Trong quá trình xây dựng đồ án này khó có thể tránh những sai sót, rất mong quý thầy cô và các bạn chỉ dẫn, đóng góp ý kiến để đề tài hoàn thiện hơn. Xin trân trọng cảm ơn.
Sinh viên thực hiện
Nguyễn Việt Thắng
Phần 1: MÃ HÓA HAMMING SỬ DỤNG TRONG TRUYỀN TIN SỐ
1.1. Tổng quan về mã hóa kênh
1.1.1. Khái niệm chung
Mã hóa kênh là việc đưa thêm các bit dư vào tín hiệu số theo một quy luật nào đấy, nhằm giúp cho bên thu có thể phát hiện và thậm chí sửa được cả lỗi xảy ra trên kênh truyền.
Tín hiệu truyền qua kênh truyền sẽ bị ảnh hưởng bởi nhiễu, can nhiễu, fading là tín hiệu đầu thu bị sai. Mã hóa kênh dùng để bảo vệ dữ liệu không bị sai bằng cách thêm vào các bit dư thừa.
Ý tưởng của mã hóa kênh là gửi một chuỗi bit có khả năng sửa lỗi. Mã hóa kênh không làm giảm lỗi bit truyền mà chỉ làm giảm lỗi bit dữ liệu.
Mục đích của lý thuyết mã hóa trên kênh truyền là tìm những mã có thể truyền thông nhanh chóng, chứa đựng nhiều mã hợp lệ và có thể sửa lỗi hoặc ít nhất phát hiện các lỗi xảy ra. Các mục đích trên không phụ thuộc vào nhau, và mỗi loại mã có công dụng tối ưu cho một ứng dụng riêng biệt. Những đặc tính mà mỗi loại mã này cần còn tuỳ thuộc nhiều vào xác suất lỗi xảy ra trong quá trình truyền thông.
Hình 1.1 Sơ đồ khối hệ thống truyền tin
Mã hóa kênh là một khâu rất quan trọng trong hệ thống thông tin số không dây cùng với mã hóa nguồn, ghép kênh, điều chế, để tạo ra một tín hiệu phù hợp cho việc truyền dẫn vô tuyến và tín hiệu, có khả năng điều khiển được sự sai bit và sửa lỗi xảy ra nếu có để khôi phục lại gần như nguyên dạng tín hiệu tin tức mà mình truyền đi. Vị trí của mã hóa kênh truyền trong hệ thống thông tin khi truyền qua kênh truyền được minh họa trên hình (Hình1.1). Việc giảm thiểu xác suất sai dựa vào việc phát hiện sai và sửa sai có thể dẫn đến việc giảm tỉ số tín hiệu trên nhiễu cần thiết nhờ đó giảm được công suất, tiết kiệm năng lượng.
Vai trò của mã hóa kênh là làm giảm xác suất sai thông tin khi truyền qua kênh truyền. Việc giảm tỉ số tín hiệu trên nhiễu cần thiết nhờ đó giảm được công suất, tiết kiệm năng lượng. Việc sửa sai hữu hiệu cho tín hiệu nhỏ sẽ thuận lợi cho việc bảo mật, trải phổ và tăng tốc độ chính xác của thông tin nhận, đây là mục đích quan trọng nhất của truyền thông.
1.1.2. Phân loại mã hóa kênh
Hiện nay, trong truyền tin số tồn tại hai loại mã: Mã khối và mã xoắn (liên tục). Trong đề tài này sẽ quan tâm nghiên cứu về mã khối.
1.2. Mã Hamming
1.2.1. Giới thiệu
Mã Hamming thuộc mã khối. Mã khối được hình thành như sau: Từ chuỗi bit X của tin tức (ở dạng nhị phân) có độ dài bất kỳ (như hữu hạn), được chia thành các khối mỗi khối bao gồm k bit (ký hiệu) thông tin, ở khối cuối cùng nếu không đủ k bit thông tin nó sẽ được bổ sung thêm một số ký hiệu dạng 100, để đủ trở thành khối có k ký hiệu, sau khi giải mã các ký hiệu này bị loại bỏ đi.
Mỗi khối có k bit thông tin dài n ký hiệu, bao gồm 2k từ mã, được gọi là mã khối tuyến tính M(n,k), với điều kiện là tất cả 2k từ mã hình thành nên không gian con bậc k của không gian con vector bậc n trong trường nhị phân GF(2).
Tập hợp 2 phần tử 0 và 1, với phép cộng và phép nhân mod2, được gọi là trường nhị phân và ký hiệu là GF(2). Đối với trường GF(2) có thể áp dụng mọi toán tử đại số tuyến tính, trong đó có toán tử ma trận.
Nói một cách đơn giản là mã nhị phân được gọi là tuyến tính, nếu tổng theo modul 2 (mod2) của hai từ mã bất kỳ cũng là từ mã của mã đó.
Mọi mã khối tuyến tính đều là mã hệ thống. Mã khối hệ thống là mã khối mà mỗi khối bao gồm k bit thông tin và r ký hiệu dư thừa, tạo thành 2 khối con tách biệt nhau.
Hình 1.2 Một khối mã(từ mã) của mã khối hệ thống
Trên cơ sở toán học, mã khối tuyến tính hệ thống M(n,k) hoàn toàn được xác định nhờ ma trận sinh G(n,k).
(1)
Trong đó E(k,k) - ma trận đơn vị bậc vị bậc (k*k).
R(r,k) - ma trận đơn vị bậc vị bậc (r*k).
r là số ký hiệu dư ( ký hiệu kiểm tra).
k là số bit tin trong từ mã.
Trọng số Hamming
Trọng số Hamming của một từ mã nhị phân αi, thường ký hiệu w(αi), là số lượng ký hiệu 1 có trong từ mã đó. Chẳng hạn, chúng ta có từ mã αi=100101, trọng số Hamming của tù mã được xác định w(αi)=3.
Khoảng cách Hamming
Khoảng cách Hamming giữa hai từ mã αi, αk (có độ dài đều), thường ký hiệu d(αi, αk) là số lượng vị trí tương ứng mà tại đó chúng có giá trị khác nhau. Chẳng hạn, αi=1010011, αk=1000101, khoảng cách Hamming giữa hai từ mã được xác định d(αi,αk)=3. Từ đây, chúng ta có d(αi,αk)= w(αiαk), với ký hiệu chỉ phép cộng theo modul 2 (mod2).
Khoảng cách Hamming tối thiểu
Khoảng cách Hamming tối thiểu của bộ mã (chỉ áp dụng cho bộ mã đều), thường ký hiệu dmin, hoặc d0, được xác định d0=min d(αi,αk) với mọi i,k. Tham số d0 của bộ mã quyết định khả năng phát hiên lỗi và sửa lỗi.
Số lỗi
Số lỗi có thể phát hiện được khi giải mã, ký hiệu là e và được xác định e=d0-1. Một bộ mã có d0=1, không có khả năng phát hiện bất kỳ lỗi nào, e=0, được gọi là bộ mã đầy, hay bộ mã không có dư thừa, gC=0. Một bộ mã muốn phát hiên được một lỗi, e=1, cần d0=2. Các bộ mã có d0≥2 được gọi là bộ mã vơi, hay bộ mã có dư thừa gC>0 (), nếu r=0 thì gC=0).
Số lỗi có thể sửa được
Số lỗi có thể sửa được khi giải mã, ký hiệu là t và được xác định , trong đó ký hiệu [x] để chỉ phép lấy phần nguyên của x. Từ công thức này ta xác định được một bộ mã muốn sửa lỗi cần d0≥2t+1. Chẳng hạn, bộ mã muốn sửa lỗi, t=1, cần d0≥3 (trong trường hợp này có thể phát hiện được 2 lỗi).
Trong các loại mã khối có thể là mã khối trong trường nhị phân GF(2), cũng có thể là mã khối trong trường GF(2m).
Mã Hamming là một mã sửa lỗi tuyến tính, mã này có thể phát hiện một bit hoặc hai bit bị lỗi. Mã Hamming còn có thể sửa các lỗi do một bit bị sai gây ra.
Các mã có tham số với m≥3 được gọi là mã Hamming
Chiều dài từ mã: n= 2m-1.
Chiều dài phần tin: k=n-m.
Số ký hiệu dư: r=m.
Khả năng sửa sai: t=1.
Khoảng cách Hamming giữa hai từ mã ký hiệu là d là số lượng vị trí tương ứng mà tại đó chúng có giá trị khác nhau. Khoảng cách Hamming cực tiểu của bộ mã ký hiệu là d0. Tham số d0 của bộ mã quyết định khả năng phát hiện lỗi và sửa lỗi.
d0=1+ số ký hiệu một trong hàng nào đó có ít ký hiệu 1 nhất (trong ma trận R(r,k).
Số lỗi có thể phát hiện được khi giải mã, ký hiệu là e: e=d0-1.
1.2.2. Thuật toán mã hóa mã Hamming
Các bit thông tin có dạng: I= (m0,m1,m2,mk).
Từ mã V được xác định dưới dạng: V=(v0, v1, v2, v3, v4, v5,, vn-1).
Thuật toán mã hóa được xác định theo công thức V=I × G(n,k), hay:
(v0, v1, v2, v3, v4, v5,, vn-1)= (m0,m1,m2,mk)× G(n,k)
1.2.3. Ma trận kiểm tra mã Hamming
Ma trận kiểm tra H(n,k) có đặc tính sau: Tích của mọi từ mã V với ma trận kiểm tra H(n,k) chuyển vị, đều cho kết quả bằng 0, tức là:
(1.1)
T: chỉ phép chuyển vị ma trận
Với đặc tính trên ma trận kiểm tra H(n,k) được xác định theo ma trận sinh G(n,k) với dạng biểu diễn như sau:
(1.2)
1.2.4. Thuật toán giải mã Hamming
Ma trận kiểm tra H(n,k) cho phép kiểm tra một từ mã nào đó có phải là từ mã của bộ mã đang xét hay không. Đặc biệt khi thu được từ mã, ký hiệu P, có thể kiểm tra từ mã này có mắc lỗi hay không bằng thuật toán .
Trong công thức này S được gọi là vector Syndrome, có r ký hiệu. Nếu S=0, từ mã P không có lỗi, còn ngược lại, nếu S ≠0, từ mã P có lỗi. Công thức trên gọi là thuật toán giải mã phát hiện sai.
Ma trận có thể biểu diễn theo ma trận thành phần của ma trận sinh G(n,k) như sau :
(1.3)
1.3. Điều chế và giải điều chế trong hệ thống thông tin số
Điều chế là kỹ thuật gắn tin tức vào một sóng mang cao tần, làm cho một trong các thông số: tần số, pha, biên độ của sóng mang thay đổi theo tín hiệu tin tức. Điều chế được xem là não bộ của hệ thống và xuất hiện trong tất cả các hệ thống thông tin. Vì vậy, khi xem xét đánh giá chất lượng một hệ thống thông tin, ta không thể tách rời khỏi kỹ thuật điều chế.
Trong phần 2 của đồ án này thực hiện đánh giá chất lượng hệ thống thông tin sử dụng các loại kỹ thuật điều chế khi sử dụng và không sử dụng mã Hamming để phát hiện và sửa lỗi. Bởi vậy, phần này chúng ta sẽ xem xét kỹ thuật điều chế BPSK, QPSK, 8 – PSK, 16 – PSK.
1.3.1. Điều chế BPSK
Giả sử có sóng mang được biểu diễn:
(1.4)
Biểu thức tín hiệu gốc: s(t) là tín hiệu nhị phân(0,1) hay là chuỗi NRZ.
Ta có:
Khi s(t)=1: (1.5)
Khi s(t)=0: (1.6)
Đối với khóa dịch pha PSK, thông tin chứa trong pha tức thời của sóng mang điều chế. Thường thì pha này được ấn định và so sánh tương thích với sóng mang của pha đã biết PSK kết hợp. Đối với PSK nhị phân, các trạng thái pha 00 và 1800 sẽ được sử dụng.
Nguyên tắc: Các tín hiệu nhị phân tác dụng lên sóng mang làm thay đổi pha của sóng mang. Cụ thể là:
Bit 1: pha của sóng mang là 00.
Bit 0: pha của sóng mang là 1800.
Các giá trị này có thể ngược lại nhưng nguyên tắc chung là khi có sự đảo bit thì pha của sóng mang lệch đi 1800.
Bảng chân lý của tín hiệu điều chế BPSK
Nhị phân đầu vào
Pha đầu ra
Logic 0
1800
Logic 1
Có thể thấy rõ ràng hơn trong cách biểu diễn trên đồ thị thời gian và trạng thái của tín hiệu BPSK (Hình 2.2).
Điều chế khóa dịch pha nhị phân BPSK (Hình 2.3):
Với n=2, , thì ta có kiểu điều chế 2-PSK hay BPSK:
(1.7)
Sơ đồ tại tín hiệu BPSK dạng sin với hai giá trị tùy thuộc giá trị Data:
Khi Data bit=1, tín hiệu BPSK cùng pha với sóng mang.
Khi Data bit=0, tín hiệu BPSK ngược pha với sóng mang.
Hình 1.3 Khóa dịch pha nhị phân
Hình 1.4 Sơ đồ khối thực hiện điều chế PSK
Hình 1.5 Quan hệ pha, thời gian ở đầu ra bộ điều chế BPSK theo tín hiệu vào
Quá trình giải điều chế BPSK
Hình 1.6 Phương pháp giải điều chế PSK
Giải điều chế BPSK có thể thực hiện theo sơ đồ hình 1.6. Sơ đồ gồm bộ tái lập sóng mang và bộ nhân.
Bộ giải điều chế BPSK bao gồm:
Sơ đồ lấy bình phương để chuyển các tín hiệu khác pha về cùng 1 pha.
Vòng giữ pha PLL phát lại nhịp với tần số gấp đôi tần số mang.
Bộ dịch pha để hiệu chỉnh pha.
Bộ chia hai để đưa tần số tín hiệu tái lập về bằng tần số sóng mang.
Bộ nhân tín tín hiệu thực hiện nhân sóng điều chế BPSK với sóng mang tái lập.
Giả sử tần số sóng mang là , , ta có hai trường hợp:
Khi tín hiệu BPSK là ứng với data bit = 1, sóng mang tái lập là , sơ đồ nhân sẽ cho tín hiệu:
(1.8)
Trong biểu thức trên thành phần thứ hai là xoay chiều, có tần số gấp đôi tần số sóng mang. Khi sử dụng bộ lọc thông thấp với tần số cắt bằng tần số sóng mang, có thể khử bỏ thành phần xoay chiều và thế dương của thành phần 1 chiều thứ nhất sẽ giữ lại biểu diễn trạng thái “1” của Data bit.
Khi tín hiệu BPSK là ứng với data bit=0, sơ đồ nhân sẽ cho :
(1.9)
Trong biểu thức trên thành phần thứ 2 là xoay chiều, có tần số gấp đôi tần số sóng mang. Khi sử dụng bộ lọc thông thấp với tần số cắt bằng tần số sóng mang, có thể khử bỏ thành phần xoay chiều và thế âm của thành phần một chiều thứ nhất(-1/2) được giữ lại sẽ biểu diễn trạng thái “0” của data bit.
Điều chế khóa dịch pha hiện nay được sử dụng rộng rãi trong các hệ thống thông tin quân sự, thương mại, các hệ thống vi ba số. Phương thức điều chế này có thể xem là một phương thức điều chế hiệu quả cho các ứng dụng truyền tin bằng vô tuyến vì nó đảm bảo xác suất lỗi thấp nhất đối với một mức tín hiệu thu đã khẳng định do trên một chu kì tín hiệu.
1.3.2. Điều chế QPSK
PSK 4 pha còn gọi là PSK vuông góc (QPSK : Quadrature PSK) là mạch điều chế cho tín hiệu ra có 1 trong 4 pha tùy theo trạng thái của một cặp bit (dibit) dữ liệu vào, độ lệch pha của các tín hiệu ra là 90°.
Mạch chia bit (bit splitter): chuyển dòng dữ liệu vào theo hai ngã I (In-phase) và Q (Quadrature). Những bit vào ngã I sẽ điều chế sóng mang có pha ban đầu và những bit vào ngã Q sẽ điều chế sóng mang đã được làm lệch pha 90°
Vì các dữ liệu vào có thể là bit 1 hoặc 0, nên tín hiệu ở ngã ra mạch nhân I có thể là sinωct hoặc và ở ngã ra Q có thể là cosωct hoặc , các tín hiệu này được tổng hợp ở mạch tổng để cho ra 1 trong 4 tín hiệu mô tả ở (Hình 1.7)
Với các bit ở ngã vào ab=01, tín hiệu ở ngã ra là + , tín hiệu này có thể thay thế bởi tín hiệu duy nhất có pha là 135°.
Bảng 1.1: Tín hiệu ra từ mạch cân bằng
Kênh
Giá trị nhị phân
Hiệu thế
Tín hiệu ra từ mạch cân bằng
I
1
+
0
-
Q
1
+
0
-
Hình 1.7 Tín hiệu điều chế 4 pha
Hình 1.8 Mạch giải mã PSK – 4 pha
Mạch phục hồi sóng mang sẽ cho lại sóng mang sinωct từ tín hiệu nhận được, tín hiệu này được cho thẳng vào mạch nhân ngã I và được làm lệch pha 90° trước khi vào mạch nhân ngã Q, tín hiệu ra ở các mạch nhân được đưa vào mạch lọc hạ thông để loại bỏ thành phần tần số cao, các thành phần DC sẽ được tổng hợp ở mạch tổng để cho lại dòng dữ liệu.
Giả sử tín hiệu vào là tín hiệu nhận được trong thí dụ trên: cosωct - sinωct
Tín hiệu ra ở mạch nhân ngã I là:
sinωct () = 1/2 - 1/2(1-)
Tín hiệu ra sau mạch lọc là điện thế dc -, tương ứng bit 0
Tín hiệu ra ở mạch nhân ngã Q là:
() = -1/2 +1/2(1+)
Tín hiệu ra sau mạch lọc là điện thế dc+, tương ứng bit 1,
Mạch tổ hợp bit sẽ cho lại dữ liệu như đã phát : 01 (viết theo thứ tự ab).
1.3.3. Điều chế 8 – PSK
PSK - 8 pha là mạch điều chế cho tín hiệu ra có 1 trong 8 pha tùy thuộc trạng thái của tổ hợp 3 bit vào (tribits).
Mạch chia bit chia tổ hợp 3 bít theo 3 kênh khác nhau. Các bit a và b theo kênh I và Q xác định cực tính của tín hiệu ra ở mạch biến đổi từ 2 ra 4 mức, trong khi bit c xác định biên độ của điện thế dc.
Hình 1.9 Sơ đồ khối của mạch điều chế PSK - 8 pha
Có 2 biên độ được dùng là 0,34V và 0,821V. Khi a và b là bit 1 ngã ra mạch biến đổi có trị dương, ngược lại khi a và b là bit 0. Biên độ của tín hiệu ra từ mạch biến đổi luôn luôn khác nhau, bất cứ khi nào một mạch nhận tín hiệu c (hay để cho ra tín hiệu có biên độ là 0,821 (0,34) thì mạch kia nhận tín hiệu đảo lại và cho ra tín hiệu có biên độ là 0,34 (0,821)).
Vì 3 bit abc độc lập với nhau nên ± 0,821 và ± 0,344 luôn luôn là 4 giá trị có thể có ở ngã ra các mạch biến đổi.
Ở kênh I mạch điều chế trên sóng mang ban đầu (không làm lệch pha) nên 4 giá trị ngã ra là ± 0,821 và ± 0,34 trong khi ở ngã ra Q đó là các giá trị ± 0,821 và ± 0,34. Mạch tổng sẽ tổng hợp tín hiệu ra của 2 kênh để cho ra một tín hiệu duy nhất. Tùy theo các tín hiệu vào các tín hiệu ra sẽ có các pha khác nhau (Hình 2.0). Trong hình này góc A xác định bởi
Như vậy các tín hiệu điều chế của các tribit có pha khác nhau từng 45°
Hình 2.0 Góc pha của tín hiệu này xác định bởi dấu X
Nếu, các bit cba ở ngã vào là 101, ta có:
Mạch biến đổi ở kênh I cho: +0,821 V.
Mạch biến đổi ở kênh Q cho: -0,34 V.
Mạch điều chế ở kênh I cho: +0,821cosωct.
Mạch điều chế ở kênh Q cho: -0,34 sinωct.
Tín hiệu ra sau cùng: 0,821 cosωct -0,34.
1.3.4. Điều chế 16 – PSK
PSK - 16 pha là mạch điều chế cho tín hiệu ra có 1 trong 16 pha tùy thuộc trạng thái của tổ hợp 4 bit vào. Các pha cách nhau 22,50.
1.4. Kênh truyền AWGN
Khối AWGN cộng nhiễu trắng Gauss vào trong tín hiệu lối vào. Tín hiệu lối vào hoặc lối ra có thể là số thực hoặc số phức. Nếu tín hiệu vào là số thực thì tín hiệu vào sẽ cộng nhiễu Gauss thực và tạo ra một tín hiệu thực ở lối ra. Khi tín hiệu lối vào là phức, khối này cộng tín hiệu Gauss phức và tạo ra một lối ra tín hiệu phức. Khi sử dụng sự thay đổi mode với lối vào phức, giá trị thay đổi ngang bằng thành phần thực chia cho thành phần ảo của tín hiệu lối vào.
1.5. Tỷ lệ lỗi bit BER
Tỷ lệ lỗi bít (bit error rate) trên kênh truyền:
BER= (số bit lỗi)/(tổng số bit truyền đi)
Nếu gọi P(e) là trung bình xác suất xảy ra lỗi khi truyền thông tin qua hệ thống. Gọi Pe(n) là xác suất xảy ra lỗi bit(tức thời) ở thời điểm n và giả sử rằng chúng ta làm mô phỏng N lần. Khi đó, Pe= lim[(1/N)*(Pe(1)+Pe(2)+...+Pe(N))] khi N tiến tới vô cực.
Có nghĩa là nếu chương trình mô phỏng đủ dài (N đủ lớn) thì BER là xấp xỉ của xác suất xảy ra lỗi khi truyền thông tin qua hệ thống. Ở BER khoảng 10-4 trở xuống thì thông thường có khoảng 100 lỗi thì BER tương đối chính xác. Ví dụ, nếu ta muốn xác định BER ở khoảng thì ta nên truyền khoảng 100000000 bit thông tin qua hệ thống sau đó đếm số lỗi.
Nếu ta đã biết tốc độ truyền tin (bit/s), như vậy ta có thể đếm số lỗi trong một khoảng thời gian R nào đó. Giả sử trong thời gian T giây đó, ta đếm được M bit lỗi và tốc độ truyền tin qua hệ thống là B bits/s. Khi đó BER được tính:
BER = M/(T*B)
Nếu ta dùng phần mềm để mô phỏng hệ thống thì đơn giản hơn, ta chia thông tin thành từng gới( frame) rồi truyền trên kênh. Sau khi truyền mỗi gói, ta thu thông tin, giải mã... rồi so sánh nó với gói dữ liệu trước khi truyền và đếm số lỗi xảy ra khi truyền gói tin đó. Giả sử rằng ta truyền N gói tin mỗi gói tin có độ dài K bits, tổng số lỗi mà phần mềm đếm được sau khi truyền gói N đó là M thì BER là:
BER= M/(N*K)
Phần 2: MÔ PHỎNG, ĐÁNH GIÁ CHẤT LƯỢNG HỆ THỐNG TRUYỀN TIN SỐ SỬ DỤNG MÃ HAMMING VỚI CÁC PHƯƠNG THỨC ĐIỀU CHẾ KHÁC NHAU
Trong phần này, thực hiện mô phỏng đánh giá chất lượng hệ thống truyền tin số trong trường hợp sử dụng và không sử dụng mã Hamming với các phương thức điều chế. Mặt khác, đề tài cũng đánh giá hệ thống sử dụng mã Hamming với các phương thức điều chế khác nhau BPSK, QPSK, 8 – PSK, 16 – PSK. Từ mối quan hệ giữa tỷ số Eb/N0 và xác suất lỗi cho phép lựa chọn phương thức điều chế và mã hóa thích hợp.
2.1. Sử dụng mã Hamming M(7,4) cho quá trình mã hóa và giải mã
Đối với mã hamming M(7,4) ma trận sinh có dạng:
(2.1)
G(7,4) có d0=1+2=3 nên bộ mã này có thể phát hiện được 2 lỗi và sửa được 1 lỗi.
Mã hóa các bit thông tin có dạng I=(m0,m1,m2,m3) thành từ mã chứa các bit sửa lỗi V=(v0,v1,v2,v3,v4,v5,v6) để truyền trên kênh như sau : V=I × G(7,4).
Hay, (v0, v1, v2, v3, v4, v5,v6)= (m0,m1,m2,m3) × (2.2)
Theo quy tắc nhân ma trận, ta có:
(2.3)
Với các bít thông tin I=(1000), sẽ xác định được từ mã V=(1000110).
Mạch điện mã hóa được xây dựng căn cứ vào thuật toán mã hóa ở trên(Hình 2.1).
Ô ghi dịch (phía trên), để ghi 4 bit thông tin. Các bit thông tin được dịch vào theo trình tự: Bit m0 dịch vào đầu tiên, còn bit m3 dịch vào sau cùng.
Bộ cộng mod2(XOR), để tính 3 ký hiệu dư.
3 ô ghi dịch (vẽ dưới), để ghi ký hiệu dư.
Cổng AND1 mở từ nhịp 1 – 4 để đưa 4 bit thông tin ra ngoài, hình thành nên 4 bit thông tin của từ mã V.
Cổng AND2 mở từ nhịp 5 – 7 để đưa 3 ký hiệu dư ra ngoài, hình thành nên 3 ký hiệu kiểm tra của từ mã V.
Phần tử OR làm việc trong nhịp 7, để kết thúc một quá trình mã hóa, hình thành nên từ mã V với 7 ký hiệu.
Hình 2.1 Mạch điện mã hóa của mã Hamming M(7,4)
Thuật toán giải mã:
Phía thu nhận được từ mã P. Xét hai trường hợp:
Trường hợp 1: Quá trình truyền không phát sinh lỗi, khi đó . Hay S=0 (với giả thiết lỗi ).
Trường hợp 2: Quá trình truyền phát sinh lỗi, khi đó .
Với P=(r0,r1,r2,r3,r4,r5,r6), S=(s0,s1,s2). Ta có:
(2.3)
Thực hiện phép nhân ma trận. Ta nhận được kết quả:
(2.4)
Đây được gọi là tổng kiểm tra, để xác định phần tử của vector S.
Thay các giá trị thu được từ phía thu :
(2.5)
Như vậy, S=0, kết luận P không mắc lỗi.
Giả sử S ≠ 0:
(2.6)
Trường hợp này:
, dẫn đến kết luận P mắc lỗi.
Vì s0=0 hơn nữa chúng ta giả thiết P chỉ mắc một lỗi, vậy nên khẳng định các ký hiệu tham gia vào tổng này không mắc lỗi ; tức là r0,r2,r3,r4 không mắc lỗi.
Vì s1=1 chúng ta giả thiết P chỉ mắc một lỗi, cho nên khẳng định các ký hiệu tham gia vào tổng này mắc một lỗi. Kết hợp với kết luần ở trên, dẫn đến r1 hoặc r5 bị mắc lỗi.
Vì s2=1 chúng ta giả thiết P chỉ mắc một lỗi, cho nên khẳng định các ký hiệu tham gia vào tổng này mắc một lỗi. Kết hợp với kết luận ở trên, dẫn đến r1 hoặc r6 bị mắc lỗi.
Kết hợp hai kết luận cuối, với giả thiết P chỉ mắc 1 lỗi, dẫn đến kết luận phần tử mắc lỗi là r1, điều này hoàn toàn hợp lý với giả thiết ban đầu.
Khi thu có lỗi người ta thường sử dụng ký hiệu :
(2.7)
Trong đó e là vector lỗi. ở trên e=(0100000).
Bảng 2.1 Mối quan hệ giữa S và e
Vector lỗi e
Vector Syndrome S=(s0s1s2)
Vector S trong hệ 10
1000000
0100000
0010000
0001000
110
011
111
101
3
6
7
5
0000100
0000010
0000001
0000000
100
010
001
000
1
2
4
0
Mạch điện giải mã: Mạch điện giải mã được xây dựng dựa trên thuật toán giải mã. Xây dựng mạch điện giải mã cho mã M(7,4) (Hình 2.2).
Mạch điện giải mã bao gồm các phần tử:
Mạch tính Syndrome, gồm 3 bộ cộng mod2, để tính (s0,s1,s2). Các đầu vào của các XOR được vẽ dựa trên thuật toán giải mã.
Mạch chuyển đổi (giải mã) vector S từ mã hệ 2 sang hệ 10, và đưa ra mức logic cao “1” ở đầu ra tương ứng với con số của hệ 10; các đầu ra còn lại có mức logic 0. Mạch điện này được gọi là mạch tạo ký hiệu sửa sai.
Mạch điện chứa dấu sửa sai (được đánh số từ 0 đến 3). Phần tử ri nào mắc lỗi, ô ghi dịch có ghi số tương ứng được nạp mức logic 1, các ô còn lại nạp mức logic 0.
Mạch sửa lỗi là XOR, ký hiệu M. Ký hiệu thu ri nào mắc lỗi, sẽ được sửa nhờ phép cộng mod2: (ở đây để chỉ đã được sửa sai), ở nhịp tương ứng. Các ký hiệu rj còn lại không mắc lỗi, không bị ảnh hưởng bởi phép cộng mod2 này:
Mạch điện giải mã cần làm việc trong 11 nhịp, trong đó 7 nhịp đầu để đưa các ký hiệu thu vào thanh ghi đệm, tính Syndrome, chuyển mã hệ 2 sang mã hệ 10, 4 nhịp tiếp theo để sữa lỗi. Ở đầu ra là vector đã sữa lỗi.
Hình 2.2 Mạch điện giải mã của mã Hamming M(7,4)
2.2. Mô phỏng, đánh giá chất lượng thông tin số
2.2.1. So sánh chất lượng hệ thống sử dụng mã Hamming với các phương thức điều chế khác nhau
Bài toán 1: Cho N=720000 bít truyền trên các kênh AWGN, sử dụng mã Hamming (7,4). Đánh giá chất lượng hệ thống khi lần lượt thay đổi các phương thức điều chế là BPSK, Q-PSK, 8-PSK, 16-PSK.
Xây dựng chương trình:
Bước 1: Tạo 720000 bit tin ngẫu nhiên.
Bước 2: Tạo ma trận sinh G(7,4), ma trận kiểm tra H, ma trận sửa lỗi E.
Bước 3: Chuyển các bit tin là mảng 1 chiều thành các từ mã có độ dài 4 bit, sau đó tiến hành mã hóa thành các từ mã để truyền đi: V=I × G(7,4).
Bước 4: Điều chế 8-PSK: Tạo các bit tin thành các symbol 3bit, tiến hành điều chế. Tạo nhiễu AWGN trên kênh truyền, sau đó tiến hành giải điều chế BPSK. Tương tự với các kỹ thuật điều chế BPSK, QPSK,16PSK.
Bước 5: Tách các symbol thành các bit tin. Chuyển về dạng từ mã 7bit
Bước 6: Tính vector Sydrome, tham chiếu vector Sydrome vào vector sửa lỗi E. Tiến hành sửa lỗi.
Bước 7: Tách từ mã nhận được thành các bit tin.
Bước 8: Tính toán lỗi thông qua bit tin nhận được so với các bit tin phát đi.
Chương trình mô phỏng của bài toán này được cho trong phụ lục 1.
Kết quả mô phỏng thể hiện trên hình 2.3.
Hình 2.3 BER và Eb/No với BPSK, QPSK, 8PSK,16PSK khi sử dụng mã Hamming
Từ kết quả trên, ta thấy:
Khi sử dụng kỹ thuật mã Hamming và không sử dụng kỹ thuật mã Hamming thì ta thấy rằng đường cong BER của BPSK và QPSK nó trùng nhau tức là cả hai đều có cùng xác suất BER. Điều này có thể giải thích là QPSK có thể xem là một điều chế bậc 4 của BPSK nhưng BPSK nó dễ hơn. Ở QPSK các bit chẵn (hoặc lẻ) được sử dụng để điều chỉnh các thành phần trong pha của các sóng mang. Khi các bit lẻ hoắc chẵn được sử dụng để điều chỉnh các pha thành phần, hay nói cách khác QPSK là BPSK được sử dụng trên các sóng mang độc lập. Do đó tỉ lệ BER là như nhau cho cả hai mô phỏng.
Có thể kết luận rằng kỹ thuật mã hóa mã Hamming với BPSK là kỹ thuật điều chế tốt nhất cho tỉ lệ Ber thấp nhất cho tất cả các mô phỏng. Kỹ thuật điều chế 16 – PSK cho xác suất lỗi bit lớn nhất
Khi số mức điều chế tăng, thì khoảng cách giữa các chòm sao gần nhau nên kéo theo tỷ lệ lỗi bit BER tăng.
Bài toán 2: Cho N=720000 bít truyền trên các kênh AWGN, không sử dụng mã Hamming (7,4). Đánh giá chất lượng hệ thống khi lần lượt thay đổi các phương thức điều chế là BPSK, Q-PSK, 8-PSK, 16-PSK.
Xây dựng chương trình:
Bước 1: Tạo 720000 bit tin ngẫu nhiên.
Bước 2: Điều chế QPSK.Tạo các bit tin thành các symbol 2bit, tiến hành điều chế. Tạo nhiễu AWGN trên kênh truyền, sau đó tiến hành giải điều chế BPSK.
Bước 3: Tách các symbol thành các bit tin.
Bước 4: Tính toán lỗi thông qua bit tin nhận được so với các bit tin phát đi.
Kết quả mô phỏng thể hiện trên hình 2.4.
Hình 2.4 BER và Eb/No với BPSK, QPSK, 8PSK, 16 PSK khi không sử dụng mã hóa Hamming
Chương trình mô phỏng của bài toán này được cho trong phụ lục 2.
Từ kết quả trên, ta thấy:
Có thể kết luận rằng với điều chế BPSK là kỹ thuật điều chế tốt nhất cho tỉ lệ Ber thấp nhất cho tất cả các mô phỏng. Kỹ thuật điều chế 16 – PSK cho xác suất lỗi bit lớn nhất.
Vì nhiễu là ngẫu nhiên nên với cùng 1 giá trị bit tin thì có thể sẽ làm số bit lỗi sẽ khác dẫn đến xác xuất lỗi bit cũng sẽ khác.
Trong đồ thị hình trên ta thấy: Nếu tỉ số Eb/No càng tăng thì => xác xuất lỗi càng thấp.
Bài toán 3: Mô phỏng các kỹ thuật điều chế BPSK, QPSK,8PSK,16PSK theo lý thuyết. Chương trình mô phỏng được cho trong phụ lục 3.
Hình 2.5 Kết quả mô phỏng theo lý thuyết
Từ kết quả trên, ta thấy:
Kết quả mô phỏng sát với kết quả theo lý thuyết. Tuy nhiên còn có sự sai khác là do các bit tin đưa vào ban đầu là hàm ngẫu nhiên rời rạc nên dẫn đến kết quả BER cũng có sự sai khác so với lý thuyết.
2.2.2. Đánh giá chất lượng hệ thống
Eb là năng lượng 1bit, bằng tích công suất tín hiệu S với độ rộng thời gian 1bit(Tb).
Eb=S.Tb [dB] (2.8)
N0 là mật độ phổ công suất một phía của tạp âm AWGN. Hay là mật độ phổ công suất nhiễu: N0= Công suất nhiễu(N)/Băng thông(W), hay:
(2.9)
Eb/N0 Là một phiên bản chuẩn hóa của SNR.
Trong hệ thống analog. Tín hiệu liên tục theo thời gian và có năng lượng không xác định (không xác định được tín hiệu trong một khoảng thời gian nào đấy). Tuy nhiên công suất lại xác định. Vì vậy, ta đánh giá theo công suất( SNR) chứ không đánh giá theo năng lượng(Eb/N0).
Trong hệ thống digital, tín hiệu được xác định trong một khoảng thời gian, 1bit, 1symbol, 1window trong khoảng thời gian này công suất không có mấy giá trị. Vì vậy, ta phải dùng năng lượng để đánh giá(Eb/N0).
Hiệu quả phổ của điều chế nhiều mức tăng, nên ta có thế tăng tốc độ bit lối vào cùng một độ rộng băng được cấp phát(quy định sẵn do nhà cung cấp). Đầu vào, tốc độ bit tăng lên k lần, nghĩa là độ rộng 1 bit sẽ giảm đi k lần, khi đó k bit symbol sẽ chỉ có độ rộng bằng Tb_cũ, tốc độ bit R_mới=k.R_cũ. Bề rộng phổ chiếm lại như bề rộng phổ chiếm cũ W_mới=1/Tb_cũ=W_cũ. Dẫn đến, tăng hiệu quả sử dụng phổ, được đánh giá bởi công thức nhê – ta =R[b/s]/W[Hz], là hiệu quả phổ 1Hz ta truyền được tốc độ bao nhiêu bit/s.
Khi ghép kbit tin thành 1symbol, thì W=1/k.Tb. Hệ số nhê – ta =
Dẫn đến truyền được một tốc độ bit lớn hơn trên cùng một độ rộng băng thông cho trước.
Mặt khác,1bit có độ rộng thời gian là Tb, khi ghép kbit=1symbol thì Ts=kTb. Tốc độ symbol lúc này sẽ là Rs=1/Ts [bau].
Khi đó: Tốc độ bit Rb=k.bit/Ts=(k.bit)/(k.Tb)=1/Tb (b/s) →Tốc độ bit truyền trên băng thông không thay đổi.
Vậy, tăng số mức điều chế →Eb/N0 (tại lỗi BER quy định cho một hệ thống )→ tăng hiệu quả sử dụng phổ(giảm băng thông) đạt với độ rộng băng thông cho trước B[Hz].
Dung lượng(C) kênh là tốc độ bit tối đa mà hệ thống có thể truyền được với xác suất lỗi tiến về 0. Được thể hiện bởi định lý Shannon.
C=Blog2(1+S/N) [b/s] (2.10)
Trong đó:
C: Dung lượng kênh [b/s]
B: Băng thông [Hz]
S: Công suất tín hiệu [W]
N:Công suất nhiễu[W]
Vậy có thể kết luận rằng đối với hệ thống khi đạt tới ngưỡng dung lượng, thì giá trị BER không thay đổi kể cả khi tăng công suất phát đó gọi là giới hạn Shannon.
Nhận xét:
Phương pháp BBSK cho tỉ lệ lỗi bit nhỏ nhất, phương pháp 16-PSK có tỉ lệ lỗi bit lớn nhất.
Khi tăng Eb/N0 ở mỗi phương pháp điều chế, ta đều thấy tỉ lệ lỗi bit (BER) giảm và giảm dần đến một giá trị, như vậy tỉ lệ lỗi bit BER càng chính xác khi tăng năng lượng mỗi bit.
Khi số mức điều chế tăng, thì khoảng cách Hamming giữa các symbol giảm, dẫn đến tỉ lệ lỗi bit tăng.
Như vậy hiệu quả của việc mã hóa đã phát hiện và sửa được lỗi.
KẾT LUẬN
Sau khoảng thời gian nghiên cứu, tìm hiểu trong đồ án viễn thông, về đề tài “Mô phỏng, đánh giá chất lượng hệ thống truyền tin số sử dụng mã Hamming với các phương thức điều chế khác nhau” đã được hoàn thành.
Kết quả đạt được:
Xét cùng một giá trị của Eb/No(dB) thì bản tin được mã hóa bằng mã Hamming (7,4) có xác suất lỗi bit sẽ thấp hơn so với bản tin không mã hóa.
Khi truyền tin theo kênh liên lạc có nhiễu, thì có một phần lượng thông tin sẽ bị mất mát trên kênh, vì thế trong số liệu thu về sẽ phát sinh lỗi. Nếu số lượng lỗi như thế có giá trị nhỏ, hoặc chúng phát sinh với tần số cho phép, thì sử dụng kĩ thuật mã hóa mã Hamming để chống nhiễu.
Hạn chế:
Trong mã Hamming M(7,4), trên quá trình mã hóa và giải mã vẫn đang còn một số bit bị lỗi, vì trong bài toán này, vector sửa lỗi E đã cho chỉ có thể sửa được một lỗi, từ hai lỗi bit trở lên thì sẽ không sửa được (xét trong một khung 4 bit).
Trong thực tế bao giờ cũng tồn tại xác xuất lỗi không phát hiện được, không có loại mã nào là hoàn thiện tất cả mà chỉ ở mức tương đối chấp nhận được.
Việc nghiên cứu giúp em hiểu thêm nhiều kiến thức về kỹ thuật mã hóa và giải mã các bit thông tin, xử lý bài toán cho trường hợp cụ thể trên cộng cụ là phần mềm Matlab một cách sinh động.
Mặc dù đã cố gắng hết sức vào việc thực hiện đồ án nhưng không thể không có những sai sót trong quá trình thực hiện em xin được nhận những lời góp ý và bổ sung cho bản đồ án được hoàn thiện hơn.
Em xin chân thành cảm ơn !
Phụ lục 1
Bài toán 1: Cho N=720000 bít truyền trên các kênh AWGN, sử dụng mã Hamming (7,4). Đánh giá chất lượng hệ thống khi lần lượt thay đổi các phương thức điều chế là BPSK, Q-PSK, 8-PSK, 16-PSK.
%===================================================
clear all
close all
clc;
N=input('Nhap vao so bit N chia het cho 3(8psk,24000)=');
SNR = 0:1:10;
tinphat=randint(1,N);
G=[ 1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1];
H=[ 1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1];
E=[ 0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 1 0 0
1 0 0 0 0 0 0
0 0 0 0 0 0 1
0 0 0 1 0 0 0
0 0 0 0 0 1 0];
B=reshape(tinphat,4,[])';
x1=mod(B*G,2);
dieuche=pskmod(x1,2);
for i = 1:length(SNR)
Y = real(dieuche);
awgnbits = awgn(Y,SNR(i)+0.5);
Giai_dieuche=pskdemod(awgnbits,2);
s=mod(Giai_dieuche*H',2);
v=bi2de(s,'left-msb');
y1=mod(Giai_dieuche+E(v+1,:),2);
y2=y1(:,4:7);
c=reshape(y2',1,[]);
loi=sum(mod(tinphat+c,2))
error1(1,i)=loi;
BER1(1,i)=error1(1,i)/N;
end
%=======================================================
t=reshape(x1',1,[]);
h=reshape(t,3,[])';
h1=bi2de(h,'left-msb');
dieu_che=pskmod(h1,8);
for i=1:length(SNR)
nhieu= awgn(dieu_che,SNR(i)+6);
sau_dieuche=pskdemod(nhieu,8);
ybit=dec2bin(sau_dieuche);
for ii=1:3
bit_thu(:,ii)=str2num(ybit(:,ii));
end
t2=reshape(bit_thu',1,[]);
h2=reshape(t2,7,[])';
s1=mod(h2*H',2);
v2=bi2de(s1,'left-msb');
sua_loi=mod(h2+E(v2+1,:),2);
tach_tin=sua_loi(:,4:7);
tu_mathu=reshape(tach_tin',1,[]);
loi2=sum(mod(tinphat+tu_mathu,2))
error2(1,i)=loi2;
BER2(1,i)=error2(1,i)/N;
end
%=======================================================
t=reshape(x1',1,[]);
h=reshape(t,4,[])';
h1=bi2de(h,'left-msb');
dieu_che=pskmod(h1,16);
for i=1:length(SNR)
nhieu= awgn(dieu_che,SNR(i)+8);
sau_dieuche=pskdemod(nhieu,16);
ybit=dec2bin(sau_dieuche);
for ii=1:4
bit_thu2(:,ii)=str2num(ybit(:,ii));
end
t2=reshape(bit_thu2',1,[]);
h2=reshape(t2,7,[])';
s1=mod(h2*H',2);
v2=bi2de(s1,'left-msb');
sua_loi=mod(h2+E(v2+1,:),2);
tach_tin=sua_loi(:,4:7);
tu_mathu=reshape(tach_tin',1,[]);
loi2=sum(mod(tinphat+tu_mathu,2))
error2(1,i)=loi2;
BER3(1,i)=error2(1,i)/N;
end
%=======================================================
semilogy(SNR,BER1,':ko',SNR,BER1,'b-',SNR, BER2,':r*',SNR, BER3,'g')
title('do thi');
xlabel('Eb/No(dB)')
ylabel('BER')
legend('BPSK-HAMMING','QPSK-HAMMING','8PSK-HAMMING','16PSK-HAMMING')
grid on
Phụ lục 2
Bài toán 2: Cho N=720000 bít truyền trên các kênh AWGN, không sử dụng mã Hamming (7,4). Đánh giá chất lượng hệ thống khi lần lượt thay đổi các phương thức điều chế là BPSK, Q-PSK, 8-PSK, 16-PSK.
%=====================================================
clear all
close all
clc
N=input('Nhap vao so bit N bit=');
tinphat=randint(1,N);
%==========================================
EbN0=0:1:10;
x=pskmod(tinphat,2);
for j=1:length(EbN0)
Y=real(x);
y=awgn(Y,EbN0(j)+3,'measured');
y=pskdemod(y,2);
nerr=symerr(tinphat,y);
ber2(j)=nerr/N;
end
%==========================================
h=reshape(tinphat,3,[])';
h1=bi2de(h,'left-msb');
x=pskmod(h1,8);
for j=1:length(EbN0)
y=awgn(x,EbN0(j)+6,'measured');
y=pskdemod(y,8);
ybit=dec2bin(y);
for ii=1:3
bit_thu(:,ii)=str2num(ybit(:,ii));
end
t2=reshape(bit_thu',1,[]);
nerr=symerr(tinphat,t2);
ber8(j)=nerr/N;
end
%==========================================
h=reshape(tinphat,4,[])';
h1=bi2de(h,'left-msb');
x=pskmod(h1,16);
for j=1:length(EbN0)
y=awgn(x,EbN0(j)+8,'measured');
y=pskdemod(y,16);
ybit=dec2bin(y);
for ii=1:4
bit_thu16(:,ii)=str2num(ybit(:,ii));
end
t2=reshape(bit_thu16',1,[]);
nerr=symerr(tinphat,t2);
ber16(j)=nerr/N;
end
semilogy(EbN0,ber2,':ko',EbN0,ber2,'b-',EbN0,ber8,':r*',EbN0,ber16,'g')
title('do thi');
xlabel('Eb/No(dB)')
ylabel('BER')
legend('BER BPSK','BER QPSK','BER 8-PSK','BER 16-PSK')
grid on
Phụ lục 3
clear all;
clc;
EbNo=0:1:10;
for i=1:length(EbNo)
BERtheory2(i) = berawgn(EbNo(i),'psk',2,'nondiff')
BERtheory4(i) = berawgn(EbNo(i),'psk',4,'nondiff')
BERtheory8(i) = berawgn(EbNo(i),'psk',8,'nondiff');
BERtheory16(i) = berawgn(EbNo(i),'psk',16,'nondiff');
end
%=======================================================
semilogy(EbNo,BERtheory2,':ko',EbNo,BERtheory4,'b-',EbNo,BERtheory8,':r*',EbNo,BERtheory16,'g')
title('do thi'); grid on;
xlabel('Eb/No(dB)')
ylabel('BER')
legend('BPSK ly thuyet','QPSK ly thuyet','8-PSK ly thuyet','16-PSK ly thuyet')
TÀI LIỆU THAM KHẢO
Cơ sở lý thuyết truyền tin – Nguyễn Văn Hậu – Nguyễn Hiếu Minh.NXB Khoa học và kỹ thuật.
Kỹ thuật thông tin số. Khoa Điện tử truyền thông – Trường đại học Vinh
MỤC LỤC
Các file đính kèm theo tài liệu này:
- da525_907.doc