1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo thí nghiệm môn thông tin số

20 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 641,82 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Viết chương trình matlab vẽ hàm mật độ xác suất của phân phối chuẩn hoá.. Mô tả hình dáng đồ thị của hàm Px trên là hình gì?. Ý nghĩa và ứng dụng của hàm phân phối xác suất Gauss trong

Trang 1

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 MÔN: THÔNG TIN SỐ

Mã học phần : ET3250

Sinh viên : Đặng Văn Khương

MSSV : 20182612

Lớp : DTVT 02

Mã lớp thí nghiệm : 713391

Hà Nội, 2022

Trang 2

Bài số 1 : Mô phỏng nhiễu Gauss

Bài 1.1 Viết chương trình matlab vẽ hàm mật độ xác suất của phân phối chuẩn

hoá.

+) Code:

x=-5:0.02:5;

P= exp(-x.*x/2)/sqrt(2*pi);

plot(x,P);

title( 'Ham phan bo xac suat Gauss' );

xlabel( 'x' );

ylabel( 'P' );

+) Hiển thị:

Câu hỏi:

1 Mô tả hình dáng đồ thị của hàm P(x) trên (là hình gì)? Giải thích?

- Đồ thị của P(x) có hình dạng chuông Đó là do hàm P(x) được biểu thị theo cơ

số tự nhiên e.

2 Ý nghĩa và ứng dụng của hàm phân phối xác suất Gauss trong thông tin số.

- Hàm phân phối xác suất Gauss trong thông tin số cho biết mật độ lượng thông tin trong khoảng giá trị xác định.

Trang 3

3 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?

- Nếu tăng kỳ vọng µ và phương sai �2 thì do đặc trưng của hàm lũy thừa đồ thị P(x) tràn xa và lệch sang phía bên phát.

Bài 1.2 Sử dụng hàm randn của matlab tạo quá trình ngẫu nhiên với đô ̣ dài

100000 phần tử.

+) Code :

m=0;

s=1;

x1 = -5:0.02:5;

P = exp(-(x1-m).^2/2*s^2)/(sqrt(2*pi)*s);

plot(x1,P, 'r' ); % Ve ham phan bo voi m =0, s=1

n = randn(1, 100000);

m = mean(n);

x2 = -5:0.1:5;

c = hist(n,x2);

hold on ;

stem(x2, c/100000/(x2(2)-x2(1)));

title( 'Ham phan bo xac suat' );

xlabel( 'x' );

ylabel( 'P(x)' );

hold off

+) Hiển thị :

Trang 4

Câu hỏi :

4 Nêu nhận xét về kết quả của hai hàm mô phòng và lý thuyết?

- Hàm mô phỏng tương đồng với tính toán lý thuyết.

5 Thay đổi độ dài của quá trình ngẫu nhiên trong bài 1.2 trong bài tập 1.2 lên 1.000.000 phần tử So sánh kết quả và kết quả cũ? Giải thích?

- Hàm mô phỏng “mịn” do hàm phân phối mô tả giá trị ngẫu nhiên nên càng nhiều phép thử thì càng chính xác.

6 Câu lệnh “px=hist(x,k)/len/step;”? Tại sao phải chia len và step?

- Chia cho len để tạo đường nét liền

- Chia cho step để tăng độ dài mỗi phần tử

Bài 2.1

Hàm lquan

Bài số 2 : kĩ thuật lượng tử hoá tuyến tính.

Trang 5

function [id qy]= lquan(x,xmin,xmax,nbit)

nlevel = 2^nbit; % So muc luong tu hoa

q = (xmax-xmin)/nlevel; % Buoc luong tu

[id qy] = quantiz(x,xmin+q:q:xmax-q,xmin+q/2:q:xmax-q/2);

xs = rand(1,5)*2-1;

[xi xq] = lquan(xs,-1,1,3)

Câu hỏi :

7 Dòng lệnh sử dụng: [xi xq] = lquan(xs, -1, -1, 3)

8 xs = [-0.6671, -0,3500, -0.7871, -0.7231, -0.3599]

9 Xi = [1, 2, 7, 1, 2]

