vô tuyến

Embed Size (px)

Citation preview

Bi s 1:M PHNG KNH RAYLEIGH THEO PHNG PHP RICE M phng knh v tuyn theo phng php RICE: Phng php Rice c hiu l phng php m hnh cc qu trnh xc sut s dng cc hm tun hon,tuy nhin cc tham s nh chu k dao ng pha v bin c xc nh trc.i vi phng php Monte Carlo th cc tham s ny c xc nh ngu nhin 1.1 Tnh cc thng s

i ,n = 2Bit i 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 n 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10

n N i +1b=1 N1 =9fi ,n (Hz )

Ci ,n =N 2 =10

2b Ni

fi ,n = f m sin[

1 ( n )] 2Ni 2

f m =91

Ci ,n

i ,n ( rad )

0.1385 0.4155 0.6926 0.9696 1.2467 1.5237 1.8007 2.0778 2.3558 0.1247 0.3742 0.6236 0.8731 1.1226 1.3720 1.6215 1.8709 2.1204 2.3698

0.47 0.47 0.47 0.47 0.47 0.47 0.47 0.47 0.47 0.44 0.44 0.44 0.44 0.44 0.44 0.44 0.44 0.44 0.44

0.6283 1.2566 1.8849 2.5132 3.1415 3.7699 4.3982 5.0265 5.6548 0.5711 1.1423 1.7135 0.2077 0.2596 0.3115 0.3634 0.4154 0.4673 0.5192

1.2 % Thit lp hm matlab tnh gi (t ) vi i=1,2.S dng cc bin u vo%Ham tao mot tien trinh xac dinh 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)); end;

i ,n , Ci ,n , fi ,n v t nh

1.3 Vit hm matlab a ra bin knh % dB (t ) = 20log %t ) . S dng i ,n , Ci ,n ( phng l Tsim = 0.4s v tn s ly mu f X Code:

% % % % (t ) =| g (t ) |=| g 1(t ) + jg 2(t ) | v v hm , fi ,n v N i ly t bng.Thi gian m = 270.8Khz

%============================ % Tinh toan cac tham so mo phong %============================ clear f_m=91; %Tan so Doppler lon nhat b=1; %phuong sai pha hoac thanh phan vuong goc N1=9; %so tin hieu hinh sin co thanh phan pha N2=10; %so tin hieu hinh sin co thanh phan vuong goc 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)=f_m*sin(pi*(n-0.5)/(2*N2)); th2(n)=2*pi*n/(N2+1); end save ex1p4 f1 f2 c1 c2 th1 th2 % Create a deterministic process by rice method clear; load ex1p4 f1 f2 c1 c2 th1 th2 f_s=270800; %the carrier frequency in Hertz T_sim=0.4; %simulation time in seconds t=0:1/f_s:T_sim; %discrete time interval 2

g1=g(c1,f1,th1,t);%generation of process g1 by using the function"g.m" g2=g(c2,f2,th2,t); g=g1+j*g2; alpha=abs(g); alpha_dB=20*log10(alpha); plot(t,alpha_dB); title('Bien do kenh theo dB'); xlabel('\He so alpha(t)'); legend('\alpha(t) theo dB',0);

Result:

1.4 % % % To hm g1 (t ), g (t ), (t ) vi tn s ly mu f s =50Khz thi gian Tsim =20s Code:%================================ % bai 4.1 %================================ clear f_m=91; 3

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)=f_m*sin(pi*(n-0.5)/(2*N2)); th2(n)=2*pi*n/(N2+1); end save ex4p1_Res f1 f2 c1 c2 th1 th2 %============================================== %So sanh ket qua mo phong voi % phan bo Gaussian va Rayleigh %============================================== clear; load ex1p4 f1 f2 c1 c2 th1 th2 f_s=50000; %tan so song mang T_sim=20; %thoi gian mo phong 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); g_variance=var(g); g1_mean=mean(g1); g1_variance=var(g1); alpha_mean=mean(alpha); alpha_variance=var(alpha); n=length(alpha); x=0:0.1:3; % khoang thoi gian b=hist(alpha,x); figure(1); stem(x,b/n/(x(2)-x(1))); hold on; k=0; % he so Rice ohm_p=2; % Tong cong suat thu 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('Ham phan bo PDF cua alpha(x)'); 4

