Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.62 MB, 16 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
%================================%Tinh cac thong so f, C, th%================================
f_m=91; %Tan so Doppler lon nhat
b=1; %Phuong sai cua qua trinh g(t)
N1=9; %So phan tu g(t) phan thuc mo phong
N2=10; % So phan tu g(t) phan ao mo phong
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);
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);
save ex4p1_Res f1 f2 c1 c2 th1 th2
%=======================================%Ham tao qua trinh g(t)
%=======================================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;
%=====================================%Tinh bien do kenh va ham alpha%=====================================
load ex4p1_Res f1 f2 c1 c2 th1 th2
f_s=270800; %Tan so lay mau
T_sim=0.4; %Thoi gian mo phong
t=0:1/f_s:T_sim; % Thoi gian mo phong t
title('Bien do kenh (dB)');xlabel('\alpha(t)');legend('\alpha(t)in dB',0);
%======================================%Ham tinh gia tri trung binh va % do bien doi cua g1(t), g(t), alpha(t)%Ham mat do xac suat cua cac qua trinh% bang bieu do
load ex4p1_Res f1 f2 c1 c2 th1 th2
f_s=50000; %Tan so lay mau
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;
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">mean_g=mean(g); %Gia tri trung binh cua g
mean_g1=mean(g1); % Gia tri trung binh cua g1
mean_alpha=mean(alpha); % Gia tri trung binh cua alpha
var_g=var(g); %Do bien doi cua g
var_g1=var(g1); % Do bien doi cua g1
var_alpha=var(alpha); % Do bien doi cua alpha
x=0:0.1:3; %Thoi gian tinh bang giay
b=hist(alpha,x); %Bieu do mat do xac suat cua alpha
c=hist(g1,x1); %Bieu do mat do xac suat cua g1
stem(x1,c/n1/(x1(2)-x1(1)));hold on;
title('Mat do xac suat PDF cua g1');xlabel('x');
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">%==========================================================================%Ham mo hinh kenh phan tap da duong theo phuong phap Monte Carlo
%==========================================================================function [h,t_next]
%u la bien ngau nhien duoc dung de roi rac tan so, pha cua hieu uong Doppler%number_of_summation: so luong hoac pha roi rac duoc su dung trong
%phuong phap Monte Carlo
%symbol+duration la khoang thoi gian lay mau cua tin hieu%f_fmax La tan so Doppler lon nhat
t=initial_time; %thoi gian bat dau quan sat kenh
Channel_Length=length(channel_coefficients); % Chieu dai dap ung kenh
h_vector=[]; %Vector mo hinh CIRfor k=1:Channel_Length; u_k=u(k,:);
%Mot bien ngau nhien cua k
phi=2*pi*u_k;
%tan so Doppler roi rac su dung trong 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];
%==========================================================================%Chuong trinh chinh mo phong phuong phap Monte Carlo
clear all;
%Dat cac thong so
NFFT=64; %Chieu dai FFT
t_a=8.0000e-007; %Thoi gian lay mau tin hieu 1/t_a
T_S=NFFT*t_a; %Thoi gian quan sat
f_dmax=0.0; %Tan so Doppler lon nhat
%He so cong suat tre
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">h=[]; %vector CIR
H=[]; %vector CTFfor i= 1:100;
h_i=MCM_channel_model(u,initial_time,number_of_summations,T_S,f_dmax,rho); h_i_tem=[h_i,zeros(1,NFFT-N_P)];
H_i_tem=fft(h_i_tem);
H_i=[H_i_tem(NFFT/2+1:NFFT),H_i_tem(1:NFFT/2)]; initial_time=initial_time+T_S;
h=[h;h_i]; H=[H;H_i];
xlabel('f in B=1.25MHz')ylabel('t in 1.024e-0.4s')zlabel('H(f,t)')
%==========================================================================%chuong trinh uoc luong ham tu tuong tuong quan thoi gian cua kenh%==========================================================================
clear all;NFFT=64;t_a=8.0000e-007;T_S=NFFT*t_a;
NofSymbol=1000;t=0.1;H_sequence1=[];
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">[h1]=MCM_channel_model(u,t,number_of_summations,T_S,f_dmax1,rho); [h2]=MCM_channel_model(u,t,number_of_summations,T_S,f_dmax2,rho); h_extended1=[h1,zeros(1,NFFT-length(h1))];
h_extended2=[h2,zeros(1,NFFT-length(h2))]; H1=fft(h_extended1);
H2=fft(h_extended2); H_f11=H1(3); H_f12=H2(3);
H_sequence1=[H_sequence1,H_f11]; H_sequence2=[H_sequence2,H_f12]; t=t+T_S;
time_autoc1=xcorr(H_sequence1,'coeff');time_autoc2=xcorr(H_sequence2,'coeff');tau1=-(NofSymbol-1)*T_S:T_S:(NofSymbol-1)*T_S;tau2=-(NofSymbol-1)*T_S:T_S:(NofSymbol-1)*T_S;plot(tau1,real(time_autoc1),'k.');
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">y=[a(NFFT-G+1:NFFT),a];%chen khoang bao veend
function [y] = OFDM_Demodulator(data,chnr,NFFT,G)
%Chen khoang bao ve
%=============================%Chuong trinh chinh
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">clear all;
NFFT=64; %Chieu dai NFFT
G=9; %Khoang bao ve
M_ary=16; %Dang dieu che QAM
t_a=50*10^(-9);%Thoi gian lay mau
H=fft([h,zeros(1,NFFT-N_P)]);NofOFDMSymbol=100; %So ky tu cua OFDM
length_data=(NofOFDMSymbol)*NFFT; %Chieu dai tong cong cua du lieu%Bits nguon
%Bit de ma hoa
%Dieu che QAM trong dai tan co so
%Chuan bi lay mau du lieu
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;
ser=[];%Dat so ky tu bi loi la vector rong
for snr=snr_min:step:snr_max; snr=snr-10*log10((NFFT-G)/NFFT); rs_frame=[];%Ma tran tin hieu nhan
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 da duong duoc tao ra boi phep chap
rs=conv(OFDM_signal_tem,h); %Nhieu duoc them vao
rs=awgn(rs,snr,'measured' 'dB', ); rs_frame=[rs_frame;rs]; clear OFDM_signal_tem; end;
previous_symbol=rs_frame(i-1,:);
ISI_term=previuos_symbol(NFFT+2*G+1:NFFT+G+N_P-1);
rs_i=rs_frame(i,:)+ISI; else
rs_i=rs_frame(i,:); end;
%Giai ma OFDM
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'; %Tinh toan ky tu loi
[number,ratio]=symerr(symbols,data_symbol); ser=[ser,ratio];
snr=snr_min:step:snr_max;semilogy(snr,ser,'bo');ylabel('SER');xlabel('SNR in dB');