Tải bản đầy đủ (.docx) (8 trang)

Báo cáo thí nghiệm Truyền số liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (104.69 KB, 8 trang )

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



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



Giáo viên hướng dẫn : Mạc Như Minh
Sinh viên thực hiện :
1.Lê Phương Hiền 10DT2
2. Nguyễn Đức Huyên 10DT2
3. Hoàng Phan Anh Quân 10DT2
4. Phan Hữu Thập 10DT2
5.Thái Hoàng Tuấn 10DT2
6. Phạm Văn Lễ 10DT2
NhJm : 39B
I. Mục đích:
- Để tìm hiểu làm thế nào để mô phỏng được một hệ thống thông tin số trong sự hiện diện
của nhiễu.
- Để thấy mối quan hệ giữa tỷ số tín hiệu trên nhiễu(SNR) và xác suất của lỗi(BER).
- Để xem cách kiểm soát lỗi để cJ thể mã hJa sửa đúng bit lỗi và giảm xác suất của lỗi tại
một SNR cố định.
II. Trình tự thực hiện :
- Với các giá trị của N=[20 1000 10000 50000 100000 200000];
- Các giá trị của A=[0.5 1/sqrt(2) 1 sqrt(2) 2 2*sqrt(2) 4 4*sqrt(2)];
- Với ma trận sinh G: 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];
-Ma trận E: 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];
- Ma trận H: H =[1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1];
-H’ là ma trận chuyển vị của ma trận H
A: Tìm tỉ số tín hiệu trên nhiễu SNR và xác suất lỗi BER khi không cJ mã hJa Hamming:
Bước 1: Tạo tín hiệu nguồn ngẫu nhiên signal_x : x=randn(1,N)>0.5;
- Dùng hàm randn() để tạo chuỗi tín hiệu ngẫu nhiên.
- Tín hiệu ngẫu nhiên ở đây là những chuỗi bit 0,1.
Bước 2: tạo tín hiệu x1=2*x-1 để giữ nguyên bit 1 và chuyển bit 0 thành -1 của tín hiệu x.
Bước 3: tạo tín hiệu nhiễu e với chiều dài chuỗi bằng chiều dài tín hiệu x
Bước 4: tìm tỉ số tín hiệu trên nhiễu SNR
Với 8 giá trị của A ta tìm được 8 giá trị của SNR bằng công thức :
SNR= 20*log10(A(i))
Bước 5: Điều chế
- Đây là quá trình chuyển tín hiệu từ số sang tương tự (D/A)
Ở đây ta sẽ biến đổi chuỗi bit 1,-1 thành dạng tín hiệu +A,-A với A là biện độ tín hiệu
truyền. Sau đJ ta cộng kết quả thu được với nhiễu e ở bước 3 dựa vào công thức :
y=x1*A(i)+e
Bước 6: Demodulation (Giải điều chế):
- Đây là bước mà ở máy thu sẽ chuyển tín hiệu liên tục thu được thành tín hiều rời rạc.

