Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
2,44 MB
Nội dung
Trần Xn Quỳnh HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG BÀI TIỂU LUẬN Đa truy nhập vô tuyến Giảng viên : Nguyễn Viết Đảm Hà Nội, tháng 11/2021 Trần Xuân Quỳnh Sim_MA06: Trực quan hóa nguyên lý hoạt động hệ thống truyền dẫn OFDM sở thực FFT/FFT chèn/khử CP Mục tiêu: + Làm sáng q trình xây dựng mơ hình nguyên lý hoạt động hệ thống truyền dẫn OFDM sở xử lý IFFT/FFT chèn/khử CP + Trực quan hóa nguyên lý hoạt động sở mơ tả mơ tín hiệu điển hình Matlab Trần Xuân Quỳnh Trần Xuân Quỳnh Trần Xuân Quỳnh Trần Xuân Quỳnh Trần Xuân Quỳnh MA_06_Basis_OFDM_System_Modeling_2.m stt clc; Câu lệnh Giải thích -Xóa cửa sổ lệnh -Xóa mục khỏi khơng gian làm việc, giải phóng nhớ hệ thống - Đóng hết đè mục Khai báo gia srij tham số clear all; close all; FFTsize CPsize = 8; = 2; data = 0.5*(sign(rand (1,FFTsize)-0.5)+1); data = 2*data-1 Tạo cho bit kích thước FFT: BPSK data_IFFT = ifft(data) data_IFFT_CP = [data_IFFT(FFTsizeCPsize+1:FFTsize) data_IFFT]; bước 1: Quy trình IFFT bước 2: thêm CP bước 3: loại bỏ CP Trần Xuân Quỳnh data_CPR = data_IFFT_CP(CPsize+1:FFTsize +CPsize); data_FFT = fft(data_CPR) data_des1 = zeros(1, length(data)); for i = 1:length(data_FFT) if data_FFT(i) >= data_des1(i) = 1; else data_des1(i) = -1; end end error_vector1 = data~=data_des1; bước 4: Quy trình IFFT num_error1 sum(error_vector1); BER1 num_error1/FFTsize Tổng số lỗi data_des2 = sign(real(data_FFT)); error_vector2 = data~=data_des2; 10 num_error2 = định xác định lỗi để xác định lỗi (so sánh) = = sum(error_vector2); BER2 num_error2/FFTsize = 11 BER_op giải pháp tối ưu tối ưu = sum(sign(real(data_FFT)) ~=data)/FFTsize MA_06_CP_insert.m stt Câu lệnh function [CP_insert] = Giải thích Khởi tạo function MA_06_CP_insert(N,V) O_I O_V_N_V I_V MA_06_CP_insert với tham số đầu vào V,N; -tao ma trận - tao ma trận đơn vị = zeros(V,N); = zeros(V,N-V); = eye(V); Trần Xuân Quỳnh for i=1:V O_I(i,:) = [O_V_N_V(i,:) I_V(i,:)] ; end I_N CP_insert = [O_I;I_N]; = eye(N); Tạo ma trận đơn vị MA_06_CP_Remove.m Stt Câu lệnh CP_Remve O_V I_N for i =1:N CP_Remve(i,:) = [O_V(i,:) I_N(i,:)]; end function [CP_Remve] = MA_06_CP_Remove(N,V) = zeros(N,N+V); = zeros(N,V); = eye(N); Giải thích Khởi tạo function MA_06_CP_ Remove với tham số đầu vào V,N; -tao ma trận - tao ma trận đơn vị MA_06_FFT_matrix.m Stt Câu lệnh function [W] = Giải thích Khởi tạo function MA_06_CP_ matrix với tham số đầu vào N; -tạo ma trận MA_06_FFT_matrix(N) W = zeros(N); for m =1:N for i= 1:N W(m,i) = exp(j*2*pi/N*(m-1)*(i-1)); end end Trần Xuân Quỳnh W = 1/sqrt(N)*W; MA_06_IFFT_FFT_AWGN.m stt Câu lênh clc; Giải thích -Xóa cửa sổ lệnh -Xóa mục khỏi khơng gian làm việc, giải phóng nhớ hệ thống - Đóng hết đè mục Các thông số clear all; close all; FFTsize = 1000; CPsize = 25; snr_in_dB = 10; noisePower = 10^(-snr_in_dB/10); data = 0.5*(sign(rand(1,FFTsize) -0.5)+1); data = 2*data-1; data_IFFT ifft(data); data_IFFT_CP = [data_IFFT(FFTsizeCPsize+1:FFTsize) data_IFFT]; tmp = randn(1,FFTsize+CPsize); RV_Gausian = tmp*noisePower; RxSymbols = = data_IFFT_CP + RV_Gausian; data_CPR = RxSymbols(CPsize+1:FFTsize 10 Trần Xuân Quỳnh +CPsize); data_FFT = fft(data_CPR); data_des1 = zeros(1, length(data)); for i = 1:length(data_FFT) if data_FFT(i) >= data_des1(i) = 1; else data_des1(i) = 1; end end error_vector1 = data~=data_des1; num_error1 = sum(error_vector1); BER1 num_error1/FFTsize data_des2 = sign(real(data_FFT)); = error_vector2 data~=data_des2; num_error2 sum(error_vector2); BER2 num_error2/FFTsize = = = BER_op = sum(sign(real(data_FFT)) ~=data)/FFTsize MA_06_IFFT_FFT_matrix.m 11 Trần Xuân Quỳnh stt Câu lệnh clc Giải thích -Xóa cửa sổ lệnh -Xóa mục khỏi khơng gian làm việc, giải phóng nhớ hệ thống clear; display('SOLUTION 1: belong to Generation OF MATRIX'); W_H W_H=1/2*W_H W W=1/2*W test = abs(W_H*W); display('tich ma tran W_H*W'); disp(test); display(' so lieu vao ma tran IFFT (W_H)'); x11 = 1:4 display(' dau IFFT sau nhan ma tran W_H (W_H*x11)'); x12 = W_H*x11' = [1 1 1; exp(j*2*pi/4) exp(j*4*pi/4) exp(j*6*pi/4); exp(j*4*pi/4) exp(j*8*pi/4) exp(j*12*pi/4); exp(j*6*pi/4) exp(j*12*pi/4) exp(j*2*3*3*pi/4)]; = [1 1 1; exp(-j*2*pi/4) exp(-j*4*pi/4) exp(j*6*pi/4); exp(-j*4*pi/4) exp(-j*8*pi/4) exp(j*12*pi/4); exp(-j*6*pi/4) exp(-j*12*pi/4) exp(j*2*3*3*pi/4)]; 12 Trần Xuân Quỳnh display(' dau FFT sau nhan ma tran W'); x13 = W*x12 display(' so sanh I/O cua IFFT & FFT o dang ma tran'); test2 = x11~=round(x13') display('SOLUTION 2: belong to Generation OF MATRIX'); clc; -Xóa cửa sổ lệnh N= 4; W_H_2 = zeros(N); N=4 Tạo ma trận for i =1:N for m= 1:N W_H_2(i,m) = exp(j*2*pi/N*(i-1)*(m-1)); end end W_H_2 = 1/sqrt(N)*W_H_2 W_H W_H_2~=W_H W_2 = zeros(N); for m =1:N for i= 1:N W_2(m,i) = exp(j*2*pi/N*(m-1)*(i-1)); end end W_2 = 1/sqrt(N)*W_2 W W_2~=W 13 Trần Xuân Quỳnh MA_06_IFFT_matrix.m stt Câu lệnh function [W_H] = Giải thích Khởi tạo function MA_ MA_06_IFFT_matrix(N) MA_06_IFFT_matrix với W_H = zeros(N); for i =1:N for m= 1:N W_H(i,m) = exp(j*2*pi/N*(i-1)*(m-1)); end end W_H = 1/sqrt(N)*W_H; tham số đầu vào N; Tạo ma trận MA_06_OFDM_Principle.m stt Câu lệnh clc; Giải thích -Xóa cửa sổ lệnh -Xóa mục khỏi khơng gian làm việc, giải phóng nhớ hệ thống Với N=4, V=2 Tao ma trận khác clear; N V = 4; = 2; X1 = 1:N; [W_H] = MA_06_IFFT_matrix(N); [W] = MA_06_FFT_matrix(N); [CP_insert] = MA_06_CP_insert(N,V); [CP_Remve] = MA_06_CP_Remove(N,V); Mode = 1; chế độ 1: -nếu Chế độ = 1; -nếu khác X1 = if Mode == else X1 = 0.5*(sign(rand(1,N)-0.5)+1); 14 0.5*(sign(rand(1,N)0.5)+1); Trần Xuân Quỳnh end X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 = = = = = = = = = = = = X1'; W_H*X2; X3'; X4'; CP_insert*X5; X6'; X7'; CP_Remve*X8; X9'; X10'; W*X11; X12' Test_IFFT_FFT_matrix = abs(W_H*W); Test_CP_inser_remove CP_Remve*CP_insert; Kiểm tra IFFT / FFT; = data_IFFT = sqrt(N)*ifft(X1,N); Quy trình IFFT data_IFFT_CP = [data_IFFT(NV+1:N) data_IFFT]; thêm CP data_CPR = data_IFFT_CP(V+1:N+V); loại bỏ CP data_FFT = (1/sqrt(N))*fft(data_CPR,N) Quy trình IFFT Sim_MA_06_PSD_OFDM.m Stt Câu lệnh clc; Giải thích -Xóa cửa sổ lệnh -Xóa mục khỏi khơng gian làm việc, giải phóng nhớ hệ thống - Đóng hết đè mục clear; close all; 15 Trần Xuân Quỳnh deta_f = 20; BW_channel = 200; num_subcarrier = round(BW_channel/deta_f); T_ofdm = 1/deta_f; R_ofdm = 1/T_ofdm; Tb = T_ofdm/num_subcarrier; Rb = 1/Tb; A = 10; A1 = A^2*Tb; AA = A^2*T_ofdm; f_i = deta_f:deta_f:BW_channel+deta_f; f = Rb:BW_channel+4*deta_f; fc = 3*max(f); f2 = f:1:(fc+BW_channel+4*deta_f); PSD_ofdm_in = A1*(sinc((f*Tb)).^2); PSD_RF_SC = A1*(sinc(((f2-fc)*Tb)).^2); PSD_OFDM = zeros(num_subcarrier ,max(size(f))); PSD_OFDM_RF = zeros(num_subcarrier, max(size(f2))); for k = 1:num_subcarrier PSD_OFDM(k,:) = AA*(sinc((f-f_i(k))*T_ofdm)) ^2; PSD_OFDM_RF(k,:) = AA*(sinc((f2-f_i(k)fc)*T_ofdm)).^2; end figure subplot plot hold on xlabel - Khơng gian sóng mang - Băng thơng kênh - Số lượng sóng mang vịng kênh - thời gian -các thông số dầu vào - PSD đầu vào Khối điều chế OFFDM - PSD đầu Khối điều chế OFFDM - PSD đầu Khối điều chế OFFDM - bảng hiển thị kết - Đặt title, font, color cho trục x y -Vẽ thêm đồ thị khác vào cửa sổ figure 16 Trần Xuân Quỳnh ylabel grid on; set - Đặt thích cho trường hợp hiển thị figure 17 Trần Xuân Quỳnh Sim_MA07: Mơ hình hóa mơ hiệu BER cho hệ thống truyền dẫn BPSK-OFDM dùng mã kênh môi trường kênh AWGN Mục tiêu - Mơ hình hóa trực quan hóa nguyên lý hoạt động hệ thống BPSK-OFDM dùng mã kênh môi trường kênh AWGN - Matlab hóa mơ hệ thống BPSK-OFDM dùng mã kênh môi trường kênh AWGN để: làm sáng tỏ nguyên lý hoạt động phân tích đánh giá hiệu 18 Trần Xuân Quỳnh 19 Trần Xuân Quỳnh Presentation_Sim_MA_07.m stt Câu lệnh clc; Giải thích -Xóa cửa sổ lệnh -Xóa mục khỏi khơng gian làm việc, giải phóng nhớ hệ thống - Đóng hết đè mục clear all; close all; load MA_07_BPSK_OFDM_NoCC_AWGN.mat; SER_noChannelCoding = SER; SNR_1 = SNR; clear SER; load MA_07_BPSK_OFDM_CC_AWGN.mat; SER_ChannelCoding = SER; SNR_2 = SNR; clear SER; 20 Trần Xuân Quỳnh figure(1) G = semilogy(SNR_1,SER_noChannelCoding, '-ob'); set(G,'LineWidth',1.5); hold on; AX Mở cửa sổ hình mớ = gca; set(AX,'fontsize',14); X = xlabel('SNR (dB)'); set(X,'fontname','.Vntime', 'fontsize',14,'color','b'); Y = ylabel('SER'); set(Y,'fontname','.Vntime', 'fontsize',14,'color','b'); title(['M« pháng SER hƯ thèng - Đặt thích cho trường hợp hiển thị figure - Thêm nhãn text vào trục ox - Thêm nhãn text vào trục oy - Thêm text vào góc cựng th BPSK/OFDM kênh AWGN có không mà hóa kênh; Số bit mô = ', num2str(NumBits),' bits '],'FontName','.VnTime','color', 'b','FontSize',14); L=legend('OFDM - kênh AWGN không mà hãa kªnh','OFDM - kªnh AWGN cã m· hãa kªnh'); set(L,'fontname','.Vntime' ,'fontsize',13); grid on; Bật đường lưới lên Sim_MA_07_BPSK_OFDM_AWGN_ChannelCode.m St Câu lệnh t clc; Giải thích -Xóa cửa sổ lệnh -Xóa mục khỏi khơng gian làm việc, giải phóng nhớ hệ thống - Đóng hết đè mục clear all; close all; 21 Trần Xuân Quỳnh SNR FFTsize CPsize numRun NumBits FFTsize*numRun; = = = = = [0:1:9]; 512; 20; 10^3; mode_Sim Codding_Type = = 1; if mode_Sim ==2 if Codding_Type == k0 = 1; G = [1 1;1 1]; elseif Codding_Type == k0 = 1; G = [1 1 0 1;1 1 0]; else k0 = 2; G = [0 1 0 1;0 0 0 0 1;1 0 0 0 1]; end end -Nếu chế độ mô = mã hóa loại ta có: k0 = 1; G = [1 1; 1]; -Nếu chế độ mơ = mã hóa loại ta có: k0 = 1; G = [1 1 0 1; 1 1 0]; Nếu chế độ mô = mã hóa loại khác ta có: k0 = 2; for n = 1:length(SNR), errCount = 0; Cho biến j chạy giá trị từ tới 10 (length(SNR)) for k = 1:numRun numSymbols = FFTsize; data = 0.5*(sign(rand(1,numSymbols)0.5)+1); data2 = 2*data-1; + Hàm sign: dùng để lấy dấu (lấy -1 1) + Hàm rand(1,numSymbols): Lấy 1000 giá trị ngẫu nhiên khoảng từ đến if mode_Sim ==2 inputSymbols = FWC_COV_Encoder(G,k0,data); Nếu chế độ mơ = inputSymbols tính hàm function: -Lấy 10 điểm xét SNR đơn vị dB từ đến Mỗi điểm cách -Chế độ mơ =2 -Mã hóa loại 22 G = [0 1 0 1;0 0 0 0 1;1 0 0 0 1]; Trần Xuân Quỳnh inputSymbols = 2*inputSymbols-1; FWC_COV_Encoder(G,k0,dat a); else Nếu chế độ mô loại khác inputSymbols = inputSymbols = 2*data-1; 2*data-1; TxSamples = sqrt(length(inputSymbols))*if ft (inputSymbols,length(inputSym bols)); numSymbols = length(inputSymbols); -FFT (Điều chế OFDM) 1 Tx_ofdm = [TxSamples(numSymbolsCPsize+1:numSymbols) TxSamples]; Chèn CP numSymbols_2 = length(inputSymbols); tmp = randn(1,numSymbols_2+CPsize); noisePower = 10^(-SNR(n)/10); RxSymbols = Tx_ofdm + sqrt(noisePower)*tmp; Kênh% AWGN EstSymbols_1 = RxSymbols(CPsize+1:numSymbols _2 +CPsize); Loại bỏ CP Y = fft(EstSymbols_1, length(EstSymbols_1)); IFT (Giải điều chế OFDM) EstSymbols_1 = Y; EstSymbols_1 = sign(real(EstSymbols_1)); 23 Phát định Trần Xuân Quỳnh for i = 1:length(EstSymbols_1) if EstSymbols_1(i)>0 Decis(i)= 1; else Decis(i)= 0; end end Cho biến I chạy giá trị từ tới 10 (length(EstSymbols_1)) -nếu EstSymbols_1(i)>0 if mode_Sim==2 EstSymbols = FWC_COV_Dencoder(G,k0,Decis); Nếu chế độ mơ = else Nếu chế độ mơ loại khác EstSymbols = EstSymbols EstSymbols_1; = Decis(i)= 1; - ngược lại Decis(i)= 0; EstSymbols = FWC_COV_Dencoder(G,k0,De cis); EstSymbols_1; if mode_Sim==2 I = find((data-EstSymbols) == 0); else I = find((data2-EstSymbols) == 0); end Nếu chế độ mơ = I errCount = errCount + (FFTsize-length(I)); end SER(n,:) = errCount / (FFTsize*numRun); Lỗi đối chiếu figure subplot plot hold on xlabel ylabel grid on; set - bảng hiển thị kết - Đặt title, font, color cho trục x y -Vẽ thêm đồ thị khác vào cửa sổ figure - Đặt thích cho trường hợp hiển thị figure 24 = find((data-EstSymbols) == 0); Nếu chế độ mô loại khác I = find((data2-EstSymbols) == 0); Trần Xuân Quỳnh - Kết mô BER hệ thống AWGN với số bit 51200bit - Kết quả: Mô BER hệ thống BPSK/OFDM kênh AWGN có khơng mã hóa kênh: 25 ... Sim_MA06: Trực quan hóa nguyên lý hoạt động hệ thống truyền dẫn OFDM sở thực FFT/FFT chèn/khử CP Mục tiêu: + Làm sáng q trình xây dựng mơ hình ngun lý hoạt động hệ thống truyền dẫn OFDM sở xử lý IFFT/FFT... hình hóa trực quan hóa nguyên lý hoạt động hệ thống BPSK -OFDM dùng mã kênh mơi trường kênh AWGN - Matlab hóa mô hệ thống BPSK -OFDM dùng mã kênh môi trường kênh AWGN để: làm sáng tỏ nguyên lý hoạt. .. IFFT/FFT chèn/khử CP + Trực quan hóa nguyên lý hoạt động sở mô tả mơ tín hiệu điển hình Matlab Trần Xuân Quỳnh Trần Xuân Quỳnh Trần Xuân Quỳnh Trần Xuân Quỳnh Trần Xuân Quỳnh MA_06_Basis _OFDM_ System_Modeling_2.m