10 Xq = [-0.625, -0.375, -0,6250, -0.3750]

11 Dòng bít được truyền

Bài 2.2

+) Code:

t=0:0.01:20; % Khoang thoi gian xet tu 0 den 20, cach deu 0.01

xt=sin(randn()+t).*cos(rand()*t); % Tin hieu ngau nhien co bien do -1 den 1

[inx xqt] = lquan(xt,-1,1,randi(3)+1); % Tinh xqt

plot(t,xt, 'b' ,t,xqt, 'r' ); % Ve do thi xt va xqt

grid on ;

title( 'Do thi cua tin hieu x(t) va x_q(t)' );

xlabel( 't' );

legend( 'x(t)' , 'x_q(t)' );

hold off ;

+) Đồ thị:

Trang 6

12, Số bit dùng để lượng tử hóa cho một mẫu tín hiệu là n = 3 (có 8 mức lượng tử hóa

và 23 = 8)

13, Bước lượng tử q = 0.25

14, Liệt kê tất cả các mức lượng tử: 0.875, 0.625, 0.375, 0.125, -0.125, -0.375, -0.625, -0.875

BÀI SỐ 3: TẠP ÂM LƯỢNG TỬ HÓA TRONG KỸ

THUẬT LƯỢNG TỬ HÓA TUYẾN TÍNH

Bài 3:

Chạy chương trình:

N = 1000;

x_uni = 2*rand(1,N)-1;

x_sin = sin(linspace(1,5,N));

nbit = 1:10;

SNqR_uni = zeros(size(nbit));

SNqR_sin = zeros(size(nbit));

SNqR_lt = 6.02*nbit;

Trang 7

Ps_uni = sum(x_uni.^2)/N;

Ps_sin = sum(x_sin.^2)/N;

for i = 1:size(nbit,2)

[indx_uni xq_uni] = lquan(x_uni,-1,1,nbit(i)); [indx_sin xq_sin] = lquan(x_sin,-1,1,nbit(i)); eq_uni = x_uni - xq_uni;

eq_sin = x_sin - xq_sin;

Pq_uni = sum(eq_uni.^2)/N;

Pq_sin = sum(eq_sin.^2)/N;

SNqR_uni(i) = 10*log10(Ps_uni/Pq_uni); SNqR_sin(i) = 10*log10(Ps_sin/Pq_sin);

end

plot(nbit,SNqR_uni,'b-');

hold on;

plot(nbit,SNqR_sin,'r ');

plot(nbit,SNqR_lt,'m-.');

title('Do thi SN_qR theo nbit');

xlabel('nbit');

ylabel('SN_qR');

legend('Phan bo deu','Hinh sin','Ly thuyet'); grid on;

hold off;

Kết quả:

Trang 8

nbit 1 2 3 4 5 6 7 8 9 10 SNqR lý

thuyết

6.020

0

12.04 00

18.06 00

24.080

0

30.100 0

36.12 00

42.14 00

48.16 00

54.18 00

60.200 0 SNqR mô

phỏng(pb

đều)

6.122

17

12.05 90

18.01 25

23.937 1

29.914 9

36.23 82

42.03 80

54.23 33

52.12 55

59.932 0

SNqR mô

phỏng(pb

sin)

6.417

1

12.88 34

19.39 81

25.670 2

32,038 9

38.16 20

44.32 66

50.40 33

56.45 44

62.572

Câu hỏi :

17 Khi n tăng lên 1 thì giá trị SNqR thay đổi thế nào? Tại sao?

- Giá trị SNqR tăng thêm 6.02 lần vì theo công thức SNqR = 6.02n

18 Giải thích tại sao SNqR chỉ phụ thuộc vào n, không phụ thuộc vào kích thước bước lượng tử và dải biên độ lưỡng tử?

- Theo công thức tính SNqR = 6.02n\

19 Khi thay tín hiệu x là tín hiệu điều hòa thì giá trị SNqR thay đổi so với khi tín hiệu

x phân bố đều như thế nào?

- SNqR của tín hiệu điều hòa có giá trị lớn hơn SNqR của tín hiệu phân bố không đều

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

+ Code:

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); % Tao tin hieu co bien do tang dan

