1. Trang chủ
  2. » Tất cả

Bài sim ma06 trực quan hóa nguyên lý hoạt động hệ thống truyền dẫn ofdm trên cơ sở thực hiện ifftfft và chènkhử cp

30 0 0

Đ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

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

Ngày đăng: 26/02/2023, 19:26

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w