1. Trang chủ
  2. » Tất cả

Thí nghiệm thông tin vô tuyến bài số 2 mô phỏng hệ thống sử dụng điều chế qpsk qua kênh rayleigh

19 30 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Thí nghiệm thông tin vô tuyến bài số 2 mô phỏng hệ thống sử dụng điều chế QPSK qua kênh Rayleigh
Tác giả Nguyễn Hồ Giang Nam
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Thông tin vô tuyến
Thể loại Báo cáo thí nghiệm
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 19
Dung lượng 266 KB

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

Nội dung

Báo cáo thí nghiệm thông tin vô tuyến TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG THÍ NGHIỆM THÔNG TIN VÔ TUYẾN Họ và tên Nguyễn Hồ Giang Nam Lớp CTTN ĐTTT K64 MSSV 20193030 Mã lớp TN 7248[.]

Trang 1

THÍ NGHIỆM THÔNG TIN VÔ TUYẾN

Trang 2

Hà Nội, 2023

Trang 3

BÀI SỐ 1 MÔ PHỎNG KÊNH RAYLEIGH THEO PHƯƠNG PHÁP RICE 2

Bài 1.1 2

Bài 1.2 3

Bài 1.3 3

Bài 1.4 4

BÀI SỐ 2 MÔ PHỎNG HỆ THỐNG SỬ DỤNG ĐIỀU CHẾ QPSK QUA KÊNH RAYLEIGH 7 Bài 2.1 7

Bài 2.2 8

BÀI SỐ 3 PHÂN TẬP TRONG THÔNG TIN VÔ TUYẾN 10

Bài 3.1 11

Bài 3.2 12

BÀI SỐ 4 MÔ PHỎNG HỆ THỐNG OFDM QUA KÊNH VÔ TUYẾN 13

Bài 4.1 13

Bài 4.2 16

Trang 4

BÀI SỐ 1 MÔ PHỎNG KÊNH RAYLEIGH THEO PHƯƠNG PHÁP

RICE

Mô phỏng kênh vô tuyến theo phương pháp RICE: Phương pháp Rice được hiểu là phương pháp mô hình các quá trình xác suốt sử dụng các hàm tuần hoàn,tuy nhiên các tham số như chu kì dao động pha và biên độ được xác định trước.Đối với phương pháp Monte Carlo thì các tham số này được xác định ngẫu nhiên

Bài 1.1

i n fi ,n Ci ,n θi , n[ rad]

Bài 1.2

function y = g_function(c, f, th, t)

y = zeros(size(t));

Trang 5

for n = 1:length(f)

y = y + c(n) * cos(2 * pi * f(n) * t + th(n));

end

Bài 1.3

clear;

load bai11_res f1 f2 c1 c2 th1 th2

fs = 270800;

Tsim = 0.4;

t = 0:1/fs:Tsim;

g1 = g_function(c1, f1, th1, t);

g2 = g_function(c2, f2, th2, t);

g = g1 + 1i * g2;

a_dB = 20 * log10(abs(g));

plot(t, a_dB);

title('The channel amplitude in dB');

xlabel('t');

ylabel('\alpha(t)');

legend('\alpha(t) in dB');

Kết quả:

Hình 1.1 The channel amplitube

Bài 1.4

clear;

load bai11_res f1 f2 c1 c2 th1 th2

fs = 50000;

Tsim = 20;

t = 1:1/fs:Tsim;

g1 = g_function(c1, f1, th1, t);

g2 = g_function(c2, f2, th2, t);

g = g1 + 1i * g2;

a = abs(g);

Trang 6

g_mean = mean(g);

g_var = var(g);

a_mean = mean(a);

a_var = var(a);

n = length(a);

x = 0:0.1:3;

b = hist(a, x);

figure(1);

stem(x, b/n/(x(2)-x(1)));

hold on;

k = 0;

ohm_p = 2;

p_a = (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_a, 'r');

title('The PDF of \alpha(x)');

xlabel('x');

ylabel('P_{\alpha}(x)');

legend('P_{\alpha}(x)', 'Rayleigh distribution (Theory)');

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

title('The PDF of g1 process');

xlabel('x');

ylabel('P_{g1}(x)');

legend('P_{g1}(x)', 'Gaussian distribution (Theory)');

hold off;

Kết quả:

Trang 7

Hình 1.2 Gaussian distribution

Hình 1.3 Rayleigh distribution

Nhận xét: Hàm phân phối Reyleight so với hàm α (t) có hình dạng tương tự nhau, so với phân phối Gauss thì hàm anlpha không đối xứng

Kết quả mô phỏng và lý thuyết là giống nhau.

Trang 8

BÀI SỐ 2 MÔ PHỎNG HỆ THỐNG SỬ DỤNG ĐIỀU CHẾ QPSK

QUA KÊNH RAYLEIGH

Bài 2.1

Hàm receiver.m

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)

c=c+1;

end

end

chann_1=c;

Hàm Main của Bai2_1.m

clear;

x = round(rand(1,100000));

for i = 1:2:length(x)

if x(i)==0 & x(i+1)==0

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

elseif x(i)==0 & x(i+1)==1

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

elseif x(i)==1 & x(i+1)==1

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

elseif x(i)==1 & x(i+1)==0

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

end

end

S=S(1:20000);

x=x(1:40000);

Trang 9

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;

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

for i=1:length(S)/4

gS_m(4*i-3:4*i)=S_m.*g(4*i-3:4*i);

end

SNR_db=0:5:30;

for i=1:length(SNR_db)

c(i)=receiver(SNR_db(i),S_m,FS,x,S,g);

end

BER=c/length(x);

save Bai2_1 BER;

semilogy(SNR_db,BER,'. ');

title('The bit error probability of QPSK over a fading channel');

xlabel('SNR in dB');

ylabel('P_b');

Kết quả:

SNR in dB

10-4

10-3

10-2

10-1

100

The bit error probability of QPSK over a fading channel

Bài 2.2

clear;

Trang 10

SNR_db=0:5:30;

Y_b=2*b*10.^(SNR_db/10);

p_b=(1-sqrt(Y_b./(1+Y_b)))/2;

k=semilogy(SNR_db,p_b,'* ');

set(k,'LineWidth',1);

hold on;

load Bai2_1 BER;

semilogy(SNR_db,BER,'ro');

hold off;

title('BER of slow flat Rayleigh fading channel');

xlabel('Y_b');

ylabel('P_b');

legend('Theory','Simulation');

Kết quả:

Y

b

10 -4

10 -3

10 -2

10 -1

100

BER of slow flat Rayleigh fading channel

Theory Simulation

Nhận xét: Khi ta tăng tỷ số SNR lên thì tỷ lệ lỗi bit sẽ giảm dần và SNR lớn thì mô

phỏng cho kết quả lỗi bit thấp hơn trên lí thuyết

So sánh với trường hợp điều chế QPSK qua kênh nhiễu Gauss Kênh Rayleigh có tir lệ

lỗi bit cao hơn nhiều so với kênh Gauss khi xét cùng một mức tỉ số SNR

pb lý thuyết 0.1464 0.0642 0.0233 0.0077 0.0025

BER mô phỏng 0.1626 0.0716 0.0215 0.0056 0.0018

Trang 11

BÀI SỐ 3 PHÂN TẬP TRONG THÔNG TIN VÔ TUYẾN

Hàm g.m

function h = g(t);

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

phi1=rand(size(f1))*2*pi;

f2=f_m*sin(pi/2/N2*((1:N2)-1/2));

c2=sqrt(2*b/N2)*ones(size(f2));

phi2=rand(size(f2))*2*pi;

y1 = zeros(size(t));

for n=1:length(f1);

y1 = y1 + c1(n)*cos(2*pi*f1(n).*t + phi1(n));

end;

y2 = zeros(size(t));

for n=1:length(f2);

y2 = y2 + c2(n)*cos(2*pi*f2(n).*t + phi2(n));

end;

h = y1 + j*y2;

clear y1,y2;

Bai3.m

x = round(rand(1,1000000));

S = qammod(x,2,'Inputtype','bit');

Es = var(S);

Eb = Es/2;

fs = 270800;

T_sym = 1/fs;

t = (0:length(S)-1)*T_sym;

SNR_db = -10:30;

L = [1 2 3 4];

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

Pb = zeros(length(L),length(SNR_db));

for a=1:length(L)

for i=1:length(SNR_db)

N_0 = Eb/10^(SNR_db(i)/10);

N0 = sqrt(N_0/2)*(randn(size(S)) + j*randn(size(S)));

z = zeros(1,length(S));

Trang 12

for l=1:L(a)

h = g(t);

y = S.*h;

y = y + N0;

w = conj(h);

z = z + y.*w;

end

r = zeros(1,1000000);

for j=1:length(z)

if z(j) > 0

r(j) = 1;

end

if z(j) <= 0

r(j) = 0;

end

end

count = 0;

for n=1:length(x)

if r(n) == x(n)

count = count + 1;

end

end

BER(a,i) = 1 - count/length(x);

SNR = 10^(SNR_db(i)/10);

mu = sqrt(SNR/(SNR+1));

for l=1:L(a)

Pb(a,i) = Pb(a,i) + ((0.5*(1-mu))^L(a))*nchoosek(L(a)+l-2,l-1)*((0.5*(1+mu))^(l-1));

end

clear j;

clear n;

end

end

Bài 3.1

plot(SNR_db, BER(2,:),'b-')

hold on;

plot(SNR_db, Pb(1,:),'r ');

hold on;

plot(SNR_db, Pb(2,:),'g ');

legend('BER(1)','Pb(1)','Pb(2)');

xlabel('SNR_{dB}');

ylabel('BER/P_b');

hold off;

Kết quả:

Trang 13

-10 -5 0 5 10 15 20 25 30

SNRdB 0

0.05 0.1 0.15 0.2 0.25 0.3

0.35

BER(1) Pb(1) Pb(2)

Bài 3.2

plot(SNR_db, BER,'-')

hold on;

plot(SNR_db, Pb(),' ');

legend('BER(1)','BER(2)','BER(3)','BER(4)','Pb(1)','Pb(2)','Pb( 3)','Pb(4)');

hold off;

Kết quả:

SNR dB 0

0.05 0.1 0.15 0.2 0.25 0.3

0.35

BER(1) BER(2) BER(3) BER(4) Pb(1) Pb(2) Pb(3) Pb(4)

Q3.1 Khi số ăng-ten sử dụng tăng lên thì tỷ lệ lỗi bit càng nhỏ, do sử dụng càng nhiều

anten càng tối ưu được công suất truyền và hạn chế được nhiễu không thể kiểm soát của kênh fading Rayleigh

Trang 14

Q3.2 Các anten phải độc lập xác suất với nhau để tín hiệu truyền đi từ các anten là độc

lập, không gây nhiễu lên nhau gây méo tín hiệu.

Q3.3 Để đảm bảo được tính độc lập thì các anten bên thu phải được sắp xếp cách đều

nhau và cách nhau một số nguyên lần nửa bước sóng.

Trang 15

BÀI SỐ 4 MÔ PHỎNG HỆ THỐNG OFDM QUA KÊNH VÔ TUYẾN

Bài 4.1

OFDM_Modulator.m

function [y]=OFDM_Modulator(data,NFFT,G);

chnr=length(data);

N=NFFT;

x=[data,zeros(1,NFFT-chnr)]; %insert the guard interval

OFDM_Demoodulator.m

function [y]=OFDM_Demodulator(data,chnr,NFFT,G);

%insert the guard interval

x_remove_guard_interval=[data(G+1:NFFT+G)];

x=fft(x_remove_guard_interval);

y=x(1:chnr); %Zero removing

Bai4_1.m

clear all;

NFFT=64; %FFT length

G=9; % Guard interval length

M_ary=16; % Multilevel of M-ary symbol

t_a=50*10^(-9); % Sampling duration of HiperLAN/2

%load rho.am-ascii; % load discrete multi-path channel profile

rho=[1,0.8487,0.7663,0.7880,0.6095,0.6658,0.5174,0.0543,0.0465];

