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

Sim ma06 tìm hiểu 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 fftfft và chèn khử cp

35 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

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG =====***===== BÀI TẬP HỌC PHẦN Đa truy nhập VÔ TUYẾN Giảng viên: Nguyễn Viết Đảm Mục tiêu: + Làm sáng 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 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 Mô tả phổ OFDM băng tần gốc Matlab : Câu lệnh STT Giải thích Clc ; Clear ; Close all ; deta_f BW_channel num_subcarrier = round(BW_channel/deta_f); - Khai báo số lượng thành phần sóng mang = BW / delta_f T_ofdm = 1/deta_f; T_ofdm = 1/deta_f R_ofdm = 1/T_ofdm; R_ofdm = 1/T_ofdm Tb 10 Rb = 1/Tb; Tb = T_ofdm/num_subcarrier Rb = 1/Tb 11 A1 = A^2*Tb; A1 = A^2 * Tb ; 12 AA 13 f_i = deta_f:deta_f:BW_channel+deta_f; 14 f = -Rb:BW_channel+4*deta_f; 15 fc Xóa tất = 20; = 200; = T_ofdm/num_subcarrier; = A^2*T_ofdm; = 3*max(f); - Khai báo deta_f = 20 - Khai báo băng thông kênh = 200 AA = A^2*T_ofdm; f_i mảng có giá trị deta_f > BW_channel+deta_f Khoảng cách deta_f f mảng gồm giá trị từ -Rb đến BW_channel+4*deta_f fc = * max(f) 16 f2 = f:1:(fc+BW_channel+4*deta_f); f2 mảng gồm cá giá trị từ -f đến fc+BW_channel+4*deta_f 17 PSD_ofdm_in = A1*(sinc((f*Tb)).^2); 18 PSD_RF_SC fc)*Tb)).^2); PSD_ofdm_in = A1*(sinc((f*Tb)).^2); - PSD đầu vào Khối điều chế OFFDM PSD_RF_SC = A1*(sinc(((f2-fc)*Tb)).^2); 19 PSD_OFDM = PSD_OFDM zeros(num_subcarrier,max(size(f))); PSD đầu Khối điều chế OFFDM 20 for k = 1:num_subcarrier (*) PSD_OFDM(k,:) = AA*(sinc((f-f_i(k))*T_ofdm)).^2; (1) PSD_OFDM_RF(k,:) = AA*(sinc((f2-f_i(k)fc)*T_ofdm)).^2; (2) = A1*(sinc(((f2- PSD đầu Khối điều chế OFFDM end (3) 21 PSD_OFDM_sum_RF = sum(PSD_OFDM_RF,'double'); PSD_OFDM_sum_RF = tổng PDS_OFDM_RF kiểu liệu double 22 Figure subplot plot hold on xlabel Các câu lệnh để vẽ hình ylabel grid on; set Kết mơ phỏng: 10 SIM_MA_07 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 21 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 Nội dung - Xây dựng trình bày nguyên lý hoạt động trình điều chế/giải điều chế OFDM sở khơng gian tín hiệu - Xây dựng mơ hình ngun lý hoạt động hệ thống BPSK-OFDM dùng mã kênh môi trường kênh AWGN - Tiến trình mơ phỏng: Lưu đồ mơ thực mô hệ thống BPSK-OFDM dùng mã kênh môi trường kênh AWGN - Matlab hóa mơ hiệu BER hệ thống BPSK-OFDM dùng mã kênh môi trường kênh AWGN - Thực mô Matlab để: sáng tỏ nguyên lý hoạt động khảo sát đánh giá hiệu BER I Mơ hình hóa mô hệ thống truyền dẫn OFDM Matlab 22 23 Thực mô matlab MA_06_IFFT_FFT_AWGN 24 - Tham số mô phỏng: FFTsize CPsize snr_in_dB noisePower - = = = = 512; 20; 10; 10^(-snr_in_dB/10); Điều chế BPSK: Generate for FFTsize bits: BPSK data = 0.5*(sign(rand(1,FFTsize)-0.5)+1); data = 2*data-1; - Xử lí IFFT/FFT chèn/khử CP Phía phát Xử lí IFFT: % step 1: IFFT process Chèn CP: data_IFFT = ifft(data); % step 2: add CP data_IFFT_CP = [data_IFFT(FFTsize-CPsize+1:FFTsize) data_IFFT]; Mô kênh AWGN: tmp RV_Gausian RxSymbols = randn(1,FFTsize+CPsize); = tmp*noisePower; = data_IFFT_CP + RV_Gausian; Phía thu Khử CP: data_CPR=RxSymbols(CPsize+1:FFTsize+CPsize); Xử Lí FFT: data_FFT = fft(data_CPR); - Quyết định đầu thực so sánh lỗi: Quyết định đầu ra: 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 Thực so sánh lỗi : error_vector1 = data~=data_des1; % errCount & number of errors num_error1 = sum(error_vector1); BER1 = num_error1/FFTsize Kết mô phỏng: 25 Nhận xét : Thực mô 512 bit có 143 bit lỗi sau định phía thu II Mơ hình hóa mơ hệ thống truyền dẫn BPSK-OFDM dùng mã hóa kênh kênh AWGN 26 Thực mô phỏng: - Các tham số đầu vào SNR FFTsize CPsize numRun NumBits - = = = = = [0:1:9]; 512; 20; 10^3; %Số lần lấy mẫu kênh AWGN FFTsize*numRun; Xác định hệ số ma trận mã hóa kênh theo mã hóa xoắn if mode_Sim ==2 if Codding_Type == %SỬ dụng mã hoá xoắn để mã hoá 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 27 End - Thực chạy mô : for n = 1:length(SNR), %vịng for thực mơ theo giá trị SNR errCount = 0; % khởi tạo lỗi ban đầu 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 %xác định mode sim để mã hoá xoắn liệu inputSymbols = FWC_COV_Encoder(G,k0,data); inputSymbols = 2*inputSymbols-1; else inputSymbols = 2*data-1;% chuyen sang dạng lưỡng cực end % % IFFT (OFDM Modulation) TxSamples = sqrt(length(inputSymbols))*ifft(inputSymbols,length(i nputSymbols)); numSymbols = length(inputSymbols); % Insert CP Tx_ofdm = [TxSamples(numSymbolsCPsize+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 28 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 + (FFTsizelength(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ô = ', num2str(NumBits),' bits '],'FontName','.VnTime','color','b','FontSize',16); 29 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« pháng = ',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; Giải thích mơ phỏng: Presentation_Sim_MA_07.m ST Câu lệnh T clc; clear all; Giải thích close all; load MA_07_BPSK_OFDM_NoCC_AWGN.mat; SER_noChannelCoding = SER; SNR_1 = SNR; clear SER; 30 load MA_07_BPSK_OFDM_CC_AWGN.mat; SER_ChannelCoding = SER; SNR_2 = SNR; clear SER; figure(1) G= semilogy(SNR_1,SER_noChannelCoding, '-ob'); set(G,'LineWidth',1.5); hold on; 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'); title(['M« pháng SER hệ thống 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; 31 Sim_MA_07_BPSK_OFDM_AWGN_ChannelCode Câu lệnh STT Clc ; Clear ; Close all ; SNR FFTsize CPsize numRun NumBits FFTsize*numRun; mode_Sim = 2; % for No channel code (OFDM without channel coding); % for channel coding (OFDM with channel coding) Codding_Type = 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 = [0:1:9]; = 512; = 20; = 10^3; = Giải thích -Lấy 10 điểm SNR từ đến điểm cách - Xác định mode -Mô mã hóa mơ loại -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; 32 G = [0 1 0 1;0 0 0 0 1;1 0 0 0 1]; for n = 1:length(SNR) errCount = 0; Cho biến chạy từ đến 10 -Khởi tạo số lượng lỗi ban đầu =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 -Bắt đầu vòng for k = 1: numRun - Các lệnh thực điều chế liệu BPSK Nếu chế độ mơ = inputSymbols tính hàm function 10 11 12 13 14 15 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 = 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 if mode_Sim==2 FWC_COV_Encoder(G,k 0,dat a); - Thực xử lí IFFT - chèn CP - Mơ kênh AWGN với nhiễu ngẫu nhiên phân bố Gauss - Loại bỏ CP -Xử lí FFT - Chuỗi bit sau xử lí FFT định đầu - Nếu > đầu - Ngược lại đầu - Xác định mode 33 16 % 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); giải mã hóa kênh - Tính lỗi đưa tỉ lệ lỗi SER giá trị SNR 34 Kết mô phỏng: So sánh có mã hóa kênh khơng mã hóa kênh : Ở giá trị SNR tỉ lệ lỗi có mã hóa kênh nhỏ khơng mã hóa 35 ... 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 Mơ tả phổ OFDM băng tần gốc... mô 19 20 SIM_ MA_07 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 21 Mục Tiêu - Mơ hình hóa trực quan hóa ngun lý hoạt động hệ thống BPSK -OFDM dùng... Matlab hóa mơ hiệu BER hệ thống BPSK -OFDM dùng mã kênh môi trường kênh AWGN - Thực mô Matlab để: sáng tỏ nguyên lý hoạt động khảo sát đánh giá hiệu BER I Mơ hình hóa mơ hệ thống truyền dẫn OFDM

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

Xem thêm:

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

TÀI LIỆU LIÊN QUAN