1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thí nghiệm thông tin số và truyền số liệu

14 471 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 199,04 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo thí nghiệm thông tin số và truyền số liệu

Trang 1

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN TỬ – VIỄN THÔNG



BÁO CÁO THÍ NGHIỆM

THÔNG TIN SỐ & TRUYỀN SỐ LIỆU

GVHD: Nguyễn Thanh Sơn SVTH : Tổ 6

Nhóm : 09A+B

Đà Nẵng – 2009

Trang 2

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

SINH VIÊN THỰC HIỆN

Tổ 6

1 Đặng Thị Nguyên Thảo 06DT1 9B

2 Nguyễn Thị Bảo Trâm 06DT1 9B

3 Đặng Thanh Quang 06DT1 9A

4 Trần Phước Thịnh 06DT1 9B

5 Trương Thị Kim Ngà 06DT2 10A kimnga1988@gmail.com

6 Champakham Amphavanh 06DT1 10A

NỘI DUNG BÁO CÁO

1 File PDF Báo cáo Thí nghiệm Thông tin số và Truyền số liệu: BaocaoTN.pdf

2 File MATLAB: lab4.m

Trang 3

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

BÁO CÁO THÍ NGHIỆM THÔNG TIN SỐ VÀ TRUYỀN SỐ LIỆU

I Mục đích thí nghiệm:

Thí nghiệm nhằm tìm hiểu:

- Mô phỏng hoạt động của hệ thống thông tin số có nhiễu

- Mối quan hệ giữa tỉ số tín hiệu trên nhiễu SNR và xác suất lỗi

- Mã điều khiển sửa lỗi có thể sửa bit lỗi và giảm xác suất lỗi với SNR cố định

II Phần lý thuyết :

1 Sơ đồ khối của CD player :

2 Các nguồn nhiễu ảnh hưởng đến hệ thống :

Trong CD player thì nguồn nhiễu có thể xuất phát từ các nguồn gốc sau đây:

- Lỗi bit trên mặt đĩa (do bị trầy xước, lỗi sao chép, …)

- Lỗi do chuyển động nhiệt của các electron

- Lỗi lượng tử hóa

3 Mã khối Hamming (7,4):

3.1 Định nghĩa:

- Mã khối được đặc trưng bởi 2 số nguyên n và k, và một ma trận sinh hay đa thức sinh Từ mã n bit được tạo ra duy nhất từ k bit tin và (n-k) là số bit kiểm tra

- Mã khối (7,4) có nghĩa là có 4 bit tin, ký hiệu bởi vector m, được mã hoá thành 7-bit được ký hiệu bởi vector x, theo như bảng sau đây:

Vector tin m Từ mã x Vector tin m Từ mã x

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0

0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1

0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0

0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1

0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0

0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1

0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0

0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Với: x = m G (modulo 2)

3.2 Ma trận sinh G:

=

1 0 0 0 1 0 1

0 1 0 0 1 1 1

0 0 1 0 1 1 0

0 0 0 1 0 1 1

G

RECEIVER

DEST_CODED

ƒ DECODER DEST_DECODED

TRANSMITTER

SRC_CODED

D

D/A

CODER

Nhiễu

TX_CODED RX_CODED

Trang 4

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

3.3 Ma trận kiểm tra H:

=

1 1 1 0 1 0 0

0 1 1 1 0 1 0

1 1 0 1 0 0 1 H

3.4 Giải mã sửa lỗi:

- Sau khi vector từ mã đi qua một hệ thống có nhiễu thì vector nhận được sẽ là:

y = x + e (modulo 2)

- Bên thu sẽ giải mã để tái tạo lại các bit tin ban đầu Quá trình này sẽ tạo ra vector syndrome s để

xác định bit lỗi:

s = y H T (modulo 2)

Với H T là ma trận chuyển vị của ma trận H ở trên:

=

1 0 1

1 1 1

1 1 0

0 1 1

1 0 0

0 1 0

0 0 1

HT

- Bảng quan hệ giữa Syndrome và vị trí bit lỗi :

Syndrome Vị trí bit lỗi

- Giá trị thập phân của syndrome sẽ cho biết vị trí hàng trong ma trận E có chứa vị trí bit lỗi

tương ứng:

=

0 1 0 0 0 0 0

0 0 0 1 0 0 0

1 0 0 0 0 0 0

0 0 0 0 0 0 1

0 0 1 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

E

