Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
5,54 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA VIỄN THƠNG BÀI TẬP SỐ Mơn : Giảng viên: Đa Truy Nhập Vô Tuyến Nguyễn Viết Đảm Hà Nội 1|P ag e Nội dung : SIM_MA_06 Tín hiệu phổ tần tín hiệu OFDM Điều chế giải điều chế tín hiệu OFDM sở khơng gian tín hiệu Minh họa tín hiệu phổ tín hiệu OFDM băng tần gốc Mơ hình hóa hệ thống truyền dẫn OFDM sở thực IFFT/FFT chèn/khử CP * Bổ sung Dịch code, mô phỏng, nhận xét kết mô 2|P ag e 3|P ag e 4|P ag e 5|P ag e 6|P ag e 7|P ag e 8|P ag e 9|P ag e 10 | P a g e Nguyên Xuân Kiên Dịch code, mô phỏng, nhận xét kết mô 5.1 Tham số đầu vào deta_f = 20; % BW_channel / num _ subcarrier = Không gian sóng mang con; BW_channel = 200; băng thơng kênh = 20MHz num_subcarrier = round(BW_channel/deta_f); % Số lượng sóng mang kênh 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; % f_BB = -Rb:4*Rb; fc = 3*max(f); f2 = -f:1:(fc+BW_channel+4*deta_f); 23 | P a g e Nguyên Xuân Kiên Tính mật độ phổ cơng suất: PSD_ofdm_in = A1*(sinc((f*Tb)).^2); PSD_RF_SC = A1*(sinc(((f2-fc)*Tb)).^2); % PSD of output of OFFDM Modulation Block 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(k,:) = rand(1)*AA*(sinc((f-f_i(k))*T_ofdm)).^2; PSD_OFDM_RF(k,:) = AA*(sinc((f2-f_i(k)-fc)*T_ofdm)).^2; % PSD_OFDM_RF(k,:) = rand(1)*AA*(sinc((f2-f_i(k)fc)*T_ofdm)).^2; end 5.2 Dịch code MA_06_Basis_OFDM_System_Modeling_2.m stt clc; Câu lệnh clear all; close all; FFTsize CPsize 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 24 | P a g e = 8; = 2; 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ố Nguyên Xuân Kiên 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 sum(error_vector2); BER2 num_error2/FFTsize 11 BER_op = định xác định lỗi để xác định lỗi (so sánh) = = = = 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] = MA_06_CP_insert(N,V) 25 | P a g e Giải thích Khởi tạo function MA_06_CP_insertvới tham số đầu vào V,N; Nguyên Xuân Kiên O_I = zeros(V,N); O_V_N_V = zeros(V,N-V); I_V = eye(V); for i=1:V O_I(i,:) = [O_V_N_V(i,:) I_V(i,:)] ; end -tao ma trận - tao ma trận đơn vị I_N Tạo ma trận đơn vị CP_insert = [O_I;I_N]; = eye(N); 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_ Removevớ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] = MA_06_FFT_matrix(N) W = zeros(N); 26 | P a g e Giải thích Khởi tạo function MA_06_CP_ matrixvới tham số đầu vào N; -tạo ma trận Nguyên Xuân Kiên for m =1:N for i= 1:N W(m,i) = exp(j*2*pi/N*(m-1)*(i-1)); end end W = 1/sqrt(N)*W; MA_06_IFFT_FFT_AWGN.m stt Câu lênh clc; clear all; 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 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]; 27 | P a g e = Các thông số Nguyên Xuân Kiên tmp = randn(1,FFTsize+CPsize); RV_Gausian tmp*noisePower; RxSymbols = = data_IFFT_CP + RV_Gausian; data_CPR = RxSymbols(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; 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 28 | P a g e Nguyên Xuân Kiên MA_06_IFFT_FFT_matrix.m stt Câu lệnh clc clear; W_H W_H=1/2*W_H 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 = [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)]; W = [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)]; 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 x12 = W_H*x11' 29 | P a g e kết Nguyên Xuân Kiên 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 MA_06_IFFT_matrix.m 30 | P a g e Nguyên Xuân Kiên stt Câu lệnh function [W_H] = MA_06_IFFT_matrix(N) 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; Giải thích Khởi tạo function MA_ MA_06_IFFT_matrixvới tham số đầu vào N; Tạo ma trận MA_06_OFDM_Principle.m stt Câu lệnh clc; clear; N = 4; V = 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; if Mode == else X1 = 0.5*(sign(rand(1,N)-0.5)+1); 31 | P a g e 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 chế đô ̣ 1: -nếu Chế đô ̣ = 1; -nếu khác X1 = 0.5*(sign(rand(1,N)- 0.5)+1); Nguyên Xuân Kiên end X2 = X1'; X3 = W_H*X2; X4 = X3'; X5 = X4'; X6 = CP_insert*X5; X7 = X6'; X8 = X7'; X9 = CP_Remve*X8; X10 = X9'; X11 = X10'; X12 = W*X11; X13 = 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); data_IFFT_CP = [data_IFFT(N- V+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 Quy trình IFFT Sim_MA_06_PSD_OFDM.m Stt Câu lệnh clc; clear; close all; 32 | P a g e 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 Nguyên Xuân Kiên 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; figure subplot plot hold on xlabel 33 | P a g e - 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 Nguyên Xuân Kiên B18DCVT226 5.3 Kết Quả mô nhận xét Sim_MA_06_PSD_OFDM Nhận xét: hình phía ta thấy hiển thị kết hình dạng phổ tín hiệu OFDM đầu vào tín hiệu SCRF Phổ tần tín hiệu OFDM đầu vào có độ rộng phổ 2/Tb (Hz).Tần số trung tâm f = Phổ tần tín hiệu SCRF 𝑐ó độ rộng phổ 𝑙à 𝑇𝑏 tần sơ trung tâm 𝑓 = 𝑓RF hình hiển thị kết hình dạng phổ tín hiệu sau điều chế OFDM tín hiệu OFDM_RF 34 | P a g e Nguyên Xuân Kiên B18DCVT226 Nhận xét: Hình so sánh mật độ phổ cơng suất tín hiệu OFDM & SC (RF) Hình thứ PSD tín hiệu OFDM_SUM_RF SC_RF Phổ tần tín hiệu OFDM có nhiều thành phần sóng mang Các thành phần sóng mang có độ rộng phổ 2/T_ofdm Khoảng cách tần số trung tâm deta_f = 1/T_ofdm, tần số trung tâm f=detal_f Độ rộng băng tần BW Phổ tín hiệu 𝑂𝐹𝐷𝑀𝑅𝐹 nhiều thành phần sóng mang tương tự tín hiệu OFDM nhiều thành phần sóng mang Điểm khác tần số trung tâm OFDMrf f= f RF băng tần kênh = 200Hz số sóng mang =10, khơng gian điều chế sóng mang 20Hz, F=840Hz 35 | P a g e Nguyên Xuân Kiên B18DCVT226 MA_06_IFFT_FFT_matrix Nhận xét Nhận xét : Kết ma trận đơn vị In, 36 | P a g e Nguyên Xuân Kiên B18DCVT226 MA_06_OFDM_Principle 37 | P a g e ... tín hiệu OFDM Điều chế giải điều chế tín hiệu OFDM sở khơng gian tín hiệu Minh họa tín hiệu phổ tín hiệu OFDM băng tần gốc Mơ hình hóa hệ thống truyền dẫn OFDM sở thực IFFT/FFT chèn/khử CP * Bổ... 1:num_subcarrier PSD _OFDM( k,:) = AA*(sinc((f-f_i(k))*T _ofdm) ).^2; % PSD _OFDM( k,:) = rand(1)*AA*(sinc((f-f_i(k))*T _ofdm) ).^2; PSD _OFDM_ RF(k,:) = AA*(sinc((f2-f_i(k)-fc)*T _ofdm) ).^2; % PSD _OFDM_ RF(k,:)... làm việc, giải phóng nhớ hệ thống - Đóng hết đè mục Khai báo gia srij tham số Nguyên Xuân Kiên data_CPR = data_IFFT _CP( CPsize+1:FFTsize +CPsize); data_FFT = fft(data_CPR) data_des1 = zeros(1,