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

BÁO cáo THÍ NGHIỆM THÔNG TIN số ( ET3250)

19 12 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 19
Dung lượng 618,16 KB

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

Nội dung

Hàm Px đều biểu thị cho hàm số mũ lũy thừa có cơ số e 1.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ế

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 THÔNG TIN SỐ ( ET3250)

Họ và tên : Đậu Công Dụng

Mssv : 20172504

Mã lớp TN : 713389

Nhóm TN : T02

Hà Nội, 2022

Trang 2

BUỔI 1 THÍ NGHIỆM :

Bài 1.1

 Mã nguồn matlab:

x=-5:0.1:5; %Tạo vector x

Px=(1/sqrt(2*pi))*exp(-power(x,2)/2); %P(x) ứng với giá trị của x

plot(x,Px); %Vẽ đồ thị

xlabel('x'); % Dán nhãn x

ylabel('P(x)'); %Dán nhãn y

 Kết quả mô phỏng

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

1.1 Mô tả hình dạng đồ thị của hàm P(x) trên :

Trang 3

Đồ thị có dạng hình chuông Hàm P(x) đều biểu thị cho hàm số mũ lũy thừa có cơ số e 1.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 độ phân bố tập trung của thông tin trong 1 thời gian xác định

1.3 Nếu thay đổi kỳ vọng u và phương sai thì P(x) thay đổi

Nếu tăng kỳ vọng và phương sai thì đồ thị có xu hướng thoải ra và lệch sang bên phải

Đó là do đăc trưng của hàm lũy thừa

Bài 1.2:

 Mã nguồn Matlab:

leng=100000; % Độ dài của quá trình ngẫu nhiên

x=randn(1,leng); %Tạo quá trình ngẫu nhiên theo pp chuẩn

step=0.1; %step = 0.1;

k=-5:step:5; %vector k

px=hist(x,k)/leng/step; % Phân bố xác suất vào các khoảng vector k

stem(k,px); % Vẽ lên đồ thị

hold on;

Px_theo=(1/sqrt(2*pi))*exp(-power(k,2)/2);

plot(k,Px_theo);

title('Phan bo xac suat Gauss'); % Tiêu đề

xlabel('x'); % Dán nhãn x

ylabel('P(x)'); % Dán nhãn y

legend('Analysis','Simulation'); % Chú thích

hold off;

Trang 4

 Kết quả mô phỏng

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

1 Kết quả hai hàm mô phỏng và lý thuyết khá tương đồng với nhau

2 Thay đổi quá trình ngẫu nhiên lên 10000000 phần tử Kết quả mới chính xác hơn

so với kết quả cũ , thay đổi độ dài của quá trình ngẫu nhiên thì càng chính xác

3 Câu lệnh : px= hist(x,k) /len/step thì phải chia cho len để tạo net liền và phải chia cho step để tăng độ dài mỗi phần tử

Bài 2.1 Hàm lquan

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

nlevel = 2^nbit;

q = (xmax-xmin)/nlevel;

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

Trang 5

Chạy chương trình:

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

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

Trả lời câu hỏi

xs = [0.6180 0.0006 0.9721 0.2069 -0.3657]

xi = [ 6 4 7 4 2]

xq = [0.6250 0.1250 0.8750 0.1250 -0.3750 ]

Bài 2.2.

 Mã nguồn Matlab:

t=0:0.01:20; %Thời gian

xt=sin(randn()+t).*cos(rand()*t); %Tín hiệu x(t)

[inx xqt]=lquan(xt,-1,1,randi(3)+1); %Lượng tử hóa

plot(t,xt); %Vẽ đồ thị x(t)

hold on;

plot(t,xqt); %Vẽ đồ thị lượng tử

xlabel('time'); %Dán nhãn x

ylabel('signal'); %Dán nhãn y

Trang 6

 Kết quả mô phỏng:

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

1 Số bit dung để lượng tử cho 1 mẫu tín hiệu : n=3 ( 8 mức lượng tử hóa )

2 Bước lượng tử q: q=0.25

3 Mức biên độ của 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 3

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;

Ps_uni = sum(x_uni.^2)/N

Trang 7

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

SNqR_lt= [6.0200 12.0400 18.0600 24.0800 30.1000 36.1200 42.1400 48.1600 54.1800 60.2000]

SNqR_uni= [6.1217 12.0590 18.0125 23.9371 29.9149 36.2382 42.0380 48.2333 54.1255 59.9320]

SNqR_sin= [6.4171 12.8834 19.3981 25.6702 32.0389 38.1620 44.3266 50.4033 56.4544 62.5722]

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

1 Khi n tăng lên 1 thì SNqR sẽ tăng lên 2 lần

2 SNqR chỉ phụ thuộc vào n , mà không phụ thuộc vào kích thước lượng tử và dải biên độ lượng tử bởi vì : SNqR= 32(2n)2

( n là độ dài từ mã )

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

BUỔI 2 THÍ NGHIỆM

Bài số 4: Mật Độ Phổ Năng Lượng Và Hàm Tự Tương Quan Của Tín Hiệu

4.1 Đồ thị tín hiệu hàm tương quan

- Code :

Trang 9

L=500;

x=randn(1,L);

x1=linspace(-1,1,L);

x2=sin(linspace(-10,10,L));

[acorr_x nx]=xcorr(x);

[acorr_x1 nx1]=xcorr(x1);

[acorr_x2 nx2]=xcorr(x2);

figure; plot(nx,acorr_x); xlabel('n'); ylabel('R_{xx}');

figure; plot(nx1,acorr_x1); xlabel('n'); ylabel('R_{xx}');

figure; plot(nx2,acorr_x2); xlabel('n'); ylabel('R_{xx}');

- Kết quả mô phỏng

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

1 Đồ thị của hàm tự tương quan trong trường hợp tổng quát luôn thì biên độ luôn tăng dần và đạt cực đại tại 0

2 Giá trị cực đại của hàm tự tương quan nằm ở khoảng bên phải đồ thị

3 Hàm 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 thì nó hầu hết là khác hẳn nhau vì đầu vào khác nhau

Trang 10

4.2 Biến đổi Fourier của hàm tự tương quan

Code

L=50; x=rand(1,L); % 50 mẫu ngẫu nhiên từ 0 đến 1

N=200; % Số lượnng tần số rời rạc

w=linspace(0,2*pi,N); % w từ 0 - 2*pi

fx=freqz(x,1,w); %Biến đổi fourier của vector x

esd_x=fx.*conj(fx); %esd_x là bình phương biên độ của fx

acorr_x=xcorr(x); %Tự tương quan x

ft_acorr_x=freqz(acorr_x,1,w); %Phổ hàm từ tương quan chưa chính xác ft_acorr_x=freqz(acorr_x,1,w).*exp(j*w*(N-1)); % Phổ hàm tự tương quan subplot(2,1,1); semilogy(w/pi,esd_x);

xlabel('\omega (\pix)'); ylabel('S(e^{j\omega)}');

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

xlabel('\omega (\pix)'); ylabel('FT[r_{xx}(n)]');

Kết quả mô phỏng

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

1 Phổ biên độ rời rạc của tín hiệu có đặc điểm là biến đổi liên tục trên miền tần số

2 Đồ thị phổ tín hiệu của esd_x và ft_acorr_x :

Trang 11

- Với esd_x thì đồ thị phổ biên độ là biên độ đều

- Với ft-acorr_x đồ thị có biên độ tăng dần

3 Khi vẽ đồ thị thì cách 1 trục hoành là w/pi và cách 2 trục hoành là 2k/N để tránh chổng phổ

4 Chọn N >200 để kết quả chính xác

5 Ý nghĩa và ứng dụng của định lý Weiner-Khintchine trong thông tin số là : Phổ tần số của hàm tự tương quan chính là hàm mật độ phổ năng lượng của tín hiệu số

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

