Báo cáo thí nghiệm thông tin số 1 px có dạng hình chuông 2 px là hàm mật độ xác xuất, nó tuân theo phân phối chuẩn tắc n(0,1) 3 ứng dụng của hàm gauss trong thông tín số tính hàm lỗi thông qua hàm gauss

21 12 0
Báo cáo thí nghiệm thông tin số 1 px có dạng hình chuông   2 px là hàm mật độ xác xuất, nó tuân theo phân phối chuẩn tắc n(0,1)  3 ứng dụng của hàm gauss trong thông tín số tính hàm lỗi thông qua hàm gauss

Đ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

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ố Mã học phần : ET3250 Sinh viên : Nguyễn Khánh Tồn MSSV : 20172855 Lớp Lớp thí nghiệm : ĐTVT 04 - K62 : 713392 Câu 1.1 x= -5:0.1:5; Px = exp(-x.^2/2)/sqrt(2*pi); plot(x,Px); + Chương trình : >> x= -5:0.1:5; >> p= exp(-x.^2/2)/(sqrt(2*pi)); >> plot(x, Px); >> xlabel('x',); >> ylabel('P(x)'); + Kết thực : Px có dạng hình chng Px hàm mật độ xác xuất, tuân theo phân phối chuẩn tắc N(0,1) Ứng dụng hàm Gauss thông tín số tính hàm lỗi thơng qua hàm gauss Nếu thay đổi kỳ vọng μ tâm chng thay đổi tâm chuông giá trị μ , thay đổi σ^2 chiều cao với độ rộng chng thay đổi với σ^2 lớn chiều cao chng nhỏ độ rộng chuông lớn Câu 1.2 len = 1000000; x = randn(1,len); step = 0.1; k = -5:step:5; + Chương trình : Px = hist(x,k)/len/step; stem(k,Px); Px_lythuyet = exp(-k.^2/2)/sqrt(2*pi); hold on; plot(k,Px_lythuyet); title('phan bo xac suat Gaus'); xlabel('x'); ylabel('Px'); legend('Ly thuyet','mo phong'); hold off; + Kết thực : • Nhận xét: Kết phân bố hình ta thấy lý thuyết mơ phịng cho kết giống • Nếu ta thay đổi độ dài trình ngẫu nhiên lên 1.000.000 phần tử kết Lý thuyết Mơ phân bố giống • Vì ta len = 100.000 hay len = 1.000.000 lớn ta random(1, len) nên ta coi phân bố ngẫu nhiên vô nên kết thu khơng có khác biệt • Hàm hist(x,k) dùng để tính số vector khoảng cho vởi vector k Ta phải chia hist(x,k) cho len step để chuẩn hóa cho giống phân bố hàm gauss Câu : 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); Bài 2.1 Chạy code chương trình: xs = rand(1,5)*2-1; [xi xq] = lquan(xs,-1,1,3) Kết quả: Bài 2.2 Chạy chương trình: t=0:0.01:20; xt=sin(randn()+t).*cos(rand()*t); [inx xqt] = lquan(xt,-1,1,randi(3)+1); plot(t,xt,'b',t,xqt,'r'); grid on; title('Do thi cua tin hieu x(t) va x_q(t)'); xlabel('t'); legend('x(t)','x_q(t)'); hold off; Kết quả:  Số bit dùng để lượng tử hóa cho mẫu tín hiệu n = (có mức lượng tử hóa 23 = 8)  Bước lượng tử q = 0.25  Liệt kê tất mức lượng tử: 0.875, 0.625, 0.375, 0.125, -0.125, -0.375, -0.625, -0.875 Bài 3: Chạy chương trình: N = 1000; x_uni = 2*rand(1,N)-1; % x_uni phan bo deu tu -1 den x_sin = sin(linspace(1,5,N)); % tin hieu sin nbit = 1:10; % so bit luong tu tu den 10 SNqR_uni = zeros(size(nbit)); % Khoi tao mang SNqR_uni va SNqR_sin chua SNqR_sin = zeros(size(nbit)); % SNqR cua tin hieu phan bo deu va tin hieu sin SNqR_lt = 6.02*nbit; % Mang chua SNqR tinh theo ly thuyet Ps_uni = sum(x_uni.^2)/N; % Cong suat tin hieu x theo (3-3) Ps_sin = sum(x_sin.^2)/N; for i = 1:size(nbit,2) % size(n,2) tra ve so cot cua n [indx_uni xq_uni] = lquan(x_uni,-1,1,nbit(i)); % Luong tu hoa tin hieu x_uni [indx_sin xq_sin] = lquan(x_sin,-1,1,nbit(i)); % Luong tu hoa tin hieu x_sin eq_uni = x_uni - xq_uni; % tinh sai so luong tu hoa x_uni eq_sin = x_sin - xq_sin; % tinh sai so luong tu hoa x_sin Pq_uni = sum(eq_uni.^2)/N; % tinh cong suat tap am luong tu x_uni Pq_sin = sum(eq_sin.^2)/N; % tinh cong suat tap am luong tu x_sin SNqR_uni(i) = 10*log10(Ps_uni/Pq_uni); % tinh SNR_db cua x_uni SNqR_sin(i) = 10*log10(Ps_sin/Pq_sin); % tinh SNR_db cua x_sin end plot(nbit,SNqR_uni,'b-'); % ve thi SNR tin hieu phan bo deu mo phong hold on; plot(nbit,SNqR_sin,'r '); % ve thi SNR tin hieu sin mo phong plot(nbit,SNqR_lt,'m-.'); % Ve thi SNR tin hieu phan bo deu ly thuyet 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ả: SNqR_uni = [ 5.9304 11.9406 17.8829 23.9378 30.0528 35.9707 42.0338 48.0322 54.0226 60.2443 ] SNqR_sin = [ 6.4171 12.8834 19.3981 25.6702 32.0389 38.1620 44.3266 50.4033 56.4544 62.5722 ] SNqR_lt = [ 6.0200 12.0400 18.0600 24.0800 30.1000 36.1200 42.1400 48.1600 54.1800 60.2000 ]  Khi n tăng lên SNqR thay đổi lượng = 6.0206 (dB)  Ta có cơng thức tính SNqR tính tốn phụ thuộc n  Khi tay tín hiêu x từ sin sang uniform SNqR chênh lượng = 1.76(dB) Vì SNqR_sin= 1,76 + 6.02n SNqR_uni = 6.02n Bài 4.1 Code : L=500; x= randn(1,L); % Tao vecto ngau nhien co 500 phan tu [x acorr_x] = xcorr(x); % tinh ham tu tuong quan cua vecto tin hieu x stem(acorr_x,x); % Ve thi ham tuong quan title ('Do thi ham tuong quan tin hieu'); xlabel('x'); ylabel('acorr_x'); + Kết thực : Bài 4.2 Code : L=50; x=randn(1,L); % Tao vecto ngau nhien co 50 phan tu y=xcorr(x); % tính y=xcorr(x) esd_x=(fft(x,500)).^2; % Ham tra ve bien doi Fourier roi rac 500 diem ft_acorr_x=fft(y,500); stem(esd_x); hold on; stem(ft_acorr_x); + Kết thực : Bài 5.1 Code : len=100000; % dai dong bit mo phong SNR_db=0:2:8; % tao vecto SNR_db=0 SNR=10.^(SNR_db/10); % doi SNR tu decibel sang lan bsignal =randint(1,len); % tao dong bit ngau nhien co dai len NRZ_signal = bsignal*2-1; % bien doi dong bit sang -1 N0 =1./SNR; % phuong sai cua tap am = cong suat tap am % cho tin hieu di qua kenh nhieu trang va dai dieu che for i=1:length(SNR_db) noise = sqrt(N0(i)*randn(1,len)); % tao tap am noise r_signal=NRZ_signal+noise; %tin hieu thu duoc= tin hieu NRZ ben phat+tap am noise NRZ_decoded= sign(r_signal); % giai ma tin hieu NRZ thu duoc Pe(i)=symerr(NRZ_signal,NRZ_decoded)/len; % dem so bit loi thong %qua ham symerr() roi chia cho dai dong bit, ti so bit loi end plot(SNR_db,Pe,'bo '); % Ve thi title(' Ti le BER/SNR '); xlabel (' SNR[dB]'); ylabel (' BER '); + Kết thực : Bài 5.2 Code : len = 100000; %Do dai dong bit mo phong SNR_db = 0:2:8; %Tao vecto SNR_db = SNR = 10.^(SNR_db/10); %Doi SNR tu decibel sang lan bsignal = (rand(1,len) >= 0.5); %Tao dong bit ngau nhien dai len NRZ_signal = bsignal*2 - 1;%Bien doi dong bit sang -1 N0 = 1./SNR; %Phuong sai cua tap am = cong suat tap am %Cho tin hieu di qua kenh nhieu trang va giai dieu che for i=1:length(SNR_db) noise = sqrt(N0(i))*randn(1,len); %Tao tap am noise r_signal = NRZ_signal + noise; %Tin hieu thu duoc = Tin hieu NRZ ben phat + tap am noise NRZ_decoded = sign(r_signal); %Giai ma tin hieu NRZ thu %duoc Pe(i) = symerr(NRZ_signal,NRZ_decoded)/len; %Dem so bit loi thong qua ham symerr() roi chia cho dai dong bit ty so bit loi end plot(SNR_db,Pe,'bo '); hold on; Pe_lythuyet = (1/2)*(1-erf(sqrt(SNR/2))); % Tinh ti so bit loi theo %ly thuyet plot(SNR_db,Pe_lythuyet,'r.:'); legend('mo phong','ly thuyet'); hold off; title('ti le loi bit BER theo ty le tin hieu tren tap am SNR'); xlabel('SNR[dB]'); ylabel('BER'); + Kết thực : Bài 6.1 Code : len=50000; % dai dong bit mo phong bsignal= randint(1,len); %tao dong bit ngau nhien dai len qpsk_signal=[]; for i=1:2:length(bsignal) if bsignal(i)==0 & bsignal(i+1)==0 % anh xa tin hieu 00 -1+j qpsk_signal((i+1)/2)=exp(j*3*pi/4); elseif bsignal(i)==0 & bsignal(i+1)==1 % anh xa tin hieu 01 -1-j qpsk_signal((i+1)/2)=exp(j*5*pi/4); elseif bsignal(i)==1 & bsignal(i+1)==1 % anh xa tin hieu 11 1-j qpsk_signal((i+1)/2)=exp(j*7*pi/4); elseif bsignal(i)==1 & bsignal(i+1)==0 % anh xa tin hieu 10 1+j qpsk_signal((i+1)/2)=exp(j*pi/4); end end plot(qpsk_signal,'*'); hold on; t=0:0.01:2*pi; plot(exp(j*t),'g-.'); xlabel('I'); ylabel('Q'); title('Bieu chom QPSK'); + Kết thực : Bài 6.2 Code : len =50000; % dai dong bit mo phong bsignal= randint(1,len); % tao dong bit ngau nhien co dai len qpsk_signal=[]; for i=1:2:length(bsignal) if bsignal(i)==0 & bsignal(i+1)==0 % anh xa tin hieu 00 -1+j qpsk_signal((i+1)/2)=exp(j*3*pi/4); elseif bsignal(i)==0 & bsignal(i+1)==1 % anh xa tin hieu 01 thanh-1-j qpsk_signal((i+1)/2)=exp(j*5*pi/4); elseif bsignal(i==1) & bsignal(i+1)==1 % anh xa tin hieu 11 1+j qpsk_signal((i+1)/2)=exp(j*7*pi/4); elseif bsignal(i)==1 & bsignal(i+1)==0 % anh xa tin hieu 10 1+j qpsk_signal((i+1)/2)=exp(j*pi/4); end hold off; end Es= std(qpsk_signal).^2; % tinh cong suat ki hieu = phuong sai cua tin hieu QPSK SNR_db=6; % ti le tin hieu tren nhieu dB SNR=10^(SNR_db/10); %quy doi tu dB sang lan N0 =Es/SNR; % cong suat tap am noise = sqrt(N0/2)*(randn(size(qpsk_signal))+j*randn(size(qpsk_signal))); % %tao kenh nhieu trang voi SNR tuong ung output_signal = qpsk_signal+noise; % dau cua tin hieu QPSK sau di qua kenh nhieu trang plot(output_signal,'.'); % ve tin hieu tren thi hold on; plot(qpsk_signal,'ro'); % ve tin hieu dieu che len thi t=0:0.01:2*pi; plot(exp(j*t),'r-'); title('Tin hieu QPSK dieu che di qua kenh nhieu trang voi SNR=6dB'); xlabel('I'); ylabel('Q'); + Kết thực : Bài 7.1 Code : len = 100000; %do dai dong bit mo phong bsignal = randint(1,len); %tao dong bit ngau nhien dai len qpsk_signal = []; for i = 1:2:length(bsignal) if bsignal(i)==0&bsignal(i+1)==0 %anh xa tin hieu 00 -1+j qpsk_signal((i+1)/2) = exp(j*3*pi/4); elseif bsignal(i)==0&bsignal(i+1)==1 %anh xa tin hieu 01 -1-j qpsk_signal((i+1)/2) = exp(j*5*pi/4); elseif bsignal(i)==1&bsignal(i+1)==1 %anh xa tin hieu 11 1-j qpsk_signal((i+1)/2) = exp(j*7*pi/4); elseif bsignal(i)==1&bsignal(i+1)==0 %anh xa tin hieu 10 1+j qpsk_signal((i+1)/2) = exp(j*pi/4); end end Es = std(qpsk_signal).^2; %tinh cong suat ky hieu = phuong sai cua tin hieu QPSK SNR_db = 0:2:8; %ty le tin hieu tren nhieu SNR = 10.^(SNR_db/10); %quy doi tu dB sang lan N0 = Es./SNR; %cong suat tap am for i = 1:length(SNR_db) noise=sqrt(N0(i)/2)*(randn(size(qpsk_signal)) + j*randn(size(qpsk_signal))); %tao kenh nhieu trang voi SNR tuong ung output_signal = qpsk_signal + noise; %dau cua tin hieu QPSK sau di qua kenh nhieu trang demodulated_signal = []; %tao vecto rong tin hieu giai dieu che a = [1 0 0 1 1]; %tao vecto cac bit them vao tin hieu %giai dieu che %qua trinh giai dieu che theo phuong phap xac suat cuc dai for p = 1:len/2 d(1)=(real(output_signal(p))-real(exp(j*pi*1/4)))^2 + (imag(output_signal(p))-imag(exp(j*pi*1/4)))^2; m=1; for k = 2:4; d(k) = (real(output_signal(p))-real(exp(j*pi*(2*k-1)/4)))^2 + (imag(output_signal(p))-imag(exp(j*pi*(2*k-1)/4)))^2; if d(k)

Ngày đăng: 15/01/2022, 12:02

Từ khóa liên quan

Mục lục

  • Bài 4.1

  • Bài 4.2

  • Bài 5.1

  • Bài 5.2

  • Bài 6.1

  • Bài 6.2

  • Bài 7.1

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan