Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

CHUYÊN ĐỀ 2: MÃ ĐƯỜNG TRUYỀN (LINE CODE)

2.1. THỜI GIAN.


Hướ ng dẫ n đầ u giờ : 0,5 giờ Thí nghiệm: 2,5 giờ
2.2. MỤC ĐÍCH, YÊU CẦU;
Giú p sinh viên
- Hiểu đượ c mã đườ ng truyền.
- Biết cá ch tạ o ra mộ t mô hình mô phỏ ng mã đườ ng sử dụ ng
Matlab/Simulink
- Phâ n tích và kiểm nghiệm lý thuyết dự a trên các mô hình đã tạ o ra.
2.3 CƠ SỞ LÝ THUYẾT
Tín hiệu số nguyên gố c khô ng phù hợ p truyền trên cá c loạ i đườ ng
truyền. Để tă ng hiệu quả truyền tín hiệu và giú p má y thu dễ dà ng thu nhậ n
đượ c, ngườ i ta chuyển tín hiệu số gố c dướ i dạ ng cá c mã gọ i là mã đườ ng (line
code). Mã đườ ng phả i thỏ a mã n cá c điều kiện chính sau:
- Trướ c hết, má y thu phả i định thờ i đượ c từ ng bit, má y thu phả i biết
đượ c thờ i điểm bắ t đầ u và kết thú c mộ t bit vớ i độ chính xác nhấ t định.
- Thứ hai, má y thu phả i xá c định đượ c mứ c tín hiệu cả u từ ng bit là cao
(0) hay thấ p (1).
Hình 3.1 minh họ a mộ t số loạ i mã đườ ng phổ biến. Để đá nh giá cá c
phương á n mã đườ ng ta dự a và o cá c tiêu chí cơ bả n sau:
1. Thà nh phầ n mộ t chiều (DC): đố i vớ i cá c đườ ng truyền kết nố i xoay
chiều (AC) như dù ng tụ điện, biến á p …nếu trong thà nh phầ n củ a mã
đườ ng có chứ a DC thì thà nh phầ n nà y sẽ bị chặ n lạ i gâ y méo tín hiệu
thu. Hơn nữ a, nếu truyền qua đườ ng truyền kim loạ i, thà nh phầ n DC
sẽ là m nó ng dâ y khiến cho suy sao tă ng lên.
2. Bă ng thô ng: bă ng thô ng củ a mã đườ ng cà ng nhỏ cà ng tố t nhằ m tiết
kiệm tà i nguyên tầ n số .
3. Khả dễ dà ng khô i phụ c tín hiệu đồ ng hồ : Mộ t ưu điểm nổ i bậ t củ a
thô ng tin số so vớ i thô ng tin tương tự là khả nă ng khô i phụ c tín hiệu
1/20 Trang
tạ i cá c trạ m lặ p trên đườ ng truyền, là m cho chấ t lượ ng tín hiệu số
khô ng bị suy giả m theo khoả ng cách. Hai cô ng việc chính củ a trạ m lặ p
là khuếch đạ i biên độ củ a tín hiệu và khô i phụ c tín hiệu đồ ng hồ ở tạ i
tố c độ bit giú p tá i tạ o lạ i chính xá c tín hiệu.
4. Khả nă ng tự hiện lỗ i: ở đây đượ c hiểu khả nă ng tự phá t hiện lỗ i là că n
cứ và o quy luậ t mã hó a để phá t hiện lỗ i chứ khô ng phả i phả i đưa
thêm độ dư và o mã .
5. Đơn giả n trong việc thự c hiện mã hó a và giả i mã .

Hình 2.1: Minh họa một số loại mã đường phổ biến

2/20 Trang
2.4. THÍ NGHIỆM
Bước 1: Tạo giao diện bài thí nghiệm:

Hình 2.2: Giao diện trên Guide

Hình 2.3: Giao diện chương trình vẽ phổ tín hiệu

3/20 Trang
Bước 2: Nạp mã nguồn mô phỏng các mã:
- Nhậ p code cho nú t bấ m “Chọ n chuỗ i bít và o”
a=round(rand(1,1));
b=round(rand(1,1));
c=round(rand(1,1));
d=round(rand(1,1));
e=round(rand(1,1));
f=round(rand(1,1));
g=round(rand(1,1));
h=round(rand(1,1));
i0=round(rand(1,1));
j0=round(rand(1,1));
ran=[a,b,c,d,e,f,g,h,i0,j0];
set(handles.uno,'String',ran(1));
set(handles.dos,'String',ran(2));
set(handles.tres,'String',ran(3));
set(handles.cuatro,'String',ran(4));
set(handles.cinco,'String',ran(5));
set(handles.seis,'String',ran(6));
set(handles.siete,'String',ran(7));
set(handles.ocho,'String',ran(8));
set(handles.nueve,'String',ran(9));
set(handles.diez,'String',ran(10));

%-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
handles.bits=[a,b,c,d,e,f,g,h,i0,j0];
cod=get(handles.select_code,'Value');
switch cod
case 1
hold off;
h=handles.bits;
n=1;
h(11)=1;
while n<=10;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
y=(t==n);
end
d=plot(t,y);title('Code UNIPOLAR NRZ');grid on
4/20 Trang
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
else
if h(n+1)==0
y=(t<n)-0*(t==n);
else
y=(t<n)+1*(t==n);
end
d=plot(t,y);title('Code UNIPOLAR NRZ');grid on;
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
end
n=n+1;
end
case 2
hold off;
h =handles.bits;
n=1;
h(11)=1;
while n<=10;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=-(t<n)-(t==n);
else
y=-(t<n)+(t==n);
end
d=plot(t,y);title('Code POLAR NRZ');grid on
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
else
if h(n+1)==0
y=(t<n)-1*(t==n);
else
y=(t<n)+1*(t==n);
end
d=plot(t,y);title('Code POLAR NRZ');grid on;
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
end
5/20 Trang
n=n+1;
end

case 3
hold off;
h =handles.bits;
n=1;
h(11)=1;
while n<=10;
t=n-1:0.001:n;
%Graficación de los CEROS (0)
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
y=(t==n);
end
d=plot(t,y);title('Code UNIPOLAR RZ');grid on
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
%Graficación de los UNOS (1)
else
if h(n+1)==0
y=(t<n-0.5);
else
y=(t<n-0.5)+1*(t==n);
end
d=plot(t,y);title('Code UNIPOLAR RZ');grid on;
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
end
n=n+1;

end

case 4
hold off;
h =handles.bits;
n=1;
h(11)=1;
while n<=10;
t=n-1:0.001:n;
6/20 Trang
if h(n) == 0
if h(n+1)==0
y=-(t<n-0.5)-(t==n);
else
y=-(t<n-0.5)+(t==n);
end
d=plot(t,y);title('Code BIPOLAR RZ');grid on
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
else
if h(n+1)==0
y=(t<n-0.5)-1*(t==n);
else
y=(t<n-0.5)+1*(t==n);
end
d=plot(t,y);title('Code BIPOLAR RZ');grid on;
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
end
n=n+1;
end

case 5
hold off;
h =handles.bits;
n=1;
h(11)=1;
ami=-1;
while n<=10;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
if ami==1
y=-(t==n);
else
y=(t==n);
end
end
d=plot(t,y);title('Code AMI NRZ');grid on
set(d,'LineWidth',2.5);
7/20 Trang
hold on;
axis([0 10 -1.5 1.5]);
else
ami=ami*-1;
if h(n+1)==0
if ami==1
y=(t<n);
else
y=-(t<n);
end
else
if ami==1
y=(t<n)-(t==n);
else
y=-(t<n)+(t==n);
end
end
d=plot(t,y);title('Code AMI NRZ');grid on;
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
end
n=n+1;
end

case 6
hold off;
h =handles.bits;
n=1;
h(11)=1;
ami=-1;
while n<=10;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
if ami==1
y=-(t==n);
else
y=(t==n);
end
end
d=plot(t,y);title('Code AMI RZ');grid on
8/20 Trang
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
else
ami=ami*-1;
if h(n+1)==0
if ami==1
y=(t<n-0.5);
else
y=-(t<n-0.5);
end
else
if ami==1
y=(t<n-0.5)-(t==n);
else
y=-(t<n-0.5)+(t==n);
end
end
d=plot(t,y);title('Code AMI RZ');grid on;
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
end
n=n+1;
end

case 7
hold off;
h =handles.bits;
h=~h;
n=1;
h(11)=1;
while n<=10;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=-(t<n)+2*(t<n-0.5)+1*(t==n);
else
y=-(t<n)+2*(t<n-0.5)-1*(t==n);
end
d=plot(t,y);title('Code MANCHESTER NRZ');grid on
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
9/20 Trang
else
if h(n+1)==0
y=(t<n)-2*(t<n-0.5)+1*(t==n);
else
y=(t<n)-2*(t<n-0.5)-1*(t==n);
end
d=plot(t,y);title('Code MANCHESTER RZ');grid on;
set(d,'LineWidth',2.5);
hold on;
axis([0 10 -1.5 1.5]);
end
n=n+1;
end

end
%*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

