Đồ án kỹ thuật MIMO OFDM và đánh giá chất lượng hệ thống 50

97 26 0
Đồ án kỹ thuật MIMO OFDM và đánh giá chất lượng hệ thống 50

Đ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

MỤC LỤC THUẬT NGỮ VIẾT TẮT DANH MỤC HÌNH VẼ LỜI NÓI ĐẦU Chương TỔNG QUAN VỀ KỸ THUẬT MIMO-OFDM VÀ HỆ THỐNG THÔNG TIN DI ĐỘNG 1.1 Giới thiệu 1.2 Sơ lược lịch sử phát triển thông tin di động 1.2.1 Giới thiệu chung .1 1.2.2 Những tồn khó khăn kỹ thuật lĩnh vực thông tin di động 1.3 Môi trường vô tuyến thông tin di động 1.3.1 Méo biên độ .5 1.3.1.1 Mô hình fading Rayleigh .5 1.3.1.2 Mơ hình fading Rician 1.3.1.3 Thống kê fading 1.3.2 Suy hao đường truyền 1.3.3 Trải trễ tượng đa đường 10 1.3.4 Tạp âm trắng Gauss .10 1.3.5 Hiện tượng Doppler 11 1.4 Tổng quan kỹ thuật MIMO-OFDM 12 1.4.1 Định nghĩa khái niệm 12 1.4.2 Kỹ thuật MIMO-OFDM 13 1.5 Kết luận chương 14 ĐỒ ÁN TỐT NGHIỆP Chương 15 KỸ THUẬT OFDM .15 2.1 Giới thiệu .15 2.2 Khái niệm chung 16 2.2.1 Hệ thống đơn sóng mang .16 2.2.2 Hệ thống đa sóng mang 16 2.2.3 Tín hiệu trực giao 17 2.3 Sơ đồ hệ thống OFDM băng sở .19 2.4 Cơ sở toán học .20 2.4.1 Trực giao 20 2.4.2 IFFT/FFT 20 2.5 Các kỹ thuật OFDM .21 2.5.1 Sơ đồ điều chế/ Giải điều chế 21 2.5.2 Mã hoá kênh 23 2.5.3 Sắp xếp 24 2.5.4 Kỹ thuật IFFT/FFT OFDM 25 2.5.5 Tiền tố lặp CP 26 2.5.6 Ước lượng kênh 28 2.5.6.1 Khái niệm 28 2.5.6.2 Ước lượng kênh miền tần số 31 2.5.6.3 Ước lượng kênh miền thời gian 31 2.6 So sánh độ phức tạp kỹ thuật OFDM với điều chế đơn sóng mang 33 2.7 Kết luận chương 35 Chương 36 KỸ THUẬT MIMO .36 3.1 Giới thiệu .36 ĐỒ ÁN TỐT NGHIỆP 3.1.1 Ưu điểm kỹ thuật MIMO 36 3.1.2 Khuyết điểm hệ thống MIMO 37 3.2 Dung lượng kênh truyền hệ thống MIMO 37 3.3 Sơ lược phân tập 37 3.3.1 Phân tập thời gian 38 3.3.2 Phân tập tần số .39 3.3.3 Phân tập không gian .39 3.3.4 Các phương pháp kết hợp phân tập 40 3.3.4.1 Bộ tổ hợp theo kiểu quét lựa chọn (SC) 40 3.3.4.2 Bộ tổ hợp độ lợi (EGC) .41 3.3.4.3 Bộ tổ hợp với tỉ số tối đa (MRC) .42 3.4 Mã hóa khơng gian_thời gian .44 3.4.1 Mã hóa khối không gian thời gian (Space time block Codes) .45 3.4.1.1 Mã hóa Alamouti .46 3.4.1.2 Orthogonal STBC Tarokh cho số anten phát 47 3.5 Kết luận chương 50 Chương 51 KỸ THUẬT MIMO-OFDM 51 4.1 Giới thiệu .51 4.2 Mô tả tổng quan hệ thống MIMO_OFDM .51 4.2.1 MIMO-OFDM Tx 52 4.2.2 MIMO_OFDM Rx 52 4.2.3 Cấu trúc khung (frame) hệ thống MIMO-OFDM 53 4.3 Phân tích hệ thống MIMO-OFDM 54 4.3.1 Mơ hình hệ thống MIMO-OFDM 54 4.3.2 Space-Time Block-Coded OFDM 55 4.3.2.1 Hệ thống STBC-OFDM 55 ĐỒ ÁN TỐT NGHIỆP 4.3.2.2 Bộ phát STBC-OFDM .56 4.3.2.3 Bộ thu STBC-OFDM 57 4.4 Kết luận chương 60 Chương 61 MÔ PHỎNG HỆ THỐNG MIMO-OFDM & ĐÁNH GIÁ CHẤT LƯỢNG HỆ THỐNG 61 5.1 Giới thiệu nội dung mô 61 5.2 Các thông số mô 61 5.2.1 Hệ thống OFDM .61 5.2.2 Hệ thống MIMO-OFDM 62 5.2.3 Thông số kênh truyền .62 5.3 Lưu đồ sơ đồ thuật toán chương trình mơ 63 5.3.1 Truyền tín hiệu 63 5.3.2 Kênh truyền 63 5.3.3 Nhận tín hiệu 64 5.3.4 Thuật tốn tính BER 65 5.4 Kết mô đánh giá .66 5.5 Kết luận chương 69 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 70 TÀI LIỆU THAM KHẢO 71 PHỤ LỤC ĐỒ ÁN TỐT NGHIỆP THUẬT NGỮ VIẾT TẮT THUẬT NGỮ VIẾT TẮT A AMPS Advance Mobile Phone Service AWGN Addition White Gaussian Noise B BER Bit Error Rate BLAST Bell labs Layered Space Time C CDMA Code Division Multiple Access CP Cyclic Prefix CNR Carrier Noise Rate CSI Channel State Information D DFT Discrete Fourier Transform E EGC Equal Gain Combiner F FDMA Frequency Division Multiple Access FEC Forward Error Correcting FFT Fast Fourier Transform G GSM Global System For Mobile Communication I IS-95 Interim Standard 95 IS-136 Interim Standard 136 ISI InterSymbol Interference ITU International Telecom Union IDFT Inverse Discrete Fourier Transform IFFT Inverse Fast Fourier Transform ĐỒ ÁN TỐT NGHIỆP THUẬT NGỮ VIẾT TẮT ICI InterChannel Interference M MS Mobile Station MIMO Multi Input Multi Output MMSE Minimum Mean Square Error MRC Maximum Ratio Combiner ML Maximum Likelihood N NMT450 Nordic Mobile Telephone 450 NTT Nipon Telegraph and Telephone O OFDM Orthogonal Frequency Division Multiplexing P PDC Personal Digital Cell PSK Phase Shift Keying PAPR Peak to Average Power Ratio PSAM Pilot Signal Assisted Modulation PLL Phase Lock Loop pdf Power Density Function Q QAM Quadrature Amplitude Modulation R RS Reed-Solomon code S SC Selection Combiner STC Space Time Coding STBC Space Time Block Coding STTC Space Time Trellis Coding SNR Signal to Noise Ratio ĐỒ ÁN TỐT NGHIỆP THUẬT NGỮ VIẾT TẮT T TACS Total Access Communication System TDMA Time Division Multiple Access TC Turbo convolutional code W WCDMA Wideband CDMA WIFI Wireless Fidelity WIMAX World Interoperability Microwave Access ĐỒ ÁN TỐT NGHIỆP DANH MỤC HÌNH VẼ DANH MỤC HÌNH VẼ Hình 1.1: Hàm pdf theo phân bố Rayleigh .6 Hình 1.2: Hàm pdf Rician với giá trị khác K .7 Hình 1.3: Mơ hình tượng Doppler 11 Hình 1.4: Mơ hình tổng qt hệ thống MIMO-OFDM 13 Hình 2.1: Sơ đồ chung hệ thống đơn sóng mang 16 Hình 2.2: Sơ đồ hệ thống đa sóng mang 17 Hình 2.3a: Bốn sóng mang trực giao 18 Hình 2.3b: Phổ sóng mang trực giao 18 Hình 2.4a: Kỹ thuật đa sóng mang .18 Hình 2.4b: Kỹ thuật ghép kênh phân chia theo tần số trực giao 18 Hình 2.5: Sơ đồ hệ thống OFDM 19 Hình 2.6: Chùm tín hiệu M_QAM 22 Hình 2.7: Tiền tố lặp (CP) OFDM 27 Hình 2.8: Đáp ứng xung kênh truyền mơi trường truyền đa đường 28 Hình 2.9: Tín hiệu Pilot miền thời gian tần số 30 Hình 2.10: Tín hiệu pilot miền tần số 30 Hình 3.1: Mơ hình hệ thống MIMO tiêu biểu 36 Hình 3.2: Mơ hình phân tập khơng gian 39 Hình 3.3: Mơ hình tổ hợp kiểu lựa chọn 41 Hình 3.4: Bộ tổ hợp kiểu quét .41 Hình 3.5: Phương pháp kết hợp tỉ số cực đại .42 ĐỒ ÁN TỐT NGHIỆP DANH MỤC HÌNH VẼ Hình 3.6: Phương pháp tỉ số cực đại với 1Tx 2Rx 43 Hình 3.7: Sơ đồ mã hố Alamouti 46 Hình 3.8: Sơ đồ giải mã hệ thống STBC .48 Hình 4.1: Sơ đồ phát thu hệ thống MIMO-OFDM 51 Hình 4.2: Sơ đồ khối phát hệ thống MIMO_OFDM 52 Hình 4.3: Sơ đồ khối thu hệ thống MIMO_OFDM 52 Hình 4.4: Cấu trúc khung liệu MIMO-OFDM .53 Hình 4.5: Mơ hình hệ thống STBC-OFDM 2x2 55 ĐỒ ÁN TỐT NGHIỆP LỜI NĨI ĐẦU LỜI NĨI ĐẦU Mạng thơng tin di động có ưu điểm mà mạng có dây khơng có như: tính lưu động, nơi có địa hình phức tạp, khơng gian v v Vì người không ngừng nghiên cứu để cải tiến mạng di động ngày, từ mạng 2G lên 2,5G; 3G; 4G; xây dựng mơ hình mạng WIFI, WIMAX Song song với hệ giải pháp đưa như: FDMA, TDMA, CDMA, OFDM, MIMO…Mỗi giải pháp có ưu điểm giải pháp cũ phát triển theo xu hướng sau: nâng cao tốc độ liệu, nâng cao chất lượng tín hiệu, mở rộng băng thông, chất lượng dịch vụ… Trong OFDM MIMO hai kỹ thuật đưa vào thử nghiệm tiếp tục nghiên cứu tương lai OFDM kỹ thuật ghép kênh phân chia theo tần số trực giao, MIMO kỹ thuật sử dụng nhiều anten để truyền nhận liệu OFDM đưa vào ứng dụng thực tế như: truyền hình số, phát số, truyền hình vệ tinh đem lại hiệu đáng kể Còn MIMO kỹ thuật nên cịn q trình thử nghiệm nghiên cứu Tuy nhiên, người ta kết hợp hai kỹ thuật MIMO OFDM vào số mơ WiMax, VoWifi tiêu chuẩn 802.16, 802.11n, đem lại kết cao thực tế Nội dung đồ án trình bày tổng quan hệ thống MIMO-OFDM, tập trung vào mơ hình STBC-OFDM Nội dung đồ án chia làm chương: Chương 1: Tổng quan kỹ thuật MIMO-OFDM hệ thống thông tin di động Chương 2: Kỹ thuật OFDM Chương 3: Kỹ thuật MIMO Chương 4: Kỹ thuật MIMO-OFDM Chương 5: Mô hệ thống MIMO-OFDM đánh giá chất lượng hệ thống ĐỒ ÁN TỐT NGHIỆP KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI Đề tài “ Kỹ thuật MIMO_OFDM” trình bày cách tổng quan công nghệ MIMO_OFDM Thông qua hệ thống STBC_OFDM 2x2, giới thiệu cách chi tiết cơng nghệ MIMO_OFDM đơn giản Trong đề tài cịn trình bày kỹ thuật OFDM, MIMO, ước lượng kênh Hiện nay, công nghệ MIMO_OFDM ứng dụng vào chuẩn IEEE 802.11n hệ thống WIFI IEEE 802.16 hệ thống WIMAX Mặc dù bước đầu giai đoạn ứng dụng thử nghiệm với qui mô nhỏ mang lại bước tiến vượt bậc lĩnh vực thông tin di động, mở rộng băng thơng, nâng cao chất lượng tín hiệu trao đổi Mạng WIFI sử dụng 802.11n trao đổi liệu dung lượng lớn âm thanh, hình ảnh mà mạng WIFI trước khơng thực Đề tài giới thiệu công nghệ STBC_OFDM, công nghệ cho cải thiện đáng kể chất lượng tín hiệu Phát triển đề tài này, nghiên cứu thêm hệ thống MIMO_OFDM với số anten phát thu lớn hơn; hệ thống 3x4, 4x4, 8x8,…Nhưng số anten tăng nảy sinh vấn đề cần giải là: phức tạp thu tín hiệu, làm cho phép tính có độ khó cao, thiết bị cồng kềnh, giá thành cao Tuy nhiên gần đây, với phát minh xử lí tín hiệu số giá rẻ, xử lí đa năng, thuật tốn xử lí tín hiệu mới, điều giúp thiết bị MIMO_OFDM gọn gàng đưa vào áp dụng rộng rãi thực tế Với ưu điểm mặt kỹ thuật hỗ trợ phát minh mới, công nghệ MIMO_OFDM công nghệ hàng đầu áp dụng hệ thống thông tin di động hệ NGN, 4G Ketnooi.com diễn đàn chia sẻ kiến thức, công nghệ 71 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO [1] TS.Phan Hồng Phương, KS.Lâm Chi Thương, “Kỹ thuật phân tập anten cải thiện dung lượng hệ thống MIMO” [2] Phạm Hồng Liên, Đăng Ngọc Khoa, Trần Thanh Phương, “Matlab ứng dụng Viễn Thông”, Nhà xuất Đại Học quốc gia thành phố Hồ Chí Minh-2006 [3] Ths Nguyễn Anh Tuấn, “Phương pháp mã hóa khơng gian thời gian hệ thống MIMO số hướng nghiên cứu”, báo trình hội nghị khoa học lần thứ VI [4] ThS.Lê Văn Ninh, TS.Nguyễn Viết Kính, “Đồng tần số miền tần số cho OFDM”, báo khoa học [5] Ths.Nguyễn Ngọc Tiến, “Một số vấn đề kỹ thuật hệ thống OFDM”, Tạp chí bưu Viễn Thơng Công nghệ thông tin, 29/09/2003 [6] Brank Vucetic, Jinhong Yuan, John Wily& Son, “Space Time Coding”, 2003 [7] Lisa Meilhac, Alian Chiodini, Clement Boudesocque, Crislin Lele, Anil Gercekei, “MIMO-OFDM modem for WLAN”- Newlogic Technology S.A.R.L, 072004 [8] John R.Barry, “Broadband MIMO OFDM wireless communications”, 2004 [9] Vahid Tarokh, Hamid Jafarkhani, and A R Calderbank "Space–time block codes from orthogonal designs" IEEE Transactions on Information Theory : 744– 765, July 1999 [10] Vahid Tarokh, A.Robert Calderbank, “Space-Time Block Coding for Wireless Communications” IEEE journal on selected areas in communication, March 1999 Ketnooi.com diễn đàn chia sẻ kiến thức, công nghệ 72 PHỤ LỤC PHỤ LỤC CHƯƠNG TRÌNH MATLAB THỰC HIỆN MƠ PHỎNG 1) Chương trình function varargout = MIMO_OFDM(varargin) % MIMO_OFDM M-file for MIMO_OFDM.fig gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @MIMO_OFDM_OpeningFcn, 'gui_OutputFcn', @MIMO_OFDM_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin == % LAUNCH GUI fig = openfig(mfilename,'reuse'); % Use system color scheme for figure: set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); % Generate a structure of handles to pass to callbacks, and store it handles = guihandles(fig); guidata(fig, handles); if nargout > varargout{1} = fig; end elseif ischar(varargin{1}) try if (nargout) [varargout{1:nargout}] = feval(varargin{:}); else feval(varargin{:}); % FEVAL switchyard end catch disp(lasterr); end end % End initialization code - DO NOT EDIT % - Executes just before MIMO_OFDM is made visible % - Executes on button press in start function varargout = start_Callback(hObject, eventdata, handles) Nfram1=str2double(get(handles.frames,'String')) fft1=str2double(get(handles.fft_size,'String')) Nsub1=str2double(get(handles.Nsubcarriers,'String')) Dopler_freq1=str2double(get(handles.fd,'String')) SNR1=eval(get(handles.snr,'String')) ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC M_qam1=str2double(get(handles.M,'String')); M1 = M_qam1(get(handles.M,'Value'),1) Delay1=str2double(get(handles.t_rms,'String')); t_rms1=Delay1(get(handles.t_rms,'Value'),1); %***************************************************************** ** %state=1:OFDM ; state=2:STBC_OFDM 2x2 state1=1; state2=2; fd = Dopler_freq1;%fd1;%20; % Doppler frequency in Hz t_rms = 1;%t_rms1;%1; % Delay spread in mu s subN = Nsub1;%16; % No of sub-carriers in each sub-channel F_LA = 1; % Link Adaptation Resolusion, useless here Nframe = Nfram1;%110; % Total No of frames to be simulated cdrt = 1/2; % Coding rate M = M1; % M-QAM misnr = SNR1(1); % minimum simulated SNR in dB stp = SNR1(2); % SNR simulation step mxsnr = SNR1(end); % maximum simulated SNR in dB chnums = 1000; % No of channel realizations, should be larger than the total simulated symbols (frames * 6) sampling_rate = 1.08; % over-sampling rate, 1.08 for wimax?, and 1.536 for 3gpp flg_offset = 0; % no Carrier-frequency offset flg_csi_err = 0; % no Channel state information error N = fft1%512; % FFT size & total No of sub-carriers cp_l = 128; % CP length BW = 5e6; % system bandwidth, 5MHz Nsymbol = 6; % symbols within each frame dirname1 = 'yynew1'; % where the result is stored dirname2 = 'yynew2'; % where the result is stored allow_load_oldres = 1; % allow to load previous result Root_path = '.'; % where the path starts addpath(' /comm_funcs'); DELAY=0; % no feedback delay stbc = 1; % useful only for alamouti (MISO) T_Symbol = (N+cp_l)/(BW*sampling_rate); % OFDM symbol duration sys = {'SISO','MRC1x2','Alt2x1','EGC1x2','AS2x1','ALT2x2','AS2x2'}; % supported MIMO schemes T_n=[1,2]; %Transmitter diversity branches [SIMO,MRC,MISO,EGC,MISO-AS] R_n=[1,2]; %Receiver diversity branches [SIMO,MRC,MISO,EGC,MISO-AS] T_div1=T_n(state1); %Specify transmitter diversity branches R_div1=R_n(state1); %specify receiver diversity branches T_div2=T_n(state2); ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC R_div2=R_n(state2); [ch1,ch2] = channelgenerator2(t_rms,fd,sampling_rate,N,cp_l,BW,chnums + F_LA * Nsymbol + DELAY,T_div1*R_div1,T_div2*R_div2); %%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% filename = ['f',num2str(fd),'_t',num2str(t_rms),'_N',num2str(subN),'_L',num2str(F_LA), '_M',num2str(M),'F',num2str(round(10*cdrt)),'_E',num2str(flg_csi_err), 'c',num2str(flg_offset),'D',num2str(DELAY),'.mat']; dirname1 = [Root_path,'/',dirname1]; filepath1 = [dirname1,'/',filename]; dirname2 = [Root_path,'/',dirname2]; filepath2 = [dirname2,'/',filename]; if allow_load_oldres && exist(filepath1,'file') && exist(filepath2,'file'), load(filepath1); load(filepath2); else %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % rdstate = 4831; snr_ix = 0; Num_grp=floor(N/subN); blk_err_c=nan(length(misnr:stp:mxsnr),floor(Nframe/F_LA),Num_grp); bit_err_u=nan(length(misnr:stp:mxsnr),floor(Nframe/F_LA),Num_grp); bit_tot_u=nan(length(misnr:stp:mxsnr),floor(Nframe/F_LA),Num_grp); bit_err_c=nan(length(misnr:stp:mxsnr),floor(Nframe/F_LA),Num_grp); bit_tot_c=nan(length(misnr:stp:mxsnr),floor(Nframe/F_LA),Num_grp); for snr=misnr:stp:mxsnr %%%%%%%%%%%%%%%%%%% snr_ix=snr_ix+1; frame_ix = 0; noisePowPerSubC = 1/10^(snr/10)/N; for la_ix=1:floor(Nframe/F_LA) rnd = randint(1,1,chnums) + 1; % randmize channel index for different LA intervals, avoid high time-correlation index = (rnd: rnd + F_LA * Nsymbol-1 ) + DELAY; h1 = ch1(:,index,:); h2 = ch2(:,index,:); H1 = func_add_csi_err(h1,N,flg_csi_err); % add CSI error H2 = func_add_csi_err(h2,N,flg_csi_err); % add CSI error [H1_comb,H1_LA,ps1]=selectAntenna2(H1,N,subN,state1,T_div1); % tx antenna selection [H2_comb,H2_LA,ps2]=selectAntenna2(H2,N,subN,state2,T_div2); % tx antenna selection ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC B=log2(M)*ones(floor(N/subN),1); % loaded bits per sub-carrier P1 = 1/N/T_div1*ones(floor(N/subN),1); % power per subCarrier P2 = 1/N/T_div2*ones(floor(N/subN),1); % power per subCarrier code_rate = cdrt*ones(floor(N/subN),1); [T_mod1,T_mod2,T_sent,coded,intleav,fact1,fact2,real_len,raw_len,t] = T_mod_cod_intlv(N,subN,B,P1,P2,Nsymbol,code_rate,rdstate,T_div1,T_div2,ps1,p s2,state1,state2); % modulator & encoder & interleaver tf(snr_ix,la_ix) = sum(B~=0)*F_LA;%length(find(B~=0))*F_LA; % should be N/subN * F_LA tb_u(snr_ix,la_ix) = sum(B)*subN*Nsymbol*F_LA; tb_c(snr_ix,la_ix) = sum(raw_len)*F_LA; if stbc == 1, T_trans1=BT_alamouti(T_mod1,Nsymbol,state1); %doan chuong trinh thuc hien MIMO T_trans2=BT_alamouti(T_mod2,Nsymbol,state2); end for nf = 1:F_LA%F_PA % frame index within each PA window frame_ix = frame_ix + 1; index3 = ((nf-1)*Nsymbol+1:nf*Nsymbol); h2_1=h1(:,index3+DELAY,:); % only in the channel part, and combining part, no delay h2_2=h2(:,index3+DELAY,:); R_dfs1=BTR_ofdm(h2_1,N,cp_l,T_trans1,snr,T_div1,R_div1,Nsymbol,flg_offset,f d,BW,sampling_rate,noisePowPerSubC); % ofdm transiver R_dfs2=BTR_ofdm(h2_2,N,cp_l,T_trans2,snr,T_div2,R_div2,Nsymbol,fl g_offset,fd,BW,sampling_rate,noisePowPerSubC); % ofdm transiver H2_1 = H1_comb(:,index3+DELAY,:); % here, use H at the receiver, no delay H2_2 = H2_comb(:,index3+DELAY,:); if stbc == 1, R_comb1=BR_combiner(R_dfs1,H2_1,state1); R_comb2=BR_combiner(R_dfs2,H2_2,state2); end [blk_err_c(snr_ix,frame_ix,1:Num_grp),blk_tot_c(snr_ix,frame_ix,1:Num_grp),bit_ err_u(snr_ix,frame_ix,1:Num_grp),bit_tot_u(snr_ix,frame_ix,1:Num_grp),bit_err_c (snr_ix,frame_ix,1:Num_grp),bit_tot_c(snr_ix,frame_ix,1:Num_grp),wb_u1(snr_ix, frame_ix),wb_c1(snr_ix,frame_ix),tp_uu1(snr_ix,frame_ix),tp_cc1(snr_ix,frame_ix ),wf_u1(snr_ix,frame_ix),wf_c1(snr_ix,frame_ix)] = R_mod_cod_intlv(N,subN,R_comb1,fact1,B,rdstate,code_rate,real_len,t,coded,T_s ent,intleav); % de-interleaver & de-coder & de-modulator ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC [blk_err_c(snr_ix,frame_ix,1:Num_grp),blk_tot_c(snr_ix,frame_ix,1:Num_grp),bit_ err_u(snr_ix,frame_ix,1:Num_grp),bit_tot_u(snr_ix,frame_ix,1:Num_grp),bit_err_c (snr_ix,frame_ix,1:Num_grp),bit_tot_c(snr_ix,frame_ix,1:Num_grp),wb_u2(snr_ix, frame_ix),wb_c2(snr_ix,frame_ix),tp_uu2(snr_ix,frame_ix),tp_cc2(snr_ix,frame_ix ),wf_u2(snr_ix,frame_ix),wf_c2(snr_ix,frame_ix)] = R_mod_cod_intlv(N,subN,R_comb2,fact2,B,rdstate,code_rate,real_len,t,coded,T_s ent,intleav); % de-interleaver & de-coder & de-modulator end end disp(['SNR= ',num2str(snr),'dB finished']); end %% calculate results % truong hop state1=1 ber_c1 = sum(wb_c1,2)./sum(tb_c,2)% avaible store ‘ber’ of OFDM % save results if ~exist(dirname1,'dir'), mkdir(dirname1); end; desp1 = [sys{state1},filename]; save(filepath1,'desp1','ber_c1','misnr','stp','mxsnr','t_rms','fd','state1','M','cdrt','subN') ; %truong hop state2=2 ber_c2 = sum(wb_c2,2)./sum(tb_c,2)%avaible store ‘ber’ of MIMO_OFDM % save results if ~exist(dirname2,'dir'), mkdir(dirname2); end; desp2 = [sys{state2},filename]; save(filepath2,'desp2','ber_c2','misnr','stp','mxsnr','t_rms','fd','state2','M','cdrt','sub N'); end % plot results %**************figure; %***************************************************************** *** axes(handles.axes1) semilogy(misnr:stp:mxsnr,ber_c1,'-.r*',misnr:stp:mxsnr,ber_c2,':bs','linewidth',2); legend('OFDM 1x1','STBCOFDM 2x2'); xlabel('SNR [dB]'); ylabel('BER'); set(handles.axes1,'XminorTick','on') grid on ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC clear all;clc; function MIMO_OFDM_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; % Update handles structure guidata(hObject, handles); function varargout = MIMO_OFDM_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function varargout = frames_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function frames_CreateFcn(hObject, eventdata, handles) % See ISPC and COMPUTER if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function varargout = fft_size_Callback(hObject, eventdata, handles) % hObject handle to fft_size (see GCBO) % - Executes during object creation, after setting all properties function fft_size_CreateFcn(hObject, eventdata, handles) % hObject handle to fft_size (see GCBO) % See ISPC and COMPUTER if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function varargout = Nsubcarriers_Callback(hObject, eventdata, handles) % hObject handle to Nsubcarriers (see GCBO) % Hints: get(hObject,'String') returns contents of Nsubcarriers as text % str2double(get(hObject,'String')) returns contents of Nsubcarriers as a double % - Executes during object creation, after setting all properties function Nsubcarriers_CreateFcn(hObject, eventdata, handles) % hObject handle to Nsubcarriers (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows % See ISPC and COMPUTER if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC function M_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function M_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function varargout = fd_Callback(hObject, eventdata, handles) function fd_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function varargout = t_rms_Callback(hObject, eventdata, handles) function t_rms_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function varargout = snr_Callback(hObject, eventdata, handles) function snr_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % - Executes on selection change in M function popupmenu2_Callback(hObject, eventdata, handles) function popupmenu2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end 2) Interleaving,Coding and Mod received signal function [T_mod1,T_mod2,T_sent,coded,intleav,fact1,fact2,real_len,raw_len,t] = T_mod_cod_intlv(N,subN,B,P1,P2,Nsymbol,code_rate,rdstate,T_div1,T_div2,ps1,p s2,state1,state2) T_sent = cell(1,floor(N/subN)); coded = cell(1,floor(N/subN)); intleav = cell(1,floor(N/subN));T_mod1 = []; T_mod2 = []; ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC t = cell(1,floor(N/subN)); for k = 1:floor(N/subN) lens = subN*B(k)*Nsymbol; if code_rate(k) == 2/3&&mod(floor(lens*code_rate(k)),2)~=0 raw_len(k) = floor(lens*code_rate(k))-1;%lenh se rut gon chieu dai lens theo ti le k else raw_len(k) = floor(lens*code_rate(k)); end raw_bits = randint(1,raw_len(k)); T_sent{k} = raw_bits;%dua mang "raw_bits" vao vi tri "T_sent{k}" [coded{k},t{k},real_len(k)] = N_encoder(code_rate(k),raw_bits,lens);%ma hoa raw_bit theo trellis k=1/2 if length(coded{k})==0 intleav{k} = []; mod1 = zeros(1,subN*Nsymbol); fact1(k) = 0; fact2(k) = 0; else intleav{k}=randintrlv(coded{k},rdstate); mod1 = qmodulator2(intleav{k},2^B(k)); fact1(k) = sqrt(P1(k)/pv(mod1));%P1 la nang luong tren mot song mang con; pv la tinh gia tri trung binh fact2(k) = sqrt(P2(k)/pv(mod1)); end = reshape(mod1,[],subN); %sap xep lai ma tran mod1 ma tran co subN cot mod2 = tp.'; mod3 = tp.'; mod2 = mod2 *fact1(k); mod3 = mod3 *fact2(k); T_mod1 = [T_mod1;mod2]; T_mod2 = [T_mod2;mod3]; End 3) Deinterleaving,decoding and demod received signal function [blk_err_c,blk_tot_c,bit_err_u,bit_tot_u,bit_err_c,bit_tot_c,bnum2_u,bnum2_c,tpb_ u,tpb_c,fnum_u,fnum_c] = R_mod_cod_intlv(N,subN,R_comb,fact1,B,rdstate,code_rate,real_len,t,coded,T_ sent,intleav) fnum_u = zeros(1,floor(N/subN)); fnum_c = zeros(1,floor(N/subN)); blk_err_c=zeros(1,floor(N/subN)); % stores whether the particular block is in error or not ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC % if the block is in error, a '1' will be put in % the place, if it is not in error '0' will used blk_tot_c=zeros(1,floor(N/subN));% whether the block is loaded or not bit_err_u=zeros(1,floor(N/subN)); % stores the number of bits in error for uncoded % configuration, for each block bit_tot_u=zeros(1,floor(N/subN)); % total number of uncoded bits loaded in each block bit_err_c=zeros(1,floor(N/subN)); % stores the number of bits in error for coded % configuration, for each block bit_tot_c=zeros(1,floor(N/subN)); % stores the total number of coded bits loaded in each block for k = 1:floor(N/subN) % 1:512 % for each block = R_comb((k-1)*subN+1:k*subN,:).'; tp2 = tp(:).'; if fact1(k)~=0 r_dmd = qdemodulator(tp2/fact1(k),2^B(k)); dintlv=randdeintrlv(r_dmd,rdstate); %r_dcd = BR_decode2(code_rate(k),dintlv(1:real_len(k)),t(k)); r_dcd = BR_decode2(code_rate(k),dintlv(1:real_len(k)),t{k}); bnum2_u(k) = biterr(dintlv,coded{k}); % uncoded wrong bits bnum2_c(k) = biterr(r_dcd,T_sent{k}); % coded wrong bits blk_tot_c(k)=blk_tot_c(k)+1; % increase the count for the loaded blocks bit_tot_u(k)=bit_tot_u(k)+length(dintlv);% bit_tot_c(k)=bit_tot_c(k)+length(r_dcd);% else r_dmd = []; dintlv = []; bnum2_u(k) = 0; bnum2_c(k) = 0; end tpb_u(k) = length(intleav{k}); % throughput for uncoded, if no error tpb_c(k) = length(T_sent{k}); % throughput for coded, if error if bnum2_u(k)>0 % with error fnum_u(k) = fnum_u(k) +1; % fer + tpb_u(k) = 0; % throughput set to end if bnum2_c(k)>0 % with error fnum_c(k) = fnum_c(k) +1; % fer + tpb_c(k) = 0; % throughput set to end end % store data for each block blk_err_c=fnum_c; % whether the block is in error or not ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC bit_err_u=bnum2_u;% total number of bits in error in each block for uncoded system bit_err_c=bnum2_c;% total number of bits in error in each block for coded system %% yy's new part bnum2_u = sum(bnum2_u); bnum2_c = sum(bnum2_c); tpb_u = sum(tpb_u); tpb_c = sum(tpb_c); fnum_u = sum(fnum_u); fnum_c = sum(fnum_c); 4) The multipath channel matrix generator %Using rayleighchan function in MATLAB %chnums is the number of channel realizations %fd is the Doppler frequency %divn is the number of diversity branches %t_rms is the delay spread in us %The output is matrix ch, for channel impulse response %clear all;close all; %clc; %bug fixed for AWGN function[ch1,ch2]=channelgenerator2(t_rms,fd,sampling_rate,N,cp_l,BW,chnums,d ivn1,divn2) if t_rms==0 && fd ==0, ch1 = ones(1,chnums,divn1); ch2 = ones(1,chnums,divn2); else Ch1=raych2(chnums*divn1,fd,t_rms,sampling_rate,N,cp_l,BW); Ch2=raych2(chnums*divn2,fd,t_rms,sampling_rate,N,cp_l,BW); for i=1:divn1 ch1(:,:,i)=Ch1(:,(i-1)*chnums+1:i*chnums); %save (sprintf('ch%d',i),'ch'); end for i=1:divn2 ch2(:,:,i)=Ch2(:,(i-1)*chnums+1:i*chnums); %save (sprintf('ch%d',i),'ch'); end end 5)SelectAnten2 function [H_comb,H_LA,ps]=selectAntenna2(H,N,subN,state,T_div) %H_comb = H(:,DELAY+1:end,:); ps = []; H_comb = H; ps = []; H_LA = squeeze(H(:,1,:)); 6)BT_alamouti ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC %Alamouti-STBC scheme for MISO-Alamouti %return if not MISO system %T_mod is the modulated signal %Nsymbol is the No of symbols within each frame %state can be 1,2,3,4 or 5, indicates different systems (1=SISO,2=MRC,3=MISO,4=EGC,5=AS) function T_trans=BT_alamouti(T_mod,Nsymbol,state) % if state~=3 % T_trans=T_mod; % return; % end if state == || state == for k=1:2:Nsymbol Ant0(:,k:k+1) = [T_mod(:,k) -conj(T_mod(:,k+1))]; Ant1(:,k:k+1) = [T_mod(:,k+1) conj(T_mod(:,k))]; end T_trans(:,:,1)=Ant0;T_trans(:,:,2)=Ant1; else T_trans = T_mod; End 7) BTR_ofdm %OFDM transiver plus channel %B and P contains bits number and power for each subcarrier %ch is the channel matrix, chnums is the No of channel realizations %N is the No of subcarriers %T_div and R_div are transmitter/receiver diversity branches %pn is the normalized noise power %T_trans is the modulated signal (After Alamouti for MISO-Alamouti) %cp_l is the length of CP %R_dfs is the received signal, without CP %H is the freqneucy response of channel impulse response function [R_dfs]=BTR_ofdm(h2,N,cp_l,T_trans,snr,T_div,R_div,Nsymbol,flg_offset,fd,BW, sampling_rate,noisePowPerSubC) %% offset part %BW = 5e6; % F_Sampling = BW*sampling_rate; % T_Sampling = 1/F_Sampling; % T_Symbol = (N+cp_l)*T_Sampling; global use_HPA_flg; T_Sampling = 1/(BW*sampling_rate); T_Symbol = (N+cp_l)/(BW*sampling_rate); if flg_offset==1 % Simulation Including Carrier ofset ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC t=0:T_Sampling:T_Symbol-T_Sampling; offset=exp(-j*2*pi*fd*t)'; else offset=1; end pn=noisePowPerSubC;%1/10^(snr/10)/N; %Noise power in each subcarrier fss = ifft(T_trans,N,1); fs1=[fss(N-cp_l+1:end,:,:);fss]; fs1_before_PA=fs1; % sdnr_lin_mean_beforHPA=(mean(sum(abs(fs1(1:N,:)).^2)))/( pn); % if sdnr_lin_mean_beforHPA>0 % SNR_beforePowerAmp=10*log10(sdnr_lin_mean_beforHPA); % Calculation of new SNR taking Backoff into account % else % SNR_beforePowerAmp=nan; % end % % PASS THROUGH THE HIGH POWER AMPLIFIER if use_HPA_flg fs1_HPA =Rapps_model(fs1,'');%Amplifying the signal with Rapps model else fs1_HPA =fs1; end fst3 = zeros(N+cp_l,Nsymbol,T_div); fs3 = zeros(N+cp_l,Nsymbol,R_div); for rx = 1:R_div for tx = 1:T_div for k=1:Nsymbol fst3(:,k,tx)=filter(h2(:,k,(rx-1)*T_div+tx),1,fs1_HPA(:,k,tx)).*offset; end end fs3(:,:,rx) = sum(fst3,3); end % clear i; noise=randn(size(fs3))+i*randn(size(fs3)); noise=noise/sqrt(pv(noise))*sqrt(pn)/sqrt(N); splusn=fs3+noise; rcp=splusn(cp_l+1:end,:,:); R_dfs=fft(rcp,N,1); 8)BR_combiner %Combine received signal %R_dfs is the output signal of FFT, without CP %H is the channel frequency response ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC %state can be 1,2,3 or 4, indicates different systems (1=SISO,2=MRC,3=MISO,4=EGC) %R_comb will be demodulated later to recover the transmitted bits function R_comb=BR_combiner(R_dfs,H,state) [N,Nsymbol,R_div]=size(R_dfs); if state==1 for k=1:Nsymbol R_comb(:,k)=R_dfs(:,k)./H(:,k); end R_comb(:,k)=(conj(H1(:,1)).*R_dfs(:,k)+H1(:,2).*conj(R_dfs(:,k+1))).*scale4; % R_comb(:,k+1)=(conj(H1(:,2)).*R_dfs(:,k)H1(:,1).*conj(R_dfs(:,k+1))).*scale4; elseif state == 6||state==2 for k = 1:2:Nsymbol scale4=1./sum(abs(squeeze(H(:,k,:))).^2,2); r0 = R_dfs(:,k,1); r1 = R_dfs(:,k+1,1); r2 = R_dfs(:,k,2); r3 = R_dfs(:,k+1,2); h0 = H(:,k,1); h1 = H(:,k,2); h2 = H(:,k,3); h3 = H(:,k,4); R_comb(:,k) = (conj(h0).*r0 + h1.*conj(r1) + conj(h2).*r2 + h3.*conj(r3)).*scale4;%lay du lieu thu giong alamouti 2x1 R_comb(:,k+1) = (conj(h1).*r0 - h0.*conj(r1) + conj(h3).*r2 h2.*conj(r3)).*scale4; end end ĐỒ ÁN TỐT NGHIỆP ... quan kỹ thuật MIMO- OFDM hệ thống thông tin di động Chương 2: Kỹ thuật OFDM Chương 3: Kỹ thuật MIMO Chương 4: Kỹ thuật MIMO- OFDM Chương 5: Mô hệ thống MIMO- OFDM đánh giá chất lượng hệ thống ĐỒ ÁN. .. thực tốt đồ án Sinh viên thực Tống Xuân Nghĩa ĐỒ ÁN TỐT NGHIỆP Chương 1: TỔNG QUAN VỀ KỸ THUẬT MIMO- OFDM VÀ HỆ THỐNG THÔNG TIN DI ĐỘNG Chương TỔNG QUAN VỀ KỸ THUẬT MIMO- OFDM VÀ HỆ THỐNG THÔNG... 4.1: Sơ đồ phát thu hệ thống MIMO- OFDM 51 Hình 4.2: Sơ đồ khối phát hệ thống MIMO_ OFDM 52 Hình 4.3: Sơ đồ khối thu hệ thống MIMO_ OFDM 52 Hình 4.4: Cấu trúc khung liệu MIMO- OFDM

Ngày đăng: 04/03/2022, 09:59

Từ khóa liên quan

Mục lục

  • MỤC LỤC.

  • THUẬT NGỮ VIẾT TẮT.

  • A

  • B

  • C

  • D

  • E

  • F

  • G

  • I

  • M

  • N

  • O

  • P

  • Q

  • R

  • S

  • T

  • W

  • DANH MỤC HÌNH VẼ.

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

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

Tài liệu liên quan