xlabel('x'); ylabel('P_{\alpha}(x)'); legend('p_{\alpha}(x)','Phan bo Rayleigh (li thuyet)'); hold off; figure(2); n1=length(g1); x1=-4:0.1:4; % thoi gian bao ve tinh theo giay 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('Phan bo PDF cua ham g1); xlabel('x'); ylabel('P_{g1}(x)'); legend('p_{g1}(x)','Phan bo Gaussian (li thuyet)'); hold off;

Result:

Rayleigh distribution(Theory and result obtained by the channel simulator

5

Gaussian distribution(Theory and result obtained by the channel simulator) Bi s 2:M PHNG KNH FADINH PHN TP A NG THEO PHNG PHP MONTE CARLO 2.1 M hnh knh phn tp a ng vi b rng bng tn ca h thng B=1.25MHz.So snh hm truyn t ca knh cho cc trng hp tn sf D ,max = 0.0 , f D ,max= 5.0 ,f D ,m= Hz Hz ax 500.0 , Hz

Code:%================================================================= ========= %Mo hinh kenh phu thuoc thoi gian theo Phuong phap Monte Carlo %================================================================= ========= function [h,t_next] =MCM_channel_model(u,initial_time,number_of_summations,symbol_duration,f_dmax,chan nel_coefficients); %u la mot bien ngau nhien duoc dung de roi rac hoa tan so Doppler %va roi rac hoa ve phase %number_of_summation la so luong tan so roi rac hoac 6

%phase roi rac trong Phuong phap Monte Carlo %symbol_duration la do rong thoi gian cua mot ky hieu. Trong 1 he thong don song mang % no chinh la khoang thoi gian cua mot lan lay mau %f_fmax la tan so Doppler lon nhat %channel_coefficients la he so cua kenh t=initial_time; %initial time at which the channel is observed Channel_Length=length(channel_coefficients); % channel impulse response length h_vector=[]; %a vecto dap ung xung cua kenh da duoc mo hinh hoa for k=1:Channel_Length; u_k=u(k,:); %mot bien ngau nhien cho tuyen truyen dan k phi=2*pi*u_k; %Tan so Doppler roi rac cho Phuong phap Monte Carlo f_d=f_dmax*sin(2*pi*u_k); h_tem=channel_coefficients(k)*1/ (sqrt(number_of_summations))*sum(exp(j*phi).*exp(j*pi*f_d*t)); h_vector=[h_vector,h_tem]; end; h=h_vector; t_next=initial_time+symbol_duration; %Do on dinh thoi gian cua bieu tuong tiep theo end %Chuong trinh chinh cua Phuong phap Monte Carlo clear all; %thiet lap cac thong so NFFT=64; %do dai FFT t_a=8.0000e-007; %khoang thoi gian lay mau, bang thong bang 1/t_a T_S=NFFT*t_a; %thoi gian o cua so quan sat number_of_summations=40; %So cac phep tong theo Phuong phap M_C f_dmax=500.0; %Tan so Doppler lon nhat channel_profile=[1.0000,0.8487,0.7663,0.7880,0.6658,0.6658,0.5174,0.0543,0.0456]; %channel profile rho=channel_profile; N_P=length(rho); %Do dai dap ung xung cua kenh u=rand(N_P,number_of_summations); %Tao cac bien ngau nhien cho N_P tuyen truyen dan initial_time=1.1; 7

%thoi diem khoi dong h=[]; %CIR vector H=[]; %CTF vector for i= 1:100; h_i=MCM_channel_model(u,initial_time,number_of_summations,T_S,f_dmax,rho); %he so CIR h_i_tem=[h_i,zeros(1,NFFT-N_P)]; H_i_tem=fft(h_i_tem); %He so CTF H_i=[H_i_tem(NFFT/2+1:NFFT),H_i_tem(1:NFFT/2)]; %Sap xep lai de ve do thi initial_time=initial_time+T_S; %quan sat kenh o cua so tiep theo h=[h;h_i]; H=[H;H_i]; end; %ve dap ung xung cua kenh figure(1); mesh(abs(h)) xlabel('\tau trong 8.0e-7s') ylabel('t trong 1.024e-0.4s') zlabel('h(\tau,t)') title('Tan so Doppler 5.0Hz') %ve CTF figure(2); mesh(abs(H)) xlabel('f bang 9.7KHz') %9.7 KHz la khoang cach tan so ylabel('t trong 1.024e-0.4s') zlabel('H(f,t)') title('f_{D,max}=500.0Hz')

Result:

8

Hm truyn t ca knh khng vi fD, max=0.0 Hz

9

Hm truyn t ca knh khng vi fD, max=5.0 Hz

10

Hm truyn t ca knh khng vi fD, max=500.0 Hz 2.2 So snh hm t tng quan thi gian ca knh cho 2 trng hp v f D ,max =90.0Hzf D ,max =9.0Hz

Code:%================================================================= ========= %Ham tu tuong quan thoi gian cua kenh %================================================================= ========= clear all; 11

NFFT=64; t_a=8.0000e-007; T_S=NFFT*t_a; number_of_summations=40; f_dmax=90.0; channel_profile=[1.0000,0.8487,0.7663,0.7880,0.6658,0.5644,0.5174,0.0543,0.0465]; rho=channel_profile; N_P=length(rho); u=rand(N_P,number_of_summations); T_S=NFFT*t_a; NofSymbol=1000; t=0.1; H_sequence=[]; for i=0:NofSymbol-1; [h]=MCM_channel_model(u,t,number_of_summations,T_S,f_dmax,rho); h_extended=[h,zeros(1,NFFT-length(h))]; H=fft(h_extended); H_f1=H(3); H_sequence=[H_sequence,H_f1]; t=t+T_S; end; time_autoc=xcorr(H_sequence,'coeff'); tau=-(NofSymbol-1)*T_S:T_S:(NofSymbol-1)*T_S; plot(tau,real(time_autoc),'k.'); xlabel('\Delta t theo giay); ylabel('Ham tuong quan thoi gian R(\Delta t)'); legend('f_{D,max}=9.0Hz','f_{D,max}=90.0Hz'); hold on;

Result:

12

13

Bi s 3:M PHNG H THNG OFDM QUA KNH V TUYN 3.1 M phng h thng a sng mang tn trc giao (OFDM) s dng cc thng s ly chun HyperLan/2 : Bng tn h thng B=20Mhz Khong thi gian ly mu Ts =1/B=50ns di FFT:N=64 Khong bo v G=9(mu) Lc iu ch tt c cc sng mang l 16-QAM.Knh l knh bin thin theo thi gian m t s lc v knh a ng ri rc p[k].V th SER(t l k hiu li)ca h thng a ng trn v cho SNR=0,1,,25dB Code:function [y] = OFDM_Modulator(data,NFFT,G) chnr=length(data); N=NFFT; x=[data,zeros(1,NFFT-chnr)]; %Zero padding a=ifft(x);%fft y=[a(NFFT-G+1:NFFT),a];%chen khoang bao ve end function [y] = OFDM_Demodulation(data,chnr,NFFT,G) % chen khoang bao ve x_remove_gaurd_interval=[data(G+1:NFFT+G)]; x=fft(x_remove_gaurd_interval); y=x(1:chnr);%bo khong end

%============================= %Ham chinh %============================ clear all; NFFT=64; %do dai FFT G=9; %Khoang bao ve M_ary=16; %Ky hieu M muc t_a=50*10^(-9);%Thoi gian lay mau trong he thong HyperLAN/2 channel_profile=[1.0000,0.8487,0.7663,0.7880,0.6658,0.5644,0.5174,0.0543,0.0465]; rho=channel_profile; h=sqrt(rho); N_P=length(rho); % Do dai dap ung xung cua kenh H=fft([h,zeros(1,NFFT-N_P)]); NofOFDMSymbol=100; %So bieu tuong OFDM length_data=(NofOFDMSymbol)*NFFT; %Tong do dai du lieu %-----------%Cac bit nguon %-----------14

source_data=randint(length_data,sqrt(M_ary)); %-----------%ma hoa ky hieu %-----------symbols=bi2de(source_data); %-----------%dieu che QAM o bang tan co ban %-----------QAM_Symbol=dmodce(symbol,1,1,'qam',M_ary); %-----------%chuan bi mau du lieu %-----------Data_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=[];%thiet lap ty le loi ky hieu bang rong snr_min=0; snr_max=25; step=1; for snr=snr_min:step:snr_max; snr=snr-10*log10((NFFT-G)/NFFT);%hieu ung khong tuong thich rs_frame=[];%Ma tran tin hieu thu for i=0:NofOFDMSymbol-1; %Dieu che OFDM OFDM_signal_tem=OFDM_Modulator(Data_Pattern(i+1,:),NFFT,G); %Tin hieu nhan duoc qua kenh phan tap da duong duoc tao ra %theo phep tich chap rs=conv(OFDM_signal_tem,h); %Nhieu cong duoc bo sung vao rs=awgn(rs,snr,'measured','dB'); rs_frame=[rs_frame;rs]; clear OFDM_signal_tem; end; %-----------------%qua trinh thu %-----------------Receiver_Data=[];%Khoi tao mot ma tran cho ky hieu thu d=[];%Giai dieu che cac ky hieu 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); ISI=[ISI_term,zeros(1,length(previuos_symbol)-length(ISI_term))]; rs_i=rs_frame(i,:)+ISI; else 15

rs_i=rs_frame(i,:); end; %---------------------%giai dieu che OFDM %----------------------Demodulated_signal_i=OFDM_Demodulator(rs_i,NFFT,NFFT,G); %-----------------------%can chinh OFDM %------------------------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'; %tinh toan cac ky hieu loi [number,ratio]=symerr(symbols,data_symbol); ser=[ser,ratio]; end; snr=snr_min:step:snr_max; semilogy(snr,ser,'bo'); ylabel('SER'); xlabel('SNR theo dB');

Result:

16

T l li tn hiu (SER) qua knh phn tp a ng 3.2 Cc thng s ca h thng OFDM c la chn bi 8.1 ngoi tr khong bo v c t l 0 mu.Knh khng ph thuc thi gian.V SER ca h thng v so snh kt qu nhn c t 3.1 Code :G=0; %Khoang bao ve channel_profile=[1.0000,0.6095,0.4945,0.3940,0.2371,0.1900,0.1159,0.0699,0.0462];

Result:

So snh SER ca h thng OFDM khi c v khng c khong bo v 3.3 Code:clear all; NFFT=64; G=9; M_ary=16; 17

t_a=50*10^(-9); channel_profile=[1.0000,0.8487,0.7663,0.7880,0.6658,0.6658,0.5174,0.0543,0.0465]; rho=channel_profile; N_P=length(rho); %-----------------------%Cac tham so cua kenh Monte Carlo %---------------------------------symbol_duration=NFFT*t_a; number_of_summations=40; f_dmax=50.0; NofOFDMSymbol=1000; length_data=(NofOFDMSymbol)*NFFT; %--------------------%Source %--------------------source_data=randint(length_data,sqrt(M_ary)); %-----------------%bit de ma hoa ki tu %--------------------symbols=bi2de(source_data); %--------------%Dieu bien QAM o bang goc %---------------------\ QAM_Symbol=dmodce(symbols,1,1,'qam',M_ary); %-----------%Khoi tao du lieu %-----------Data_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; Number_Relz=50; 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); rs_frame=[]; h_frame=[]; initial_time=0; for i=0:NofOFDMSymbol-1; OFDM_signal_tem=OFDM_Modulator(Data_Pattern(i+1,:),NFFT,G); 18

[h,t]=MCM_channel_model(u,initial_time,number_of_summations,symbol_duration,f _dmax,rho); h_frame=[h_frame;h]; rs=conv(OFDM_signal_tem,h); rs=awgn(rs,snr,'Thong so do duoc','dB'); rs_frame=[rs_frame;rs]; initial_time=t; clear OFDM_signal_tem; end; %---------%Nhan duoc %-----------Reciver_Data=[]; 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+G+N_P-1); ISI=[ISI_term,zeros(1,length(previous_symbol)-length(ISI_term))]; rs_i=rs_frame(i,:)+ISI; else rs_i=rs_frame(i,:); end; %----------------------%giai dieu che FDM %----------------------Demodulated_signal_i=OFDM_Demodulator(rs_i,NFFT,NFFT,G); %------------%Can bang OFDM %--------------h=h_frame(i,:); H=fft([h,zeros(1,NFFT-N_P)]); 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; ser_relz=[ser_relz;ser]; end; ser=sum(ser_relz)/Number_Relz; snr=snr_min:step:snr_max; semilogy(snr,ser,'bo'); ylabel('SER'); xlabel('SNR theo dB'); legend('Time-invariant channel, f_{D,max}=80.0Hz'); hold on;

19

20