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

BÁO cáo THÍ NGHIỆM THÔNG TIN số PHẦN 2 các bài THÍ NGHIỆM bài số 1 QUÁ TRÌNH NGẪU NHIÊN của tín HIỆ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 (708.19 KB, 24 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THƠNG

BÁO CÁO THÍ NGHIỆM
THƠNG TIN SỐ

Sinh Viên

: Đào Xn Khánh

MSSV

: 20182599

Lớp

: Điện tử 11 – K63

Lớp TN

: 713393


Hà Nội, 2021

ii


PHẦN 2: CÁC BÀI THÍ NGHIỆM
BÀI SỐ 1: Q TRÌNH NGẪU NHIÊN CỦA TÍN HIỆU


Bài 1.1
Chạy chương trình:
x=-5:0.1:5;
Px=1/(sqrt(2*pi))*exp(-x.^2/2);
plot(x,Px);

Kết quả:

Q1. Mơ tả hình dáng đồ thị của hàm P(x) trên (là hình gì)? Giải thích?
TL: Đồ thị của P(x) có dạng hình chng. Đó là do trong (-5;0) và (0;5) hàm P(x)
biểu diễn hàm cơ số tự nhiên e.
3


Q2. Ý nghĩa và ứng dụng của hàm phân phối xác suất Gauss trong thông tin số.
TL: Hàm phân phối xác suất Gauss trong thông tin số cho biết mật độ phân bố
thông
tin trong khoảng giá trị xác định.
Q3. Nếu thay đổi kỳ vọng µ và phương sai σ2 thì P(x) thay đổi như thế nào (cụ thể đồ
thị thay đổi như thế nào)? Giải thích?
TL: Nếu tăng kỳ vọng µ và phương sai σ2 thì do đặc trưng hàm lũy thừa, đồ thị
P(x) tràn ra và lệch sang phía bên phải.
Bài 1.2
Chạy chương trình:
len = 100000;
x=randn(1,len); % Tao qua trinh ngau nhien theo phan phoi chuan
step=0.1;
k=-5:step:5;
Px=hist(x,k)/len/step; % Xac dinh so vector
stem(k,Px,'o-');

Px_LT=exp(-k.^2/2)/sqrt(2*pi); % Tinh Px ly
hold on;
plot(k,Px_LT);
title('Phan bo xac suat Gauss');
xlabel('x');
ylabel('P(x)');
legend('Ly thuyet','Mo phong');
hold off;

4


Kết quả:

5


Với len=1000000
Kết quả:

Q4. Nêu nhận xét về kết quả của hai hàm mô phỏng và lý thuyết?
TL: Hàm mô phỏng tương đồng với tính tốn lý thuyết.
Q5. Thay đổi độ dài của quá trình ngẫu nhiên trong bài tập 1.2 lên 1000000 phần tử.
So sánh kết quả với kết quả cũ? Giải thích?
TL: Hàm mơ phỏng mịn hơn, do hàm phân phối mơ tả q trình ngẫu nhiên nên
càng nhiều phép thử thì càng chính xác.
Q6. Câu lệnh “Px=hist(x,k)/len/step;” ? Tại sao phải chia len và step?
TL: Chia cho len là để tạo đường nét liền. Chia cho step để tăng độ dài mỗi
phần tử.


6


BÀI SỐ 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
Chạy chương trình:
L = 500;
% Chieu dai tin hieu
x = randn(1,L);
% Tao tin hieu ngau nhien
acorr_x = xcorr(x); % Tinh ham tu tuong quan
n = (-L+1):(L-1); % Cac mau gia tri
plot(n,acorr_x);
% Ve do thi ham tu tuong quan tin hieu ngau nhien
title('Ham tu tuong quan');
xlabel('n');
ylabel('r_x_x');
hold on;
x = linspace(-1,1,L);
acorr_x = xcorr(x);
plot(n,acorr_x,'k');
do tang dan
x = sin(linspace(-10,10,L));
acorr_x = xcorr(x);
plot(n,acorr_x,'r');
legend('Ngau nhien','Bien do tang dan','Hinh sin')
hold off;
grid on;


Kết quả:

7


Q21. Đồ thị của hàm tự tương quan trong trường hợp tổng qt ln có đặc điểm
gì đặc biệt? Tại sao?
TL: Đồ thị hàm Rx đối xứng qua trục tung do Rx(n) = Rx(-n) ( hàm chẵn)
Q22. Giá trị cực đại của hàm tự tương quan luôn nằm ở đâu? Tại sao?
TL: Giá trị cực đại luôn nằm ở gốc tọa độ do cách tính tổng chập
Q23. So sánh hàm tự tương quan của các trường hợp tín hiệu khác nhau như yêu
cầu của bài thí nghiệm trên?
TL: Các hàm tương quan đều với giá trị cực đại tại gốc tọa độ và đối xứng
nhau qua trục tung.
Bài 4.2
Chạy chương trình:
L=50;
N = 200;
x = rand(1,L); % Tao tin hieu
w = linspace(0,2*pi,N);
fx = freqz(x,1,w);
rac
esd_x = fx.*conj(fx);
acorr_x = xcorr(x);
ft_acorr_x
=
freqz(acorr_x,1,w).*exp(j*w*(L-1));
Fourier cua ham tu tuong quan cua tin hieu x
% Ve do thi subplot(2,1,1);
semilogy(w/pi,esd_x);

title('Mat do pho nang luong');
xlabel('n');
ylabel('S(e^j^\omega)')

%

Bien

doi

hold off;grid on; subplot(2,1,2);
semilogy(w/pi,real(ft_acorr_x),'r');
xlabel('n');
ylabel('R_x_x(e^j^\omega)');
hold off;grid on;

8


Kết quả:

Q24. Phổ biên độ rời rạc của tín hiệu có đặc điểm gì? Giải thích?
TL: Đối xứng nhau đi qua n=1 tín hiệu đưa về dạng hình sin.
Q25. So sánh đồ thị phổ biên độ của esd_x và ft_acorr_x.
TL: Hai đồ thị phổ biên độ tương tự nhau.
Q26. Giải thích tại sao khi vẽ đồ thị với cách 1 trục hoành là w/pi và cách 2 trục
hoành là k*2/N?
TL: Do sử dụng biến đổi cho tín hiệu khác nhau giữ 2 miền FT và DFT.
Q27. Phải chọn N tối thiểu là bao nhiêu để kết quả mơ phỏng chính xác? Tại
sao? TL: Dựa vào định lý Nyquist, ta sẽ chọn N≥100.

Q28. Ý nghĩa và ứng dụng của định lý Weiner-Khintchine trong thông tin số?
TL: Phổ của hàm tương quan là hàm mật độ phổ năng lượng của tín hiệu số
thể hiện phân bố năng lượng.
9


BÀI SỐ 5: MÃ ĐƯỜNG DÂY NRZ
Bài 5.1
Chạy chương trình:
len = 100000;
SNR_db = 0:2:8;
SNR = 10.^(SNR_db/10);
bsignal = randi([0 1],1,len);
NRZ_signal = bsignal*2-1;
N0 = 1./SNR;
for i=1:length(SNR_db)
noise = sqrt(N0(i))*randn(1,len);
SNR(i)
r_signal = NRZ_signal + noise;
NRZ_decoded = sign(r_signal);
[n,BER(i)] = symerr(NRZ_decoded,NRZ_signal);
end
plot(SNR_db,BER,'bo--');
title('Ty le bit loi');
xlabel('SNR_d_B');
ylabel('BER');

Kết quả:

10



Bài 5.2
Chạy chương trình:
len = 100000;
SNR_db = 0:2:8;
SNR = 10.^(SNR_db/10);
bsignal = randi([0 1],1,len);
NRZ_signal = bsignal*2-1;
N0 = 1./SNR;
for i=1:length(SNR_db)
noise = sqrt(N0(i))*randn(1,len);
SNR(i)
r_signal = NRZ_signal + noise;
NRZ_decoded = sign(r_signal);
[n,BER(i)] = symerr(NRZ_decoded,NRZ_signal);
end
plot(SNR_db,BER,'r*');
Pe = 1/2*(1-erf(sqrt(SNR)/sqrt(2)));
hold on;
plot(SNR_db,Pe);
title('Do thi ty le bit loi theo ly thuyet va mo
phong'); xlabel('SNR_d_B');
ylabel('BER');
legend('Mo phong','Ly thuyet');
hold off;

Kết quả:

11


SNR


Pe lý thuyết
BER mơ phỏng

Q29. Giải thích tại sao phải sử dụng các mã đường dây? Mã đường được sử
dụng trong những trường hợp nào?
TL:
Tạo dạng phổ thích hợp.
Giúp bên thu dễ khôi phục xung
clock. Cung cấp khả năng giám sát lỗi.
 Áp dụng đường truyền hữu tuyến
Q30. Khi tỷ số SNR tăng thì xác suất lỗi thay đổi như thế nào? Giải thích? So sánh
với kết quả trên đồ thị?
TL: Khi SNR tăng => Xác suất lỗi giảm.
Kết quả trên đồ thị phù hợp với lý thuyết.
Q31. Nếu giải mã tín hiệu NRZ bằng lệnh “NRZ_decoded = sign(r_signal);”
như hướng dẫn ở trên sẽ có một số trường hợp khơng chính xác, là những trường
hợp nào? Tại sao?
TL: Bởi vì có 2 loại mã đơn cực và phân cực nên trường hợp khơng có dấu
là chưa chính xác.
Q32. Nhận xét kết quả mô phỏng, so sánh giữa các giá trị BER tính bằng mơ phỏng
và xác suất lỗi Pe tính bằng lý thuyết. Từ đó rút ra kết luận gì?
TL: Pe lý thuyết và BER mơ phỏng có kết quả tương tự nhau.
-> Khi SNR tăng -> Tỉ lệ lỗi bit giảm.

12



BÀI SỐ 6: KỸ THUẬT ĐIỀU CHẾ SỐ QPSK
Bài 6.1
Chạy chương trình:
len = 50000;
SNR_db = 6;
SNR = 10^(SNR_db/10);
bsignal = randi([0 1],1,len);
% Thuc hien dieu che QPSK
for i=1:2:len
if bsignal(i)==0 & bsignal(i+1)==0
qpsk_signal((i+1)/2) = exp(j*3*pi/4);
elseif bsignal(i)==0 & bsignal(i+1)==1
qpsk_signal((i+1)/2) = exp(j*5*pi/4);
elseif bsignal(i)==1 & bsignal(i+1)==1
qpsk_signal((i+1)/2) = exp(j*7*pi/4);
elseif bsignal(i)==1 & bsignal(i+1)==0
qpsk_signal((i+1)/2) = exp(j*pi/4);
end
end
Es = std(qpsk_signal)^2;
N0 = Es/SNR;
% Tao nhieu Gauss
noise = sqrt(N0/2)*(randn(1,length(qpsk_signal))
+j*randn(1,length(qpsk_signal)));
qpsk_awgn = qpsk_signal + noise; % Cho tin hieu dieu che di qua kenh
AWGN
plot(qpsk_awgn,'.');
nhieu
title('Do thi chom sao khong nhieu va co nhieu voi SNR=6dB');

xlabel('I');
ylabel('Q');
hold on;
plot(qpsk_signal,'r*');
nhieu
plot(exp(j*[0:0.01:2*pi]),'r--');

13


Kết quả:

Bài 6.2
Chạy chương trình:
len = 50000;
SNR_db = 3;
SNR = 10^(SNR_db/10);
bsignal = randi([0 1],1,len);
% Tao dong bit ngau nhien do dai len
% Thuc hien dieu che QPSK
for i=1:2:len
if bsignal(i)==0 & bsignal(i+1)==0
qpsk_signal((i+1)/2) = exp(j*3*pi/4);
elseif bsignal(i)==0 & bsignal(i+1)==1
qpsk_signal((i+1)/2) = exp(j*5*pi/4);
elseif bsignal(i)==1 & bsignal(i+1)==1
qpsk_signal((i+1)/2) = exp(j*7*pi/4);
elseif bsignal(i)==1 & bsignal(i+1)==0
qpsk_signal((i+1)/2) = exp(j*pi/4);


14
end

end


Es = std(qpsk_signal)^2;
N0 = Es/SNR;
% Tao nhieu Gauss
noise = sqrt(N0/2)*(randn(1,length(qpsk_signal))
+j*randn(1,length(qpsk_signal)));
qpsk_awgn = qpsk_signal + noise; % Cho tin hieu dieu che di qua kenh
AWGN
plot(qpsk_awgn,'.');
nhieu
title('Do thi chom sao khong nhieu va co nhieu voi SNR=3dB');
xlabel('I');
ylabel('Q');
hold on;
plot(qpsk_signal,'r*');
nhieu
plot(exp(j*[0:0.01:2*pi]),'r--');

Kết quả:

15


Bài 6.3
Chạy chương trình:

len = 50000;
SNR_db = 0;
SNR = 10^(SNR_db/10);
bsignal = randi([0 1],1,len);
% Thuc hien dieu che QPSK
for i=1:2:len
if bsignal(i)==0 & bsignal(i+1)==0
qpsk_signal((i+1)/2) = exp(j*3*pi/4);
elseif bsignal(i)==0 & bsignal(i+1)==1
qpsk_signal((i+1)/2) = exp(j*5*pi/4);
elseif bsignal(i)==1 & bsignal(i+1)==1
qpsk_signal((i+1)/2) = exp(j*7*pi/4);
elseif bsignal(i)==1 & bsignal(i+1)==0
qpsk_signal((i+1)/2) = exp(j*pi/4);
end
end
Es = std(qpsk_signal)^2;
N0 = Es/SNR;
% Tao nhieu Gauss
Noise = sqrt(N0/2)* (randn(1,length(qpsk_signal))
+j*randn(1,length(qpsk_signal)));
qpsk_awgn = qpsk_signal + noise; % Cho tin hieu dieu che di qua kenh
AWGN
plot(qpsk_awgn,'.');
title('Do thi chom sao khong nhieu va co
xlabel('I');
ylabel('Q');
hold on;
plot(qpsk_signal,'r*');
plot(exp(j*[0:0.01:2*pi]),'r--');


16


Kết quả:

Q33. Điều chế tín hiệu để làm gì? Tại sao phải điều chế số? Nêu vai trò và chức
năng của khối điều chế trong thông tin số?
TL: Để chuyển tín hiệu từ bang cơ sở lên bang thơng dải với xác suất lỗi nhỏ
nhất và tốc độ kênh tuyền dẫn cao nhất.
Q34. Mô tả và nhận xét kết quả mô phỏng?
TL: Kết quả thu được dạng đám mây bao quanh chịm sao.
Q35. Trong điều chế PSK, khi nào phía thu sẽ giải mã sai?
TL: Khi mạch khơi phục sóng mang khơi phục tín hiệu kết hợp khơng cùng tần
số và pha với sóng mang.
Q36. Năng lượng ký hiệu Es và năng lượng bit Eb trong trường hợp trên là
bao nhiêu?
17


TL: Es = 1dB ; Eb = Es/2 = 0.5dB.

18


BÀI SỐ 7: XÁC SUẤT LỖI BIT TRONG ĐIỀU CHẾ QPSK
Chạy chương trình:
len = 50000;
SNR_db = 0:2:8;
SNR = 10.^(SNR_db/10);

bsignal = randi([0 1],1,len);
% Tao dong bit ngau nhien do dai len
% Thuc hien dieu che QPSK
for i=1:2:len
if bsignal(i)==0 & bsignal(i+1)==0
qpsk_signal((i+1)/2) = exp(j*3*pi/4);
elseif bsignal(i)==0 & bsignal(i+1)==1
qpsk_signal((i+1)/2) = exp(j*5*pi/4);
elseif bsignal(i)==1 & bsignal(i+1)==1
qpsk_signal((i+1)/2) = exp(j*7*pi/4);
elseif bsignal(i)==1 & bsignal(i+1)==0
qpsk_signal((i+1)/2) = exp(j*pi/4);
end
end
% Tim BER mo phong for
i=1:length(SNR_db)
r_signal = awgn(qpsk_signal,SNR_db(i)); % Dieu che QPSK di qua
nhieu AWGN
for j=1:2:len
% Giai dieu che tin hieu QPSK co nhieu
if real(r_signal((j+1)/2))>=0
if imag(r_signal((j+1)/2))>=0
else
end
else
if imag(r_signal((j+1)/2))>=0
else

end


end

end
[n,BER(i)] = biterr(r_bsignal,bsignal);
end
Pb = 1/2*erfc(1/sqrt(2).*sqrt(SNR));
plot(SNR_db,Pb,'rx--');
xlabel('SNR_d_B');
ylabel('BER');
hold on;

19


plot(SNR_db,BER,'o-');
legend('Ly thuyet','Mo phong');
hold off;

Kết quả:

SNR
Pb lý thuyết
BER mô phỏng
Q37. So sánh điều chế BPSK và QPSK?
TL: Xác suất lỗi bit trong điều chế BPSK và QPSK là tương đương nhau,
tuy nhiên BPSK có tỉ lệ lỗi bit thấp hơn.
Q38. Nêu một số hệ thống trong thực tế sử dụng kỹ thuật điều chế số QPSK.
TL: Hệ thống truyền tin chính xác.
20



BÀI SỐ 8: MÔ PHỎNG ĐIỀU CHẾ M-QAM QUA KÊNH NHIỄU GAUSS
Chạy chương trình:
n_sym = 50000;
% So ky tu dieu che
M = [16 64 256];
SNR_db = 0:25;
EbN0 = SNR_db;
BER = zeros(length(M),length(SNR_db));
Pe = BER;
for k = 1:size(M,2)
s_stream = randi([0 M(k)-1],1,n_sym);
n_sym
s_mod = qammod(s_stream,M(k),'GRAY'); % Dieu che M-QAM
for r = 1:size(SNR_db,2)
s_mod_awgn = awgn(s_mod,SNR_db(r),'measured');
nhieu
s_demod = qamdemod(s_mod_awgn,M(k),'GRAY'); %
QAM
[num, ratio] = biterr(s_stream,s_demod); % Tinh ti le loi bit
BER(k,r) = ratio; % Luu ti le loi bit vao BER
EbN0(r)=SNR_db(r) - 10*log10(log2(M(k)));
Pe(k,r) = berawgn(EbN0(r), 'qam', M(k));
end
end
semilogy(SNR_db,BER(1,:),'k+-');
hold on;
plot(SNR_db,Pe(1,:),'gx-');
semilogy(SNR_db,BER(2,:),'rs-');
plot(SNR_db,Pe(2,:),'cd-');

semilogy(SNR_db,BER(3,:),'m*-');
plot(SNR_db,Pe(3,:),'bo-');
grid on;
title('Do thi the hien ty le va xac suat loi bit MQAM'); xlabel('SNR_d_B and EbN0');
ylabel('BER');
legend('16-QAM-BER','16-QAM-Pe','64-QAM-BER','64-QAM-Pe','256-QAMBER','256-QAM-Pe');
hold off;

21


Kết quả:

SNR=
16QAM

Pe
64-

QAM

BER
Pe

256QAM

BER

BER
Pe



22


Q39. Khi số mức điều chế M tăng thì BER thay đổi ra sao? Giải thích?
TL: Khi M tăng thì BER tăng vì số mức điều chế khiến tỉ lệ lỗi bit tăng.
Q40. Số mức điều chế M tăng lên cao thì sẽ có ưu nhược điểm gì? M có thể tăng
lên rất lớn không? Tại sao? Để đảm bảo chất lượng truyền dẫn thì khi M tăng hệ
thống phải thay đổi như thế nào?
TL: M tăng giúp tốc độ bit tăng lên nhưng cũng khiến tỉ lệ lỗi bit tăng theo.
M tăng có giá trị giới hạn thì vì công suất phát không thể tăng lên vô hạn.

23



×