Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 137 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
137
Dung lượng
3,15 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐỒ ÁN TỐT NGHIỆP Đề tài: NGHIÊN CỨU KỸ THUẬT MÃ HĨA KHƠNG GIAN THỜI GIAN TRONG HỆ THỐNG MIMO OFDM 2.5.1 Ưu điểm 22 2.5.2 Nhược điểm 22 2.5.3 Ứng dụng kỹ thuật OFDM Việt Nam 22 2.6 Hệ thống MIMO 23 2.6.1 Kỹ thuật phân tập 23 2.6.1.1 Phân tập thời gian 24 2.6.1.2 Phân tập tần số 25 2.6.1.3 Phân tập không gian 25 2.6.1.4 Phân tập phát .25 2.6.1.5 Phân tập thu .25 2.6.2 Kỹ thuật MIMO 26 2.6.2.1 Các mơ hình hệ thống MIMO .26 2.6.2.2 SISO - Single Input Single Output 26 2.6.2.3 SIMO – Single Input Multiple Output .27 2.6.2.4 MISO - Multiple Input Single Output .27 2.6.2.5 MIMO - Multiple Input Multiple Output 27 2.7 Kết luận chương 29 CHƯƠNG 3: MÃ HĨA KHƠNG GIAN- THỜI GIAN 30 3.1 Giới thiệu chương 30 3.2 Tổng quan kỹ thuật mã hóa khơng gian - thời gian .30 3.2.1 Hệ thống mã hóa khơng gian thời gian 30 3.3 Mã trellis không gian-thời gian .32 3.3.1 Tổng quan .32 3.3.2 Nguyên lý mã hóa mã lưới 33 3.3.3 Nguyên lý giải mã mã lưới 35 3.3.3.1 Giải mã sử dụng giản đồ lưới 35 3.3.3.2 Khoảng cách Hamming giải mã lưới 35 Mục lục 3.3.3.3 Giải mã sử dụng thuật toán Viterbi 37 3.3.3.4 Bộ mã hóa STTC .41 3.3.3.5 Bộ giải mã STTC .43 3.4 Mã hóa khối không gian thời gian STBC 43 3.4.1 Sơ đồ Alamouti anten phát với anten thu 44 3.4.1.1 Mã hóa truyền dẫn 45 3.4.1.2 Bộ kết hợp 46 3.4.1.3 Quy tắc định khả cực đại 47 3.4.3 Kỹ thuật OSTBC tăng số anten phát Tx=3, 50 3.4.3 STBC MIMO – OFDM .54 3.5 Kết luận chương 56 CHƯƠNG 4: ĐÁNH GIÁ KỸ THUẬT PHÂN TẬP BẰNG MÃ HÓA .58 4.1 Giới thiệu chương 58 4.2 Mơ kỹ thuật mã hóa STTC với số trạng thái lưới khác 58 4.2.1 Thông số mô 58 4.2.2 Kết mô đánh giá kỹ thuật mã hóa STTC 59 4.3 Mơ kỹ thuật mã hóa STBC theo mơ hình Alamouti 60 4.3.1 Thơng số .60 4.3.2 Kết mô kỹ thuật STBC – OFDM theo mơ hình Alamouti 61 4.4 Mô kỹ thuật STBC với TX=3, kênh truyền Rayleigh Rician 63 4.4.1 Thông số mô 63 4.4.2 Kết mô kỹ thuật STBC – Alamouti tăng số anten phát TX=2, 3, .64 4.4.3 Kết mô kỹ thuật STBC - Alamouti kênh truyền Fading Rayleigh Rician với Tx=2,4 , Rx=1,2,4 66 4.5 Mô so sánh hai kỹ thuật STBC STTC 67 4.5.1 Thông số mô 67 Mục lục 4.6 Kết luận chương 70 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI .72 TÀI LIỆU THAM KHẢO .74 Danh mục bảng biểu, hình vẽ DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ Bảng 3.1 Mã hóa chuỗi ký hiệu phát cho sơ đồ phân tập phát hai anten Bảng 3.2 Định nghĩa đáp ứng kênh truyền anten phát anten thu Bảng 3.3 Ký hiệu tín hiệu thu hai anten thu Hình 1.1 Các đường tính hiệu khác kênh truyền vơ tuyến Hình 1.2 Kênh fading Hình 1.3 Mơ hình hóa kênh truyền đa đường với đáp ứng xung thay đổi thời gian tuyến tính Hình 1.4 fading phẳng Hình 1.5 Trải trễ đa đường Hình 1.6 Fading lựa chọn tần số Hình 1.7 Đáp ứng xung xấp xỉ với fading lựa chọn tần số Hình 2.1 Phổ tần tín hiệu theo FDM OFDM Hình 2.2 Phổ sóng trực giao Hình 2.3 Sơ đồ khối kỹ thuật OFDM Hình 2.4 Chèn loại bỏ khoảng bảo vệ Hình 2.5: Giải thích ý nghĩa chèn CP Hình 2.6 Phân tập thời gian Hình 2.7: Mơ hình hệ thống MIMO tiêu biểu Hình 2.8: Các hệ thống SISO, SIMO MISO Hình 2.9: Hệ thống MIMO Hình 3.1 Sơ đồ khối mã hóa khơng gian thời gian Hình 3.2 Sơ đồ khối mã lưới Hình 3.3: Mơ tả sơ đồ mã hóa với k = 1, K = n = Hình 3.4: Lưới mã sơ đồ trạng thái với k = 1, K = n = Hình 3.5 Sơ đồ lưới với t=6 Hình 3.6 Đi hết giản đồ lưới chuỗi bit nhận 110100 Hình 3.7 Khoảng cách Hamming h nhánh trại S0 Hình 3.8: Khoảng cách Hamming đoạn Danh mục bảng biểu, hình vẽ Hình 3.9: Tổng khoảng cách Hamming H Hình 3.10: Thuật tốn Viterbi giải mã lưới Hình 3.11: Có đường tới thời điểm t=3 Hình 3.12: Loại bỏ đường có H lớn Hình 3.13: Lỗi thứ xảy trình truyền Hình 3.14: Chọn ngẫu nhiên số đường có tổng khoảng cách amming Hình 3.15 Chọn đường có Hmin Hình 3.16: Cấu trúc mã hóa trạng thái, QAM Hình 3.17: Sơ đồ lưới trạng thái, QAM Hình 3.18: Sơ đồ lưới trạng thái, QAM Hình 3.19 Ma trận mã khối khơng gian - thời gian Hình 3.20 Sơ đồ Alamouti hai anten phát anten thu Hình 3.21 Sơ đồ khối hệ thống Hình 3.22 Sơ đồ Alamouti hai anten phát hai anten thu Hình 3.23: Mơ hình STBC – OFDM Hình 4.1 So sánh tỷ số lỗi khung (FER) trạng thái lưới STTC Hình 4.2 BER kỹ thuật STBC – OFDM mơ hình Alamouti 2x1 2x2 Hình 4.3 BER kỹ thuật STBC – OFDM mơ hình Alamouti 2xM Hình 4.4 BER kỹ thuật STBC với TX=2,3,4 Hình 4.5 So sánh data rate Hình 4.6 Tương quan BER-RATE SNR =6 Hình 4.7 BER STBC-Alamouti kênh truyền Fading Rayleigh Rician Hình 4.8 So sánh BER STBC STTC Các từ viết tắt CÁC TỪ VIẾT TẮT A AWGN Additive White Gaussian Noise Nhiễu Gauss trắng cộng B BER Bit Error Rate Tỷ lệ lỗi bit BPSK Binary Phase-Shift Keying Khóa dịch pha nhị phân C CP Cyclic Prefix Tiền tố vòng D DFT Discrete Fourier Transform Biến đổi Fourier rời rạc DVB Digital Video Broadcasting Hệ thống phát hình số F FDM Frequency Division Ghép kênh phân chia theo tần Multiplexing số FEC Forward Error Correction Thuật toán sửa lỗi tiến FER Frame Error Rate Tỷ lệ lỗi khung FFT Fast Fourier Transform Biến đổi Fourier nhanh I ICI Inter-Channel Interference Nhiễu xuyên kênh IDFT Inverse Discrete Fourier Biến đổi ngược Fourier rời Transform rạc IFFT Inverse Fast Fourier Transform Biến đổi ngược Fourier nhanh ISI Inter-Symbol Interference Nhiễu xuyên ký tự L LTE Long Term Evolution Quá trình phát triển lâu dài M ML Maximum Likelihook Bộ kết hợp khả cực đại MIMO Multiple Input Multiple Ouput Đa ngõ vào đa ngõ Các từ viết tắt MISO Multiple Input Single Ouput Đa ngõ vào đơn ngõ O OFDM OSTBC Orthogonal Frequency Division Ghép kênh phân chia theo tần Multiplexing số trực giao Orthogonal Space Time Block Mã khối không gian thời gian Code trực giao P PAPR Peakto Average Power Ratio Tỉ số cơng suất đỉnh trung bình PSK Phase Shift Keying Điều chế dịch pha Q QAM Quadrature Amplitude Điều chế biên độ cầu phương Modulation QPSK Quadrature Phase Shift Keying Khóa dịch pha cầu phương S SIMO Single Input Multiple Output Đơn ngõ vào đa ngõ SISO Single Input Single Output Đơn ngõ vào đơn ngõ SNR Signal To Noise Ratio Hệ số tín hiệu tạp âm STBC Space-Time Block Code Mã khối không gian thời gian STTC Space-Time Trellis Code Mã lưới không gian thời gian Phụ lục hold on % Fifth we simulate Alamouti 3Tx - 1Rx no_tx_antennas=3; no_rx_antennas=1; [FER FER_uncoded SER SER_uncoded BER BER_uncoded]=stbc31(channel_model,fr_length,Num,no_tx_antennas,no_r x_antennas,modulation) semilogy(EbNo,BER,'rd-','LineWidth',2) hold on % Sixth we simulate Alamouti 3Tx - 4Rx no_tx_antennas=3; no_rx_antennas=4; [FER FER_uncoded SER SER_uncoded BER BER_uncoded]=stbc34(channel_model,fr_length,Num,no_tx_antennas,no_rx_an tennas,modulation) semilogy(EbNo,BER,'mo-','LineWidth',2) hold on % Seventh we simulate Alamouti 4Tx - 1Rx %no_tx_antennas=4; %no_rx_antennas=1; %[FER FER_uncoded SER SER_uncoded BER BER_uncoded]=stbc41(channel_model,fr_length,Num,no_tx_antennas,no_r x_antennas,modulation) %semilogy(EbNo,BER,'bx-') %hold on % Eighth we simulate Alamouti 4Tx - 4Rx no_tx_antennas=4; no_rx_antennas=4; [FER FER_uncoded SER SER_uncoded BER BER_uncoded]=stbc44(channel_model,fr_length,Num,no_tx_antennas,no_rx_an tennas,modulation) semilogy(EbNo,BER,'rs-','LineWidth',2) hold on % The last we simulate SISO 1Tx - 1Rx BER=10; semilogy(EbNo,BER,'yp-','Lin eWidth',2) hold off axis([0 20 10^7 2]); xlabel('SNR [dB]') ylabel('BER') title('STBC-Alamouti kenh truyen AWGN, QPSK'); Phụ lục legend('STBC 2Tx - 1Rx','STBC 2Tx - 2Rx','STBC 3Tx - 1Rx','STBC 3Tx 4Rx','STBC 4Tx 4Rx','SISO',1) grid on Chương trình mơ kỹ thuật STBC với kênh truyền Fading Rayleigh Rician clc; close all; clear all; %Alamouti in Rayleigh channal with 8PSK modulation nTx = 2; nRx=1; filename = ['8PSK_Rayleigh_Alamouti' num2str(nTx) 'x' num2str(nRx) ]; load([filename '-BER.mat']); semilogy(EbNo,BER,'rp-','LineWidth',2); hold on; nTx = 2; nRx=2; filename = ['8PSK_Rayleigh_Alamouti' num2str(nTx) 'x' num2str(nRx) ]; load([filename '-BER.mat']); semilogy(EbNo,BER,'ro-','LineWidth',2); hold on; nTx = 4; nRx=4; filename = ['8PSK_Rayleigh_Alamouti' num2str(nTx) 'x' num2str(nRx) ]; load([filename '-BER.mat']); semilogy(EbNo,BER,'rx-','LineWidth',2); hold on; nTx = 2; nRx=1; filename = ['8PSK_RicianKf10_Alamouti' num2str(nTx) 'x' num2str(nRx) ]; load([filename '-BER.mat']); semilogy(EbNo,BER,'gp-','LineWidth',2); hold on; nTx = 2; nRx=2; filename = ['8PSK_RicianKf10_Alamouti' num2str(nTx) 'x' num2str(nRx) ]; load([filename '-BER.mat']); Phụ lục semilogy(EbNo,BER,'go-','LineWidth',2); hold on; nTx = 4; nRx=4; filename = ['8PSK_RicianKf10_Alamouti' num2str(nTx) 'x' num2str(nRx) ]; load([filename '-BER.mat']); semilogy(EbNo,BER,'gx-','LineWidth',2); hold on; legend('STBC-Rayleigh(2Tx - 1Rx)','STBC-Rayleigh(2Tx - 2Rx)','STBCRayleigh(4Tx - 4Rx)', 'STBC-Rician(2Tx - 1Rx)','STBC-Rician(2Tx - 2Rx)','STBCRician(4Tx - 4Rx)'); axis([1 20 10^-7 1]); xlabel('SNR (dB)'); ylabel('Bit Error Rate (BER)'); title('STBC-Alamouti kenh truyen Fading Rayleigh va Rician, 8PSK'); grid on Chương trình mơ so sánh kỹ thuật STBC STTC clear all; close all; clc SNR = [10:1:20]; M_QAM = 4; % MQAM modulation level used N_trial =150; subcarr_len = log(M_QAM); % number of bits per subcarrier/MQAM constellation point L = 1; % number of resolvable multipaths < N_cp (L=1: flat fading) SigPow = 1; PDP = exp(-(0:L-1)/4)sum( exp(-(0:L-1)/4) );% Power Delay Profile in according to COST 259, [L M Correia,"Wireless Flexible Personalised Communications", New York: Wiley 2001] BER_2x1_ala = zeros(1,length(SNR)); BER_2x1_tar = zeros(1,length(SNR)); BER_2x1_ala_tot = zeros(1,length(SNR)); BER_2x1_tar_tot = zeros(1,length(SNR)); ber_2x1_tot = zeros(1,length(SNR)); tic for SNR_index = 1:length(SNR) % AWGN power determination No = SigPow/(10^(SNR(SNR_index)/10)); % AWGN power Phụ lục disp(['Current SNR=', num2str(SNR(SNR_index))]); for loop = 1:N_trial %tao day bit ngau nhien gom N bit N= 2*10^4; data_bit_seq = randint(1,N); %Dieu che QPSK pre_QAM_seq = reshape(data_bit_seq,subcarr_len,N/subcarr_len); QAM_sym = zeros(1,N/subcarr_len); for col = 1:length(pre_QAM_seq(1,:)) QAM_sym(col)=(2*pre_QAM_seq(1,col) -1); end N_rx = 1; % number of Rx antennas N_tx = 2; % number of Tx antennas % Generate transmitted data for Alamouti tx_data_period_1 = reshape(QAM_sym,2,length(QAM_sym(1,:))/2); tx_data_period_2_ala = zeros(2,length(QAM_sym(1,:))/2); tx_data_period_2_tar = zeros(2,length(QAM_sym(1,:))/2); for index = 1:length(tx_data_period_1(1,:)) %Alamouti tx_data_period_2_ala(1,index) = -conj(tx_data_period_1(2,index)); % -x2* tx_data_period_2_ala(2,index) = conj(tx_data_period_1(1,index)); % x1* %Tarokh tx_data_period_2_tar(1,index) = - (tx_data_period_1(2,index)); % -x2 tx_data_period_2_tar(2,index) = (tx_data_period_1(1,index)); % x1 end %Alamouti tx_data_sig_ala = zeros(2,N/subcarr_len); tx_data_sig_ala(:,1:2:end)= tx_data_period_1; tx_data_sig_ala(:,2:2:end)= tx_data_period_2_ala; %tarokh tx_data_sig_tar = zeros(2,N/subcarr_len); tx_data_sig_tar(:,1:2:end)= tx_data_period_1; tx_data_sig_tar(:,2:2:end)= tx_data_period_2_tar; %Alamouti ma tran symbol phat di co dang gom N/2 cot % x1 -x2* x3 -x4* % x2 x1* x4 x3* Phụ lục % Block-fading channel generation // flat fading h_1st = 1/sqrt(2)*[randn(1,N/2) + j*randn(1,N/2)]; % Rayleigh channel h = kron(reshape(h_1st,2,N/4),ones(1,2)); % repeating the same channel for two symbols % ma tran kenh h co dang, gom N/2 cot % h1 h1 h1' h1' % h2 h2 h2' h2' %AWGN noise n = sqrt(No/2)*( randn(1,N/2) + 1i*randn(1,N/2) ); % receive signals y_ala= zeros(1,N/2); y_tar= zeros(1,N/2); %y = tx_data_sig.*h + n; y_ala = sum(h.*tx_data_sig_ala,1) +n; y_tar = sum(h.*tx_data_sig_tar,1) +n; %y = [y1 y2 y3 ] gom N/2 ky tu %y1 = h1x1 + h2x2 +n1 %y2 = -h2x1* + h2x1* +n2 %Giai ma %chuyen ve dang [y1 y2*] = Ha * [x1 x2] * [n1 n2*] y_ala = reshape(y_ala,2,N/4); y_ala (2,:) = conj(y_ala(2,:)); ; %[ y1 y3 y2* y4* ] y_ala=kron(y_ala,ones(1,2)); % y2* [y1 y1 ; y2* ] hEq(:,[1:2:end]) = ; h2 reshape(h_1st,2,N/4); % [h1 ] hEq(:,[2:2:end]) = kron(ones(1,N/4),[1;-1]).*flipud(reshape(h_1st,2,N/4)); % [h1 h2 ; h2 -h1 ] hEq(1,:) = conj(hEq(1,:)); % [h1* h2* ; h2 -h1 ] hEqPower = sum(hEq.*conj(hEq),1); % sum theo tung cot de co |h1|^2 + | h2|^2 z = sum(hEq.*y_ala,1); % [h1*y1 + h2y2*, h2*y1 -h1y2*, ] x = z./hEqPower; %x=[x1 x2 ] la xap xi cua cac symbol phat di %QPSK Demod %bits:00 10 01 11 s = [-1-1i 1-1i -1+1i 1+1i]; for sam = 1:length(x) [distance,min_index] = min( abs( x(sam) - s ).^2 ); Phụ lục % distance chi khoang cach min, index chi vi tri 4, ung voi s(1), s(2) recovered_bit_temp(1:2,sam) =[(real(s(min_index))+1)/2 , (imag(s(min_index))+1)/2 ]; end %recovered_bit_temp la ma tran hang length(x) cot giong nhu %pre_QAM_seq reco_bits_ALM_2x1 = reshape(recovered_bit_temp,1,2*(length(x))); BER_2x1_ala(SNR_index) = sum(abs(data_bit_seq reco_bits_ALM_2x1))/N; %BER cua Tarokh % Giai ma y_tar = reshape(y_tar,2,N/ (2*subcarr_len)); y_tar=kron(y_tar,ones(1,2)); % ; y2 [y1 y1 y2 ] hEq(:,[1:2:end]) = h(:, [1:2:end]); % [h1 ; h20 ] hEq(:,[2:2:end]) = flipud(h(:, ; h2 [1:2:end])); % [h1 h2 -h1 ] hEq(2,[2:2:end]) = -hEq(2, [h1* ; h2 -h1 [2:2:end]); % h2* ] hEqPower = sum(hEq.*(hEq),1); % sum theo tung cot de co |h1|^2 + |h2|^2 z = sum(hEq.*y_tar,1); % [h1*y1 + h2y2*, h2*y1 -h1y2*, ] x = z./hEqPower; %x=[x1 x2 ] la xap xi cua cac symbol phat di %QPSK Demod %bits:00 10 01 11 s = [-1-1i 1-1i -1+1i 1+1i]; for sam = 1:length(x) [distance,min_index] = min( abs( x(sam) - s ).^2 ); % distance chi khoang cach min, index chi vi tri 4, ung voi s(1), s(2) recovered_bit_temp(1:2,sam) =[(real(s(min_index))+1)/2 , (imag(s(min_index))+1)/2 ]; end %recovered_bit_temp la ma tran hang length(x) cot giong nhu %pre_QAM_seq reco_bits_TAR_2x1 = reshape(recovered_bit_temp,1,2*(length(x))); BER_2x1_tar(SNR_index) = sum(abs(data_bit_seq reco_bits_TAR_2x1))/N; %tinh BER cho truong hop anten phat khong co ma hoa STBC hay %STTC tx_sym = tx_data_period_1; % reshape(QAM_sym,2,length(QAM_sym(1,:))/2); [ber_2x1(SNR_index)]= ber2x1_cal(tx_sym,data_bit_seq,N,No); % tinh BER total Phụ lục BER_2x1_ala_tot(SNR_index) = (BER_2x1_ala_tot(SNR_index)*(loop-1)*N + BER_2x1_ala(SNR_index)*N)/(loop*N); BER_2x1_tar_tot(SNR_index) = (BER_2x1_tar_tot(SNR_index)*(loop-1)*N + BER_2x1_tar(SNR_index)*N)/(loop*N); ber_2x1_tot(SNR_index) = (ber_2x1_tot(SNR_index)*(loop-1)*N + ber_2x1(SNR_index)*N)/(loop*N); end end % ST TC 4PSK nrState = 4; % Numb er of frame N = 20000; % Number of data per frame D = 130; % The state generator matrices % Number of state is limited to 256 % Form the trellis and the binary map for decoding [st1 st2 bin] = stTrellis(G); % Generate simple flat fading channel ch = rand(2, N) + rand(2, N); for i = 1:length(SNR), fprintf('SNR = %d\n', SNR(i)); numOfErr = 0; ber = 0; for j = 1:N % Calling the main function, replace the function here if needed if err == numOfErr = numOfErr + 1; end end % Bit error rate berTot(i) = ber/N; end; Phụ lục figure(1) semilogy(SNR, ber_2x1_tot, 'kx-','LineWidth',2); hold on; semilogy(SNR,BER_2x1_tar_tot,'bo-','LineWidth',2); hold on; semilogy(SNR, berTot, 'm*-','LineWidth',2); hold on; xlabel('SNR (dB)'); ylabel('Bit error rate (BER)'); grid on legend('No coding 2x1','STBC-TAROKH 2x1','STTC States''); title('STBC va STTC kenh truyen flat fading');