h=sqrt(rho);

N_P=length(rho);

H=fft([h,zeros(1,NFFT-N_P)]);

NofOFDMSymbol=100; % Number of OFDM symbol

length_data=(NofOFDMSymbol)*NFFT; % The total data length

%

-% Source bites

%

-source_data=randi([0,1],length_data,sqrt(M_ary));

%

-% bit to symbol coder

%

-symbols=bi2de(source_data);

Trang 16

%

-% QAM modulator in base band

%

-QAM_Symbol=dmodce(symbols,1,1,'qam',M_ary);

%

-% Preparing data pattern

%

-Data_Pattern=[];% Transmitted Signal before IFFT

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=[]; % Set the counter of symbol error ratio to be a empty vector snr_min=0;

snr_max=25;

step=1;

for snr=snr_min:step:snr_max

snr=snr-10*log10((NFFT+G)/NFFT);% Miss matching effect

rs_frame=[];% A Matrix of received signal

for i=0:NofOFDMSymbol-1

% OFDM modulator

OFDM_signal_tem=OFDM_Modulator(Data_Pattern(i+1,:),NFFT,G); % The received signal over multi-path channel is created by a % convolutinal operation

rs=conv(OFDM_signal_tem,h);

% Additive noise is add

rs=awgn(rs,snr,'measured','dB');

rs_frame=[rs_frame;rs];

clear OFDM_signal_tem;

end

%

-% Receiver

%

-Receiver_Data=[];% Prepare a matrix for received data symbols

d=[]; % Demodulated symbols

Trang 17

for i=1:NofOFDMSymbol

if(N_P>G+1)&&(i>1)

% If it is not first symbol and the length of CIR is longer than % the guard interval length,then the ISI term must be taken into % accout

previous_symbol=rs_frame(i-1,:);

% The previous OFDM symbol

ISI_term=previous_symbol(NFFT+2*G+1:NFFT+G+N_P+1);

% Position from NFFT+2G+1:NFFT+G+N_P-1 is ISI term

ISI=[ISI_term,zeros(1,length(previous_symbol)-length(ISI_term))]; rs_i=rs_frame(i,:)+ISI;

% the ISI term is added to the current OFDM symbol

else

rs_i=rs_frame(i,:);

end

%

-% OFDM Demodulator

%

-Demolated_signal_i=OFDM_Demodulation(rs_i,NFFT,NFFT,G);

%

-% OFDM Equalization

%

-d=Demolated_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';

% Calculation of error symbols

[number,ratio]=symerr(symbols,data_symbol);

ser=[ser,ratio];

save Bai3_1 ser;

end

snr=snr_min:step:snr_max;

semilogy(snr,ser,'bo');

ylabel('SER');

xlabel('SNR in dB');

Trang 18

0 5 10 15 20 25

SNR in dB

10 -2

10 -1

10 0

Hình 3.4 SER of an OFDM system over a multi-path channel

Bài 4.2

G=0;

Trang 19

0 5 10 15 20 25

SER

10 -2

10 -1

100

G=0 G=9

Hình 3.5 Comparision of SER of an OFDM system with and without guard interval

SER(G=0) 0.78734375 0.7246875 0.6109375 0.48171875 0.33875 0.2484375

SER(G=9) 0.7865625 0.710937

Q4.1 Tiền tố vòng : là cách chèn khoảng bảo vệ để tránh ISI, ngta sử dụng một số lượng

mẫu ở cuối ofdm symbol đưa lên đầu để tạo một khoảng bảo vệ giữa hau kí hiệu liên tiếp

Q4.2 Tín hiệu OFDM là tín hiệu phức khi truyền qua kênh phần thực sẽ nhân một sóng

mang cos, còn phần ảo sẽ nhân một sóng mang hình sin tạo hệ trực giao

Q4.3 SER của G=9 thấp hơn SER của G=0, tuy nhiên khi SNR bé thì tỉ số SER là như

nhau, điều này chứng tỏ điều quan trọng của khoảng bảo vệ và tiền tố vòng crc

Ngày đăng: 16/02/2023, 23:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w