BÀI THÍ NGHIỆM THÔNG TIN VÔ TUYẾN... Đồ thị hàm mật độ xác suất PDF của ~g1t * Nhận xét:- PDF của ~g1t có giá trị xấp xỉ với giá trị PDF của phân phối chuẩn, đồ thị hàm mật độ xác suất
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG ĐIỆN – ĐIỆN TỬ
-BÀI THÍ NGHIỆM MÔN HỌC
THÔNG TIN VÔ TUYẾN (ET3180Q)
Họ và tên sinh viên : Trần Vũ Nhân
Nhóm thí nghiệm : 737488
Hà Nội, 2023
Trang 2BÀI THÍ NGHIỆM THÔNG TIN VÔ TUYẾN
Mục đích:
Làm quen với phần mềm mô phỏng Matlab.
Thực hiện mô phỏng một số mô hình kênh vô tuyến.
Thực hiện đươc các phép xử lý tín hiệu cơ bản trên các bo mạch khả trình DSP
So sánh các kết quả mô phỏng được với lý thuyết
Yêu cầu:
Sinh viên chuẩn bị kiến thức về sử dụng phần mềm mô phỏng Matlab.
Các bài thí nghiệm được làm và lưu vào các file dạng M-File.
Sinh viên phải chuẩn bị kiến thức về làm việc với các bo mạch DSP
Chú ý:
Sinh viên đọc trước nội dung bài thí nghiệm, chuẩn bị trước phần lý thuyết trước buổi làm thí nghiệm.
Sinh viên sau khi làm xong các bài thí nghiệm, làm báo cáo thí nghiệm theo phần hướng dẫn báo cáo thí nghiệm ở phần cuối tài liệu.
Sinh viên nộp báo cáo thí nghiệm theo đúng lịch hẹn (nộp online sau mỗi buổi thí nghiệm và nộp bản cứng sau khi kết thúc đợt thí nghiệm).
Bài thí nghiệm đạt khi sinh viên hoàn tất các bài thí nghiệm với kết quả mô phỏng chính xác, trả lời đầy đủ và chính xác các câu hỏi, đồng thời nộp báo cáo thí nghiệm đúng lịch hẹn.
Trang 3NỘI DUNG CHÍNH
BÀI THÍ NGHIỆM THÔNG TIN VÔ TUYẾN _ NỘI DUNG CHÍNH _ BÀI SỐ 1: MÔ PHỎNG KÊNH FADING RAYLEIGH BÀI SỐ 2: MÔ PHỎNG HỆ THỐNG SỬ DỤNG ĐIỀU CHẾ QPSK QUA KÊNH RAYLEIGH _ BÀI SỐ 4: MÔ PHỎNG HỆ THỐNG OFDM TRUYỀN QUA KÊNH VÔ TUYẾN _
Trang 4BÀI SỐ 1: MÔ PHỎNG KÊNH FADING RAYLEIGH
PHỤ LỤC BÀI 1 Bài 1.1:
f_m=91;
b=1;
N1=9;
N2=10;
for n=1:1:N1;
c1(n)=sqrt(2*b/N1);
f1(n)=f_m*sin(pi*(n-0.5)/(2*N1));
th1(n)=2*pi*n/(N1+1);
end
for n=1:1:N2
c2(n)=sqrt(2*b/N2);
f2(n)=fm*sin(pi*(n-0.5)/(2*N2));
th2(n)=2*pi*n/(N2+1);
end
save ex4p1_Res f1 f2 c1 c2 th1 th2
Bài 1.2:
function y=g(c,f,th,t)
y=zeros(size(t));
for n=1:length(f);
y=y+c(n)*cos(2*pi*f(n).*t+th(n));
Trang 5Bài 1.3:
load exp41_Res f1 f2 c1 c2 th1 th2
f_s=270800;
T_sim=0.4;
t=0:1/f_s:T_sim;
g1=g(c1,f1,th1,t);
g2=g(c2,f2,th2,t);
g=g1+j*g2;
alpha=abs(g);
alpha_dB=20*log10(alpha);
plot(t,alpha_dB);
title(‘The channel amplitude in dB’);
xlabel(‘t’);
ylabel(‘\alpha(t)’);
legend(‘\alpha(t) in dB’,0);
Kết quả mô phỏng:
Trang 6Bài 1.4:
load exp41_Res f1 f2 c1 c2 th1 th2
f_s=50000;
T_sim=20;
t=0:1/f_s:T_sim;
g1=g(c1,f1,th1,t);
g2=g(c2,f2,th2,t);
g=g1+j*g2;
alpha=abs(g);
g_mean=mean(g);
Trang 7g1_mean=mean(g1);
g1_variance=var(g1);
alpha_mean=mean(alpha);
alpha_variance=var(alpha);
n=length(alpha);
x=0:0.1:3;
b=hist(alpha,x);
figure(1);
stem(x,b/n/(x(2)-x(1)));
hold on;
k=0;
ohm_p=2;
p_alpha=(2*x*(k+1)/ohm_p).*exp(-k-((k+1)*x.^2/ohm_p)).*besseli(0, (2*x.*sqrt(k*(k+1)/ohm_p)));
plot(x, p_alpha,'r');
title('The PDF of alpha(x)');
xlabel('x');
ylabel('P_{\alpha}(x)');
legend('p_{\alpha}(x)','Rayleigh distribution (Theory)');
hold off;
figure(2);
n1=length(g1);
x1=-4:0.1:4;
c=hist(g1, x1);
stem(x1, c/n1/(x1(2)-x1(1)));
hold on;
p=(1/sqrt(2*pi))*exp(-x1.^2/2);
plot(x1, p, 'r');
Trang 8title('The PDF of g1 process');
xlabel('x');
ylabel('P_{g1}(x)');
legend('p_{g1}(x)', 'Gaussian distribution (Theory)');
hold off;
Kết quả mô phỏng:
Đồ thị hàm mật độ xác suất (PDF) của ~ α (t )
Trang 9Đồ thị hàm mật độ xác suất (PDF) của ~ g1(t )
(*) Nhận xét:
- PDF của ~ g1(t ) có giá trị xấp xỉ với giá trị PDF của phân phối chuẩn, đồ thị hàm mật độ
xác suất (PDF) của ~ g1(t ) gần như trùng với đồ thị hàm mật độ xác suất (PDF) của phân
phối chuẩn.
- PDF của ~ α (t ) có giá trị xấp xỉ với giá trị PDF của phân bố Rayleigh, đồ thị hàm mật độ
xác suất (PDF) của ~ α (t ) gần như trùng với đồ thị hàm mật độ xác suất (PDF) của phân
phối Rayleigh.
Trang 10BÀI SỐ 2: MÔ PHỎNG HỆ THỐNG SỬ DỤNG ĐIỀU CHẾ QPSK
QUA KÊNH RAYLEIGH PHỤ LỤC BÀI 2 Bài 2.1:
function chann_1=receiver(SNR_db,S_m,FS,x,S,g)
Es=var(S);
Eb=Es/2;
N_0=Eb/10^(SNR_db/10);
N0=sqrt(N_0/2)*(randn(size(FS))+j*randn(size(FS)));
NFS=(FS+N0)/g;
for i=1:length(FS)
d=abs(S_m-NFS(i));
md=min(d);
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);
Trang 11end
end
chann_1=c;
end
S=1:20000;
x=1:40000;
f_m=91;
b=1/2;
N1=9;
N2=N1+1;
f1=f_m*sin(pi/2/N1*((1:N1)-1/2));
c1=sqrt(2*b/N1)*ones(size(f1));
th1=rand(size(f1))*2*pi;
f2=f_m*sin(pi/2/N2*((1:N2)-1/2));
c2=sqrt(2*b/N2)*ones(size(f2));
th2=rand(size(f2))*2*pi;
f_s=270800;
T_symb=1/f_s;
t=(0:length(S)-1)*T_symb;
function y1=g(c,f,th,t)
y=zeros(size(t));
for n=1:length(f)
y=y+c(n)*cos(2*pi*f(n).*t+th(n));
end
end
g1=g(c1,f1,th1,t);
g2=g(c2,f2,th2,t);
g=g1+j*g2;
FS=g.*S;
theta_m=[pi/4,3*pi/4,5*pi/4,7*pi/4];
S_m=exp(j*theta_m);
Trang 12end
SNR_db=0:5:30;
for i=1:length(SNR_db);
c(i)=receiver(SNR_db(i),S_m,FS,x,S,g);
end
BEP=c/length(x);
semilogy(SNR_db,BEP,’. ‘)’;
title(‘The bit error probability of QPSK over a fading channel’); xlabel(‘SNR in dB’);
ylabel(‘P_b’);
Trang 13Đồ thị tỷ lệ lỗi bit BER của hệ thống
Bài 2.2
b=1/2;
SNR_db=0:5:30;
Gamma_average=2*b*10.^(SNR_db/10);
p_b=(1-sqrt(Gamma_average./(1+ Gamma_average)))/2;
semilogy(SNR_db,p_b,’r ‘);
hold on;
semilogy(SNR_db,BEP,’bo’);
hold off;
title(‘BEP of slow flat Rayleigh fading channel’);
xlabel(‘\gamma_b’);
ylabel(‘P_b’);
legend(‘BEP of QPSK over a fading channel (Theory)’,’ (Simulation)’);
Kết quả mô phỏng:
Trang 15BÀI SỐ 4: MÔ PHỎNG HỆ THỐNG OFDM TRUYỀN QUA
KÊNH VÔ TUYẾN PHỤ LỤC BÀI 4 Bài 4.1:
function [y] = OFDM_Modulator(data,NFFT,G)
chnr=length(data);
N=NFFT;
x=[data,zeros(1,NFFT-chnr)];
a=ifft(x);
y=[a(NFFT-G+1:NFFT),a];
end
function [y] = OFDM_Demodulator(data,chnr,NFFT,G)
x_remove_gaurd_interval=[data(G+1:NFFT+G)];
x=fft(x_remove_gaurd_interval);
y=x(1:chnr);
end
clear all;
NFFT=64;
G=9;
M_ary=16;
t_a=50*10^(-9);
channel_profile=[1.0000,0.8487,0.7663,0.7880,0.6658,0.5644,0.5174,0.0543,0.046
5];
rho=channel_profile;
h=sqrt(rho);
N_P=length(rho);
H=fft([h,zeros(1,NFFT-N_P)]);
NofOFDMSymbol=100;
length_data=(NofOFDMSymbol)*NFFT;
source_data=randit(sqrt(M_ary),length_data);
Trang 16Data_Pattern=[];
for i=0:NofOFDMSymbol-1;
QAM_tem=[];
for n=1:NFFT;
QAM_tem=[QAM_tem,QAM_Symbol(i*NFFT+n)];
end;
Data_Pattern=[Data_Pattern;QAM_tem];
clear QAM_tem;
end;
ser=[];
snr_min=0;
snr_max=25;
step=1;
for snr=snr_min:step:snr_max;
snr=snr-10*log10((NFFT-G)/NFFT);
rs_frame=[];
for i=0:NofOFDMSymbol-1;
OFDM_signal_tem=OFDM_Modulator(Data_Pattern(i+1,:),NFFT,G); rs=conv(OFDM_signal_tem,h);
rs=awgn(rs,snr,'measured','dB');
rs_frame=[rs_frame;rs];
clear OFDM_signal_tem;
end;
Receiver_Data=[];
d=[];
data_symbol=[];
for i=1:NofOFDMSymbol;
if(N_P>G+1)&(i>1)
previous_symbol=rs_frame(i-1,:);
ISI_term=previuos_symbol(NFFT+2*G+1:NFFT+G+N_P-1);
Trang 17rs_i=rs_frame(i,:)+ISI;
else
rs_i=rs_frame(i,:);
end;
Demodulated_signal_i=OFDM_Demodulator(rs_i,NFFT,NFFT,G); d=Demodulated_signal_i./H;
demodulated_symbol_i=ddemodce(d,1,1,'QAM',M_ary); data_symbol=[data_symbol,demodulated_symbol_i];
end;
data_symbol=data_symbol';
[number,ratio]=symerr(symbols,data_symbol);
ser=[ser,ratio];
end;
snr=snr_min:step:snr_max;
semilogy(snr,ser,'bo');
ylabel('SER');
xlabel('SNR in dB');
Trang 18Kết quả mô phỏng:
Bài 4.2: