Báo cáo thí nghiệm thông tin số Viện điện tử viễn thông Đại học bách khoa hà nội
Trang 1BÁO CÁO THÍ NGHIỆM MÔN HỌC
THÔNG TIN SỐ
Mã học phần : ET3250 Sinh viên thực hiện:
Mã số sinh viên:
Lớp: Điện tử truyền thông 07-K56 Nhóm thí nghiệm:
1
Trang 2Bài 1: QUÁ TRÌNH NGẪU NHIÊN CỦA TÍN HIỆU
Bài 1.1:
% -% BAI 1: QUA TRINH NGAU NHIEN CUA TIN HIEU
% Bai 11: Viet chuong trinh ve ham phan phoi chuan
% -x=-5:0.1:5; % Khoi tao mang x gom 100 phan tu
Px=(1/sqrt(2*pi)*exp(-x.^2/2)); %Gia tri cua ham P(x)
plot(x,Px,'-o');
xlabel('x'); % Tieu de cua truc Ox
ylabel('P(x)'); % Tieu de cua truc Oy
title('Ham phan bo xac suat cua phan phoi chuan');
Figure:
2
Trang 3Bài 1.2: Tạo 1 quá trình ngẫu nhiên với phân bố chuẩn với độ dài 100000 phần tử
% -%Bai 1.2: Qua trinh ngau nhien voi phan phoi chuan voi do dai 100000 ptu
% -len = 100000; % Do dai cua qua trinh ngau nhien
x = randn(1,len); % Tao qua trinh ngau nhien theo phan phoi chuan
step =0.1; % step = 0.1
k = -5:step:5; % Khoang xet tu -5 den 5, cach deu 0.1
px = hist (x,k)/len/step; % Tinh so vector trong khoang -5 den 5
stem(k,px); % Do thi roi rac
Px_lythuyet = exp(-k.^2/2)/sqrt(2*pi);
hold on; % Ve chung voi do thi px
plot(k,Px_lythuyet,'rx '); % Hien thi dang do thi
title('Phan bo xac suat Gauss '); % Tieu de cua do thi
xlabel('x'); % Ten truc hoanh
ylabel ('P(x)'); % Ten truc tung
legend('Ly thuyet','Mo phong'); % Ky hieu
hold off;
Figure:
3
Trang 4Bài 2: LƯỢNG TỬ HÓA TUYẾN TÍNH
Bài 2.1:
Code:
Xs =rand(1,5)*2-1;
[xi xq] =lquan(xs,-5,5,3)
Kết quả:
xs = 0.6294 0.8116 -0.7460 0.8268 0.2647
xi = 4 4 3 4 4
xq = 0.6250 0.6250 -0.6250 0.6250 0.6250
Bài 2.2:
% -% Bai 22: Cho tin hieu x(t) ngau nhien co bien do -1 den 1 xet trong
% khoang 0<= t % <=20
% va t/h luong tu xq(t) Ve do thi xt va xqt tren cung 1 do thi
% -t = 0:0.01:20;
xt= sin(randn()+t).*cos(rand()*t);
[inx xqt] = lquan(xt,-1,1,randint(1,1,3)+2);
plot(t,xt,'b',t,xqt,'r');
grid on;
title('Do thi cua tin hieu xt va xqt ');
xlabel('t');
legend('x(t)','xqt(t)');
hold off;
Figure:
4
Trang 5Bài 3: TẠP ÂM LƯỢNG TỬ TRONG KỸ THUẬT LƯỢNG TỬ HÓA TUYẾN TÍNH
Bài 3.1:
% -% Bai 3.1: Luong tu hoa tuyen tin mot t/h ngay nhien x gom 1000 mau phan bo
% deu trong dai -1:1 So sanh voi cong thuc ly thuyet, ty so SNqR trong
% truong hop t/h vao co phan bo deu dc tin nhu sau: SNqR=6.02n
% -N=1000;
x= 2*rand(1,N)-1; % x phân bo deu tu -1 den 1
nbit= 1:10; % So bit luon tu tu 1 den 10
SNqR=zeros(size(nbit)); % Khoi tao mang SNqR chua ket qua
SNqR_lt= 6.02*nbit; % Mang chua SNqR tinh theo ly thuyet
Ps=sum(x.^2)/N; % Cong suat tin hieu x
% Tinh gia tri SNqR ung voi moi gia tri cua n
for i=1:length(nbit) % Size(n,2) tra ve so cot cua n
[xi xq]=lquan(x,-1,1,nbit(i)); %LTH x voi so bit nbit(i) luu kq vao xq eq=x-xq; % Tinh sai so
Pq=sum(eq.^2)/N; % Cong suat tap am luong tu Pq
SNqR(i)=10*log10(Ps/Pq); % Tinh SNqR(i) ra deciben
end
plot(nbit,SNqR,'b',nbit,SNqR_lt,'r-');
title('Do thi SNqR theo nbit');
xlabel('x');
ylabel('SNqR');
legend('Thuc te','Ly thuyet');
hold off;
5
Trang 6Bài 3.2:
% -% Bai 3.2:
% -N=1000;
x= sin(linspace(1,5,N)); % x la tin hieu dieu hoa
nbit= 1:10; % So bit luon tu tu 1 den 10
SNqR=zeros(size(nbit)); % Khoi tao mang SNqR chua ket qua
SNqR_lt= 6.02*nbit; % Mang chua SNqR tinh theo ly thuyet
Ps=sum(x.^2)/N; % Cong suat tin hieu x
% Tinh gia tri SNqR ung voi moi gia tri cua n
for i=1:length(nbit) % Size(n,2) tra ve so cot cua n
[xi xq]=lquan(x,-1,1,nbit(i)); %LTH x voi so bit nbit(i) luu kq vao xq eq=x-xq; % Tinh sai so
Pq=sum(eq.^2)/N; % Cong suat tap am luong tu Pq
SNqR(i)=10*log10(Ps/Pq); % Tinh SNqR(i) ra deciben
end
plot(nbit,SNqR,'b',nbit,SNqR_lt,'r-');
title('Do thi SNqR theo nbit');
xlabel('x');
ylabel('SNqR');
legend('Thuc te','Ly thuyet');
hold off;
6
Trang 7Bài 4: MẬT ĐỘ PHỔ NĂNG LƯỢNG VÀ HÀM TỰ TƯƠNG QUAN CỦA TÍN HIỆU
Bài 4.1:
% -% Bai 4.1: Tinh va ve do thi ham mat do pho nang luong cua tin hieu ngau
% nhien x voi do dai L=500 mau
% -L=500;
x=randn(1,L);
acorr_x = xcorr(x); % Ham tu tuong quan cua x
n=-(L-1):1:(L-1);
plot(n,acorr_x);
title('Ham tu tuong quan');
xlabel('n');
ylabel('acorr_x');
hold on;
% Tin hieu co bien do tang dan
x=linspace(-1,1,L);
acorr_x=xcorr(x);
n=-(L-1):1:(L-1);
plot(n,acorr_x,'k ');
hold on;
% Tin hieu since
x=sin(linspace(-10,10,L));
acorr_x=xcorr(x);
n=-(L-1):1:(L-1);
plot(n,acorr_x,'r.');
hold on;
7
Trang 8Bài 4.2:
% -% BAI 4: MAT DO PHO NANG LUONG VA HAM TU TUONG QUAN CUA TIN HIEU
% Bai 4.2: Yeu cau:
% Tao t/h ngau nhien x voi do dai L=50 mau
% Tinh ham mat do pho nang luong cua t/h x, luu vao vector esd_x % Tim pho cua ham tu tuong quan cua x, luu vao bien ft_acorr_x % Ve do thi pho cua esd_x va ft_acorr_x
% -L=50; % t/h x ngau nhien do dai L=50 mau
N=200; % So luong tan so roi rac
x=randn(1,L);
w=linspace(0,2*pi,N);
fx=freqz(x,1,w);
esd_x=fx.*conj(fx);
acorr_x=xcorr(x);
subplot(2,1,1);
semilogy(w/pi,esd_x);
title('Mat do pho nang luong');
xlabel('n');
ylabel('S(ejw)');
hold on;
ft_acorr_x=freqz(acorr_x,1,w).*exp(j*w*(L-1));
subplot(2,1,2);
semilogy(w/pi,real(ft_acorr_x),'r');
xlabel('n');
ylabel('Rxx(ejw)');
Figure:
8
Trang 9Bài 5: MÃ ĐƯỜNG DÂY NRZ
Bài 5.1:
% -% BAI 5: MA DUONG DAY NRZ
% Bai 5.1: Mo phong he thong truyen so dan bang tan co so su dung phuong
% phap ma hoa NRZ luong cuc
% -len=100000; % Do dai dong bit mo phong
SNR_db=0:2:8; % Tao vector SNR_db = 0 2 4 6 8
SNR= 10.^(SNR_db/10); % Doi SNR tu decibel sang lan
bsignal=randint(1,len); % Dong bit ngau nhien co do dai len
NRZ_signal=bsignal*2-1; % Bien doi dong bit 0 1 sang -1 1
N0=1./SNR; % Cong suat tap am
for i=1:length(SNR_db)
noise=sqrt(N0(i))*randn(1,len);
r_signal=NRZ_signal + noise;
NRZ_decoder=sign(r_signal);
[Num,Rat]=symerr(NRZ_decoder,NRZ_signal);
Pe(i)=Rat;
end
plot(SNR_db,Pe,'ko ');
title('Ty le bit loi');
xlabel('SNR_db');
ylabel('Pe');
Figure:
9
Trang 10Bài 5.2:
% -% BAI 5: MA DUONG DAY NRZ
% Bai 5.2: Ve do thi cua ham xac suat loi ly thuyet va mo phong tren cung
% mot do thi
% -len=100000; % Do dai dong bit mo phong
SNR_db=0:2:8; % Tao vector SNR_db = 0 2 4 6 8
SNR= 10.^(SNR_db/10); % Doi SNR tu decibel sang lan
bsignal=randint(1,len); % Dong bit ngau nhien co do dai len
NRZ_signal=bsignal*2-1; % Bien doi dong bit 0 1 sang -1 1
N0=1./SNR; % Cong suat tap am
for i=1:length(SNR_db)
noise=sqrt(N0(i))*randn(1,len);
r_signal=NRZ_signal + noise;
NRZ_decoder=sign(r_signal);
[Num,Rat]=symerr(NRZ_decoder,NRZ_signal);
Pe(i)=Rat;
end
plot(SNR_db,Pe,'ko ');
title('Ty le bit loi');
xlabel('SNR_db');
ylabel('Pe');
hold on;
SNR=0:2:8;
pe=1./2.*(1-erf(sqrt(10.^(SNR/10)./2)));
plot(SNR,pe,'r+-');
legend('Mo phong','Ly thuyet');
Figure:
10
Trang 11Bài 6:ĐIỀU CHẾ QPSK
Bài 6.1:
% -% BAI 6: DIEU CHE QPSK
% Bai 6.1: Bieu do chom sao cua tin hieu d/c QPSK va ma hoa theo ma Gray
% Y/c: Tao tin hieu nhi phan ngau nhien chieu dai 50000.Thuc hien dieu che
% QPSK tin hieu nay
% -len=50000;
bit=randint(1,len); %tin hieu vao
for i=1:2:len; % tao vong lap, step = 2
switch bit(i)
case 0
if bit(i+1)==0
qpsk_signal((i+1)/2)=exp(j*3*pi/4);
else
qpsk_signal((i+1)/2)=exp(j*5*pi/4);
end
case 1
if bit(i+1)==0
qpsk_signal((i+1)/2)=exp(j*pi/4);
else
qpsk_signal((i+1)/2)=exp(j*7*pi/4);
end
end
end
plot(qpsk_signal,'o');
hold on;
t=0:0.01:2*pi;
plot(exp(j*t),'r '); % Ve duong tron don vi
title('Bieu do chom sao cua tin hieu dieu che QPSK');
xlabel('I');
ylabel('Q');
hold off;
11
Trang 12Bài 6.2:
% -% Bai 6.2: Cho t/h da dc dieu che o bai 6.1 di qua kenh nhieu trang (AWGN)
% voi ti le SNR=6dB Ve bieu do chom sao cua tin hieu thu duoc Sau do thay
% do ti le SNR giam dan (3dB, 0dB) va ve lai bieu do chom sao thu dc
% -len=50000;
bit = randint(1,len); % Tin hieu vao
for i=1:2:len; % Tao vong lap, voi step=2
switch bit(i)
case 0
if bit(i+1)==0
qpsk_signal((i+1)/2)=exp(j*3*pi/4);
else
qpsk_signal((i+1)/2)=exp(j*5*pi/4);
end
case 1
if bit(i+1)==0
qpsk_signal((i+1)/2)=exp(j*pi/4);
else
qpsk_signal((i+1)/2)=exp(j*7*pi/4);
end
end
end
plot(qpsk_signal, 'r*' );
12
Trang 13title( 'Do thi chom sao QPSK' );
xlabel( 'I' );
ylabel( 'Q' );
hold on ;
Es=std(qpsk_signal).^2; %Tinh nang luong
% -// Ti le SNR = 6 dB
// -N0=Es/(10^(6/10)); % Cong suat tap am cua nhieu voi SNR = 6 dB
noise=sqrt(N0/2).*(randn(1,length(qpsk_signal))+1i.*randn(1,length(qpsk_signal))); qpsk=qpsk_signal + noise; % Tin hieu khi co nhieu
subplot(3,1,1); plot(qpsk, 'o' );
title( 'SNR=6dB' );
grid on ;axis auto ;
xlabel( 'I' );
ylabel( 'Q' );
% -// Ti le SNR = 3 dB
// -N1=Es/(10^(3/10)); % Cong suat tap am cua nhieu voi SNR = 3 dB
noise1=sqrt(N1/2).*(randn(1,length(qpsk_signal))+1i.*randn(1,length(qpsk_signal))); qpsk1=qpsk_signal + noise1;
subplot(3,1,2);
plot(qpsk1, 'o' );
title( 'SNR=3dB' );
grid on ;
axis auto ;
xlabel( 'I' );
ylabel( 'Q' );
% -// Ti le SNR = 0 dB
// -N2=Es/(10^(0/10)); % Cong suat tap am cua nhieu voi SNR = 0 dB
noise2=sqrt(N2/2).*(randn(1,length(qpsk_signal))+1i.*randn(1,length(qpsk_signal))); qpsk2=qpsk_signal + noise2;
subplot(3,1,3);
plot(qpsk2, 'o' );
title( 'SNR=0dB' );
grid on ;
axis auto ;
xlabel( 'I' );
ylabel( 'Q' );
13
Trang 1414
Trang 17Bài 7:MÔ PHỎNG ĐIỀU CHẾ QPSK QUA KÊNH NHIỄU GAUSS
% -% Bai 70: Dem so loi xuat hien suot qua trinh phat va ve do thi ti le loi
% bit (BER) voi ti le tin hieu tren nhieu SNR= 0, 2, 4, 6, 8 dB
% -len=100000;
x = randint(1,len);
M=4;
qpsk=qammod(x,M);
SNR_db=0:2:8; %Khoi tao vecto SNR_db
SNR=10.^(SNR_db/10);
N0=1./SNR; %tao vecto N0
for i=1:length(SNR_db)
noise=sqrt(N0(i)/2)*(randn(size(qpsk))+j*randn(size(qpsk))); %Tao nhieu qpskx_nhieu=qpsk+noise;
r_x=qamdemod(qpskx_nhieu,M);
n=0;
for a=1:length(x)
if x(a)~=r_x(a)
n=n+1;
end
end
BER(i)=n/len;
end
plot(SNR_db,BER,'r-');
title('Mo phong dieu che QPSK qua kenh nhieu Gauss');
xlabel('SNR_db');
ylabel('BER');
Figure:
17
Trang 18Bài 8:XÁC SUẤT LỖI BIT TRONG ĐIỀU CHẾ QPSK
% -% BAI 8: XAC SUAT LOI BIT TRONG DIEU CHE QPSK
% Yeu cau: Tinh ti le loi bit ly thuyet pb cua he thong va ve do thi
% SNR=0,2,4,6,8 dB So sanh ket qua ly thuyet nay voi ket qua mo phong o
% bai 5
% -len=100000;
x = randint(1,len);
M=4;
qpsk=qammod(x,M);
SNR_db=0:2:8; %khoi tao vecto SNR_db 0 2 4 6 8
SNR=10.^(SNR_db/10);
N0=1./SNR; %tao vecto N0
for i=1:length(SNR_db)
BERBPSK(i)=(1./2)*erfc(sqrt(SNR(i)/2));
BERQPSK(i)=(1./2)*erfc(SNR(i)/sqrt(2));
end
plot(SNR_db,BERBPSK,'b* ',SNR_db,BERQPSK,'mo ');
title('So Sanh Ti Le Bit Loi Trong Dieu Che Tin Hieu');
xlabel('SNR_db');
ylabel('BER');
legend('Mo phong','Ly thuyet');
hold off;
Figure:
18