- Khi đó: y(corrected) = y + e (modulo 2) = x + e + e (modulo 2) = x

Trang 5

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

III Các bước tiến hành thí nghiệm :

1 Bước 1: Tạo dãy bit nguồn chưa mã hóa : SRC_Uncoded

- Dùng hàm ”randn” để tạo ra dãy số ngẫu nhiên

• Code: data = randn(1,bits);

Ý nghĩa: tạo ngẫu nhiên 1 dãy dữ liệu có bits giá trị

- Sử dụng hàm để tạo ra vector hàng SRC_Uncoded từ data, giả sử đây chính là một dãy bit của một đoạn nhạc được ghi trên CD hoặc là gửi đến một máy tính khác qua modem ”sign”

• Code: for i = 1:length(data)

SRC_Uncoded(i)=sign(data(i));

if (SRC_Uncoded(i)<0)

SRC_Uncoded(i)=0;

end

Ý nghĩa: SRC_Uncoded có độ dài bằng data, SRC_Uncoded sẽ có giá trị là 1 nếu giá trị

data tương ứng lớn hơn 0 và ngược lại thì SRC_Uncoded sẽ có giá trị 0

⇒ Như vậy, ta đã tạo ra được vector hàng SRC_Uncoded có chiều dài là bits

- Với (Avect=2;bits=10000;)ta có 20 giá trị đầu tiên của dãy SRC_Uncoded là :

1 0 1 1 1 1 0 1 1 1 0 1

1 0 0 1 1 1 1 0

2 Bước 2: Mã hoá dãy bit nguồn SRC_Uncoded thành dãy bit SRC_Coded

- Áp dụng mã Hamming đối với dãy bit SRC_Uncoded để tạo ra dãy bit SRC_Coded

- Đầu tiên nhóm các bit trong vector SRC_Uncoded thành các nhóm 4 bit Các nhóm 4 bit này sẽ được mã hóa thành các nhóm 7 bit theo qui luật mã hóa như sau: mỗi nhóm 4 bit được gọi là

một vector tin m, ta lấy vector tin m này nhân với ma trận sinh G để tạo ra vector mã hóa x có

độ dài 7 bit

• Code : SRC_Coded = zeros(1, 7/4*length(SRC_Uncoded));

j = 1;

for k = 1:4:length(SRC_Uncoded) SRC_Coded(j:j+6)=SRC_Uncoded(k:k+3)*G;

SRC_Coded(j:j+6)=mod(SRC_Coded(j:j+6),2);

end

• Ý nghĩa:

+ Đầu tiên ta khởi tạo dãy SRC_Coded độ dài 7/4 độ dài của dãy bit SRC_Coded + Nhóm từng 7 bit của SRC_Coded và gán cho nó giá trị là nhóm 4 bit tương ứng của SRC_Uncoded nhân với ma trận sinh G

+ Dùng hàm ”mod” cho 2 để chuyển các giá trị tính được thành bit 0 hoặc 1

- Kết quả sau khi mã hóa: trường hợp (Avect=2;bits=10000;)ta có 35 bit đầu tiên của dãy SRC_Coded đã được tạo ra từ 20 bit đầu của SRC_Uncoded là :

1 0 0 1 0 1 1 0 0 0 1 1 0 1

0 0 0 1 1 0 1 0 1 1 1 0 0 1

0 1 0 1 1 1 0

Kết quả này hoàn toàn phù hợp với bảng mã ở phần Lý thuyết đã đưa ra

- Trả lời câu hỏi:

Có giả thiết cho rằng như ở trên ta mã hoá từng nhóm 4 bit nên có thể là dòng dữ liệu này mô phỏng cho một hế thống nguồn chỉ tạo ra các nibbles dữ liệu (=4 bit) Tuy nhiên nếu dòng dữ liệu vào là byte (hay 2-byte word) thì vẫn không có sự khác biệt nào Vì khi mã hoá theo từng nibble như vậy, sau khi giải mã ta sẽ khôi phục lại được các nibble đó của dòng dữ liệu chỉ gồm byte hoặc

là từ 2-byte Do đó, dữ liệu vẫn được đảm bảo

Trang 6

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

3 Bước 3: Điều chế : TX_Uncoded và TX_Coded

- Tiếp theo ta điều chế tín hiệu TX_Uncoded và TX_Coded sử dụng phương pháp BPSK, binary

phase-shift keying

- Mục đích: chuyển dãy tín hiệu rời rạc thành tín hiệu liên tục để truyền đi

