Bao Cao Thong Tin Vo Tuyen
-
Upload
troibktroibk -
Category
Documents
-
view
227 -
download
0
Transcript of Bao Cao Thong Tin Vo Tuyen
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
1/16
Bi s 1: M phng knh Rayleigh theo phng php Rice
1.2
function X = Gt( N,t ) % Ham tao ra Gi(t)X=0;b=1;fd=91;C=sqrt(2*b/N);% Tinh Cn=[1:N];f=fd*sin(pi/2/N.*(n-1/2)); %Tinh fo=2*pi/(N+1).*n;for i=1:NX1=C*cos(2*pi*f(1,i).*t+o(1,i)); %Tinh Gi,nX=X+X1;%Tinh Giend
end
function g=G(Tsim,fs) % Ham tao ra G(t)t=[0:1/fs:Tsim];g1=Gt(9,t);g2=Gt(10,t);g=g1+j*g2;end
1.3
Tsim=0.4;Fs=270.8e3;T=[0:1/fs:Tsim];g =G(Tsim,Fs);a=abs(g);a_db=20*log10(a);
plot(t,a_db);xlabel(t);ylabel(\alpha_{dB}(t));title(Ham bien do kenh);
Kt qu m phng
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
2/16
1.4
fs=50*10^3;Tsim=20;t=[0:1/fs:Tsim];g1=Gt(9,t);g2=Gt(10,t);g=g1+j*g2;a=abs(g);m1=mean(g1);o1=std(g1);g=G(Tsim,fs);m=mean(g);o=std(g);a=abs(g);ma=mean(a);mo=std(a);
n=length(g1);dx=0.1;x=-4:dx:4;c=hist(g1,x);stem(x,c/n/dx);xlabel('x');ylabel('P(x)');title('Ham mat do phan bo xac suat cua g1');
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
3/16
hold onp=1/(sqrt(2*pi))*exp(-x.^2/2);plot(x,p,'r');legend('P{\alpha}(x)','Ham phan bo xac suat Gauss');hold off;
pausex=0:dx:4;c=hist(a,x);stem(x,c/n/dx);xlabel('x');ylabel('P(x)');title('Ham mat do phan bo xac suat cua a(t)');hold on;r= 0:dx:4;f=exp(-r.^2/2).*r;plot(r,f,'r');legend('P(x)','Ham phan bo xac suat Rayleigh');
Kt qu m phng:
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
4/16
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
5/16
Bi s 2: M phng knh fading phn tp a ng theo phngphp Monte Carlo
function [ gk ] = Data( u,L,fm,t,pfd ) % Tra ve gi(t)
n=length(u);for i=1:L
x=0;y=0;for j=1:n
o(i,j)=2*pi*u(i,j);f(i,j)=fm*sin(o(i,j));x=x+pfd(i).*cos(2*pi*f(i,j).*t+o(i,j));y=y+pfd(i).*sin(2*pi*f(i,j).*t+o(i,j));
end;gk(i,:)=x+j*y;
end;end
% Ham main.mpfd=[1,0.8487,0.7663,0.7880,0.6658,0.6658,0.5174,0.0543,0.0465];M=40;L=length(pfd);u=rand(L,M);fm=90;Nfft=64;
t_a=8e-007;ts=t_a*Nfft;t=[0:ts:999*ts];g=Data(u,L,fm,t,pfd);g=g';h=[];H=[];for i=1:length(t)
h_i=[g(i,:),zeros(1,Nfft-L)];H_i_tem=fft(h_i)*ts;% H_i=[H_i_tem(Nfft/2+1:Nfft),H_i_tem(1:Nfft/2)];
h=[h;h_i];H=[H;H_i_tem];
endtime_autoc=xcorr(H,'coeff');figure(3);mesh(real(time_autoc));xlabel('\Delta t');ylabel('\Delta f');
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
6/16
zlabel('R(\Delta f,\Delta t)');title('Ham tu tuong quan cua kenh theo thoi gian va khonggian');figure(1);mesh(abs(h));
xlabel('tre(us)');ylabel('t(s)');zlabel('h(tre,t)');title('Dap ung xung cua kenh khi fd=0(Hz)');figure(2);mesh(abs(H));ylabel('t(s)');xlabel('f(Hz)');zlabel('H(f,t)');title('Dap ung tan so cua kenh khi fd=0(Hz)');
Kt qu m phng:
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
7/16
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
8/16
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
9/16
Bi s 3: M phng h thng OFDM qua knh v tuyn
function [y] = TDuc_OFDM_Modulator( data,NFFT,G )
%G: guard length%NFFT: FFT length%chnr: number of sub carrier
chnr=length(data);N=NFFT;
x=[data,zeros(1,N-chnr)];
a=ifft(x);y=[a(NFFT-G+1:NFFT),a];
%insert the guard intervalend
function [ y ] = TDuc_OFDM_DeModulator( data,chnr,NFFT,G )%N_P: channel impulse response lengthx_remove_guard_interval=[data(G+1:NFFT+G)];
x=fft(x_remove_guard_interval);
y=x(1:chnr);
%Zero removingend
function [ h,t_next ] = TDuc_MCM_channel_model(u,initial_time,...,
number_of_summations,symbol_duration,f_dmax,channel_coefficients)t=initial_time;channel_length=length(channel_coefficients);h_vector=[];
for k=1:channel_lengthu_k=u(k,:);phi=2*pi*u_k;f_d=f_dmax*sin(2*pi*u_k);
h_tem=channel_coefficients(k)*1/(sqrt(number_of_summations))*...
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
10/16
sum(exp(j*phi).*exp(j*2*pi*f_d*t));h_vector=[h_vector,h_tem];
endh=h_vector;t_next=t+symbol_duration;
% Do thi SER cua he thong da duong bat bien theo thoi gianclear all;NFFT=64; % FFT lengthG=0; % Guard interval lengthM_ary=16; % Multilevel of M_ary symbolt_a=50*10^(-9); %Sampling duration of HiperLAN/2rho=[1,0.8487,0.7663,0.7880,0.6658,0.5644,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 symbolslength_data=(NofOFDMSymbol)*NFFT; % The total data length
%---------------% Source bites%---------------source_data=randint(length_data,sqrt(M_ary));
%--------------% bit to symbol coder%--------------
symbols=bi2de(source_data);
%--------------%QAM modulator in base band%--------------h1=modem.qammod('M',16,'SymbolOrder','Gray','InputType','Integer');QAM_symbol=modulate(h1,symbols);%QAM_symbol=QAM_symbol';%--------------%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;
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
11/16
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_maxsnr=snr-10*log10((NFFT+G)/NFFT); %Miss matching effect
rs_frame=[]; %A matrix of received signalfor i=0:NofOFDMSymbol-1
%OFDM modlator
OFDM_signal_tem=TDuc_OFDM_Modulator(Data_Pattern(i+1,:),NFFT,G);
% The receivel signal over multi-path channel is created by% covolutional operationrs=conv(OFDM_signal_tem,h);
%Additive noise is addedrs=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 symbolsdata_symbol=[];
for i=1:NofOFDMSymbol;if(N_P>G+1)&(i>1)
%if it is not the frist symbol and the length of CIR is longer%than the guard interval length then the ISI term mus the taken
%into account
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
12/16
previous_symbol=rs_frame(i-1,:);% previous OFDM symbol
ISI_term=previous_symbol(NFFT+2*G+1:NFFT+N_P-1% the position from NFFT+2G+1:NFFT+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
elsers_i=rs_frame(i,:);
end
%-----------------% OFDM demodulator%-----------------
Demodulated_signal_i=TDuc_OFDM_DeModulator(rs_i,NFFT,NFFT,G);
%-----------------%OFDM Equalization%-----------------d=Demodulated_signal_i./H;
h2=modem.qamdemod('M',16,'SymbolOrder','Gray','OutputType','Integer');
demodulated_symbol_i=demodulate(h2,d);
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];
end
snr=snr_min:step:snr_maxsemilogy(snr,ser,'r*');ylabel('SER');xlabel('SNR in dB');
Kt qu m phng:
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
13/16
% Do thi SER cua kenh phu thuoc thoi gian
clear all;NFFT=64;
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
14/16
G=9;M_ary=16;t_a=50*10^(-9);
channel_coefficients=[1,0.8487,0.7663,0.7880,0.6658,0.5644,0.517
4,0.0543,0.0465];rho=channel_coefficients;N_P=length(rho);
symbol_duration=NFFT*t_a;number_of_summations=40;
f_dmax=50;
NofOFDMSymbol=100;length_data=NFFT*NofOFDMSymbol;
source_data=randint(length_data,sqrt(M_ary));symbols=bi2de(source_data);
h1=modem.qammod('M',16,'SymbolOrder','Gray','InputType','Integer');QAM_symbol=modulate(h1,symbols);
Data_Pattern=[];
for i=0:NofOFDMSymbol-1QAM_tem=[];
for n=1:NFFTQAM_tem=[QAM_tem,QAM_symbol(i*NFFT+n)];
endData_Pattern=[Data_Pattern;QAM_tem];clear QAM_tem;
end;
Number_relz=10;ser_relz=[];for number_of_relialization=1:Number_relz
u=rand(N_P,number_of_summations);
ser=[];snr_min=0;snr_max=25;step=1;for snr=snr_min:step:snr_max
snr=snr-10*log10((NFFT-G)/NFFT);
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
15/16
rs_frame=[];h_frame=[];initial_time=0;
%--------------%Transmitter%--------------for i=0:NofOFDMSymbol-1
OFDM_signal_tem=TDuc_OFDM_Modulator(Data_Pattern(i+1,:),NFFT,G);[h,t]=TDuc_MCM_channel_model(u,initial_time,number_of_summation,symbol_duration,f_dmax,rho);
h_frame=[h_frame;h];rs=conv(OFDM_signal_tem,h);rs=awgn(rs,snr,'measured','dB');rs_frame=[rs_frame;rs];initial_time=t;clear OFDM_signal_tem;end;
%----------------%Receiver%----------------d=[];data_symbol=[];for i=1:NofOFDMSymbol;
if(N_P>G+1)&(i>1)
previous_symbol=rs_frame(i-1,:);ISI_term=previous_symbol(NFFT+2*G+1:NFFT+N_P+G-1);ISI=[ISI_term,zeros(length(previous_symbol)-length(ISI_term))];
rs_i=rs_frame(i,:)+ISI;else
rs_i=rs_frame(i,:);end
%--------------%Demodulation%--------------
Demodulated_signal_i=TDuc_OFDM_DeModulator(rs_i,NFFT,NFFT,G);
h=h_frame(i,:);H=fft([h,zeros(1,NFFT-N_P)]);d=Demodulated_signal_i./H;
h2=modem.qamdemod('M',16,'SymbolOrder','Gray','OutputType','Integer');
demodulated_symbol_i=demodulate(h2,d);
-
8/3/2019 Bao Cao Thong Tin Vo Tuyen
16/16
data_symbol=[data_symbol,demodulated_symbol_i];end;data_symbol=data_symbol';
[number,ratio]=symerr(symbols,data_symbol);
ser=[ser,ratio];end;ser_relz=[ser_relz;ser];
endser=sum(ser_relz)/Number_relz;snr=snr_min:step:snr_max;semilogy(snr,ser,'bo');ylabel('SER');xlabel('SNR in dB');
Kt qu m phng