Bao Cao Thong Tin Vo Tuyen

download Bao Cao Thong Tin Vo Tuyen

of 16

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