guidata(hObject, handles);
- Nhậ p code cho nú t bấ m “Phổ tín hiệu” để chuyển giao diện sang giao diện
hiển thị phổ tín hiệu. (Cá c bạ n chỉ cầ n gỗ tên giao diện và o trong lệnh củ a nú t
bấ m “Phổ tín hiệu”).
- Nhậ p code cho cá c nú t chọ n trong giao diện hiển thị phổ tín hiệu:
if (hObject==handles.Unipolar_NRZ)
hold off;
A=sqrt(2);
Tb=1.5;
R=1/Tb;
L=2*R;
f=0:L/50:L;
del=0;
P=(A.^2*Tb)/4*(sinc(f*Tb)).^2*(1+(1/Tb)*del);
g=plot(f,P);
title('ESPECTRAL DENSITY: UNIPOLAR NRZ');
hold on;xlabel('Frequency');ylabel('Normalized Power');
axis([0 L 0 1.1*Tb]);set(g,'LineWidth',2.5);
stem(0,(A.^2*Tb)/2,'LineWidth',2.5);hold off;
axis([0 L 0 1.09*Tb]);set(g,'LineWidth',2.5);
set(gca,'XTickMode','manual','XTick',[R,2*R]);grid on;
set(gca,'YTickMode','manual','YTick',[0.5*Tb,Tb]);
set(gca,'XTickLabel',{'R =';'2R'})
set(gca,'YTickLabel',{'0.5*Tb';'Tb'})

10/20 Trang
elseif(hObject==handles.Polar_NRZ)
hold off;
A=1;
Tb=1.5;
R=1/Tb;
L=2*R;
f=0:L/50:L;
del=0;
P=(A.^2*Tb)*(sinc(f*Tb)).^2;
g=plot(f,P);hold on;xlabel('Frequency');ylabel('Normalized Power');
title('ESPECTRAL DENSITY: POLAR NRZ')
axis([0 L 0 1.01*Tb]);set(g,'LineWidth',2.5);
set(gca,'XTickMode','manual','XTick',[R,2*R]);grid on;
set(gca,'YTickMode','manual','YTick',[0.5*Tb,Tb]);
set(gca,'XTickLabel',{['R'];['2R']})
set(gca,'YTickLabel',{['0.5*Tb'];['Tb']})

elseif(hObject==handles.Unipolar_RZ)
hold off;
A=2;
Tb=1;
R=1/Tb;
L=2*R;
f=0:L/50:L;
del=0;
P=(A.^2*Tb)/16*(sinc(f*Tb/2)).^2;
g=plot(f,P);
title('ESPECTRAL DENSITY: UNIPOLAR NRZ');
hold on;xlabel('Frequency');ylabel('Normalized Power');
axis([0 L 0 1.1*Tb]);set(g,'LineWidth',2.5);
stem([0 R],[(A.^2*Tb)/8 P(26)+0.1],'LineWidth',2.5);hold off;
set(gca,'XTickMode','manual','XTick',[R,2*R]);grid on;
set(gca,'YTickMode','manual','YTick',[0.5*Tb,Tb]);
set(gca,'XTickLabel',{['R'];['2R']})
set(gca,'YTickLabel',{['0.5*Tb'];['Tb']})

elseif(hObject==handles.Bipolar_RZ)
hold off;
A=2;
Tb=1.5;
R=1/Tb;
L=2*R;
f=0:L/50:L;
P=(A.^2*Tb)/8*(sinc(f*Tb/2)).^2.*(1-cos(2*pi*f*Tb));
11/20 Trang
g=plot(f,P);
title('ESPECTRAL DENSITY: BIPOLAR RZ');
hold on;xlabel('Frequency');ylabel('Normalized Power');
axis([0 L 0 1.1*Tb]);set(g,'LineWidth',2.5);
set(gca,'XTickMode','manual','XTick',[R,2*R]);grid on;
set(gca,'YTickMode','manual','YTick',[0.5*Tb,Tb]);
set(gca,'XTickLabel',{['R'];['2R']})
set(gca,'YTickLabel',{['0.5*Tb'];['Tb']})

else
hold off;
A=1;
Tb=1.5;
R=1/Tb;
L=2*R;
f=0:L/50:L;
P=(A.^2*Tb)*(sinc(f*Tb/2)).^2.*(sin(pi*f*Tb/2)).^2;
g=plot(f,P);
title('ESPECTRAL DENSITY: MANCHESTER NRZ');
hold on;xlabel('Frequency');ylabel('Normalized Power');
axis([0 L 0 1.1*Tb]);set(g,'LineWidth',2.5);
set(gca,'XTickMode','manual','XTick',[R,2*R]);grid on;
set(gca,'YTickMode','manual','YTick',[0.5*Tb,Tb]);
set(gca,'XTickLabel',{['R'];['2R']})
set(gca,'YTickLabel',{['0.5*Tb'];['Tb']})

end
(Chú ý các nút chọn khác các bạn nhập code tương tự)

12/20 Trang
Bước 3: Phân tích kết quả thí nghiệm:
- Hiển thị dạng tín hiệu:

Hình 2.4: Tín hiệu NRZ

13/20 Trang
Hình 2.5: Phổ tín hiệu NRZ

2.5. BÀI TẬP


Phân tích các loại mã đường truyền dựa trên các tiêu chí cơ bản và ứng dụng
của chúng trong thực tế

2.6. BÁO CÁO TỔNG KẾT

14/20 Trang

You might also like