acorr_x = xcorr(x); % Tinh ham tu tuong quan

plot(n,acorr_x,'g '); % Ve do thi ham tu tuong quan tin hieu co bien do tang dan

x = sin(linspace(-10,10,L)); % Tao tin hieu hinh sin

acorr_x = xcorr(x); % Tinh ham tu tuong quan

Trang 9

plot(n,acorr_x,'r*'); % Ve do thi ham tu tuong quan tin hieu hinh sin

legend('Ngau nhien','Bien do tang dan','Hinh sin')

hold off;

+ Hiển thị :

+ Trả lời câu hỏi:

21 Đồ thị của hàm tương quan trong trường hợp tổng quát luôn có biên độ tăng dần đều.

22 Giá trị cực đại của hàm tự tương quan luôn nằm ở gốc đồ thị.

23 Hàm tự tương quan của các trường hợp tín hiệu khác nhau là khác nhau

Bài 4.2:

+ Code:

L = 50; % Do dai tin hieu

N = 200; % So luong cac tan so roi rac trong khoang 0 den 2*pi

x = rand(1,L); % Tao tin hieu ngau nhien

w = linspace(0,2*pi,N); % Tao N tan so tang dan tu 0 den 2*pi

fx = freqz(x,1,w); % Bien doi Fourier cua x tai cac tan so roi rac

esd_x = fx.*conj(fx); % Tinh ham mat do pho nang luong

acorr_x = xcorr(x); % Tinh ham tu tuong quan cua tin hieu x

ft_acorr_x = freqz(acorr_x,1,w).*exp(j*w*(L-1)); % Bien doi 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('\omega');

ylabel('S(e^j^\omega)')

hold on;

subplot(2,1,2);

semilogy(w/pi,real(ft_acorr_x),'r');

xlabel('\omega');

ylabel('R_x_x(e^j^\omega)');

Trang 10

hold off;

+ Hiển thị :

+ Trả lời câu hỏi:

24 Phổ biên độ rời rạc của tín hiệu có đặc điểm gì? Giải thích?

- Đối xứng qua trục có n=1 vì theo công thức của FT và DFT Phụ thuộc vào hàm

=> L-1=0 => đối xứng qua n=1

25.So sánh đồ thị phổ biên độ của esd_x và ft_acorr_x

- Phổ biên độ giống nhau

26 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?

- Vì cách 1 dùng biến đổi FT, cách 2 dùng biến đổi DFT

27 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?

- Chọn N tối thiểu là 104 vì N > 21 và N

28 Ý nghĩa và ứng dụng của định lý Weiner-Khintchine trong thông tin số?

- Phổ của hàm là mật độ phổ năng lượng của tín hiệu sẽ thể hiện sự phân bố năng lượng tín hiệu.

Bài số 5 : Mã đường dây NRZ

Bài 5.1

+ Code :

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

Trang 11

bsignal = randi([0 1],1,len); % Dong bit ngau nhiên do dai len

NRZ_signal = bsignal*2-1; % Bien doi dòng 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); % Tao tap am noise voi ti so SNR(i)

r_signal = NRZ_signal + noise; % Tin hieu thu duoc = NRZ + noise

NRZ_decoded = sign(r_signal); % Giai ma tin hieu NRZ thu duoc

[n,BER(i)] = symerr(NRZ_decoded,NRZ_signal); % Tinh xac suat loi

end

plot(SNR_db,BER,'bo '); % Ve do thi BER

Pe = 1/2*(1-erf(sqrt(SNR)/sqrt(2))); % Xac suat loi theo ly thuyet

hold on;

plot(SNR_db,Pe,'r* '); % Ve do thi Pe

title('Do thi ty le bit loi theo ly thuyet va mo phong');

xlabel('SNR_d_B');

ylabel('BER');

+ Hiển thị :

+ Code :

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 = randi([0 1],1,len); % Dong bit ngau nhiên do dai len

NRZ_signal = bsignal*2-1; % Bien doi d?ng 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); % Tao tap am noise voi ti so SNR(i)

Trang 12

r_signal = NRZ_signal + noise; % Tin hieu thu duoc = NRZ + noise

