Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
0,99 MB
Nội dung
621.382 khoa điện tử viễn thông === === N tốt nghiệp đại học Đề tài: Mễ PHNG K THUẬT PHÂN TẬP THU TRONG HỆ THỐNG OFDM Người hướng dẫn Sinh viên thực hiện Lớp Mã số sinh viên : : : : ThS NGUYỄN PHÚC NGỌC NGUYỄN ĐỨC TUẤN 50K1 - ĐTVT 0951080284 nghÖ an - 01/2014 iii MỤC LỤC MỤC LỤC iii DANH MỤC CÁC HÌNH VẼ V DANH MỤC CÁC BẢNG BIỂU .V DANH MỤC CÁC TỪ VIẾT TẮT VI LỜI MỞ ĐẦU VIII Chƣơng KỸ THUẬT OFDM 1.1 Giới thiệu chương .1 1.2 Sự hình thành phát triển OFDM 1.2.1 Kỹ thuật ghép kênh FDM 1.2.2 Kỹ thuật ghép kênh OFDM .1 1.3 Ưu điểm nhược điểm OFDM 1.4 Nguyên lý kỹ thuật OFDM .3 1.4.1 Sóng mang trực giao .3 1.4.2 Mơ hình hệ thống OFDM 1.5 Kết luận Chương HỆ THỐNG THÔNG TIN TRÊN KÊNH TRUYỀN BLOCK- FADING 2.1 Giới thiệu chương .9 2.2 Fading multipath 2.2.1 Fading 2.2.2 Hiện tượng đa đường (multipath) 10 2.3 Power delay profile (PDP) 11 2.4 Điều chế biên độ cầu phương M-QAM 11 2.4.1 Mã hóa gray 11 2.4.2 Điều chế giải điều chế M-QAM .12 2.5 Kênh truyền block-fading OFDM 14 2.5.1 Tín hiệu phát thu OFDM 14 2.5.2 Kênh truyền block-fading .15 2.6 Kết luận 17 Chƣơng CÁC KỸ THUẬT PHÂN TẬP THU TRÊN NỀN OFDM 18 3.1 Giới thiệu chương 18 3.2 Tổng quan phân tập 18 iii 3.2.1 Phân tập tần số 19 3.2.2 Phân tập thời gian 19 3.2.3 Phân tập không gian 20 3.3 Các kỹ thuât phân tập thu với OFDM 25 3.3.1 Kỹ thuật phân tập thu Maximal Ratio Combining (MRC) 26 3.3.2 Kỹ thuật phân tập thu Equal-gain Combining(EGC) 29 3.3.3 Kỹ thuât phân tập thu Selection Combining (SC) 30 3.3.4 Kỹ thuật phân tập thu Threshold Combining (TC) .32 3.4 Kết luận 34 Chƣơng CHƢƠNG TRÌNH MƠ PHỎNG VÀ ĐÁNH GIÁ CÁC KỸ THUẬT PHÂN TẬP THU SC, TC, EGC VÀ MRC 35 4.1 Giới thiệu chương 35 4.2 Lưu đồ thuật tốn kết mơ 35 4.2.1 Kỹ thuật MRC .35 4.2.2.Kỹ thuật EGC 37 4.2.3.Kỹ thuật SC 39 4.2.4.Kỹ thuật TC 41 4.3 Lưu đồ thuật tốn tổng quan thực tồn hệ thống .44 4.4 So sánh bốn kỹ thuật 45 4.5 Kiểm tra tính hội tụ số lượng ăng ten 45 4.6 Kết luận 46 KẾT LUẬN CHUNG VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI .47 TÀI LIỆU THAM KHẢO .48 PHỤ LỤC 49 iv DANH MỤC CÁC HÌNH VẼ Hình 1.1 Băng thơng sử dụng hiệu OFDM Hình 1.2 Sơ đồ khối hệ thồng OFDM Hình 1.3 Bộ mapper Demapper Hình 1.4 Bộ IFFT FFT Hình 1.5 Khối chèn CP loại bỏ CP Hình 1.6 Bộ A/D D/A Hình 1.7 Bộ Up-Converter Down-Converter Hình 2.1 Hiện tượng multipath thông tin di động 10 Hình 2.2 Sơ đồ khối điều chế M-QAM 13 Hình 2.3 Sơ đồ khối giải điều chế M-QAM 13 Hình 2.4 Giản đồ chịm điều chế 16-QAM 14 Hình 2.5 Mô tả chi tiết symbol OFDM 14 Hình 2.6 Mơ tả điều chế số bên phát bên thu 15 Hình 3.1 Interleaving 21 Hình 3.2 Phân tập khơng gian 22 Hình 3.3 Minh họa phân tập phát 23 Hình 3.4 Mơ hình phân tập phát 23 Hình 3.5 Sơ đồ minh họa thực phân tập thu 25 Hình 3.6 Phân tập thu MRC 26 Hình 3.7 Nguyên lý thực phân tập thu MRC 27 Hình 3.8 Phân tập thu EGC 29 Hình 3.9 Phân tập thu SC 30 Hình 3.10 Phân tập thu TC 32 Hình 3.11 SNR với kỹ thuật SSC 33 Hình 4.1 Lưu đồ thuật toán kỹ thuật MRC 36 Hình 4.2 Kết mô kỹ thuật MRC OFDM 37 Hình 4.3 Lưu đồ thuật tốn kỹ thuật EGC 38 Hình 4.4 Kết mơ kỹ thuật EGC OFDM 39 Hình 4.5 Lưu đồ thuật toán kỹ thuật SC 40 Hình 4.6 Kết mô kỹ thuật SC OFDM 41 Hình 4.7 Lưu đồ thuật toán kỹ thuật TC 42 Hình 4.8 Kết mơ kỹ thuật TC OFDM 43 Hình 4.9 Lưu đồ thuật tốn thực tồn hệ thống 44 Hình 4.10 Kết mô so sánh kỹ thuật phân tập thu 45 Hình 4.11 Kết mô với số lượng ăng ten khác 46 DANH MỤC BẢNG BIỂU Bảng 2.1 Bảng mã hóa Gray cho bit 12 v DANH MỤC CÁC TỪ VIẾT TẮT A A/D ASK AWGN BER CDMA CP CSI D/A EGC FDM FFT IFFT ISI HPA LPF MC MIMO M-QAM MRC NRZ Analog to digital Amplitude Shift Keying Additive White Gaussian Noise B Bit Error Rate C Code Division Multiple Access Cyclic Prefix Channel State Information D Digital to Analog E Equal Gain Combining F Frequency Division Multiplexing Fast Fourier Transform I Inverse Fast Fourier Transform Inter Symbol Interference H High Power Amplifier L Low Pass Filter M Multicarrier communication Multiple Input Multiple Output M-state Quadrature Amplitude Modulation Maximal Ratio Combining N NonReturn to Zero Bộ chuyển đổi tương tự sang số Khóa dịch biên độ Nhiễu tạp âm trắng Tỷ lệ lỗi bít Đa truy nhập phân chia theo mã Tiền tố tuần hồn Thơng tin trạng thái kênh Bộ chuyển đổi số sang tương tự Kết hợp độ lợi cân Ghép kênh phân chia theo tần số Biến đổi Fourier nhanh Biến đổi fourier nhanh ngược Nhiễu ký hiệu Khuếch đại công suất lớn Bộ lọc thông thấp Truyền thông đa sóng mang Đa đầu vào đa đầu Điều chế biên độ cầu phương M trạng thái Kết hợp tỉ số cực đại Mã không quay trở không vi O OFDM Orthogonal Frequency Division Multiplexing OFDMA Orthogonal Frequency Division Multiplexing Access P PAPR Peak-to-Average Power Ratio PSK Phase Shift Keying Ghép kênh phân chia theo tần số trực giao Truy nhập kênh phân chia theo tần số trực giao Tỉ số cơng suất đỉnh cơng suất trung bình Khóa dịch pha R RF Tần số vơ tuyến Radio Frequency S SC SNR SSC Kết hợp lựa chọn Tỉ lệ tín hiệu tạp âm Chuyển đổi kết hợp lại Selection Combining Signal-to-Noise Ratio Switch and Stay Combining T TC Threshold Combining Kết hợp ngưỡng vii LỜI MỞ ĐẦU Kỹ thuật OFDM lần giới thiệu năm 1966 Tuy nhiên thời gian gần đây, kỹ thuật OFDM ứng dụng thực tế nhờ có tiến lĩnh vực xử lý tín hiệu số kỹ thuật vi xử lý OFDM kỹ thuật điều chế phân chia dải tần cho phép thành nhiều dải tần với sóng mang khác nhau, sóng mang điều chế để truyền dòng liệu tốc độ thấp Tập hợp dòng liệu tốc độ thấp dịng tốc độ cao cần truyền tải Các sóng mang kỹ thuật điều chế đa sóng mang họ sóng mang trực giao, điều cho phép chồng phổ sóng mang Do sử dụng dải thơng cách hiệu quả, ngồi họ sóng mang trực giao cịn mang lại nhiều lợi ích khác mà kỹ thuật khác khơng có Phương pháp gọi chung ghép kênh theo tần số trực giao OFDM Để đạt ứng dụng ngày hôm nay, OFDM phải trải qua thời gian dài khắc phục hạn chế nhược điểm Một phương pháp kỹ thuật “phân tập thu” Đề tài Mô kỹ thuật phân tập thu hệ thống OFDM gồm chương sau: Chƣơng 1: Kỹ thuật OFDM Chương nói nguyên lý kỹ thuật OFDM Ưu điểm, nhược điểm chức khối OFDM Chƣơng 2: Hệ thống thông tin kênh truyền block-fading Chương làm rõ vấn đề kênh truyền block-fading, xây dựng biểu thức toán học, tảng sở cho việc mơ tính tốn chương sau Chƣơng 3: Các kỹ thuật phân tập thu OFDM Có bốn kỹ thuật phân tập thu trình bày chương sở lý thuyết đặt tính phương pháp phân tích tổng hợp tín hiệu kỹ thuật làm rõ Qua dự đốn, đánh giá hiệu kỹ thuật Cơng thức tính tốn kỹ thuật đưa Chƣơng 4: Lưu đồ thuật tốn kết mơ viii Lưu đồ thuật tốn tổng qt cho tồn hệ thống trình bày Dựa cấu trúc thuật tốn đó, có ba script Matlab xây dựng Trong phần chúng có giá trị BER mối tương quan với SNR đưa đồ thị, từ đánh giá kết luận vấn đề Do thời gian, tài liệu kinh nghiệm làm việc hạn chế nên đồ án tránh khỏi thiếu sót, mong đóng góp ý kiến quý thầy, cô giáo bạn đọc để đồ án hoàn thiện thân em thu ý kiến quý báu để mở rộng kiến thức xác sâu rộng Lời cuối cùng, em xin gửi lời cám ơn chân thành đến thầy, cô giáo khoa Điện tử Viễn thơng tạo điều kiện cho em hồn thành tốt đồ án đặt biệt hướng dẫn trực tiếp, tận tình thầy Th.S Nguyễn Phúc Ngọc ix Chƣơng KỸ THUẬT OFDM 1.1 Giới thiệu chƣơng Kỹ thuật Othorgonal Frequency Division Multiplexing (OFDM) đời cách ba thập kỷ, bên cạnh ưu điểm hẳn với hệ thống cũ chúng có tồn lớn Do tới nay, người ta hạn chế khuyết điểm phát triển thành hệ thống thơng tin thông dụng, ứng dụng rộng rãi hệ thống thông tin tốc độ cao Chương chủ yếu trình bày phát triển, ưunhược điểm nguyên lý kỹ thuật OFDM 1.2 Sự hình thành phát triển OFDM 1.2.1 Kỹ thuật ghép kênh FDM Mỗi kênh chuyển vào băng tần xác định chúng cách li khoảng tần số Kỹ thuật ghép kênh theo tần số FDM (Frequency Division Multiplexing) sử dụng thời gian dài nhằm ghép nhiều kênh tín hiệu để truyền qua đường truyền Dải tần số bảo vệ nhằm tránh tương tác kênh với Nhưng nguyên nhân dẫn tới việc sử dụng không hiệu băng thông, tài nguyên ngày trở nên quý hiếm.[1] 1.2.2 Kỹ thuật ghép kênh OFDM Kỹ thuật ghép kênh theo tần số FDM sử dụng cho luồng liệu phát luồng liệu thu tương ứng Truyền dẫn đa sóng mang (MC) khơng dùng để ghép kênh tín hiệu khác FDM, mà dùng để chia nhỏ luồng liệu thành luồng liệu song song Dạng truyền dẫn sóng mang (MC) đơn giản chia luồng liệu vào thành N luồng tín hiệu nhỏ để truyền qua N kênh truyền Sau đó, N luồng điều chế với N tần số sóng mang khác sau ghép kênh đưa lên kênh truyền Ở phía thu trình thực làm ngược lại phân kênh Kỹ thuật truyền dẫn đa sóng mang (MC) sở kỹ thuật điều chế đa sóng mang trực giao (OFDM), điểm khác biệt OFDM sử dụng tập sóng mang trực giao Tính trực giao có nghĩa tín hiệu điều chế hồn tồn độc lập với Tính trực giao đạt sóng mang đặt xác vị trí điểm phổ tín hiệu điều chế, điều cho phép phổ tín hiệu chồng lấn lên tức hồn tồn khơng cần dải bảo vệ, nên tiết kiệm băng thông đáng kể so với FDM truyền thống Hình 1.1 cho thấy ưu OFDM việc sử dụng hiệu băng thơng.[1] Hình 1.1 Băng thông sử dụng hiệu OFDM 1.3 Ƣu điểm nhƣợc điểm OFDM Ưu điểm Kỹ thuật OFDM có nhiều ưu điểm mà kỹ thuật ghép kênh khác khơng có Kỹ thuật điều chế đa sóng mang trực giao OFDM cho phép truyền thơng tin tốc độ cao cách chia kênh truyền fading chon lọc tần số thành kênh truyền chịu fading phẳng Nhờ việc sử dụng tần số sóng mang trực giao nên tượng nhiễu liên sóng mang ICI loại bỏ, sóng mang phụ trực giao nên sóng mang chồng lấn lên mà phía thu tách dẫn đến hiệu sử dụng băng thông hệ thống hiệu Dùng tiền tố lặp (cycle prefix) lớn trải trễ lớn kênh truyền đa đường tượng nhiễu liên ký tự ISI loại bỏ hoàn toàn IFFT FFT giúp giảm thiểu số dao động giảm số điều chế giải điều chế giúp hệ thống giảm độ phức tạp chi phí thực hiện, tín hiệu điều chế giải điều chế đơn giản, hiệu nhờ vào IFFT FFT Nhược điểm OFDM kỹ thuật truyền đa sóng mang nên nhược điểm kỹ thuật tỷ số cơng suất đỉnh cơng suất trung bình PAPR (Peak- to-Average Power Ratio) lớn Tín hiệu OFDM tổng hợp tín hiệu từ sóng mang phụ, nên sóng mang phụ đồng pha, tín hiệu OFDM xuất đỉnh lớn Điều khiến ylabel('Bit error rate (BER)'); legend( 'No diversity', 'SC '); grid on end %***********Đoạn chương trình mơ kỹ thuật EGC ************** N_datapacket=300; for m = 0:2:2; N_receive=3; N_transmit=1; SNR = [2:2:30].'; N_datasymbol = 30; N_fft =128; N_cp = 10; Powersignal = N_transmit*1; N_symOFDM = N_fft + N_cp; L = 5; PDP = exp(- (0:L-1)/4)/sum( exp(- (0:L-1)/4) ); Profile M_QAM =32; length_subcarrier = log2(M_QAM); BER = zeros(1,length(SNR)); tic for SNR_index = 1:length(SNR) No = Powersignal/(10^(SNR(SNR_index)/10)); for p = 1:N_datapacket disp(['SNR=', num2str(SNR(SNR_index)), '; dataPacket=', num2str(p)]); [x,data_bit_seq,data_sym] = Transmit_Generator(length_subcarrier,N_fft,N_datasymbol,L); 54 h = zeros(L,N_transmit,N_receive); H = zeros(N_fft, 1, N_receive); for nr = 1:N_receive h(:,1,nr) = sqrt(PDP.'/2).* ( randn(L,1) + 1j*randn(L,1) ); [y,Y_FFT] = Receive_Generator(N_transmit,N_receive,L,N_fft,No,h,x); for k = 1:N_fft H(k, 1, nr) = exp(-2j*pi*(k-1)*[0:L-1]/N_fft)*h(:,1,nr); end end recoverbit = zeros(1,length_subcarrier*N_fft*N_datasymbol); for j = 1:N_datasymbol recoversymbol = zeros(N_fft,1); for i =1:N_fft %go through all subcarrier y1=0; h1=0; if m == % No Diversity y1=Y_FFT(i,nr,j); h1=H(i,1,nr); x1=y1/h1; recoversymbol(i)=[x1]; elseif m == % Equal Gain Combining for nr=1:N_receive y1=y1+Y_FFT(i,nr,j)*conj(H(i,1,nr))/abs(H(i,1,nr)); h1=h1+abs(H(i,1,nr)); end x1=y1/h1; recoversymbol(i) = [x1]; end end recoverbit((length_subcarrier*N_fft*(j- 1)+1):length_subcarrier*N_fft*j) = MQAM_Demodulator(recoversymbol,2^length_subcarrier); 55 end BER(SNR_index) = BER(SNR_index) + sum( abs(data_bit_seq - recoverbit) ); end end BER = BER/(N_datapacket*length_subcarrier*N_fft*N_datasymbol); switch(m) case figure(1) semilogy(SNR,BER,'b-','LineWidth',2); hold on; case semilogy(SNR,BER,'r-','LineWidth',2); hold on; otherwise end title('Receive diversity technique EGC'); xlabel('Signal noise ratio (SNR) (dB)'); ylabel('Bit error rate (BER)'); legend( 'No diversity', 'EGC '); grid on end %********** Đoạn chương trình mơ kỹ thuật MRC ************* N_datapacket=300; for m = 0:1:1; N_receive=3; N_transmit=1; SNR = [2:2:30].'; N_datasymbol = 30; 56 N_fft =128; N_cp = 10; Powersignal = N_transmit*1; N_symOFDM = N_fft + N_cp; L = 5; PDP = exp(- (0:L-1)/4)/sum( exp(- (0:L-1)/4) ); Profile M_QAM =32; length_subcarrier = log2(M_QAM); BER = zeros(1,length(SNR)); tic for SNR_index = 1:length(SNR) No = Powersignal/(10^(SNR(SNR_index)/10)); for p = 1:N_datapacket disp(['SNR=', num2str(SNR(SNR_index)), '; dataPacket=', num2str(p)]); if m==0 N_receive = 1; end [x,data_bit_seq,data_sym] = Transmit_Generator(length_subcarrier,N_fft,N_datasymbol,L); h = zeros(L,N_transmit,N_receive); H = zeros(N_fft, 1, N_receive); for nr = 1:N_receive h(:,1,nr) = sqrt(PDP.'/2).*( randn(L,1) + 1j*randn(L,1) ); [y,Y_FFT] = Receive_Generator(N_transmit,N_receive,L,N_fft,No,h,x); for k = 1:N_fft H(k, 1, nr) = exp(-2j*pi*(k-1)*[0:L-1]/N_fft)*h(:,1,nr); end end recoverbit = zeros(1,length_subcarrier*N_fft*N_datasymbol); 57 for j = 1:N_datasymbol recoversymbol = zeros(N_fft,1); for i =1:N_fft %go through all subcarrier y1=0; h1=0; if m == % No Diversity y1=Y_FFT(i,nr,j); h1=H(i,1,nr); x1=y1/h1; recoversymbol(i)=[x1]; elseif m == %Maximal Ratial Combining for nr = 1:N_receive y1=y1+Y_FFT(i,nr,j)*conj(H(i,1,nr)); h1=h1+(conj(H(i,1,nr))*H(i,1,nr)); end x1=y1/h1; recoversymbol(i)=[x1]; end end recoverbit((length_subcarrier*N_fft*(j-1)+1):length_subcarrier*N_fft*j) = MQAM_Demodulator(recoversymbol,2^length_subcarrier); end BER(SNR_index) = BER(SNR_index) + sum( abs(data_bit_seq - recoverbit) ); end end BER = BER/(N_datapacket*length_subcarrier*N_fft*N_datasymbol); switch(m) case figure(1) semilogy(SNR,BER,'b-','LineWidth',2); hold on; 58 case semilogy(SNR,BER,'r-','LineWidth',2); hold on; otherwise end title('Receive diversity technique MRC'); xlabel('Signal noise ratio (SNR) (dB)'); ylabel('Bit error rate (BER)'); legend( 'No diversity', 'MRC '); grid on end %*********** Đoạn chương trình mơ tín hiệu ***************** clear all; close all; N_packet = 2000 for d=1:1:4 N_rx=3; N_tx = 1; M_QAM =32; SNR = [1:1:18]; N_data_sym =21; %============== OFDM settings -L = 5; N_fft =128; N_cp = 10; SigPow = N_tx*1; Ns = N_fft + N_cp; PDP = exp(-(0:L-1)/4)/sum( exp(-(0:L-1)/4) ); subcarr_len = log2(M_QAM); 59 BER = zeros(1,length(SNR)); tic for SNR_index = 1:length(SNR) No = SigPow/(10^(SNR(SNR_index)/10)); for packet = 1:N_packet disp(['SNR=', num2str(SNR(SNR_index)), ';Packet=', num2str(packet)]); if d==0 N_rx=1; end [tx_data_sig,data_bit_seq,data_sym] = Tx_data_signal_generator_Diversity(subcarr_len,N_fft,N_data_sym,L); h = zeros(L,N_tx,N_rx); for rx_anten = 1:N_rx h(:,1,rx_anten) = sqrt(PDP.'/2).*( randn(L,1) + 1j*randn(L,1) ); end [rx_sig,FD_rx_sig] = Rx_Sig_Generator(N_tx,N_rx,L,N_fft,No,h,tx_data_sig); [reco_bits, reco_sym] = Diversity( h, FD_rx_sig, subcarr_len, N_fft, N_data_sym, N_rx, L, d ); BER(SNR_index) = BER(SNR_index) + sum( abs(data_bit_seq - reco_bits) ); end end BER = BER/(N_packet*subcarr_len*N_fft*N_data_sym); switch(d) case figure(1) semilogy(SNR,BER,'r+-','LineWidth',2); hold on; case semilogy(SNR,BER,'b*:','LineWidth',2); hold on; case 60 semilogy(SNR,BER,'yx-','LineWidth',2); hold on; case semilogy(SNR,BER,'k >','LineWidth',2); hold on; otherwise end xlabel('SNR (dB)'); ylabel('Bit error rate (BER)'); legend( 'MRC Bloc-fading', 'EGC Block-fading' , 'SC Block-fading', 'TC Block-fading'); grid on; end % ********* Đoạn chương trình mơ tả khối tạo tín hiệu phát *************** function [tx_data_sig,data_bit_seq,data_sym] = Tx_data_signal_generator_Diversity(subcarr_len,N_fft,N_data_sym,L) data_bit_seq = randint(1,subcarr_len*N_fft*N_data_sym); pre_QAM_seq = reshape(data_bit_seq,subcarr_len,N_fft,N_data_sym tx_data_sig = zeros(N_fft,L,1,N_data_sym); for sym = 1:N_data_sym tx_data_1 = MQAM_modulator(pre_QAM_seq(:,:,sym)); data_sym = tx_data_1.'; tx_data_sig(1:N_fft,1:L,1,sym) = circulant_ma(sqrt(N_fft)*ifft(tx_data_1.'),L); end end 61 %********** Đoạn chương trình mơ khối tín hiệu thu *********** function [rx_sig,FD_rx_sig] = Rx_Sig_Generator(N_tx,N_rx,L,N_fft,No,h,tx_data_sig) N_data_sym =21; for mm=1:N_data_sym for rx_anten = 1:N_rx rx_sig_nonoise = zeros(N_fft,1); rx_sig_nonoise = rx_sig_nonoise + tx_data_sig(1:N_fft,1:L,N_tx,mm)*h(1:L,N_tx,rx_anten); AWGN_sig = sqrt(No/2)*( randn(N_fft,1) + j*randn(N_fft,1) ); rx_sig(1:N_fft,rx_anten,mm) = rx_sig_nonoise + AWGN_sig; FD_rx_sig(1:N_fft,rx_anten,mm) = sqrt(1/N_fft)*fft(rx_sig(1:N_fft,rx_anten,mm)); end end end %********** Đoạn chương trình mơ khối điều chế ****************** function [QAM_sym] = MQAM_modulator(bit_tupple) tupple_Len = length(bit_tupple(:,1)); burst_len = length( bit_tupple(1,:) ); QAM_sym = zeros(1,burst_len); for sam =1:burst_len if tupple_Len == QAM_sym(sam) = 2*bit_tupple(1,sam) -1; elseif tupple_Len == QAM_sym(sam) = (2*bit_tupple(1,sam) -1) +1i*(2*bit_tupple(2,sam) -1); elseif tupple_Len == 62 QAM_sym(sam) = 2*bit_tupple(1,sam) -1+ 1i*sign(bit_tupple(2,sam)-0.5)*(2*bit_tupple(3,sam) +3); elseif tupple_Len == QAM_sym(sam) = sign(bit_tupple(1,sam)-0.5)*(-2*bit_tupple(2,sam) +3) + 1i*sign(bit_tupple(3,sam)-0.5)*(-2*bit_tupple(4,sam) +3); elseif tupple_Len == QAM_sym(sam) = sign(bit_tupple(1,sam)-0.5)*(-2*bit_tupple(2,sam) +3) + 1i*sign(bit_tupple(3,sam)-0.5)*two_bit_to_int(bit_tupple(4:5,sam)); elseif tupple_Len == QAM_sym(sam) = sign(bit_tupple(1,sam)0.5)*two_bit_to_int(bit_tupple(2:3,sam)) + 1i*sign(bit_tupple(4,sam)-0.5)*two_bit_to_int(bit_tupple(5:6,sam)); elseif tupple_Len == QAM_sym(sam) = sign(bit_tupple(1,sam)0.5)*two_bit_to_int(bit_tupple(2:3,sam)) + 1i*(sign(bit_tupple(4,sam)-0.5)*8 - sign(bit_tupple(4,sam)0.5)*sign(bit_tupple(5,sam)-0.5)*two_bit_to_int(bit_tupple(6:7,sam))); elseif tupple_Len == QAM_sym(sam) = sign(bit_tupple(1,sam)-0.5)*8 - sign(bit_tupple(1,sam)0.5)*sign(bit_tupple(2,sam)-0.5)*two_bit_to_int(bit_tupple(3:4,sam)) + 1i*(sign(bit_tupple(5,sam)-0.5)*8 - sign(bit_tupple(5,sam)0.5)*sign(bit_tupple(6,sam)-0.5)*two_bit_to_int(bit_tupple(7:8,sam))); end end %************* Đoạn chương trình mơ khối giải điều chế************ function [recovered_bits] = MQAM_Demodulator(sig,M) num_sam = length(sig); if M == s = [-1 1]; 63 for sam = 1:num_sam [distance,min_index] = min( abs( sig(sam) - s ).^2 ); recovered_bits(sam) = min_index-1; end elseif M == s = [-1-1i 1-1i -1+1i 1+1i]; for sam = 1:num_sam [distance,min_index] = min( abs( sig(sam) - s ).^2 ); recovered_bit_temp(1:2,sam) = dec2bin(min_index-1,2); end recovered_bits = reshape(recovered_bit_temp,1,2*(num_sam)); elseif M == load QAM8dectab.mat [QAMbintab, QAMcplxtab] = make_tables(3,QAM_in); recovered_bits = []; for sam = 1:num_sam [y, x] = nearestIndex(sig(sam),QAMcplxtab); recovered_bits = horzcat(recovered_bits, reshape(QAMbintab(y, x, :), 1, 3)); end elseif M == 16 load QAM16dectab.mat [QAMbintab, QAMcplxtab] = make_tables(4,QAM_in); recovered_bits = []; for sam = 1:num_sam [y, x] = nearestIndex(sig(sam),QAMcplxtab); recovered_bits = horzcat(recovered_bits, reshape(QAMbintab(y, x, :), 1, 4)); end elseif M == 32 load QAM32dectab.mat [QAMbintab, QAMcplxtab] = make_tables(5,QAM_in); recovered_bits = []; 64 for sam = 1:num_sam [y, x] = nearestIndex(sig(sam),QAMcplxtab); recovered_bits = horzcat(recovered_bits, reshape(QAMbintab(y, x, :), 1, 5)); end elseif M == 64 load QAM64dectab.mat [QAMbintab, QAMcplxtab] = make_tables(6,QAM_in); recovered_bits = []; for sam = 1:num_sam [y, x] = nearestIndex(sig(sam),QAMcplxtab); recovered_bits = horzcat(recovered_bits, reshape(QAMbintab(y, x, :), 1, 6)); end elseif M == 128 load QAM128dectab.mat [QAMbintab, QAMcplxtab] = make_tables(7,QAM_in); recovered_bits = []; for sam = 1:num_sam [y, x] = nearestIndex(sig(sam),QAMcplxtab); recovered_bits = horzcat(recovered_bits, reshape(QAMbintab(y, x, :), 1, 7)); end elseif M==256 load QAM256dectab.mat [QAMbintab, QAMcplxtab] = make_tables(8,QAM_in); recovered_bits = []; for sam = 1:num_sam [y, x] = nearestIndex(sig(sam),QAMcplxtab); recovered_bits = horzcat(recovered_bits, reshape(QAMbintab(y, x, :), 1, 8)); end end 65 %**** Đoạn chương trình nguồn mơ tính hội tụ ăng ten **** clear all; close all; N_packet =800; d=3; for x=1:5 if x==1 N_rx=2; elseif x==2 N_rx=4; elseif x==3 N_rx=9; elseif x==4 N_rx=10; elseif x==5 N_rx=11; end N_tx = 1; M_QAM =64; SNR = [0:2:20].'; N_data_sym =21; %============== OFDM settings -L = 5; N_fft =128; N_cp = 10; SigPow = N_tx*1; Ns = N_fft + N_cp; PDP = exp(-(0:L-1)/4)/sum( exp(-(0:L-1)/4) ); subcarr_len = log2(M_QAM); BER = zeros(1,length(SNR)); tic 66 for SNR_index = 1:length(SNR) No = SigPow/(10^(SNR(SNR_index)/10)); for packet = 1:N_packet disp(['SNR=', num2str(SNR(SNR_index)), ';Packet=', num2str(packet)]); if d==0 N_rx=1; end [tx_data_sig,data_bit_seq,data_sym] = Tx_data_signal_generator_Diversity(subcarr_len,N_fft,N_data_sym,L); h= zeros(L,N_tx,N_rx); for rx_anten = 1:N_rx h(:,1,rx_anten) = sqrt(PDP.'/2).*( randn(L,1) + 1j*randn(L,1) ); end [rx_sig,FD_rx_sig] = Rx_Sig_Generator(N_tx,N_rx,L,N_fft,No,h,tx_data_sig); [reco_bits, reco_sym] = Diversity( h, FD_rx_sig, subcarr_len, N_fft, N_data_sym, N_rx, L, d ); BER(SNR_index) = BER(SNR_index) + sum( abs(data_bit_seq - reco_bits) ); end end BER = BER/(N_packet*subcarr_len*N_fft*N_data_sym); switch(x) case figure(1) semilogy(SNR,BER,'b*:','LineWidth',2); hold on; case semilogy(SNR,BER,'r+-','LineWidth',2); hold on; case semilogy(SNR,BER,'k> ','LineWidth',2); hold on; 67 case semilogy(SNR,BER,'yx-','LineWidth',2); hold on; case semilogy(SNR,BER,'go-','LineWidth',2); hold on; otherwise end xlabel('SNR (dB)'); ylabel('Bit error rate (BER)'); legend( 'N_rx=2', 'N_rx=4', 'N_rx=9', 'N_rx=10', 'N_rx=11'); end 68 ... thu? ??t ? ?phân tập thu? ?? Đề tài Mô kỹ thu? ??t phân tập thu hệ thống OFDM gồm chương sau: Chƣơng 1: Kỹ thu? ??t OFDM Chương nói nguyên lý kỹ thu? ??t OFDM Ưu điểm, nhược điểm chức khối OFDM Chƣơng 2: Hệ thống. .. bên thu Việc kết hợp tín hiệu theo bốn kỹ thu? ??t phân tập thu 24 Kỹ thu? ??t phân tập thu Maximal Ratio Combining (MRC) Kỹ thu? ??t phân tập thu Equal-gain Combining(EGC) Kỹ thu? ?t phân tập thu. .. 3: Các kỹ thu? ??t phân tập thu OFDM Có bốn kỹ thu? ??t phân tập thu trình bày chương sở lý thuyết đặt tính phương pháp phân tích tổng hợp tín hiệu kỹ thu? ??t làm rõ Qua dự đốn, đánh giá hiệu kỹ thu? ??t