BÁ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
Bà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
Bà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
Bà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
Bà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
Bà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
Bà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
Bà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
Bà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
Bà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
Bà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
Figure:
Bà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
title('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
Figure:
14
15
16
Bà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
Bà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