- Chúng ta chọn ngưỡng giới hạn là 0. Nếu tín hiệu nào cJ biên độ > 0 thì cho là 1 còn <=
0 thì cho là 0 (tín hiệu signal_y_h).
Bước 7: Tính xác xuất lỗi BER và tỉ lệ tín hiệu trên nhiễu SNR:
- Xác xuất lỗi = số bits lỗi / chiều dài của bản tin
- Xác định số bits lỗi trong trường hợp truyền chưa mã hJa và đã mã hJa bằng cách so
sánh các bits nhận được với các bits ban đầu.
- Ví dụ: để xác định số bits lỗi của signal_y_h1 ta xor signal_y_h1 với signal_x. Thì
những bits nào khác nhau sẽ cho kết quả là 1 còn giống nhau = 0 , sau đJ ta cộng các bits
lại với nhau thì ta sẽ cJ được số bits bị lỗi.
- Tính tỉ lệ tín hiệu trên nhiễu SNR(dB) : SNR= 20*log(A);
B: Tìm tỉ số tín hiệu trên nhiễu SNR và xác suất lỗi BER khi cJ mã hJa Hamming:
Bước 1: Tạo tín hiệu nguồn ngẫu nhiên signal_x : x=randn(1,N)>0.5;
Bước 2 : Tạo tín hiệu mã hJa hamming:
Ma trân đầu vào x cJ độ dài N
- Để tạo tín hiệu vào mã hJa hamming signal_hm ta nhân tín hiệu signal_x với ma trân
sinh G,ta chuyển chuỗi bit đã cho thành dạng ma trận 4 cột n hàng bằng lệnh reshape,
x1=reshape(x,4,[])';
thực hiện phép nhân ma trận vào x với ma trận sinh G cho ra 1 ma trận 7 cột m hàng,
x2=mod(x1*G,2).
Tiếp tục dung lệnh reshape ta cJ chuỗi bit mới cJ độ dài là 7*n/4:
- Với mã Hamming(7,4) thì 4 bits tin sẽ được mà hJa thành 7 bits .
Bước 3: Điều chế
- Đây là quá trình chuyển tín hiệu từ số sang tương tự (D/A)
Ở đây ta sẽ biến đổi chuỗi bit 0,1 thành dạng tín hiệu +A,-A với A là biện độ sJng điều
chế.
Bước 4: Tạo tín hiệu nhiễu:
- Tạo chuỗi nhiễu cJ là vector cJ độ dài 7*N1/4
Bước 5: Demodulation (Giải điều chế):
- Đây là bước mà ở máy thu sẽ chuyển tín hiệu liên tục thu được thành tín hiều rời rạc.
- Chúng ta chọn ngưỡng giới hạn là 0. Nếu tín hiệu nào cJ biên độ > 0 thì cho là 1 còn <=

0 thì cho là 0 (tín hiệu signal_y_h).
Bước 6: Giải mã (Decoding):
- Từ tín hiệu signal_y_h ta giải mã thành tín hiệu bpsk_designald
Ta chia chuyển tín hiệu thu dc thành dạng ma trận cJ 7 cột n hàng
- Lấy ma trận trên nhân modulo 2 với ma trận chuyển vị H’của ma trận H =>ma trân cJ
dạng 3 cột N hàng 3 bits syndrome s.
- Chuyển từ ma trân 3 bits syndrome s ta chuyển từ nhị phân sang thập phân với trọng số
lớn nhất bên trái rồi cộng thêm 1 ta cJ đc hàng tương ứng trong vector E- => xác định
được bits lỗi trong ma trân E. Phải cộng 1 vì trong E thì hàng đầu tiên không cJ lỗi.
- Bits 1 tương ứng trong vecto E là vị trí mà bản tin bị lỗi.
- Để sửa lỗi ta lấy vecto E tương ứng với vị trí đã xác định cộng Modulo 2 với mỗi hàng
của ma trận bpsk_designald bị lỗi ban đầu.
- Cuối cùng ta lấy 4 cột 4:7 của ma trận và chuyển ma trận này thành chuỗi bit bằng
lệnh reshape
Sau khi mã hJa và giải mã với mã Hamming(7,4) thì vẫn còn một số bits lỗi là do:
- Trong bài thí nghiệm này với vecto E đã cho thì chỉ cJ thể sữa được lỗi sai 1 bits, từ 2
lỗi trở lên thì sẽ không sữa được.
- Việc sửa lỗi còn phụ thuộc vào khoảng cách Hamming tối thiểu d , nếu d càng lớn thì
=> khả năng sửa lỗi tối đa t=int((d-1)/2) tăng và khả năng phát hiện lỗi cũng tăng,khả
năng phát hiện và sửa lỗi sẽ tăng.Và bao giờ cũng tồn tại xác xuất lỗi không phát hiện
được => không cJ loại mã nào là hoàn thiện tất cả chỉ ở mức tương đối chấp nhận được .
Nên với mã (7,4) này cũng vậy thì sau khi giải mã thì vẫn còn tồn tại lỗi.
Bước 7: Tính xác xuất lỗi:
- Xác xuất lỗi = số bits lỗi / chiều dài của bản tin
- Xác định số bits lỗi trong trường hợp truyền chưa mã hJa và đã mã hJa bằng cách so
sánh các bits nhận được với các bits ban đầu.
- Ví dụ: để xác định số bits lỗi của signal_y_h1 ta xor signal_y_h1 với signal_x. Thì
những bits nào khác nhau sẽ cho kết quả là 1 còn giống nhau = 0 , sau đJ ta cộng các bits
lại với nhau thì ta sẽ cJ được số bits bị lỗi.
- Tính tỉ lệ tín hiệu trên nhiễu SNR(dB) : SNR= 20*log10(A);

Tính tỉ lệ bit lỗi BER_h
+cJ mã Hamming: BER_h(z,i)=(sum(xor(signal_y_h1,signal_x)))/n(z);
Bước 8: Vẽ kết quả:
- Vẽ đồ thị của xác xuất lỗi so với tỉ số SNR của tín hiệu lúc chưa mã hJa
- Vẽ đồ thị của xác xuất lỗi so với tỉ số SNR của tín hiệu lúc đã mã hJa bằng mã
Hamming (7,4)
- Vẽ đồ thị của xác xuất lỗi so với tỉ số SNR của tín hiệu ứng với N=200000
Signal:
clc;
close all;
H =[1 0 0 1 0 1 1;0 1 0 1 1 1 0;0 0 1 0 1 1 1];
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];
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];
A = [0.5 1/sqrt(2) 1 sqrt(2) 2 2*sqrt(2) 4 4*sqrt(2)];
%Tao chuoi tin hieu ban dau
N = input('Nhap so N = ') ;
x=randn(1,N)>0.5;
%Co ma hoa
%Ma hoa hamming
x1=reshape(x,4,[])';
x2=mod(x1*G,2);
x3=reshape(x2',1,[]);
for i=1:8
x4=(2*x3-1)*A(i);%Dieu che
x4=x4+randn(1,N*7/4);%Cong nhieu kenh truyen
x4=x4>0;%Giai dieu che
%Giai ma
x5=reshape(x4,7,[])';
s=mod(x5*H',2);

h=bi2de(s,'left-msb');
x6=mod(x5+E(h+1,:),2);
x7=x6(:,4:7);%Chi co 4 bit sau la bit tin
x8=reshape(x7',1,[]);%Tin hieu sau giai ma
BER(i)=sum(xor(x8,x))/N;%tinh BER
SNR(i)=20*log(A(i));%tinh SNR
end
% Khong co ma hoa
for k=1:8
y=(2*x-1)*A(k);% Dieu che
y1=y+randn(1,N);%Cong nhieu kenh truyen
y2=y1>0;%Giai dieu che
BER1(k)=sum(xor(y2,x))/N;%tinh BER
SNR1(k)=20*log(A(k));%tinh SNR
end
%Ve do thi co ma hoa va ko co ma hoa
semilogy(SNR,BER,'-bp',SNR1,BER1,':rp');
xlabel('SNR')
ylabel('BER')
legend('ma hoa','khong ma hoa');
title(3)
grid on

-nhận xét:
Xác suất lỗi bit ( BER ) phụ thuộc vào giá trị của biên độ điều chế A: với biên độ A 
càng lớn, xác suất lỗi bit càng thấp và ngược lại.vì khi tăng giá trị của A ,tức là tăng biên
độ xung truyền đi,lúc đJ trong 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 cJ
thể gây đảo dấu biên độ và khi giải điều chế sẽ cho ra bit cJ giá trị ngược lại so với giá
trị gốc.còn với A lớn thì nhiễu khJ làm đảo dấu biên độ hơn.

Xác suất lỗi bit ( BER ) không phụ thuộc vào chiều dài tín hiệu: vì với tín hiệu càng 
dài thì số bits lỗi càng nhiều nhưng tỉ lệ bit lỗi so với dòng dữ liệu sẽ không tăng
Khi cJ mã hJa Hamming xác suất lỗi bit thấp hơn nhiều so với khi chưa mã hJa. .vì 
khi sử dụng ma Hamming cJ thể phát hiện và sửa được lỗi 
Đồ thị mô phỏng cJ dạng gần giống với đồ thị theo lý thuyết.
N=10 000
-15 -10 -5 0 5 10 15 20 25 30
10
-4
10
-3
10
-2
10
-1
10
0
SNR
BER
3


ma hoa
khong ma hoa


×