• Code : TX_Uncoded

for i = 1:length(SRC_Uncoded)

if SRC_Uncoded(i)== 1 TX_Uncoded(i)=+A;

TX_Uncoded(i)=-A;

for i = 1:length(SRC_Coded)

if SRC_Coded(i)== 1 TX_Coded(i)=+A;

TX_Coded(i)=-A;

• Ý nghĩa:

+ TX_Uncoded có độ dài bằng SRC_Uncoded và mỗi giá trị của TX_Uncoded tương ứng với SRC_Uncoded quy ước sau:

SRC_Uncoded = 0 → TX_Uncoded = -A SRC_Uncoded = 1 → TX_Uncoded = +A + Thực hiện tương tự, ta cũng có dãy TX_Coded từ dãy SRC_Coded

- Kết quả ứng với trường hợp (Avect=2;bits=10000;)20 giá trị đầu tiên của TX_Uncoded

đã tạo ra là :

2 -2 2 2 2 2 -2 2 2 2 -2 2

2 -2 -2 2 2 2 2 -2

4 Bước 4: Tạo nhiễu

- Sử dụng hàm ”randn” để tạo ra tín hiệu nhiễu ngẫu nhiên có chiều dài bằng chiều dài của dãy bit TX_Uncoded

• Code : noise = randn(1,length(TX_Uncoded));

• Ý nghĩa : tạo tín hiệu nhiễu với độ dài bằng độ dài TX_Uncoded

- Kết quả ứng với trường hợp (Avect=2;bits=10000;)20 giá trị đầu tiên của nhiễu đối với TX_Uncoded đã tạo ra là :

-0.3523 -0.0651 -2.0183 0.8706

0.8147 -0.9353 -0.1565 0.3706 2.1644 -0.4792 -0.4437 1.0424 0.3744 -0.4300 1.5192 -1.2724

- Kết quả ứng với trường hợp (Avect=2;bits=10000;)35 giá trị đầu tiên của nhiễu đối với TX_Coded là :

0.1356 0.1030 0.5155 0.8807 -0.4785 0.8674 1.6484

-0.4548 -1.5414 0.4495 -1.1081 0.9412 -2.0847 0.1513 0.4134 -1.9976 -1.1263 -0.7549 -0.1229 0.0754 -1.3739 -1.8075 -0.9063 0.8070 0.7001 1.1902 -0.5155 0.5092

Trang 7

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

- Sử dụng hàm ”hist” để vẽ biểu đồ nhiễu Biểu đồ này sẽ cho biết có bao nhiêu mẫu nhiễu xuất hiện trong một dải giá trị

• Code : if A_index == 1

figure;

hist(noise, 20)

Noise_histogram_values = hist(noise, 20);

title( 'Noise diagram' );

• Ý nghĩa : Xuất ra biểu đồ các mẫu nhiễu

- Tín hiệu thu được: cộng thêm nhiễu vào tín hiệu

• Code : RX_Coded = TX_Coded + noise;

RX_Uncoded = TX_Uncoded + noise;

- Kết quả ứng với trường hợp (Avect=2;bits=10000;)20 giá trị đầu tiên của RX_Uncoded

là :

1.6477 -2.0651 -0.0183 2.8706

0.0647 0.6659 -2.3318 1.8784 2.8147 1.0647 -2.1565 2.3706

4.1644 -2.4792 -2.4437 3.0424 2.3744 1.5700 3.5192 -3.2724

- Kết quả ứng với trường hợp (Avect=2;bits=10000;)20 giá trị đầu tiên của RX_Coded là :

2.1356 -1.8970 -1.4845 2.8807 -2.4785 2.8674 3.6484

-2.4548 -3.5414 -1.5505 0.8919 2.9412 -4.0847 2.1513

-1.5866 0.0024 0.8737 1.2451 -2.1229 -1.9246 0.6261

-3.8075 1.0937 -1.1930 2.7001 3.1902 1.4845 -1.4908

- So sánh RX_Uncoded và TX_Uncoded ở bước 3:

Từ kết quả trên ta thấy : RX_Uncoded = TX_Uncoded + Nhiễu

- Kết quả này cũng hoàn toàn tương tự cho RX_Coded và TX_Coded

5 Bước 5 : Giải điều chế để tạo dãy bit DEST_Uncoded và DEST_Coded

- Ở bước này, bên thu sẽ khôi phục tín hiệu tương tự trở lại thành các tín hiệu rời rạc thông qua

