Mô phỏng đánh giá hệ thống truyền dẫn số mimo sử dụng mã không gian thời gian

84 16 0
Mô phỏng đánh giá hệ thống truyền dẫn số mimo sử dụng mã không gian   thời gian

Đ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

TRƢỜNG ĐẠI HỌC VINH KHOA ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: “ Mô đánh giá hệ thống truyền dẫn số MIMO sử dụng mã không gian – thời gian” Giáo viên hƣớng dẫn: ThS Nguyễn Phúc Ngọc Sinh viên thực hiện: Nguyễn Tuấn Anh Lớp 51K1 - ĐTVT : Nghệ An, 2016 i BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC VINH BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Tuấn Anh Mssv: 1051080558 Ngành: Kỹ thuật điện tử , truyền thơng Niên khóa: 2010 - 2015 Giảng viên hƣớng dẫn: ThS Nguyễn Phúc Ngọc Cán phản biện: ThS Nguyễn Thị Minh Nội dung thiết kế tốt nghiệp: Nhận xét cán phản biện: Nghệ An, ngày 20 tháng năm 2016 Cán phản biện (Ký, ghi rõ họ tên ) ii LỜI CẢM ƠN Đầu tiên, em xin trân trọng cảm ơn thầy cô giáo Trƣờng Đại học Vinh nói chung thầy,cơ giáo Khoa Điện tử Viễn thơng nói riêng dạy bảo kiến thức chun mơn quan tâm chia sẻ với khó khăn học tập với chúng em suốt trình học tập trƣờng Em xin cảm ơn giảng viên Th.s.Nguyễn Phúc Ngọc hƣớng dẫn nội dung phƣơng pháp để em nắm vững kiến thức hoàn thành đồ án tiến độ Do hạn chế thời gian lực tiếp thu nên đồ án cịn nhiều thiếu sót Em kính mong nhận đƣợc ý kiến góp ý thầy bạn đển bổ sung hoàn thiện đồ án Nghệ An, tháng năm 2016 Sinh viên Nguyễn Tuấn Anh iii TÓM TẮT ĐỒ ÁN Bài viết nghiên cứu,đánh giá tổng quan hệ thống mạng MIMO Là ứng dụng rộng rãi hệ thống truyền dẫn số ngày Giúp hiểu rõ ƣu điểm hệ thống mang lại Trình bày nghiên cứu chuyên sâu kỹ thuật mã hóa không gian - thời gian :mã khối không gian – thời gian (STBC) mã lƣới không gian - thời gian (STTC) Mô xác xuất lỗi hệ thống thơng qua tỷ số tín hiệu nhiễu (SNR) Từ kết mô mã khối không gian – thời gian (STBC) mã lƣới không gian – thời gian (STTC), ta nhận thấy xác xuất lỗi BER mã STTC thấp so với mã STBC ABSTRACT This paper research, evaluation overview of MIMO network As one of the widely used in digital transmission systems today Help better understand the advantages of the system brings Presents an in-depth study on space – time coding techniques : space – time block coding (STBC) and space – time trellis coding (STTC) Simulation error probability of the system through the signal to noise ratio (SNR) From the simulation results space – time block codes (STBC) and space – time trellis codes (STTC), I noticed the error probability BER of code STTC lower than STBC code iv MỤC LỤC LỜI CẢM ƠN iii TÓM TẮT ĐỒ ÁN iv THUẬT NGỮ VÀ TỪ VIẾT TẮT ix LỜI NÓI ĐẦU xii CHƢƠNG TỔNG QUAN VỀ HỆ THỐNG MIMO 1.1 Giới thiệu .1 1.2 Hệ thống MIMO 1.2.1 Dung lượng hệ thống MIMO 1.2.2 Dung lượng hệ thống MIMO máy phát biết CSI 1.2.3 Dung lượng hệ thống MIMO máy phát chưa biết CSI 1.2.4 Các trường hợp đặc biệt 1.2.5 Dung lượng kênh ngẩu nhiên 10 1.2.6 Ảnh hưởng tương quan Fading dung lượng MIMO 13 1.2.7 Ảnh hưởng LOS dung lượng kênh MIMO 17 1.2.8 Ảnh hưởng XPD dung lượng kênh MIMO 18 1.3 Các loại máy thu sử dụng hệ thống MIMO .20 1.4 Các phƣơng pháp tăng mức độ đa dạng đƣờng truyền MIMO 21 1.5 Ƣu điểm nhƣợc điểm hệ thống MIMO 23 1.6 Kết luận chƣơng 23 CHƢƠNG KỸ THUẬT MÃ HÓA KHÔNG GIAN - THỜI GIAN 24 2.1 Giới thiệu 24 2.2 Mã khối không gian thời gian 24 2.3 Mã lƣới không gian - thời gian STTC .26 2.3.1 Giới thiệu 26 2.3.2 Nguyên lý mã hóa mã lưới 27 2.3.3 Giải mã lưới theo thuật toán Viterbi 28 2.3.4 Ưu, nhược điểm thuật toán giải mã Viterbi 32 2.4 Điều chế giải điều chế BPSK 33 2.4.1 Nguyên tắc khóa dịch pha nhị phân 33 v 2.5 Kết luận chƣơng 35 CHƢƠNG MÔ PHỎNG HỆ THỐNG MIMO SỬ DỤNG MÃ STC 36 3.1 Giới thiệu 36 3.2 Mã khối không gian - thời gian STBC 36 3.2.1 Giới thiệu .36 3.2.2 Mã không gian- thời gian Alamouti 36 3.2.3 Kết hợp tỉ số tối đa (MRC-Maximum Ratio Combining) 38 3.2.4 Các đặc điểm phương pháp Alamouti 39 3.2.5.Cấu trúc chung mã khối không gian thời gian STBC 39 3.3 Mã lƣới Trellis không gian – thời gian STTC .42 3.3.1 Giới thiệu 42 3.3.2 Hệ thống mã không gian - thời gian 42 3.4 Xây dựng mã STTC 44 3.4.1 Hiệu suất STTC 46 3.5 So sánh STBC với STTC 47 3.6 Kết mô 48 3.7 Kết luận chƣơng 50 KẾT LUẬN 51 TÀI LIỆU THAM KHẢO 52 PHỤ LỤC 53 vi DANH MỤC HÌNH VẼ Hình 1.1: Các cấu hình hệ thống vơ tuyến Hình 1.2 Sơ đồ hệ thống MIMO Hình 1.3 Sơ đồ thuật toán “Water-filling” Hình 1.4 Biểu diễn tốc độ Ergodic non-Ergodic 11 Hình 1.5 Dung lượng Ergodic cho cấu hình anten khác 12 Hình 1.6 Vấn đề tương quan 14 Hình 1.7 Vấn đề đồng vi kênh WLAN 18 Hình 1.8 Dung lượng kênh MIMO với XPD hồn tồn khơng có XPD 20 Hình 2.1 Sơ đồ khối mã hóa không gian thời gian .24 Hình 2.2 Sơ đồ mã lưới .27 Hình 2.3 Biểu diễn sơ đồ mã hóa mã lưới .28 Hình 2.4 Sơ đồ lưới X (2,1,2) 28 Hình 2.5 Trọng số Hamming t=1 29 Hình 2.6 Trọng số hamming t2 .30 Hình 2.7 Trọng số hamming t3 .30 Hình 2.8 Trọng số hamminh t4 .31 Hình 2.9 Trọng số hamming t5 .32 Hình 2.10 Trọng số hamming t6 32 Hình 2.11 Quá trình biến đổi tín hiệu điều chế BPSK 34 Hình 2.12 Tín hiệu điều chế BPSK 34 Hình 3.1 Sơ đồ khối mã hóa khơng gian-thời gian Alamouti 37 Hình 3.2 Mẫu phân tập phát hai anten Alamouti .38 Hình 3.3 Kết hợp tỉ số tối đa với Tx hai Rx 39 Hình 3.4 Bộ mã hóa STBC 41 Hình 3.5 Kết mô hoạt động BER với mẫu anten khác 41 Hình 3.6 Sơ đồ đường feedforward mã STTC điều chế BPSK 45 Hình 3.7 Mơ mã khối khơng gian – thời gian( STBC) qua điều chế BPSK 48 Hình 3.8.Mô mã lưới không gian – thời gian qua điều chế BPSK .49 Hình 3.9 Mơ STBC STTC qua điều chế BPSK với Tx=2,Rx=2 .49 vii DANH SÁCH BẢNG BIỂU Bảng 3.1 Giới hạn BPSK STTC với anten truyền dành cho kênh Fading chậm dựa vào tiêu chuẩn trace 46 Bảng 3.2 Giới hạn 8-PSK STTC với anten truyền dành cho kênh Fading chậm dựa vào tiêu chuẩn trace 47 viii THUẬT NGỮ VÀ TỪ VIẾT TẮT A ACI Adjacent Channel Interference Nhiễu kênh lân cận A/D Analog/Digital Chuyển đổi tƣơng tự-số AM Amplitude Modulation Điều chế biên độ Additive White Gausian Noise Nhiễu Gauss trắng cộng BER Bit Error Rate Tốc độ lỗi bit BPSK Binary Phase Shift Keying Điều chế pha nhị phân Co-Channel Interference Nhiễu đồng kênh AWGN B C CCI CDMA Code Division Multiple Access Đa truy nhập phân chia theo mã CP Cycle Prefix Tiền tố lặp Discrete Fourier Transform Phép biến đổi Fourier rời D DFT DM rạc Các phút suy giảm Degraded Minutes chất lƣợng E ES Errored Seconds Các giây bị lỗi Frequency Division Ghép kênh phân chia theo tần số FM Multiplexing Frequency Modulation FFT Fast Fourier Transform F FDM Điều chế tần số Phép biến đổi nhanh G GP Guard Period Khoảng bảo vệ ix Fourier I ICI Nhiễu sóng mang Inter-carrier Interference lân cận IDFT IEEE IFFT Phép Fourier Transform Institute of Electrical and Electronics Fourier rời rạc Engineers tử Phép biến đổi ngƣợc Inverse Fast Fourier Transform biến đổi Inverse Discrete ngƣợc Viện kỹ thuật điện điện Fourier nhanh ISI InterSymbol Interference Nhiễu liên ký tự LAN Local Area Network Mạng máy tính cục LOS Line Of Sight Tầm nhìn thẳng Multiple Access Interference Nhiễu đa truy nhập L M MAI MIMO Multiple Input Multiple Output Hệ thống đa đầu vào đa đầu MMSE Minimum Mean Square Error Trung bình bình phƣơng lỗi nhỏ MUI Nhiễu đa ngƣời dùng Multi User Interference N NLOS Đƣờng truyền không Non line of sight có tầm nhìn thẳng O OLOS Tầm nhìn thẳng bị Obstructed Line Of Sight che chắn P PAPR Peak to Average Power Ratio Công suất đỉnh cơng suất trung bình P/S Chuyển đổi song song/nối Parrallel/ Serial tiếp x Channel_Est=1; % uoc luong kenh truyen M=2; % kieu dieu che BPSK for tuananh=1 %truong hop MIMO-STTC 2x2 SNR_loop = [0:1:16]; Tx_antennas = 2;% so anten phat Rx_antennas = 2;%so anten thu [dlt,slt,md] = ltable2('2_State_BPSK',Rx_antennas);%tao ma tran sinh BER = []; for j = 1:length(SNR_loop) SNR(j) = SNR_loop(j);%ty so tin hieu tren nhieu NPW = 10^(-SNR(j)/10);%cong suat nhieu packet = 5000;%so goi du lieu phat di error = 0; for i=1:packet j i signala =randint(1,fft_len*framelen,2);% tao chuoi tin hieu phat tinhieu2=modulation(signala,M) ; % thuc hien dieu che tin hieu cac trang thai encoded_data = trellis_encoder(reshape(tinhieu2,[],1),dlt,slt);% ma hoa che tin tin hieu mod_sig = modul(encoded_data,md,1);% hieu % cho qua kenh truyen dieu [signal,ch_coefs] = channel(mod_sig,20,'Rayleigh',SNR(j),Rx_antennas,Tx_antenn as); [est_coefs,signal]=est(signal,ch_coefs,1,Rx_antennas) ;% uoc luong ch_coefs=est_coefs; [data_est,state_est] detect(signal,dlt,slt,ch_coefs);% = giai dieu che,giai tin hieu data_est=demodulation(reshape(data_est,1,[]),M);% giai dieu che trang thai bit_true = reshape(signala , 1,[]); real_true = sign(real(bit_true)); bit_est = reshape( data_est , 1,[]); real_est = sign(real(bit_est)); error = error + sum( abs(real_true - real_est)); end BER = [BER,error/(packet*fft_len*framelen)] ; end end x2=BER; semilogy(SNR_loop,BER,'r-x','LineWidth',2); axis([0 16 10^-6 1]); grid on; xlabel('SNR (dB)'); ylabel('Bit error rate (BER)'); hold on; legend('STTC(BPSK,2state,2x2)'); title('BER cua STBC dieu che BPSK'); branch_metric.m ma function metric = branch_metric(sig,q_test,ch_coefs) [n,m] = size(ch_coefs); [q_dim,foo] = size(q_test); sig = repmat(sig,q_dim,1); outsum = 0; for j=1:m % outer sum insum = 0; for i=1:n % inner sum insum1 = ch_coefs(i,j) * q_test(:,i); insum = insum + insum1; end outsum1 = abs(sig(:,j) - insum) ^ 2; outsum = outsum + outsum1; end channel.m function varargout = channel(sig,temp,fading,snr,RxDiv,Tx) ch_conf=[Tx RxDiv]; [sig_length,space_dim,frames] = size(sig); spowr=sum(abs(sig(:,1,1)))/sig_length; sigma =sqrt(0.5*spowr* (10 ^ (0.1 *- snr))); const = sqrt(2); switch fading case 'Rayleigh' ch_coefs = (randn(ch_conf(1),ch_conf(2),frames) + i * randn(ch_conf(1),ch_conf(2),frames))/const ; ch_noise = (randn(sig_length+temp,ch_conf(2),frames) + i * randn(sig_length+temp,ch_conf(2),frames)) * sigma ; case 'AWGN' ch_coefs = ones(ch_conf(1),ch_conf(2),frames); ch_noise = (randn(sig_length+temp,space_dim,frames) + i * randn(sig_length+temp,space_dim,frames)) * sigma; end if(Tx==1) ch_coefs=[ ch_coefs; ch_coefs]; end if temp temp1=sig; sig=[zeros(20,2,frames); sig]; temp=[]; pilots=[0 0 0 0 0 -1 -1 1;1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0]; for k=1:frames sig(:,:,k)=[pilots.'; temp1(:,:,k)]; end end for k = 1:frames % no 3D arrays multiplication is available sig_add(:,:,k) = sig(:,:,k) * ch_coefs(:,:,k); end % signal mixture sig_corr = (sig_add + ch_noise); varargout = {sig_corr,ch_coefs}; demodulation.m function [ signal ] = demodulation( input,M ) [x,y]=size(input); if (M==4) signal=zeros(x,2*y); l=1; j=1; for k=1:x for n=1:y if(input(k,n)==0) signal(j,l)=0; signal(j,l+1)=0; l=l+2; elseif(input(k,n)==1) signal(j,l)=0; signal(j,l+1)=1; l=l+2; elseif(input(k,n)==2) signal(j,l)=1; signal(j,l+1)=1; l=l+2; elseif(input(k,n)==3) signal(j,l)=1; signal(j,l+1)=0; l=l+2; end end j=j+1; l=1; end detect.m function [data_est,state_est] = detect(sig_down,dlt,slt,ch_coefs) [step_final,space_dim,frames] = size(sig_down); [s,md,foo] = size(dlt); for k = 1:frames % running multi-dimensional Viterbi algorithm % make all starting paths unprobable except for the correct one metric(1,2:s) = realmax; for l = 1:step_final for j = 1:s % current j % finding all previous states s_pre leads to current sate j [s_pre,foo] = find(slt == j); % determining a pair position relevant to the state j % {1,2,3,4,5,6,7,8} -> {1,2,3,4,1,2,3,4} pos = mod(j - 1,md) + 1; % picking-up the pairs corresponding to each of s_pre states data_test = dlt(s_pre,pos,:); data_test = reshape(data_test,[md 2]); % mapping pairs to appropriate constellation if(md==2) q_test = data_test*2-1; elseif(md==4) expr = i * pi /md; q_test = 0.5*exp(expr * (3+2*data_test)); elseif(md==8) expr = i * pi /md; for f=1:s if(data_test(f,1)>3) q_test(f,1) = 0.5*sqrt(2)/sqrt(5)*exp(expr * (6+4*data_test(f,1))); else q_test(f,1) = sqrt(2)/sqrt(5)*exp(expr * (6+4*data_test(f,1))); end if(data_test(f,2)>3) q_test(f,2) = 0.5*sqrt(2)/sqrt(5)*exp(expr * (6+4*data_test(f,2))); else q_test(f,2) sqrt(2)/sqrt(5)*exp(expr * (6+4*data_test(f,2))); end end end % evaluating branch metric metric_d= ranch_metric(sig_down(l,:,k),q_test,ch_coefs(:,:,k)); % adds the data_test metrices to the previous states = metric_md = metric(l,s_pre)' + metric_d; % choosing a metric with lowest accumulated value [metric_min,metric_pos] = min(metric_md); % and storing it's value to the matrix of metrices metric(l + 1,j) = metric_min; % creates a states matrix of s_pre (with lowest metric) vit_state(l + 1,j) = s_pre(metric_pos); % creates a matrix of appropriate data_test vit_data(l + 1,j) = pos - 1; end end % finding the best path at the trellis end [foo,state_best] = min(metric(end,:)); state_est(step_final + 1) = state_best; % back tracking for l = step_final:-1:1 state_est(l) = vit_state(l + 1,state_est(l + 1)); data_est(l,:,k) = vit_data(l + 1,state_est(l + 1)); end end end est.m function [est_coefs,signal]=est(signal,ch_coefs,frames,RxDiv) pilots=[0 0 0 0 0 -1 -1 1;1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0]; pilots=pilots.'; tr_symbols=signal(1:20,:,:); signal=signal(21:end,:,:); for k=1:frames if RxDiv==2 h11=mean(tr_symbols(11:20,1,k).*conj(pilots(11:20,1))); h12=mean(tr_symbols(1:10,1,k).*conj(pilots(1:10,2))); h21=mean(tr_symbols(11:20,2,k).*conj(pilots(11:20,1))); h22=mean(tr_symbols(1:10,2,k).*conj(pilots(1:10,2))); est_coefs(:,:,k)=[[h11;h12] [h21; h22]]; else h11=mean(tr_symbols(11:20,1,k).*conj(pilots(11:20,1))); h21=mean(tr_symbols(1:10,1,k).*conj(pilots(1:10,2))); est_coefs(:,:,k)=[h11;h21]; end end unction [dlt,slt,md]=ltable2(option,Rx_antennas) switch option case '2_State_BPSK' md=2; s=2; otherwise disp('Wrong option !!'); end ltable2.m function [dlt,slt,md]=ltable2(option,Rx_antennas) switch option case '2_State_BPSK' md=2; s=2; otherwise disp('Wrong option !!'); end % State matrix generator base = reshape(1:s,md,s/md)'; slt = repmat(base,md,1); % Data matrix generator for j = 1:md l = j - 1; ak = bitget(l,1); bk = bitget(l,2); dk = bitget(l,3); ek = bitget(l,4); switch md case % BPSK for i=1:s k=i-1; ak_1=bitget(k,1); bk_1=bitget(k,2); switch s case dlt(i,j,1)=mod( ak_1,md);%rank & determinant croteria dlt(i,j,2) = mod(ak,md); end end end end end modul.m function sig_modul = modul(data,md,Channel_Est) [frame_length,space_dim,frames]=size(data); for k = 1:frames switch md case expr = pi * i / md; q(:,:,k) =(data(:,:,k))*2-1; case expr = pi * i / md; q(:,:,k)=0.5*exp(expr * (3+2*data(:,:,k))); case for g=1:space_dim for h=1:frame_length if(data(h,g,k)>=4) expr = pi * i / md; q(h,g,k) =0.5*sqrt(2)/sqrt(5)*exp(expr * (6+4*data(h,g,k))); else expr = pi * i / md; q(h,g,k) =sqrt(2)/sqrt(5)*exp(expr * (6+4*data(h,g,k))); end end end end modulation.m function [ signal ] = modulation(input,M) [x y]=size(input); if(M==4) signal=zeros(x,y/2); l=1; j=1; for k=1:x for n=1:2:y if(input(k,n:n+1)==[0 0]) signal(j,l)=0; l=l+1; elseif (input(k,n:n+1)==[0 1]) signal(j,l)=1; l=l+1; elseif (input(k,n:n+1)==[1 0]) signal(j,l)=3; l=l+1; elseif (input(k,n:n+1)==[1 1]) signal(j,l)=2; l=l+1; end end j=j+1; l=1; end elseif (M==2) signal=zeros(1,y); l=1 ; j=1; for k=1:x for n=1:y if(input(k,n)==[0]) signal(j,l)=0; l=l+1; elseif (input(k,n)==[1]) signal(j,l)=1; l=l+1; end end j=j+1; l=1; end elseif(M==8) signal=zeros(1,y/3); l=1; j=1; for k=1:x for n=1:3:y if(input(k,n:n+2)==[0 0]) signal(j,l)=0; l=l+1; elseif (input(k,n:n+2)==[0 1]) signal(j,l)=1; l=l+1; elseif (input(k,n:n+2)==[0 0]) signal(j,l)=3; l=l+1; elseif (input(k,n:n+2)==[0 1]) signal(j,l)=2; l=l+1; elseif (input(k,n:n+2)==[1 0]) signal(j,l)=4; l=l+1; elseif (input(k,n:n+2)==[1 1]) signal(j,l)=5; l=l+1; elseif (input(k,n:n+2)==[1 0]) signal(j,l)=7; l=l+1; elseif (input(k,n:n+2)==[1 1]) signal(j,l)=6; l=l+1; end end j=j+1; l=1; end end trellis_encoder.m function enc_data = trellis_encoder(data,dlt,slt) [fr_length,l,frames] = size(data); s = 1; % setting up initial state for k = 1:frames for i = 1:fr_length d = data(i,1,k) + 1; % data_dim=1 % stc encoder enc_data(i,:,k) = dlt(s,d,:) ; % stc s = slt(s,d,:) % stc encoder ; encoder end encoder end [1] % stc ... thời gian :mã khối không gian – thời gian (STBC) mã lƣới không gian - thời gian (STTC) Mô xác xuất lỗi hệ thống thơng qua tỷ số tín hiệu nhiễu (SNR) Từ kết mô mã khối không gian – thời gian. .. truyền dẫn số MIMO sử dụng mã không gian – thời gian? ?? Nội dung đồ án bao gồm chƣơng nhƣ sau : CHƢƠNG : TỔNG QUAN VỀ HỆ THỐNG MIMO CHƢƠNG : KỸ THUẬT MÃ LƢỚI KHÔNG GIAN- THỜI GIAN CHƢƠNG : MÔ PHỎNG... tập theo không gian thời gian trƣớc truyền đi.[2] 1.2 Hệ thống MIMO Trong phần ta mô tả cách tổng quát hệ thống MIMO phân tích dung lƣợng hệ thống MIMO so với hệ thống SISO, SIMO,MISO Giả sử băng

Ngày đăng: 01/08/2021, 10:39

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan