Professional Documents
Culture Documents
Hà nội 2010
Bài số 1: Hàm xác xuất phân bố Gauss của biến ngẫu nhiên
1.1:
• Code:
x= -4:0.05:4; % bien x lay gia tri tu (-4;4) moi gia tri cach nhau 0.05
p=1/sqrt(2*pi)*exp(-x.^2/2);
xlabel('x');
ylabel('y');
• Đồ thị
1.2
• Code
n=100000;
y=randn(1,n); % tao ma tran ngau nhien phan bo theo ham gauss
x2=-4:0.1:4;
xlabel('X');
ylabel('P(X)');
• Đồ thị
1.3:
Nhận xét:
+ Đại luợng kì vọng thể hiện giá trị trung bình cùa hàm phân bố gauss. Phương sai đặc trưng cho
độ lệch của biến x quanh một giá trị kỳ vọng.
+ Hàm phân phối xác suất gauss trong thông tin số thể hiện Nhiễu khi phát và khi thu tín hiệu
( nhiễu gauss).
+ Khi tăng kì vọng và phuơng sai thi đồ thị dich sang bên phải:
+ Đồ thị bài 1.1 và 1.2 trên cùng 1 đồ thị:
+ Thay đổi độ dài của quá trình ngẫu nhiên 1.2 lên 1000000 phần tử:
So với kết quả cũ thì kết quả mới giống hàm phân bố xác suất gauss hơn vì số điểm được lấy lớn
hơn rất nhiều. vì thế, để xét 1 quá trình ngẫu nhiên cần khảo sát nhiều điểm rời rạc.
+ Mối liên hệ giữa hàm tự tuơng quan và hàm mật độ phổ năng luợng:
• Code:
clear
for i = 1:length(SNR)
BER = c/N;
semilogy(SNR,BER,'b.-');
xlabel('Eb/No, dB');
• Đồ thị
2.2:
• Code:
clear
SNR_db=0:6;
SNR_dn_simulation=0:2:6;
for i=1:length(SNR_db)
SNR(i)=10^(SNR_db(i)/10);
gama_b(i)=SNR(i);
p(i)=1/2*[1-erf(1/sqrt(2)*sqrt(gama_b(i)))];
end
semilogy(SNR_db,p,'ro--')
xlabel('SNR');
ylabel('P');
• Đồ thị:
+ Khi tỉ số SNR tăng thì xác suất lỗi giảm do tin hiệu tăng, nhiễu giảm. giống trên đồ thị.
+ So sánh PSK va FSK: PSK có thể dùng kết hợp với ASK để tăng dung luợng đuờng truyền dẫn
số khi băng thông của kênh tuyền có giới hạn.
• Code
clear
S((i+1)/2)=exp(j*pi/4);
S((i+1)/2)=exp(j*3*pi/4);
S((i+1)/2)=exp(j*5*pi/4);
S((i+1)/2)=exp(j*7*pi/4);
end
end
save ex5p1_Res S x;
plot(S,'*');
hold on;
t=0:0.01:2*pi;
plot(exp(j*t),'r--');
xlabel('\phi(t)');
ylabel('S_m');
title('bieu do khong gian tin hieu phuc cua tin hieu dieu che QPSK');
hold off;
• Đồ thị:
3.2:
• Code:
clear;
load ex5p1_Res;
Eb=Es/2;
SNR_db=6;
N_0=Eb/10.^(SNR_db/10);
plot(R,'.');
hold on;
plot(S,'r*');
hold on;
t=0:0.01:2*pi;
plot(exp(j*t),'r--');
legend('S_m','S');
xlabel('I');
ylabel('Q');
hold off;
• Đồ thị:
Nhận xét:
+ Thay đổi tỉ số SNR trong bài 3.2 thì các chùm sao bị thi hẹp lại. Do SNR tăng nên tín hiệu tăng,
nhiễu giảm.
x=round(rand(1,10000));
Trước tiên hàm rand(1,10000) tạo 1 ma trận 1 hàng 10000 cột (dãy 10000 phần tử ) gồm các
phần tử ngẫu nhiên có giá trị trong khoảng (0,1). Sau đó hàm round làm tròn các giá trị đó tới các giá trị
nguyên gần nhất (0 hoặc 1).
Bài số 4:QPSK
4.1:
• Code:
function y=cha1(SNR_db,S,x)
Es=var(S);
Eb=Es/2;
N_0=Eb/10^(SNR_db/10);
N0=sqrt(N_0/2)*(randn(size(S))+j*randn(size(S)));
NS=S+N0;
theta_m=[pi/4,3*pi/4,5*pi/4,7*pi/4];
S_m=exp(j*theta_m);
for i=1:length(S)
d=abs(S_m-NS(i));
md=min(abs(S_m-NS(i)));
if md==d(1);
R(2*i-1)=0;
R(2*i)=0;
elseif md==d(2);
R(2*i-1)=0;
R(2*i)=1;
elseif md==d(3);
R(2*i-1)=1;
R(2*i)=1;
elseif md==d(4);
R(2*i-1)=1;
R(2*i)=0;
end
end
c=0;
for i=1:length(x)
if R(i)~=x(i);
c=c+1;
end
end
y=c;
% Main function:
clear all
load ex5p1_Res S x;
SNR_db=0:2:8;
for i=1:length(SNR_db)
c(i)=cha(SNR_db(i),S,x);
end
BEP=c/length(x);
semilogy(SNR_db,BEP,'.--');
save ex6p1_Res c BEP;
• Đồ thị:
4.2:
• Code :
clear;
SNR_db=0:8;
SNR_db_simulation=0:2:8;
for i=1:length(SNR_db)
SNR(i)=10^(SNR_db(i)/10);
gamma_b(i)=SNR(i);
p_b(i)=erfc(sqrt(2*gamma_b(i))/sqrt(2))/2;
end
semilogy(SNR_db,p_b,'ro--')
hold on
semilogy(SNR_db_simulation,BEP,'x--')
ylabel('P_b');
legend('Theory','Simulation');
hold off
• Đồ thị:
+ Xác suất lỗi bit của BPSK lớn hơn của QPSK.
+ QPSK sẽ cho tốc độ bit cao hơn so với BPSK nhưng băng thông tín hiệu không đổi hoặc ngược
lại ( băng thông tín hiệu QPSK sẽ nhỏ hơn băng thông BPSK với cùng 1 tốc độ) nên QPSK sẽ
truyền được luợng tin tức lớn hơn của BPSK.