Nghiên cứu các phương pháp bù dịch tần doppler cho hệ thống OFDM Nghiên cứu các phương pháp bù dịch tần doppler cho hệ thống OFDM Nghiên cứu các phương pháp bù dịch tần doppler cho hệ thống OFDM luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - PHẠM XUÂN CẢNH NGHIÊN CỨU CÁC PHƯƠNG PHÁP BÙ DỊCH TẦN DOPPLER CHO HỆ THỐNG OFDM LUẬN VĂN THẠC SĨ KĨ THUẬT NGÀNH KĨ THUẬT VIỄN THÔNG Hà Nội – 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI PHẠM XUÂN CẢNH NGHIÊN CỨU CÁC PHƯƠNG PHÁP BÙ DỊCH TẦN DOPPLER CHO HỆ THỐNG OFDM Chuyên ngành : KĨ THUẬT VIỄN THÔNG LUẬN VĂN THẠC SĨ KĨ THUẬT NGÀNH KĨ THUẬT VIỄN THÔNG NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN QUỐC KHƯƠNG Hà Nội – 2018 MỤC LỤC LỜI NÓI ĐẦU LỜI CAM ĐOAN TÓM TẮT ABSTRACT DANH MỤC KÝ HIỆU DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC BẢNG DANH MỤC HÌNH VẼ Chương – TỔNG QUAN VỀ OFDM 1.1 Giới thiệu chung .1 1.2 Cơ sở kỹ thuật OFDM 1.2.1 Phương pháp điều chế đơn sóng mang .2 1.2.2 Phương pháp điều chế đa sóng mang 1.2.3 Phương pháp điều chế đa sóng mang trực giao 1.3 Nguyên lý OFDM 1.3.1 Sự trực giao sóng mang 1.3.2 Nguyên lý điều chế giải điều chế 1.3.3 Điều chế OFDM sử dụng thuật toán IFFT 1.3.4 Chèn tiền tố lặp CP 1.4 Cấu trúc hệ thống OFDM .11 1.5 Đồng OFDM 12 1.5.1 Đồng ký tự 12 1.5.2 Đồng tần số sóng mang 14 1.5.3 Đồng tần số lấy mẫu 15 1.6 Ưu, nhược điểm hệ thống OFDM 16 1.6.1 Ưu điểm 16 1.6.2 Nhược điểm .16 Chương – ẢNH HƯỞNG CỦA DỊCH TẦN DOPPLER TỚI HỆ THỐNG OFDM 18 2.1 Độ lệch tần số 18 2.2 Hiệu ứng Doppler 18 2.3 Ảnh hưởng dịch tần Doppler tới hệ thống OFDM 20 2.3.1 Mơ hình độ lệch tần số 21 2.3.2 Ảnh hưởng nhiễu ICI gây lệch tần số Doppler 21 Chương – CÁC PHƯƠNG PHÁP BÙ DỊCH TẦN DOPPLER 25 3.1 Phương pháp tự loại bỏ ICI 25 3.1.1 Điều chế tự loại bỏ ICI 25 3.1.2 Giải điều chế tự loại bỏ ICI .26 3.2 Phương pháp ước lượng gần giống 29 3.3 Phương pháp lọc Kalman mở rộng (EKF) .31 3.3.1 Đặt vấn đề .32 3.3.2 Ước lượng độ dịch tần sử dụng lọc Kalman mở rộng .33 3.3.2.1 Ước lượng độ lệch tần số .34 3.3.2.2 Hiệu chỉnh độ lệch tần Doppler 35 CHƯƠNG – MÔ PHỎNG, ĐÁNH GIÁ .37 KẾT LUẬN VÀ KHUYẾN NGHỊ 42 TÀI LIỆU THAM KHẢO 43 PHỤ LỤC: MATLAB CODE 45 LỜI NÓI ĐẦU OFDM ngày sử dụng rộng rãi thông tin vô tuyến ưu điểm như: khả truyền tin tốc độ cao, sử dụng băng thông hiệu quả, khả chống lại fading chọn lọc tần số, điều chế tín hiệu đơn giản hiệu sử dụng thuật toán IFFT, FFT… Tuy nhiên, hệ thống OFDM tồn số nhược điểm làm ảnh hưởng đến chất lượng tín hiệu Trong vấn đề quan trọng cần giải nhạy cảm hệ thống OFDM với độ lệch tần số máy thu máy phát, có nguyên nhân gây số yếu tố mà chủ yếu dịch tần số Doppler Do đó, việc nghiên cứu phương pháp bù dịch tần Doppler yêu cầu quan trọng để nâng cao chất lượng tín hiệu hệ thống OFDM Trong luận văn này, tác giả lựa chọn nghiên cứu phương pháp khắc phục ảnh hưởng hiệu ứng dịch tần Doppler hệ thống OFDM với đề tài: “Nghiên cứu phương pháp bù dịch tần Doppler cho hệ thống OFDM” Đã có nhiều nghiên cứu phương pháp khắc phục ảnh hưởng độ lệch tần số hệ thống OFDM như: phương pháp cân miền tần số; cửa sổ miền thời gian; phương pháp đồng sóng mang truyền tín hiệu đồng Luận văn tập trung phân tích ảnh hưởng hiệu ứng dịch tần Doppler trình bày ba phương pháp khắc phục: phương pháp tự loại bỏ ICI; phương pháp ước lượng gần giống (ML); phương pháp lọc Kalman Đồng thời thực mô phỏng, đánh giá ba phương pháp với tham số hệ thống OFDM theo chuẩn IEEE 802.11a phần mềm Matlab Do kiến thức thân cịn hạn hẹn nên luận văn khơng tránh khỏi thiếu sót Rất mong góp ý thầy, cô bạn đọc nhằm giúp luận văn xác đầy đủ Tác giả xin gửi lời cảm ơn sâu sắc tới thầy TS Nguyễn Quốc Khương hướng dẫn giúp đỡ trình làm luận văn Hà Nội, tháng năm 2018 LỜI CAM ĐOAN Tôi xin cam đoan kết nghiên cứu trình bày luận văn hồn tồn trung thực, khơng vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai tơi xin chịu hồn tồn trách nhiệm Hà Nội, ngày 12 tháng năm 2018 Tác giả luận văn TÓM TẮT OFDM kỹ thuật điều chế đa sóng mang sử dụng sóng mang trực giao với Đây kỹ thuật điều chế tiên tiến ứng dụng rộng rãi thực tế như: hệ thống phát thanh/truyền hình số mặt đất (DAB/DVB_T); truy nhập vô tuyến băng rộng IEEE.802.16 (Wireless MAN); mạng truy nhập vô tuyến nội IEEE 802.11a (Wireless LAN); hệ thống thông tin di động 4G… Một vấn đề quan trọng ảnh hưởng tới chất lượng tín hiệu hệ thống OFDM độ lệch tần số sóng mang máy thu máy phát hiệu ứng dịch tần Doppler gây Độ lệch tần số gây nhiễu sóng mang ký hiệu OFDM Trong luận văn này, tác giả tập trung nghiên cứu ba phương pháp khắc phục ảnh hưởng dịch tần Doppler: phương pháp tự loại bỏ ICI, phương pháp ước lượng gần giống phương pháp lọc Kalman mở rộng Cấu trúc luận văn bao gồm chương: CHƯƠNG 1: TỔNG QUAN VỀ OFDM Giới thiệu vấn đề OFDM: sở kỹ thuật, nguyên lý điều chế OFDM; cấu trúc hệ thống, vấn đề đồng hệ thống OFDM; ưu, nhược điểm ứng dụng kỹ thuật OFDM CHƯƠNG 2: ẢNH HƯỞNG CỦA DỊCH TẦN DOPPLER TỚI HỆ THỐNG OFDM Trình bày khái niệm độ lệch tần số, mơ hình độ lệch tần số; giới thiệu hiệu ứng dịch tần Doppler ảnh hưởng nhiễu ICI gây hiệu ứng dịch tần Doppler hệ thống OFDM CHƯƠNG 3: CÁC PHƯƠNG PHÁP BÙ DỊCH TẦN DOPPLER Nghiên cứu nguyên lý, cách thức thực hiện, đặc điểm ba phương pháp khắc phục ảnh hưởng dịch tần Doppler hệ thống OFDM: phương pháp tự loại bỏ ICI, phương pháp ước lượng gần giống phương pháp lọc Kalman mở rộng CHƯƠNG 4: MÔ PHỎNG, ĐÁNH GIÁ Sử dụng phần mềm Matlab tiến hành mô phương pháp: phương pháp tự loại bỏ ICI, phương pháp ước lượng gần giống nhất, phương pháp lọc Kalman mở rộng hệ thống OFDM cụ thể Dựa vào kết mô để đánh giá phương pháp ABSTRACT OFDM (Orthogonal Frequency Division Multiplexing) is a multi-carrier modulation technique that uses orthogonal subcarriers This is an advanced modulation technique which is commonly used such as digital terrestrial broadcasting (DAB/ DVB_T); IEEE.802.16 (Wireless MAN); wireless local area network (IEEE 802.11a); 4G mobile communication system There are an important issue affecting the signal quality in OFDM systems is its sensitivity to frequency offset between the transmitted and received carrier frequencies caused by Doppler shift This frequency offset causes interference between subcarriers in the OFDM symbol In this essay, the author focuses on three methods to combating the effects of Doppler frequency shedding: ICI selfcancelation, maximum likelihood (ML) estimation, and extended Kalman filter (EKF) method Structure of essay include chapters: CHAPTER 1: INTRODUCTION TO OFDM TECHNICQUE Introduction to Fundamentals of OFDM: Fundamentals of OFDM Modulation Principles; System structure, synchronization issues in OFDM system; Advantages, disadvantages and applications of OFDM techniques CHAPTER 2: EFFECTS OF DOPPLER SHIFT TO OFDM SYSTEMS Describe the concept of frequency offset, frequency offset model; introduces the Doppler frequency shift effect and the effect of ICI interference caused by the Doppler shift effect on the OFDM system CHAPTER 3: DOPPLER OFFSET COMPENSATION METHODS Research the principles, process, and characteristics of three methods to combating the effects of Doppler shift on OFDM systems: ICI self-cancelation, maximum likelihood (ML) estimation, and extended Kalman filter (EKF) method CHAPTER 4: SIMULATIO AND EVALUATION Using Matlab simulates methods such as ICI self-cancelation, maximum likelihood (ML) estimation, and extended Kalman filter (EKF) method for particular OFDM systems Based on simulation results to evaluate methods DANH MỤC KÝ HIỆU Ký hiệu Ý nghĩa Ví dụ M Mức điều chế M N Số sóng mang OFDM N ε Độ lệch tần số chuẩn hóa ε ∆f Độ lệch tần số ∆f ( •)* Phép lấy liên hợp phức vector, ma trận ( H )* fd Độ dịch tần Doppler fd λ Bước sóng λ f Tần số sóng f TS Chu kỳ ký hiệu OFDM TS ΔF Khoảng cách tần số sóng mang ΔF w(n) Nhiễu Gauss trắng cộng tính w(n) ˆ Độ lệch tần số chuẩn hóa ước lượng ˆ •T Ma trận chuyển vị • eT % QAM 16 M = 16 BPS = N*log2(M); clear BER; final_simulator; BERqam16 = BER; save BERqam16 BERqam16 % QAM 64 M = 64 BPS = N*log2(M); clear BER; final_simulator; BERqam64 = BER; save BERqam64 BERqam64 load('BERqam2.mat') subplot(1,2,1) semilogy(EbNo, BERqam2(1,:)) hold on semilogy(EbNo, BERqam2(2,:),'.-') semilogy(EbNo, BERqam2(3,:),'*-') semilogy(EbNo, BERqam2(4,:),'o-') title('BPSK') xlabel('E_b/N_o') ylabel('BER') legend('0,0','0,05', '0,15', '0,30') grid on; % subplot(1,2,2) semilogy(EbNo, BERqam4(1,:)) 49 hold on semilogy(EbNo, BERqam4(2,:),'.-') semilogy(EbNo, BERqam4(3,:),'*-') semilogy(EbNo, BERqam4(4,:),'o-') title('4-QAM') xlabel('E_b/N_o') ylabel('BER') legend('0,0','0,05', '0,15', '0,30') grid on; figure subplot(1,2,1) semilogy(EbNo, BERqam16(1,:)) hold on semilogy(EbNo, BERqam16(2,:),'.-') semilogy(EbNo, BERqam16(3,:),'*-') semilogy(EbNo, BERqam16(4,:),'o-') title('16-QAM') xlabel('E_b/N_o') ylabel('BER') legend('0,0','0,05', '0,15', '0,30') grid on; % subplot(1,2,2) semilogy(EbNo, BERqam64(1,:)) hold on semilogy(EbNo, BERqam64(2,:),'.-') semilogy(EbNo, BERqam64(3,:),'*-') semilogy(EbNo, BERqam64(4,:),'o-') title('64-QAM') 50 xlabel('E_b/N_o') ylabel('BER') legend('0,0','0,05', '0,15', '0,30') grid on; % So sanh cac phuong phap SC, ML va EKF clear input_bit_stream output_bit_stream; figure M = 2; BPS = N*log2(M); % QAM2 clear BER; final_simulator_SC; BERqam2sc = BER; save BERqam2sc BERqam2sc clear BER; final_simulator_ML; BERqam2ml = BER; save BERqam2ml BERqam2ml clear BER; final_simulator_KF; BERqam2kf = BER; save BERqam2kf BERqam2kf clear BER; % QAM M = 4; BPS = N*log2(M); final_simulator_SC; BERqam4sc = BER; save BERqam4sc BERqam4sc 51 clear BER; final_simulator_ML; BERqam4ml = BER; save BERqam4ml BERqam4ml clear BER; final_simulator_KF; BERqam4kf = BER; save BERqam4kf BERqam4kf clear BER; subplot(1,2,1) semilogy(EbNo, BERqam2(2,:)) hold on semilogy(EbNo, BERqam2sc(2,:),'r*-') semilogy(EbNo, BERqam2ml(2,:),'go-') semilogy(EbNo, BERqam2kf(2,:),'b.-') title('BPSK \epsilon = 0,05') xlabel('E_b/N_o') ylabel('BER') legend('OFDM chuan', 'SC','ML','KF') grid on; % subplot(1,2,2) semilogy(EbNo, BERqam4(2,:)) hold on semilogy(EbNo, BERqam4sc(2,:),'r*-') semilogy(EbNo, BERqam4ml(2,:),'go-') semilogy(EbNo, BERqam4kf(2,:),'b.-') title('4-QAM \epsilon = 0,05') xlabel('E_b/N_o') 52 ylabel('BER') legend('OFDM chuan', 'SC','ML','KF') grid on; figure subplot(1,2,1) semilogy(EbNo, BERqam2(3,:)) hold on semilogy(EbNo, BERqam2sc(3,:),'r*-') semilogy(EbNo, BERqam2ml(3,:),'go-') semilogy(EbNo, BERqam2kf(3,:),'b.-') title('BPSK \epsilon = 0,15') xlabel('E_b/N_o') ylabel('BER') legend('OFDM chuan', 'SC','ML','KF') grid on; % subplot(1,2,2) semilogy(EbNo, BERqam4(3,:)) hold on semilogy(EbNo, BERqam4sc(3,:),'r*-') semilogy(EbNo, BERqam4ml(3,:),'go-') semilogy(EbNo, BERqam4kf(3,:),'b.-') title('4-QAM \epsilon = 0,15') xlabel('E_b/N_o') ylabel('BER') legend('OFDM chuan', 'SC','ML','KF') grid on; figure subplot(1,2,1) 53 semilogy(EbNo, BERqam2(4,:)) hold on semilogy(EbNo, BERqam2sc(4,:),'r*-') semilogy(EbNo, BERqam2ml(4,:),'go-') semilogy(EbNo, BERqam2kf(4,:),'b.-') title('BPSK \epsilon = 0,30') xlabel('E_b/N_o') ylabel('BER') legend('OFDM chuan', 'SC','ML','KF') grid on; % subplot(1,2,2) semilogy(EbNo, BERqam4(4,:)) hold on semilogy(EbNo, BERqam4sc(4,:),'r*-') semilogy(EbNo, BERqam4ml(4,:),'go-') semilogy(EbNo, BERqam4kf(4,:),'b.-') title('4-QAM \epsilon = 0,30') xlabel('E_b/N_o') ylabel('BER') legend('OFDM chuan', 'SC','ML','KF') grid on; File final_simulator.m: Đánh giá tác động hiệu ứng dịch tần Doppler hệ thống OFDM thông thường qua BER giá trị lệch tần số chuẩn hóa 0.05, 0.15, 0.3 (Sử dụng hình 4.2) % Mo phong he thong OFDM chuan input_bit_stream = sign(randn(1,BPS*NS)); 54 input_bit_stream(input_bit_stream == -1) = 0; % Chuyen doi noi tiep sang song song parallel_bit_stream = reshape(input_bit_stream,log2(M),BPS*NS/log2(M)).'; % Dieu che M-QAM parallel_data = bi2de(parallel_bit_stream,'left-msb'); modulated_data = qammod (parallel_data,M); for ll= 1:length(ep) for l=1:length(EbNo) received_symbols = zeros(NS*N,1); k = 1; for n = 1:NS ofdm_symbol = zeros(1,ifftsize); ofdm_symbol(carriers) = modulated_data(k:k+N-1); % ifft tx_signal = ifft(ofdm_symbol,ifftsize); % CHANNEL % Dopler shift rx_signal = tx_signal.*exp((j*pi*ep(ll)/ifftsize)*(0:ifftsize-1)); % AWGN noise = sqrt(1/(2*log2(M)*10^(EbNo(l)/10)))*(randn(1,64)+j*randn(1,64)); rx_signal = rx_signal + noise; % rx_signal = tx_signal; % RECEIVED received_ofdm = fft(rx_signal, ifftsize); % Lay du lieu tu cac song mang received_symbols(k:k+N-1) = received_ofdm(carriers); k = k + N; end received_data = qamdemod(received_symbols, M); 55 % Chuyen doi song song sang noi tiep demodulated_data = de2bi(received_data, 'left-msb'); output_bit_stream = reshape(demodulated_data.',1,BPS*NS); BER(ll,l)= sum(xor(input_bit_stream, output_bit_stream))/length(input_bit_stream); end end File final_simulator_SC.m: Tính tỉ số lỗi bit hệ thống OFDM sử dụng phương pháp tự loại bỏ ICI giá trị lệch tần số chuẩn hóa 0.05, 0.15, 0.3 (Sử dụng hình 4.3, 4.4, 4.5) % Dong bit dau vao input_bit_stream = sign(randn(1,BPS*NS)); input_bit_stream(input_bit_stream == -1) = 0; % Chuyen doi noi tiep sang song song parallel_bit_stream = reshape(input_bit_stream,log2(M),BPS*NS/log2(M)).'; % Dieu che M-QAM parallel_data = bi2de(parallel_bit_stream,'left-msb'); modulated_data = qammod (parallel_data,M); odd_carriers = carriers(1:2:N); even_carriers = carriers(2:2:N); for ll= 1:length(ep) for l=1:length(EbNo) k = 1; received_symbols = zeros(NS*N,1); for n = 1:NS ofdm_symbol1 = zeros(1,ifftsize); ofdm_symbol2 = zeros(1,ifftsize); % Anh xa toi cac song mang 56 ofdm_symbol1(odd_carriers) = modulated_data(k:k+length(odd_carriers)-1); ofdm_symbol1(even_carriers) = -modulated_data(k:k+length(even_carriers)-1); ofdm_symbol2(odd_carriers) = modulated_data(k+N/2:k+N-1); ofdm_symbol2(even_carriers) = -modulated_data(k+N/2:k+N-1); % Tin hieu thoi gian de phat tx_signal1 = (ifft(ofdm_symbol1,ifftsize)); tx_signal2 = (ifft(ofdm_symbol2,ifftsize)); % DICH TAN DOPPLER rx_signal1 = tx_signal1.*exp(2*j*pi*ep(ll)/ifftsize*(0:ifftsize-1)); rx_signal2 = tx_signal2.*exp(2*j*pi*ep(ll)/ifftsize*(0:ifftsize-1)); % Cong nhieu rx_signal1 = awgn(rx_signal1, EbNo(l),0); rx_signal2 = awgn(rx_signal2, EbNo(l),0); % rx_signal1 = tx_signal1; % rx_signal2 = tx_signal2; % FFT received_ofdm1 = fft(rx_signal1, ifftsize); received_ofdm2 = fft(rx_signal2, ifftsize); demod_sym1 = 5*(received_ofdm1(odd_carriers)-received_ofdm1(even_carriers)); demod_sym2 = 5*(received_ofdm2(odd_carriers)-received_ofdm2(even_carriers)); received_ofdm3 = [demod_sym1 demod_sym2]; % Lay du lieu tu cac song mang ky hieu OFDM received_symbols(k:k+N-1) = received_ofdm3; k = k + N; end % THUC HIEN GIAI DIEU CHE disp('Thuc hien giai dieu che') received_data = qamdemod(received_symbols, M); % Chuyen doi song song sang noi tiep 57 demodulated_data = de2bi(received_data, 'left-msb'); output_bit_stream = reshape(demodulated_data.',1,BPS*NS); % TINH BER disp('Tinh BER ') BER(ll,l)= sum(xor(input_bit_stream,output_bit_stream))/length(input_bit_stream); end end File final_simulator_ML.m: Tính tỉ số lỗi bit hệ thống OFDM sử dụng phương pháp ước lượng gần giống giá trị lệch tần số chuẩn hóa 0.05, 0.15, 0.3 (Sử dụng hình 4.3, 4.4, 4.5) % Dong bit dau vao co phan bo chuan input_bit_stream = sign(randn(1,BPS*NS)); input_bit_stream(input_bit_stream == -1) = 0; % Chuyen doi noi tiep sang song song parallel_bit_stream = reshape(input_bit_stream,log2(M),BPS*NS/log2(M)).'; % Dieu che M-QAM parallel_data = bi2de(parallel_bit_stream,'left-msb'); modulated_data = qammod (parallel_data,M); for ll= 1:length(ep) for l=1:length(EbNo) k = 1; for n = 1:NS*2 ofdm_symbol = zeros(1,ifftsize); % Anh xa du lieu da dieu che sang cac hoc FFT ky hieu OFDM %Chi su dung 1/2 du lieu doi voi uoc luong ML ofdm_symbol(carriers(1:26)) = modulated_data(k:k+25); % Tin hieu thoi gian de phat 58 tx_signal1 = ifft(ofdm_symbol,ifftsize/2); %su dung N/2 diem DFT tx_signal= [tx_signal1 tx_signal1]; %Tai tao de nhan mot day N diem % Dich tan DOPPLER (do lech tan so kenh) rx_signal= tx_signal.*exp((2*j*pi*ep(ll)/ifftsize)*(0:ifftsize-1)); % Cong nhieu %rx_signal = awgn(rx_signal, EbNo(l),0); noise = sqrt(1/(2*log2(M)*10^(EbNo(l)/10)))*(randn(1,64)+j*randn(1,64)); rx_signal = rx_signal + noise; % FFT received_ofdm1 = fft(rx_signal(1:ifftsize/2), ifftsize/2); received_ofdm2 = fft(rx_signal((ifftsize/2)+1:ifftsize), ifftsize/2); % Uoc luong ML temp=0;temp1=0; for w=1:length(ifftsize/2) temp=temp + imag(received_ofdm2(w)*conj(received_ofdm1(w))); temp1=temp1 + real(received_ofdm2(w)*conj(received_ofdm1(w))); end; epestMLE(ll,l) = (atan(temp/temp1))/(2*pi); if (epestMLE(ll,l)