NRZ_decoded = sign(r_signal); % Giai ma tin hieu NRZ thu duoc

[n,BER(i)] = symerr(NRZ_decoded,NRZ_signal); % Tinh xac suat loi

end

plot(SNR_db,BER,'bo '); % Ve do thi BER

Pe = 1/2*(1-erf(sqrt(SNR)/sqrt(2))); % Xac suat loi theo ly thuyet

hold on;

plot(SNR_db,Pe,'r* '); % Ve do thi 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');

+ Hiển thị :

Pe lý thuyết 0.1587 0.1040 0.0565 0.0230 0.0060 BER mô

phỏng

+ Trả lời câu hỏi:

Trang 13

29 Giải thích tại sao phải sử dụng các mã đường dây? Mã đường dây được sử dụng trong những trường hợp nào?

- Mã đường dây có tác dụng chuyển phổ tín hiệu

- Hỗ trợ quá trình đồng bộ đồng hồ có khả năng kiểm soát lỗi

30 Khi tỷ số SNR tang thig 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ị?

- Giảm vì đây là 2 đại lương tỷ lệ nghịch.

31 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à trường hợp nào? Tại sao?

- Đó là trường hợp không mang dấu bởi vì có 2 loại tín hiệu NRZ đơn cực và NRZ lưỡng cự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 theo lý thuyết Từ đó rút ra kết luận gì?

- Kết quả thu dược khá giống với lý thuyết.

BÀI SỐ 6: KỸ THUẬT ĐIỀU CHẾ SỐ QPSK

Bài 6

Chạy chương trình:

len = 50000; % Do dai dong bit mo phong

SNR_db = 0; % SNR co don vi Decibel

SNR = 10^(SNR_db/10); % Doi SNR tu Decibel sang lan

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 % 00

qpsk_signal((i+1)/2) = exp(j*3*pi/4);

elseif bsignal(i)==0 & bsignal(i+1)==1 % 01

qpsk_signal((i+1)/2) = exp(j*5*pi/4);

elseif bsignal(i)==1 & bsignal(i+1)==1 % 11

qpsk_signal((i+1)/2) = exp(j*7*pi/4);

elseif bsignal(i)==1 & bsignal(i+1)==0 % 10

qpsk_signal((i+1)/2) = exp(j*pi/4);

end

end

Es = std(qpsk_signal)^2; % Nang luong ky hieu

N0 = Es/SNR; % Cong suat tap am

% Tao nhieu Gauss

noise = sqrt(N0/2)*(randn(1,length(qpsk_signal))

+j*randn(1,length(qpsk_signal)));

Trang 14

qpsk_awgn = qpsk_signal + noise; % Cho tin hieu dieu che di qua kenh AWGN

plot(qpsk_awgn,'.'); % Ve bieu do chom sao tin hieu co nhieu

title('Do thi chom sao 4-QPSK');

xlabel('I');

ylabel('Q');

hold on;

plot(qpsk_signal,'r*'); % Ve bieu do chom sao tin hieu khong nhieu

plot(exp(j*[0:0.01:2*pi]),'r ');

Kết quả:

+ Trường hợp SNR = 0 dB

+ Trường hợp SNR = 3 dB

Trang 15

+ Trường hợp SNR = 6 dB

Trả lời câu hỏi :

Trang 16

33 Điềun 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ố?

- Điều chế tín hiệu để đưa thông tin cần truyền đi xa hơn Khối điều chế có vai trò quan trọng, có nhiệm vụ làm trung gian trong quá trình xử lý tín hiệu để truyền đi.

34 Mô tả kết quả mô phỏng? Giải thích?

- KQ mô phỏng tín hiệu thu được dạng chum sao Do đây là 4QPSK nên sẽ có 4 điểm lệch nhau 90 độ

35 Trong điều chế PSK, khi nào phía thu sẽ giải mã sai?

36 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? Tại sao?

- Es = 3dB vì theo CT Es = N.SQR

BÀI SỐ 7: XÁC SUẤT LỖI BIT TRONG

ĐIỀU CHẾ QPSK

Bài 7

Chạy chương trình:

len = 50000; % 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 = 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 % 00

qpsk_signal((i+1)/2) = exp(j*3*pi/4);

elseif bsignal(i)==0 & bsignal(i+1)==1 % 01

qpsk_signal((i+1)/2) = exp(j*5*pi/4);

elseif bsignal(i)==1 & bsignal(i+1)==1 % 11

qpsk_signal((i+1)/2) = exp(j*7*pi/4);

elseif bsignal(i)==1 & bsignal(i+1)==0 % 10

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 % Goc phan tu I

r_bsignal(j) = 1;

r_bsignal(j+1) = 0;

else % Goc phan tu IV

r_bsignal(j) = 1;

r_bsignal(j+1) = 1;

Trang 17

end

else

if imag(r_signal((j+1)/2))>=0 % Goc phan tu II

r_bsignal(j) = 0;

r_bsignal(j+1) = 0;

else % Goc phan tu III

r_bsignal(j) = 0;

r_bsignal(j+1) = 1;

end

end

end

[n,BER(i)] = biterr(r_bsignal,bsignal);

end

Pb = 1/2*erfc(1/sqrt(2).*sqrt(SNR)); % Xac suat loi bit

plot(SNR_db,Pb,'ro '); % Ve do thi Pb ly thuyet

title('Do thi ty le bit loi ly thuyet va mo phong');

xlabel('SNR_d_B');

ylabel('BER');

hold on;

plot(SNR_db,BER); % Ve do thi BER mo phong

legend('Ly thuyet','Mo phong');

hold off;

Kết quả:

Trang 18

SNR 0dB 2dB 4dB 6dB 8dB

37 So sánh điều chế BPSK và QPSK?

- Xác suất lỗi bit là tương đương nhau nhưng QPSK có tỷ lệ lỗi thấp hơn

- QPSK là điều chế phụ trực giao mã hóa 2 bit thành 1

- BPSK là điều chế pha nhị phân, điều chế tín hiệu số 0, 1 lệch pha 180 độ

38 Nêu một số hệ thống trong thực tế sử dụng kỹ thuật điều chế số QPSK?

- Hệ thống OFDM

- Hệ thống truyền tin dưới nước

BÀI SỐ 8: MÔ PHỎNG ĐIỀU CHẾ M-QAM QUA KÊNH

NHIỄU GAUSS Bài 8.1

Chạy chương trình:

n_sym = 50000; % So ky tu dieu che

M = [16 32 64]; % So symbol ky hieu

SNR_db = 0:25; % Tao vector SNR = 0 - 25 Decibel

BER = zeros(length(M),length(SNR_db)); % BER de luu ti le loi bit

for k = 1:size(M,2) % size(M,2) la so cot cua M

s_stream = randi([0 M(k)-1],1,n_sym); % Tao dong bieu tuong do dai n_sym

s_mod = qammod(s_stream,M(k),0,'GRAY'); % Dieu che M-QAM

for r = 1:size(SNR_db,2) % Vong lap tinh BER

s_mod_awgn = awgn(s_mod,SNR_db(r),'measured'); % Tin hieu qua nhieu

s_demod = qamdemod(s_mod_awgn,M(k),0,'GRAY'); % Giai dieu che M-QAM

[num ratio] = biterr(s_stream,s_demod); % Tinh ti le loi bit

BER(k,r) = ratio; % Luu ti le loi bit vao BER

end

end

semilogy(SNR_db,BER(1,:),'bo-'); % Ve do thi BER ung voi M = 16

hold on;

semilogy(SNR_db,BER(2,:),'rs-'); % Ve do thi BER ung voi M = 32

semilogy(SNR_db,BER(3,:),'m*-'); % Ve do thi BER ung voi M = 64

grid on;

title('Do thi the hien ty le loi bit M-QAM');

Ngày đăng: 24/09/2022, 20:46

HÌNH ẢNH LIÊN QUAN

1. Mơ tả hình dáng đồ thị của hàm P(x) trên (là hình gì)? Giải thích? - Báo cáo thí nghiệm môn thông tin số
1. Mơ tả hình dáng đồ thị của hàm P(x) trên (là hình gì)? Giải thích? (Trang 2)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w