- Code :

len=100000;

SNR_db=0:2:8;

SNR= 10.^(SNR_db/10);

bsignal=randi(2,1,len)-1;

NRZ_signal=bsignal*2-1;

N0=1./SNR;

BER=zeros(1,length(SNR_db));

for i=1:length(SNR_db)

noise=sqrt(N0(i))*randn(1,len);

r_signal=NRZ_signal+noise;

NRZ_decoded=sign(r_signal);

BE_sum=sum(NRZ_signal~=NRZ_decoded);

BER(i)=BE_sum/len;

end

Pe=(1/2)*(1-erf(sqrt(SNR/2)));

plot(SNR,Pe); hold on;

plot(SNR,BER,'o');

xlabel('SNR'); ylabel('BER');

Trang 12

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

1 Phải sử dụng các mã đường dây vì :

- Chuyển đổi tín hiệu băng gốc khi miền tần số cao hơn để vào băng thông đường dây , tăng mật độ chuyển đổi tích cực của tín hiệu

- Giúp kiểm soát lỗi

2 Khi tỷ sô SNR tăng thì xác suất lỗi giảm do tỉ lệ nghịch với nhau Kết quả trên đồ thị phù hợp với lý thuyết

3 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 không mang dấu bởi vì có hai loại tín hiệu NRZ đơn cực và lưỡng cực

Trang 13

Kết quả :

Nhận xét : Kết qủa thay đổi nhiều khi SNR tăng dần

BUỔI 3 THÍ NGHIỆM

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

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)));

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

Trang 14

Kết quả:

 SNR = 0 dB

 Với SNR = 3 dB

 Với SNR = 6 dB

Trang 15

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

33 Điều chế tín hiệu để mang thông tin đi xa hơn Phải điều chế số bởi vì tín hiệu đã mã hóa sẽ bảo mật tốt hơn

Khối điều chế đóng vai trò trung gian quan trọng trong quá trình xử lý tín hiệu để truyền

đi

34 Kết quả mô phỏng : tín hiệu thu được có dạng vùng mây bao quanh các điểm của chòm sao

35 Trong điều chế PSK , phía thu sẽ giải mã sai khi mức điều chế khác với bên phát

36 Năng lượng tín hiệu Es và năng lượng bit Eb trong các trường hợp trên là : Es=3db, Eb=1.5dB

BÀI 7: XÁC SUẤT LỖI BIT TRONG ĐIỀU CHẾ QPSK

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

Trang 16

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;

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 17

SNR 0dB 2dB 4dB 6dB 8dB

Pb lý thuyết 0.1587 0.1040 0.0565 0.0230 0.0060

BER mô phỏng 0.1606 0.1043 0.0551 0.0221 0.0062

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

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

- Về xác suất lỗi bit : Xác suất lỗi bit trong BPSK và QPSK là như nhau , về tương quan thì QPSK có tỷ lệ thấp hơn

- QPSK thì giảm được BER , tăng hiệu suất phổ , tốc độ truyền dữ liệu hơn BPSK

38 Một số hệ thống thực tế sử dụng điều chế QPSK : ứng dụng vào truyền hình số

Trang 18

BÀI 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 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');

xlabel('SNR_d_B');

ylabel('BER');

legend('16-QAM','32-QAM','64-QAM');

hold off;

Kết quả:

Trang 19

SNR 0dB 5dB 10dB 15dB 20dB 25dB

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

39 Khi số mức điều chế M tăng thì BER thay đổi là nó sẽ càng giảm dần Nhưng, nếu tăng lên quá lớn thì sẽ mất khả năng khôi phục tín hiệu

40 Số mức điều chế tăng lên cao thì làm mất khả năng khôi phục tín hiệu nên không thể tăng lên quá lớn

Ngày đăng: 28/03/2022, 15:37

TỪ KHÓA LIÊN QUAN

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

w