bộ chuyển đổi A/D gọi là bộ giải điều chế Tức là các bit dữ liệu từ tín hiệu RX nhận được chuyển đổi thành dãy tín hiệu DEST

- Sử dụng bộ detector có mức ngưỡng là 0V để khôi phục bit dữ liệu : Nếu RX>= 0 thì giải điều chế được DEST là bit 1, RX<0 giải điều chế được DEST là bit 0

- Tạo ra DEST_Uncoded từ RX_Uncoded :

• Code: for i = 1:length(RX_Uncoded)

DEST_Uncoded(i)=sign(RX_Uncoded(i));

if (DEST_Uncoded(i)<0)

DEST_Uncoded(i)=0;

end

- Tương tự, tạo ra DEST_Coded từ RX_Coded :

• Code: for i = 1:length(RX_Coded)

DEST_Coded(i)=sign(RX_Coded(i));

if (DEST_Coded(i)<0)

DEST_Coded(i)=0;

end

Trang 8

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

- Với (Avect=2;bits=10000;)ta có 20 giá trị đầu tiên của dãy DEST_Uncoded là :

1 0 0 1 1 1 0 1 1 1 0 1

1 0 0 1 1 1 1 0

- So sánh DEST_Uncoded với tín hiệu ban đầu SRC_Uncoded, nhiễu và nhận xét:

Ta thấy, trong 20 bit đầu tiên của DEST_Uncoded thì bit thứ 3 là khác so với dữ liệu nguồn SRC_Uncoded Mẫu nhiễu thứ 3 là nguyên nhân gây ra lỗi ở nơi thu Tại vị trí bit thứ 3, phát đi

là TX_Uncoded : 2 Do xuất hiện nhiễu âm lớn là : – 2.0183 nên tín hiệu thu trở thành 2 –

2.0183 = – 0.0183 Do đó, bit này ban đầu phải là 1, nhưng sau khi cộng nhiễu thì sẽ cho ra bit

0, do đó khi thu gây ra lỗi tại bit này

6 Bước 6: Giải mã tạo ra DEST_Decoded

- Đây là quá trình giải mã, ngược lại với bước 2 (mã hóa), tức là dãy bit nhận được sẽ được nhóm thành các nhóm 7 bit, để khôi phục lại 4 bit tin Tuy nhiên, để áp dụng được khả năng giải mã sửa lỗi của mã Hamming thì cần xác định được có lỗi bit xảy ra hay không bằng cách

sử dụng ma trận kiểm tra parity H Nếu có xuất hiện bit lỗi thì dùng syndrome mà nó tạo ra để xác định bit lỗi và sửa nó Như vậy, giai đoạn này sẽ làm nhiệm vụ sửa lỗi và khôi phục vector

tin tức

Code : j = 1;

for k = 1:7:length(DEST_Coded)

syndrome=mod(DEST_Coded(k:k+6)*HT,2);

synd_int = bin2dec(int2str(syndrome));

e = E(synd_int+1,:);

% to the received signal corrected_y = mod(DEST_Coded(k:k+6)+ e,2);

DEST_Decoded(j:j+3) = corrected_y(4:7);

• Ý nghĩa:

+ Đầu tiên nhóm từng 7 bit của DEST_Coded rồi tính syndrome bằng cách nhân từng nhóm 7 bit với ma trận HT (chuyển vị của ma trận kiểm tra H), sau đó lấy modulo 2

+ syn_int : số thập phân tương ứng với chuỗi bit triệu chứng syndrome vừa tìm được, trong đó: int2str(syndrome) : chuyển vector syndrom sang chuỗi nhị phân

bin2dec : chuyển chuỗi nhị phân sang số thập phân

→ khi đó, chỉ số (index) của vector lỗi tương ứng với triệu chứng syndrome là syn_int + 1 (vì chỉ số vector lỗi từ 1 đến 8, syn_int có giá trị từ 0 đến 7)

+ e : là vector lỗi cần tìm, được xác định bằng cách lấy vector hàng trong ma trận lỗi E, với chỉ số hàng là syn_int+1

+ corrected_y : vector 7 bit sau khi đã được sửa lỗi từ vector 7 bit (k → k+6) trích từ dòng bit chưa giải mã DEST_Coded

+ Cuối cùng là giải mã để được 4 bit tin trong dòng bit được giải mã DEST_Decoded bằng cách tách lấy 4 bit cuối của vector 7 bit corrected_y (bit 4 đến 7)

- Với (Avect=2;bits=10000;)ta có 20 giá trị đầu tiên của dãy DEST_Decoded là :

1 0 1 1 1 1 0 1 1 1 0 1

1 0 0 1 1 1 1 0

- So sánh với dòng bit nguồn SRC_Uncoded: 20 bit đầu của DEST_Decoded hoàn toàn trùng với 20 bit đầu của SRC_Uncoded ⇒ giải mã thành công

Trang 9

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

- Trả lời câu hỏi: Tại sao vẫn còn bit lỗi khi dùng mã khối Hamming (7,4) ?

Xét toàn bộ dòng bit trong trường hợp được mã hóa và giải mã thì kết quả nơi nhận có ít lỗi hơn so với khi không mã hóa Tuy nhiên, sau khi đã mã hóa và giải mã với mã khối Hamming (7,4) thì vẫn tồn tại 1 số lỗi nhất định Nguyên nhân là do đây là mã Hamming (7,4) nên nếu nhóm 7 bit có lỗi thì chỉ sửa được lỗi trong trường hợp xảy ra 1 bit lỗi Trường hợp có 2 bit lỗi trở lên thì bị trùng triệu chứng với trường hợp xảy ra 1 bit lỗi nào đó hoặc trùng triệu chứng không có lỗi nên sẽ không thể sửa lỗi được

7 Bước 7: Tính xác suất lỗi

- Gọi pr_error_un, pr_error_en lần lượt là vector xác suất lỗi trong trường hợp không mã

hóa, mã hóa

- Trong đó, mỗi phần tử trong pr_error_un, pr_error_en là xác suất lỗi tương ứng với các giá trị của biên độ tín hiệu truyền đi A trong vector biên độ tín hiệu Avect Vậy, pr_error_un, pr_error_en có độ dài bằng độ dài vector Avect

- Gọi uncoded_errors, coded_errors lần lượt là tổng số lỗi của dòng bit thu trong trường hợp

không mã hóa, mã hóa trong mỗi trường hợp biên độ A

- Cơ sở và mã code tính uncoded_errors và coded_errors :

+ Tính uncoded_errors:

 Ta xor 2 vector SRC_Uncoded và DEST_Uncoded bằng cách cộng 2 vector với nhau sau đó lấy modulo 2, kết quả là 1 vector có bit là 1 tại vị trí SRC_Uncoded và DEST_Uncoded có bit khác nhau, và ngược lại

 Sau đó ta tính tổng các giá trị trong vector tổng modulo 2 đó, giá trị thu được chính là

số lỗi bit

+ Tính coded_errors:

 Ta cũng làm tương tự như tính uncoded_errors cho 2 dòng bit SRC_Coded và DEST_Coded để thu được coded_errors

• Code:

uncoded_errors = sum(mod(SRC_Uncoded+DEST_Uncoded,2));

coded_errors = sum(mod(SRC_Uncoded+DEST_Decoded,2));

- Cơ sở và mã code tính pr_error_un và pr_error_en :

+ Với mỗi trường hợp của biên độ A, ta thêm 1 phần tử xác suất lỗi vào 2 vector trên

