Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Nội dung
HỌC VIÊN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÀI BÁO CÁO BỘ MÔN: ĐA TRUY NHẬP VÔ TUYẾN BÀI: Sim_MA06 Sim_MA07 Giảng viên: Nguyễn Viết Đảm Hà Nội 11/2021 Bài Sim_MA06: Trực quan hóa nguyên lý hoạt động hệ thống truyền dẫn OFDM sở thực IFFT/FFT chèn/khử CP ❖ 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 ❖ Mơ hình hóa hệ thống truyền dẫn OFDM sở thực IFFT/FFT chèn/khử CP ❖ Code matlab: ✓ MA_06_IFFT_FFT_AWGN clc; clear all; close all; % FFTsize = 1000; CPsize = 25; snr_in_dB = 10; noisePower = 10^(-snr_in_dB/10); % % Generate for FFTsize bits: BPSK data = 0.5*(sign(rand(1,FFTsize)-0.5)+1); data = 2*data-1; % % IFFT & FFT Princeples % step 1: IFFT process data_IFFT = ifft(data); % step 2: add CP data_IFFT_CP = [data_IFFT(FFTsize-CPsize+1:FFTsize) data_IFFT]; % step 3: AWGN channel tmp = randn(1,FFTsize+CPsize); RV_Gausian = tmp*noisePower; RxSymbols = data_IFFT_CP + RV_Gausian; % step 4: remove CP data_CPR = RxSymbols(CPsize+1:FFTsize+CPsize); % step 5: IFFT process data_FFT = fft(data_CPR); %%%%% decision and determine error % solution 1: % Hard decision 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 % to determine error (comparesion) error_vector1 = data~=data_des1; % errCount & number of errors num_error1 = sum(error_vector1); BER1 = num_error1/FFTsize % solution 2: % Hard decision data_des2 = sign(real(data_FFT)); % to determine error (comparesion) error_vector2 = data~=data_des2; % errCount & number of errors num_error2 = sum(error_vector2); BER2 = num_error2/FFTsize % optimal solution optimal BER_op = sum(sign(real(data_FFT))~=data)/FFTsize Giải thích lệnh: Câu lệnh STT Giải thích Clc ; Clear ; 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 Close all ; FFTsize = 512; (1) CPsize = 20; (2) snr_in_dB = 10; (3) noisePower = 10^(-snr_in_dB/10); (4) Xóa tất hình định -(1) Khai báo FFTsize = 512 - (2) Khái báo CP size = 20; - (3) Khai báo giá trị SNRdB =10; -(4) Gán noise power = 10^(-snr_in_dB/10) data = 0.5*(sign(rand(1,FFTsize)- 0.5)+1); (1) data = 2*data-1; (2) - (1) Sử dụng hàm rand để tạo chuỗi liệu đầu vào xử lí đưa dạng 01 - (2) Đưa chuỗi đơn cực lưỡng cực - Thực IFFT chuỗi liệu đầu vào gán vào data_IFFT data_IFFT = ifft(data); data_IFFT_CP = [data_IFFT(FFTsizeCPsize+1:FFTsize) data_IFFT]; - Thực chèn CP chuỗi liệu sau IFFT Ghi tmp = randn(1,FFTsize+CPsize); (1) RV_Gausian = tmp*noisePower; (2) RxSymbols = data_IFFT_CP + RV_Gausian;(3) - (1) Tạo thành phần tạp âm random theo phân bố gauss - (2) Nhân với công suất tạp âm - (3) Dữ liệu đầu qua kênh liệu đầu vào + tạp âm data_CPR = - Thực khử CP RxSymbols(CPsize+1:FFTsize+CPsize); 10 data_FFT = fft(data_CPR); - Xử lí FFT 11 data_des1 = zeros(1, length(data)); - Khởi tạo mảng giá trị đầu sau định 12 for i = 1:length(data_FFT) (*) if data_FFT(i) >= (1) data_des1(i) = 1; (2) else (3) data_des1(i) = -1; (4) end (5) end (6) 13 - (*) Bắt đầu vong for cho i chạy từ 1>length(data_FFT) -(1) Bắt đầu vòng đk : Nếu data_FFT(i)>=0 định đầu =1; else đầu - Kết thúc error_vector1 = data~=data_des1; - So sánh bit đầu vào bit sau định Đào Đình Đồn ✓ MA_06_PSD_OFDM %========================================================================== %======================= Sim_MA_06_PSD_OFDM =============================== %========================================================================== clc; clear; close all; %========================================================================== deta_f = 20; % BW_channel/num_subcarrier=Subcarrier space; % Corhence Bandwidth of channel;15KHz BW_channel = 200; % bandwidth of channel = 20MHz % num_subcarrier = ceil(BW_channel/deta_f); % Number of subcarrier or subchannel round num_subcarrier = round(BW_channel/deta_f); % Number of subcarrier or subchannel T_ofdm = 1/deta_f; % OFDM time R_ofdm = 1/T_ofdm; Tb = T_ofdm/num_subcarrier; Rb = 1/Tb; % ceil function 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); % PSD of input of OFFDM Modulation Block 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 figure(1) % subplot(2,2,1); plot(f,PSD_ofdm_in,'r','LineWidth',3); xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',12); ylabel('PSD_I_n_p_u_t_ _o_f_ _O_F_D_M','FontName','.VnTime','color','b','FontSize',14); title(['MËt độ phổ công suất PSD tín hiệu đầu vào khối OFDM với tốc độ R_b =',num2str(Rb),'b/s'], 'FontName','.VnTime','color','b','FontSize',9); grid on; 15 Đào Đình Đồn % subplot(2,2,2); plot(f2,PSD_RF_SC,'m','LineWidth',3); xlabel('TÇn số [H_z]','FontName','.VnTime','color','b','FontSize',12); ylabel('PSD_S_C_R_F','FontName','.VnTime','color','b','FontSize',14); title(['Mật độ phổ công suất PSD tín hiệu SC_R_F với tốc độ R_b =',num2str(Rb),'b/s', ';F_R_F=',num2str(fc),'H_Z'], 'FontName','.VnTime','color','b','FontSize',9); grid on; % subplot(2,2,3); for k = 1:num_subcarrier plot(f,PSD_OFDM(k,:),'b','LineWidth',2); hold on end xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',12); ylabel('PSD_O_F_D_M','FontName','.VnTime','color','b','FontSize',14); title(['PSD cđa tÝn hiƯu OFDM: BW_C_h_a_n_n_e_l_ =',num2str(BW_channel), ' H_Z ; Num_S_u_b_c_a_r_r_i_e_r =',num2str(num_subcarrier), '; Subcarrier_S_p_a_c_e =',num2str(deta_f),'H_Z'], 'FontName','.VnTime','color','b','FontSize',9); grid on; % subplot(2,2,4); for k = 1:num_subcarrier plot(f2,PSD_OFDM_RF(k,:),'b','LineWidth',2); hold on end xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',12); ylabel('PSD_O_F_D_M_R_F','FontName','.VnTime','color','b','FontSize',14); title(['PSD cđa tÝn hiƯu OFDM_R_F: BW_C_h_a_n_n_e_l_ =',num2str(BW_channel), ' H_Z ; Num_S_u_b_c_a_r_r_i_e_r =',num2str(num_subcarrier), '; Subcarrier_S_p_a_c_e =',num2str(deta_f),'H_Z',';f_R_F=',num2str(fc),'H_Z'], 'FontName','.VnTime','color','b','FontSize',9); grid on; PSD_OFDM_sum_RF = sum(PSD_OFDM_RF,'double'); %============================================== figure(2) % subplot(2,1,1); for k = 1:num_subcarrier plot(f2,PSD_OFDM_RF(k,:),'b','LineWidth',2); hold on end h11 = plot(f2,PSD_RF_SC,'r','LineWidth',3); hold on h12 = plot(f2,PSD_OFDM_sum_RF,'+r','LineWidth',4); 16 Đào Đình Đồn xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',12); ylabel('PSD_O_F_D_M_ _R_F & SC_R_F','FontName','.VnTime','color','b','FontSize',14); title(['So sanh PSD cđa tÝn hiƯu OFDM_R_F & SC_R_F: BW_C_h_a_n_n_e_l_ =',num2str(BW_channel), ' H_Z ; Num_S_u_b_c_a_r_r_i_e_r =',num2str(num_subcarrier), '; Subcarrier_S_p_a_c_e =',num2str(deta_f),'H_Z',';F_R_F=',num2str(fc),'H_Z'], 'FontName','.VnTime','color','b','FontSize',12); grid on; K = legend('PSD cña OFDM_R_F','PSD cña SC_R_F','PSD cña OFDM_S_U_M R_F'); set(K, 'fontname','.Vntime','fontsize',13); % subplot(2,1,2) plot(f2,PSD_OFDM_sum_RF,'b','LineWidth',2); hold on plot(f2,PSD_RF_SC,'r','LineWidth',3); xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',12); ylabel('PSD_O_F_D_M_ _R_F & SC_R_F','FontName','.VnTime','color','b','FontSize',14); title(['PSD cđa tÝn hiƯu OFDM_R_F & SC_R_F: BW_C_h_a_n_n_e_l_ =',num2str(BW_channel), ' H_Z ; Num_S_u_b_c_a_r_r_i_e_r =',num2str(num_subcarrier), '; Subcarrier_S_p_a_c_e =',num2str(deta_f),'H_Z',';F_R_F=',num2str(fc),'H_Z'], 'FontName','.VnTime','color','r','FontSize',12); grid on; L = legend('PSD cña OFDM_S_U_M_-_R_F','PSD cña SC_R_F'); set(L, 'fontname','.Vntime','fontsize',13); 17 Đào Đình Đồn ➢ Kết quả: Phổ tín hiệu điều chế OFDM băng thơng: Phổ tín hiệu truyền dẫn đơn sóng mang OFDM băng tần gốc/băng thơng 18 Đào Đình Đồn Giải thích lệnh: Câu lệnh STT Giải thích Clc ; Clear ; 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 Close all ; Xóa tất hình định deta_f BW_channel num_subcarrier = round(BW_channel/deta_f); T_ofdm = 1/deta_f; R_ofdm = 1/T_ofdm; Tb = T_ofdm/num_subcarrier; 10 Rb = 1/Tb; - Khai báo R_ofdm = 1/T_ofdm - Khai báo Tb = T_ofdm/num_subcarrier - Khai báo Rb = 1/Tb 11 A1 = A^2*Tb; - Khai báo A1 = A^2 * Tb ; 12 AA = 20; - Khai báo deta_f = 20 (Subcarrier_ space) = 200; - Khai báo BW_channel = 200 ( Băng thông kênh ) - Khai báo num_subcarrier (số lượng thành phần sóng mang) = BW / delta_f - Khai báo T_ofdm = 1/deta_f = A^2*T_ofdm; - Khai báo AA = A^2*T_ofdm; 13 f_i = deta_f:deta_f:BW_channel+deta_f; 14 f = -Rb:BW_channel+4*deta_f; 15 fc = 3*max(f); 19 - Khai báo f_i mảng có giá trị deta_f > BW_channel+deta_f Khoảng cách deta_f - Khai báo f mảng gồm giá trị từ -Rb đến BW_channel+4*deta_f - Khai báo fc = * max(f) Ghi Đào Đình Đoàn 16 f2 = f:1:(fc+BW_channel+4*deta_f); 17 PSD_ofdm_in = A1*(sinc((f*Tb)).^2); - Khai báo f2 mảng gồm cá giá trị từ -f đến fc+BW_channel+4*deta_f - Khai báo PSD_ofdm_in = A1*(sinc((f*Tb)).^2); 18 PSD_RF_SC = A1*(sinc(((f2fc)*Tb)).^2); - Khai báo PSD_RF_SC = A1*(sinc(((f2-fc)*Tb)).^2); 19 PSD_OFDM = - Khai báo PSD_OFDM zeros(num_subcarrier,max(size(f))); mảng zeros gồm num_subcarrier hàng x max(size(f)) cột for k = 1:num_subcarrier (*) -(*) Bắt đầu vòng lặp for cho k từ -> num_subcarrier PSD_OFDM(k,:) = PSD_OFDM(k,:) ( Giá trị AA*(sinc((f-f_i(k))*T_ofdm)).^2; (1)PSD_OFDM hàng thứ (1) PSD_OFDM_RF(k,:) = k cột ) = AA*(sinc((fAA*(sinc((f2-f_i(k)f_i(k))*T_ofdm)).^2 -(2) PSD_OFDM_RF(k,:) ( fc)*T_ofdm)).^2; (2) Giá trị -(1)PSD_OFDM_RF end (3) hàng thứ k cột ) = AA*(sinc((f2-f_i(k)fc)*T_ofdm)).^2 -(3) Kết thúc vòng lặp for (*) PSD_OFDM_sum_RF = - Khai báo PSD_OFDM_sum_RF = tổng sum(PSD_OFDM_RF,'double'); PDS_OFDM_RF kiểu liệu double 20 21 ✓ MA_06_CP_insert function [CP_insert] = MA_06_CP_insert(N,V) % CP_insert -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 I_N = eye(N); CP_insert = [O_I;I_N]; 20 Đào Đình Đồn Giải thích lệnh: STT Câu lệnh Giải thích - Tạo function MA_06_CP_insert với đầu vào N & V Đầu CP_insert function [CP_insert] = MA_06_CP_insert(N,V) O_I = zeros(V,N); - Khai báo O_I mảng toàn gồm V hàng x N cột O_V_N_V = zeros(V,N-V); I_V = eye(V); - Khai báo 0_V_N_V mảng toàn gồm V hàng N-V cột - Khai báo I_V ma trận đơn vị kích thước VxV for i=1:V (*) O_I(i,:) = [O_V_N_V(i,:) I_V(i,:)] ; (1) end (2) I_N = eye(N); CP_insert = [O_I;I_N]; -(*) Bắt đầu vòng for cho i chạy từ 1:V -(1) O_I hàng thứ i tất cột = [O_V_N_V(i,:) I_V(i,:)] -(2) Kết thúc vòng for (*) - Khai báo I_N ma trận đơn vị NxN - Gán CP_insert = [O_I;I_N] ✓ MA_06_CP_Remove function [CP_Remve] = MA_06_CP_Remove(N,V) % CP_Remove -CP_Remve = zeros(N,N+V); O_V = zeros(N,V); I_N = eye(N); for i =1:N CP_Remve(i,:) = [O_V(i,:) I_N(i,:)]; end 21 Ghi Đào Đình Đồn Giải thích lệnh: Câu lệnh STT function [CP_Remve] = MA_06_CP_Remove(N,V) CP_Remve = zeros(N,N+V); O_V I_N for i =1:N (*) CP_Remve(i,:) = [O_V(i,:) I_N(i,:)]; (1) end (2) Giải thích - Tạo function MA_06_CP_Remove với đầu vào N & V Đầu CP_Remove - Khai báo CP_Remve mảng toàn gốm N hàng x N+V cột - Khai báo O_V = mảng toàn gồm N hàng x V cột - Khai báo I_N ma trận đơn vị kích thước NxN -(*) Bắt đầu vòng for cho i chạy từ 1:N -(1) CP_Remve(i,:) (hàng thứ i tất cột ) = [O_V(i,:) I_N(i,:)]; -(2) Kết thúc vòng for (*) = zeros(N,V); = eye(N); 22 Ghi Đào Đình Đồn Bài Sim_MA07: Mơ hình hóa mơ hiệu BER cho hệ thống truyền dẫn BPSK-OFDM dung mã kênh môi trường kênh AWGN 23 Đào Đình Đồn 24 Đào Đình Đồn ❖ Code matlab clc; clear all; close all; SNR = [0:1:9]; FFTsize = 512; CPsize = 20; numRun = 10^3; % Note NumBits = FFTsize*numRun; %========================================================================== mode_Sim = 2; % for No channel code (OFDM without channel coding); % for channel coding (OFDM with channel coding) Codding_Type = 1; % Code Generation Matrix 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 %========================================================================== for n = 1:length(SNR), errCount = 0; for k = 1:numRun % Generated BPSK data numSymbols = FFTsize; data = 0.5*(sign(rand(1,numSymbols)-0.5)+1); data2 = 2*data-1; % if mode_Sim ==2 % Convolution code Encoder inputSymbols = FWC_COV_Encoder(G,k0,data); inputSymbols = 2*inputSymbols-1; else inputSymbols = 2*data-1; end % % IFFT (OFDM Modulation) TxSamples = sqrt(length(inputSymbols))*ifft(inputSymbols,length(inputSymbols)); numSymbols = length(inputSymbols); % Insert CP Tx_ofdm = [TxSamples(numSymbols-CPsize+1:numSymbols) TxSamples]; % AWGN channel numSymbols_2 = length(inputSymbols); tmp = randn(1,numSymbols_2+CPsize); noisePower = 10^(-SNR(n)/10); RxSymbols = Tx_ofdm + sqrt(noisePower)*tmp; % Remove CP EstSymbols_1 = RxSymbols(CPsize+1:numSymbols_2+CPsize); % IFT (OFDM Demodulation) Y = fft(EstSymbols_1,length(EstSymbols_1)); % Detection and decide 25 Đào Đình Đồn EstSymbols_1 = Y; EstSymbols_1 = sign(real(EstSymbols_1)); for i = 1:length(EstSymbols_1) if EstSymbols_1(i)>0 Decis(i)= 1; else Decis(i)= 0; end end % if mode_Sim==2 % Convolution code Decoder EstSymbols = FWC_COV_Dencoder(G,k0,Decis); else EstSymbols = EstSymbols_1; end % % Check for Error if mode_Sim==2 I = find((data-EstSymbols) == 0); else I = find((data2-EstSymbols) == 0); end % Countered Errors errCount = errCount + (FFTsize-length(I)); end SER(n,:) = errCount / (FFTsize*numRun); end %========================================================================== if mode_Sim ==2 save MA_07_BPSK_OFDM_CC_AWGN.mat; figure(1); G = semilogy(SNR,SER,'-vr'); title(['M« pháng SER hƯ thèng BPSK OFDM kªnh AWGN voi m· hãa kªnh; Sè bit m« pháng = ', num2str(NumBits),' bits '],'FontName','.VnTime','color','b','FontSize',16); LT=legend('OFDM - kªnh AWGN cã m· hãa kªnh'); set(LT,'fontname','.Vntime','fontsize',16); else save MA_07_BPSK_OFDM_NoCC_AWGN.mat; figure(1); G = semilogy(SNR,SER,'-ob'); title(['M« pháng SER hƯ thèng BPSK OFDM kênh AWGN; Số bit mô = ',num2str(NumBits),' bits ', ],'FontName','.VnTime','color','b','FontSize',16); LT=legend('OFDM - kênh AWGN không mà hãa kªnh'); set(LT,'fontname','.Vntime','fontsize',16); end set(G,'LineWidth',1.5); AX = 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'); grid on; 26 Đào Đình Đồn ❖ Kết quả: Giải thích lệnh: Câu lệnh STT Giải thích Clc ; Clear ; 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 Close all ; SNR FFTsize CPsize numRun NumBits Xóa tất hình định - Khai báo tham số đầu vào q trình mơ -(4) Tham số numRun thể số lần lấy mẫu kênh AWGN mode_Sim = 2; % for No channel code (OFDM without channel coding); % for channel coding (OFDM with channel coding) Codding_Type = 1; % Code Generation Matrix = [0:1:9]; (1) = 512; (2) = 20; (3) = 10^3; (4) = FFTsize*numRun; (5) 27 - Xác định mode mô loại mã hóa mơ - Sử dụng mã hóa xoắn để mã hóa kênh Mỗi loại Codding Ghi Đào Đình Đồn 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 for n = 1:length(SNR) (*) _Type dạng ma trận mã hóa xoẵn khác - Bắt đầu vịng for (*) thực mơ theo giá trị SNR - Các lệnh nằm 10 11 vòng for (*) errCount = 0; (1) - (1) Khởi tạo số for k = 1:numRun (**) lượng lỗi ban đầu % Generated BPSK data numSymbols = =0 FFTsize; data = -(**) Bắt đầu vòng 0.5*(sign(rand(1,numSymbols)-0.5)+1); data2 for = 2*data-1; k = 1: numRun - Các lệnh thực điều chế liệu BPSK if mode_Sim ==2 % Convolution code Encoder - Xác định inputSymbols = mode_Sim để mã FWC_COV_Encoder(G,k0,data); inputSymbols hóa xoắn chuỗi = 2*inputSymbols-1; liệu else inputSymbols = 2*data-1; end - Sau chuyển sang dạng lưỡng cực TxSamples = sqrt(length(inputSymbols)) * ifft(inputSymbols,length(inputSymbols)) numSymbols = length(inputSymbols); Tx_ofdm = [TxSamples(numSymbolsCPsize+1:numSymbols) TxSamples]; numSymbols_2 = length(inputSymbols); tmp = randn(1,numSymbols_2+CPsize); noisePower 28 - Thực xử lí IFFT - Thực chèn CP - Mô kênh AWGN với nhiễu ngẫu nhiên Đào Đình Đồn 12 13 14 = 10^(-SNR(n)/10); RxSymbols = Tx_ofdm + sqrt(noisePower)*tmp; EstSymbols_1 = RxSymbols(CPsize+1:numSymbols_2+CPsize); Y = fft(EstSymbols_1,length(EstSymbols_1)); EstSymbols_1 = Y; EstSymbols_1 = sign(real(EstSymbols_1)); for i = 1:length(EstSymbols_1) if EstSymbols_1(i)>0 Decis(i)= 1; else Decis(i)= 0; end end phân bố Gauss - Khử CP -Xử lí FFT - Chuỗi bit sau xử lí FFT định đầu - Nếu > đầu - Ngược lại đầu 15 16 if mode_Sim==2 % Convolution code Decoder EstSymbols = FWC_COV_Dencoder(G,k0,Decis); else EstSymbols = EstSymbols_1; end errCount = errCount + (FFTsizelength(I)); end SER(n,:) = errCount / (FFTsize*numRun); 29 - Xác định mode giải mã hóa kênh - Tính lỗi đưa tỉ lệ lỗi SER giá trị SNR .. .Bài Sim_ MA06: Trực quan hóa nguyên lý hoạt động hệ thống truyền dẫn OFDM sở thực IFFT/FFT chèn/khử CP ❖ 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... khơng gian tín hiệu ❖ Mơ hình hóa hệ thống truyền dẫn OFDM sở thực IFFT/FFT chèn/khử CP ❖ Code matlab: ✓ MA_06_IFFT_FFT_AWGN clc; clear all; close all; % FFTsize = 1000; CPsize = 25; snr_in_dB = 10;... -(1) CP_ Remve(i,:) (hàng thứ i tất cột ) = [O_V(i,:) I_N(i,:)]; -(2) Kết thúc vòng for (*) = zeros(N,V); = eye(N); 22 Ghi Đào Đình Đồn Bài Sim_ MA07: Mơ hình hóa mô hiệu BER cho hệ thống truyền dẫn