bÁo cÁo thÍ nghiỆm tts &
TRANSCRIPT
BÁO CÁO THÍ NGHIỆM TTS &
TRUYỀN SỐ LIỆU
SINH VIÊN THỰC HIỆN:
TRẦN LÊ THANH
TRẦN ĐÌNH TÁ
LÊ TẤN HÀ GIANG
Nội Dung:
I.Mục đích bài thí nghiệm
II.Phần lý Thuyết:
1.Mã Hóa Kênh
2.Điều chế tín hiệu.
III.Phần thí nghiệm:
1.Code mô phỏng
2.Kết quả mô phỏng
IV. Kết luận
I.Mục đích bài thí nghiệm• Giúp chúng ta hiểu được cách mã hóa tín hiệu bằng mã
Hamming.• Cách điều chế và giải điều chế tín hiệu
1.Mã Hóa Kênh:• Mã hóa kênh còn gọi là mã hóa điều khiển lỗi làm
nhiệm vụ đưa thêm các bit hoặc biến đổi dãy bit tin theo một quy luật nào đấy nhằm giúp bên thu phát hiện và sửa được lỗi xảy ra trên đường truyền.
Mã khối Hamming(7,4)• - 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, với x=m.G
• Trong đó m: chuỗi bit tin truyền đi. G:Ma trận sinh.
2.Điều chế tín hiệu:• Điều chế : Là quá trình chuỗi rời rạc thời gian được chuyển
đổi thành tín hiệu liên tục thời gian để truyền đi trong môi trường vật lý thông qua bộ chuyển đổi DAC.
• Trong bài thí nghiệm ta dùng điều chế BDSK.• Nếu bit tin là 0 thì biên độ tín hiệu là –A,bit tin là 1 thì biên độ
tín hiệu là A:
II.Phần thí nghiệm:1.Các phần code chính:• Tạo dãy bit tin,tạo nhiễu:• Code mã hóa hamming• Code điều chế • Code giải điều chế• Code giải mã hamming• Code tính SNR và BER• Code vẽ đồ thị
Tạo dãy bit tin,tạo nhiễu,tạo các ma trận mã hóa giải mã Hamming
• N = [20 1000 10000];• A = [ 1/2 1/sqrt(2) 1 sqrt(2) 2 2*sqrt(2) 4
4*sqrt(2)];• color= ['c' 'g' 'r'];• %tạo ma trận lỗi:• Noise=randn(1,N(k));• %với N là độ dài của chuỗi bit• %Tao ma tran sinh:• 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];• %Tao ma tran kiem tra :• H=[1,0,0,1,0,1,1;• 0,1,0,1,1,1,0;• 0,0,1,0,1,1,1];
%Tao ma tran vector loi:
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];
m=randn(1,N(k1))>0.5;
Trường hợp không mã hóa kênh.
• for (i=1:N(k1))• if ynhieu(i)>=0• received(i)=1;• end• if ynhieu(i)<0• received(i)=0;• end• end• dem=0;• for (i=1:N(k1))• if (received(i) ~= m(i))• dem=dem+1; • end• end• SNRdB(k2)=20*log10(A(k2));• BER(k2)=dem/N(k1);
• for k1=1:length(N)• % tạo dãy bit chứa tin cần
truyền• m=randn(1,N(k1))>0.5; • for k2=1:length(A)• for (i=1:N(k1))• if m(i)>0 y(i)=A(k2);• else y(i)=-A(k2);• end• end• for (i=1:N(k1))• ynhieu(i)=y(i)+randn;• end
Trường hợp có mã hóa kênh
• % Tao nhieu White Gaussian:• for (i=1:h)• y_noise(i)=y(i)+randn;• end• %Giai dieu che:• for (i=1:h)• if y_noise(i)>=0• received(i)=1;• end• if y_noise(i)<0• received(i)=0;• end• end
• m_code=zeros(1,7*length(m)/4);• j=1;• for i=1:4:length(m)• m_code(j:j+6)=m(i:i+3)*G;•
m_code(j:j+6)=mod(m_code(j:j+6),2);• j=j+7;• end• h=length(m_code);• %Dieu Che tin Hieu BPSK• for (i=1:h)• if m_code(i)>0 y(i)=A(k2);• else y(i)=-A(k2);• end• end
Trường hợp có mã hóa kênh
• %Kiểm tra số bit lỗi• dem2=0;• for (i=1:length(m_decoded))• if (m_decoded(i) ~= m(i))• dem2=dem2+1; • end• end• BER2(k2)=dem2/N(k1);•
SNRdB2(k2)=20*log10(A(k2));• end
• % Giãi mã Hamming
m_decoded=zeros(1,N(k1));• k=1;• H2=H';• for i=1:7:h• temp=received(i:i+6);• s=mod(temp*H2,2);• s1=bi2de(s,'left-msb');• e=E(s1+1,:);• temp1=mod(temp+e,2);•
m_decoded(k:k+3)=temp1(4:7);• k=k+4;• end
Phần vẽ đồ thị:• figure(1)• plot(SNRdB,BER,color(k1)) • legend('N=20','N=1000','N=10000') • hold on • grid on• xlabel('SNR1')• ylabel('BER1') • • figure(2) • plot(SNRdB2,BER2,color(k1))• grid on• hold on • legend('N=20','N=1000','N=10000') • xlabel('SNR')• ylabel('BER') • end
•