+ Đối với vector pr_error_un :

 Với mỗi giá trị A, ta thêm 1 phần tử xác suất lỗi có giá trị là

) data ( length

rors uncoded_er

vào cuối vector pr_error_un đã có sẵn

+ Đối với vector pr_error_en :

 Với mỗi giá trị A, ta thêm 1 phần tử xác suất lỗi có giá trị là

) data ( length

rs coded_erro

vào cuối vector pr_error_un đã có sẵn

• Code:

pr_error_un=[pr_error_un, uncoded_errors/length(data)]; pr_error_en=[pr_error_en, coded_errors/length(data)];

- Tính SNR:

+ SNR là vector tỉ số tín hiệu trên nhiễu, ứng với mỗi giá trị của A, ta thêm 1 phần tử có giá trị 10lg (A^2/2) vào cuối vector SNR đã có sẵn

• Code: SNR=[SNR,10*log10(A^2/2)];

Trang 10

Báo cáo Thí nghiệm Thông tin số & Truyền số liệu

- Với (Avect=2;bits=10000;)giá trị của SNR, uncoded_errors và coded_errors là :

A = 2.000, SNR = 3.01 dB

Uncoded Errors = 232, Coded Errors = 41

- Với (Avect=1;bits=10000;)giá trị của SNR, uncoded_errors và coded_errors là :

A = 1.0000, SNR = -3.01 dB

Uncoded Errors = 1592, Coded Errors = 1354

- Với (Avect=2;bits=200000;)giá trị của SNR, uncoded_errors và coded_errors là :

A = 2.0000, SNR = 3.01 dB

Uncoded Errors = 4481, Coded Errors = 872

- Với (Avect=sqrt(2);bits=200000;)giá trị của SNR, uncoded_errors và coded_errors

là :

A = 1.4142, SNR = 0.00 dB

Uncoded Errors = 16024, Coded Errors = 8933

- So sánh và nhận xét hiệu quả của việc mã hóa:

+ Lỗi sinh ra khi không mã hóa lớn hơn so với khi mã hóa

+ Như vậy hiệu quả của việc mã hóa là nhằm giảm bit lỗi trong quá trình truyền tín hiệu do những tác động bởi nhiễu

8 Bước 8: Lặp lại thí nghiệm với các giá trị khác nhau của A và đưa ra các nhận xét, kết luận:

- Cụ thể ở đây ta làm thí nghiệm với các giá trị của A là:

Avect=[0.5,1/sqrt(2),1,sqrt(2),2,2*sqrt(2),4];

- Lần lượt thực hiện với bits = 10000 và bits = 200000

- Trả lời câu hỏi:

a) Giá trị của kết quả không những phụ thuộc vào giá trị của A mà ta chọn mà còn phụ

thuộc vào chiều dài của dòng dữ liệu Cụ thể là:

 Kết quả cho thấy, với cùng chiều dài dòng dữ liệu thì xác suất lỗi sẽ giảm khi A tăng lên Bởi vì khi tăng giá trị của A, tức là tăng biên độ xung truyền đi, lúc đó qua quá trình truyền nhiễu cộng vào sẽ không ảnh hưởng nhiều đến giá trị biên độ so với khi giá trị A bé; nghĩa là với giá trị A bé thì nhiễu cộng vào có thể gây đảo dấu biên độ, và khi giải

điều chế, tại đó sẽ cho ra bit có giá trị ngược lại so với giá trị gốc, còn với A lớn thì nhiễu khó làm đảo dấu biên độ hơn

 Xét 2 trường hợp độ dài bit là 10000 và 200000, xác suất lỗi trong trường hợp bits =

200000 nhỏ hơn trường hợp bits=10000 Vì nhiễu trên đường truyền gây ra một số lỗi đối với dòng dữ liệu được truyền đi, mà nhiễu thường không kéo dài và những ảnh hưởng lớn thì chỉ tác động ở vài thời điểm Chính vì vậy, với dòng bit càng dài thì tuy tổng số lỗi sẽ nhiều lên, nhưng tỉ lệ lỗi so với độ dài dòng dữ liệu càng bé nên xác suất gây lỗi sẽ bé

b) Mô phỏng với các thông số không sinh ra lỗi thì vô ích:

 Vì thực tế, tín hiệu khi truyền qua bất kì hệ thống nào cũng có lỗi do nhiễu tác động Do

đó, việc mô phỏng thực chất là để xem xét giải pháp nào truyền thông tin là tốt nhất, có xác suất lỗi ít nhất, nên một mô phỏng cho xác suất lỗi là 0 thì không thể nói lên được phương pháp truyền thông tin đó là tốt hay xấu vì điều này hoàn toàn không có trong thực

tế

 Theo đồ thị trong 2 trường hợp bits = 10000 và bits = 200000, ta thấy xác suất lỗi trong trường hợp bits = 10000 là trong khoảng 10-4 đến 10-3 (lớn hơn 10-4 ), còn xác suất lỗi trong trường hợp bits = 200000 là trong khoảng 10-5 đến 10-4 ( lớn hơn 10-5 )

⇒ Kết quả này hợp lý với những phân tích trên

c) Độ dài của dòng dữ liệu để mô phỏng được xác suất lỗi là 10-7

 Dựa vào 2 trường hợp chọn độ dài dòng dữ liệu (bits) ở trên, ta có thể ước tính độ dài dòng bit để mô phỏng xác suất lỗi 10-7 là 100.000.000 Lúc đó xác suất lỗi khoảng 10-8

đến 10-7

Ngày đăng: 05/05/2016, 22:17

TỪ KHÓA LIÊN QUAN

w