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

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 sim ma06

35 1 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

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 2,65 MB

Nội dung

Cao Thị Huyền HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG ĐA TRUY NHẬP VÔ TUYẾN SIM MA_06 SIM MA_07 Giảng Viên : NGUYỄN VIẾT ĐẢM Hà Nội, năm 2021 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 chèn/khử CP  Trực quan hóa ngun lý hoạt động sở mơ tả mơ tín hiệu điển hình Matlab  Nội dung  Khái niệm bản:  Tín hiệu phổ tần tín hiệu băng tần sở   Tín hiệu phổ tần tín hiệu thơng dải/điều chế dịch phổ tần tín hiệu   Truyền dẫn đơn sóng mang/đa sóng mang, MCM/FDM.  FDM OFDM.  Xây dựng trình bày nguyên lý hoạt động điều chế/giải điều chế OFDM sở khơng gian tín hiệu  Mơ hình hóa q trình truyền thơng tín hiệu sở khơng gian tín hiệu.  Mơ hình hóa q trình điều chế/giải điều chế tín hiệu OFDM sở khơng gian tín hiệu: Ngun lý hoạt động q trình điều chế/giải điều chế.  Tín hiệu hệ thống miền thời gian   Tín hiệu hệ thống miền tần số   Thực điều chế/giải điều chế tín hiệu OFDM thuật tốn IFFT/FFT   Matlab hóa mơ hệ thống OFDM sở thuật toán IFFT/FFT.  Các tham số đặc trưng tín hiệu OFDM  Tham số tín hiệu OFDM miền thời gian   Tham số tín hiệu OFDM miền tần số   Lựa chọn tham số OFDM sở tham số kênh vơ tuyến   Truyền dẫn tín hiệu OFDM  Truyền dẫn tín hiệu OFDM băng tần sở;  Matlab hóa để tính tốn biểu diễn tín hiệu OFDM băng tần sở;  Truyền dẫn tín hiệu OFDM băng tần vơ tuyến;  Matlab hóa để tính tốn biểu diễn tín hiệu OFDM băng tần vơ tuyến.  Trực quan hóa ngun lý hoạt động sở mô tả mô tín hiệu đặc trưng sơ đồ (mơ hình) Matlab LÝ THUYẾT Tại tách tín hiệu gốc Xi,k cịn nhiễu phía sau Để loại bỏ hồn tồn nhiễu ta dựa vào tính chất trực giao sóng mang gi,k ta tìm hiểu tính chất phần  MÔ PHỎNG SIM_MA_06_PDS_OFDM.m Câu lệnh 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 - Khai báo deta_f = 20 (Subcarrier_ space) = 20; BW_channel = 200; - Khai báo BW_channel = 200 ( Băng thông kênh ) T_ofdm = 1/deta_f; - 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 R_ofdm = 1/T_ofdm; - Khai báo R_ofdm = 1/T_ofdm num_subcarrier = round(BW_channel/deta_ f); Tb = T_ofdm/num_subcarrier; Rb = 1/Tb; - Khai báo Tb = T_ofdm/num_subcarrier - Khai báo Rb = 1/Tb A1 = A^2*Tb; - Khai báo A1 = A^2 * Tb ; AA = A^2*T_ofdm; - Khai báo AA = A^2*T_ofdm; - Khai báo f_i mảng có giá trị deta_f > BW_channel+deta_f Khoảng cách deta_f f = -Rb:BW_channel+4*deta_f; - Khai báo f mảng gồm giá trị từ -Rb đến BW_channel+4*deta_f f_i = deta_f:deta_f:BW_channel+det a_f; fc = 3*max(f); - Khai báo fc = * max(f) f2 = f:1:(fc+BW_channel+4*deta_f) ; - Khai báo f2 mảng gồm cá giá trị từ -f đến fc+BW_channel+4*deta_f PSD_ofdm_in = A1*(sinc((f*Tb)).^2); - Khai báo PSD_ofdm_in = A1*(sinc((f*Tb)).^2); PSD_RF_SC = A1*(sinc(((f2fc)*Tb)).^2); - Khai báo PSD_RF_SC = A1*(sinc(((f2fc)*Tb)).^2); - Khai báo PSD_OFDM mảng zeros gồm num_subcarrier hàng x max(size(f)) cột -(*) Bắt đầu vòng lặp for cho k từ -> num_subcarrier PSD_OFDM(k,:) ( Giá trị - (1)PSD_OFDM hàng thứ k cột ) = AA*(sinc((f- f_i(k))*T_ofdm)).^2 -(2) PSD_OFDM_RF(k,:) ( Giá trị -(1)PSD_OFDM_RF 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 Các lệnh cấu tạo figure PSD_OFDM = zeros(num_subcarrier,max(siz e(f))); for k = 1:num_subcarrier (*) PSD_OFDM(k,:) = AA*(sinc((ff_i(k))*T_ofdm)).^2; (1) PSD_OFDM_RF(k,:) = AA*(sinc((f2-f_i(k)fc)*T_ofdm)).^2; (2) end (3)  Kết Nhận xét:  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 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 OFDMRF 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= frf Cao Thị Huyền 10 - Tính giá trị modul tích W_H * W test = abs(W_H*W) - (1) Khởi tạo chuỗi x11 = 1,2,3,4 - (2) x12 = W_H * x11’(x11 chuyển vị ) -(3) x13 = W*x12 -(4) So sánh x11 x13’ x11 = 1:4 (1) x12 = W_H*x11' (2) x13 = W*x12 (3) test2 = x11~=round(x13') (4) N= 4; (1) W_H_2 = zeros(N); (2) - (1) Khai báo N =4 (2) Tạo ma trận W_H_2 ma trận toàn có N phần tử 11 - (*) Bắt đầu vòng for cho i chạy từ for i =1:N (*) for m= 1:N 1:N (**) - (**) Bắt đầu vòng for W_H_2(i,m) (*) cho m chạy từ :N = exp(j*2*pi/N*(i-1)*(m-1)); -(1) W_H_2(i,m) phần tử vị trí hàng i cột m = exp(j*2*pi/N*(i-1)*(m-1)) (1) -(2) kết thúc (**) end (2)  -(3) Kết thúc (*) end (3) 12 W_H_2 = 1/sqrt(N)*W_H_2 (1) W_H_2~=W_H (2) - (1) W_H_2 = 1/sqrt(N)*W_H_2  -(2) W_H_2 so sánh W_H 13 W_2 = zeros(N); Tạo ma trận W_2 ma trận toàn có N phần tử 14 for m =1:N (*) for i= 1:N (**) W_2(m,i) = exp(- j*2*pi/N*(m1)*(i-1)); (1) end (2) end (3) (*) Bắt đầu vòng for cho i chạy từ m:N - (**) Bắt đầu vòng for (*) cho i chạy từ :N -(1) W_H_2(m,i) phần tử vị trí hàng m cột i = exp(- j*2*pi/N*(m-1)*(i1)); -(2) kết thúc (**) -(3) Kết thúc (*) 15 W_2 = 1/sqrt(N)*W_2 (1) W_2~=W (2) -(1) W_2 = 1/sqrt(N)*W_2 - So sánh W_2 W 20 Cao Thị Huyền Kết 21 Cao Thị Huyền 22 Cao Thị Huyền 23 Cao Thị Huyền 24 Cao Thị Huyền * Chèn CP MA_06_CP_insert.m STT Câu lệnh Giải thích - Tạo function MA_06_CP_insert với đầu vào N & V Đầu - Khai báo O_I mảng toàn gồm V hàng x N cột function [CP_insert] = MA_06_CP_insert(N,V) 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,:)] ; (1) end (2) - 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 25 -(*) 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,:)] Cao Thị Huyền -(2) Kết thúc vòng for (*) I_N= eye(N); - Khai báo I_N ma trận đơn vị NxN CP_insert = [O_I;I_N]; - Gán CP_insert = [O_I;I_N] Khử CP MA_06_CP_Remove.m Câu lệnh STT Giải thích function [CP_Remve] = MA_06_CP_Remove(N,V) CP_Remve O_V I_N for i =1:N (*) CP_Remve(i,:) = [O_V(i,:) I_N(i,:)]; (1) end (2) = zeros(N,N+V); = zeros(N,V); = eye(N); 26 - 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 (*) Cao Thị Huyền SIM MA_07: Mơ hình hóa mơ hiệu BER cho hệ thống truyền dẫn BPSKOFDM dùng mã kênh môi trườngkênh AWGN Trong mô này, ta mô hệ thống kênh truyền dẫn BPSKOFDM kênh AWGN trường hợp: Khơng có mã hóa kênh có mã hóa kênh  Các lệnh hệ thống Câu lệnh clc; Giải thích Xóa command window clear; Xóa biến workspace close all; Đóng tất cửa sổ figure mở  Khai báo tham số đầu vào Câu lệnh SNR = [0:1:9]; FFTsize CPsize numRun NumBits Giải thích Cho giá trị tỉ số tín hiệu nhiễu SNR chạy từ đến để khảo sát Số mẫu liệu điều chế đầu vào Kích cỡ vecto chèn Số lần chạy Số lượng mẫu sử dụng q trình mơ Khái báo CP size =20; Khai báo giá trịSNRdB =10; Gán noise power =10^(snr_in_dB/10) = 512; = 20; = 10^3; = FFTsize*numRun; CPsize = 20; snr_in_dB = 10; noisePower = 10^(-snr_in_dB/10); - (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ựcvề lưỡng cực - Thực IFFT chuỗidữ liệu đầu vào gán vào data_IFFT data = 0.5*(sign(rand(1,FFTsize)-0.5)+1); (1) data = 2*data-1; (2) data_IFFT = ifft(data); 27 Cao Thị Huyền - Thực chèn CP củachuỗi liệu sau IFFT data_IFFT_CP = [data_IFFT(FFTsizeCPsize+1:FFTsize) data_IFFT]; tmp = randn(1,FFTsize+CPsize);(1) RV_Gausian =tmp*noisePower; (2) RxSymbols = data_IFFT_CP +RV_Gausian;(3) data_CPR = RxSymbols(CPsize+1:FFTsize+CPsize); data_FFT - (1) Tạo thành phần tạp âm random theo phân bốgauss - (2) Nhân với công suấttạp âm - (3) Dữ liệu đầu khiqua kênh liệu đầu vào + tạp âm - Thực khử CP - Xử lí FFT = fft(data_CPR); data_des1 = zeros(1, length(data)); - Khởi tạo mảng giá trịđầu sau định 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) error_vector1 = data~=data_des1; - (*) Bắt đầu vong forcho i chạy từ 1>length(data_FFT) -(1) Bắt đầu vòng đk : Nếu data_FFT(i)>=0 thìquyết định đầu =1; else đầu - Kết thúc num_error1 - Tính tổng số bit lỗi = sum(error_vector1) - So sánh bit đầu vào vàbit sau định - Tỉ lệ lỗi bit BER BER = num_error1/FFTsize Khơng sử dụng mã hóa kênh 28 Cao Thị Huyền Tiến trình mơ truyền dẫn OFDM mơi trường AWGN (khơng mã hóa kênh) Câu lệnh mode_Sim = 1; for n = 1:length(SNR), errCount = 0; for k = 1:numRun numSymbols = FFTsize; data = 0.5*(sign(rand(1,numSymbols)-0.5)+1); data2 = 2*data-1; inputSymbols = 2*data-1; TxSamples = sqrt(length(inputSymbols))* ifft(inputSymbols,length(inputSymbols)); numSymbols = length(inputSymbols); 29 Giải thích Thiết lập tiến trình mơ khơng sử dụng mã hóa kênh Khởi tạo trình khảo sát theo SNR Khởi tạo liệu đầu vào BPSK dạng -1 1, số lượng ký hiệu ngẫu nhiên tạo với số mẫu liệu điều chế đầu vào, chạy lại trình numRun (lần) IFFT liệu Cao Thị Huyền Chèn CP cho liệu Cho liệu qua kênh tạp âm Gauss trắng cộng Khử CP cho EstSymbols_1=RxSymbols(CPsize+1:numSymbols_2+CPsize); liệu Y = fft(EstSymbols_1,length(EstSymbols_1)); FFT liệu EstSymbols_1 = Y; EstSymbols_1 = sign(real(EstSymbols_1)); for i = 1:length(EstSymbols_1) if EstSymbols_1(i)>0 Quyết định Decis(i)= 1; cứng else Decis(i)= 0; end end EstSymbols = EstSymbols_1; Kiểm tra lỗi, tìm vị trí mà tín hiệu đầu I = find((data2-EstSymbols) == 0); giống với đầu vào, từ suy lỗi Đếm số lượng errCount = errCount + (FFTsize-length(I)); lỗi, kết thúc end q trình chạy Tính tỉ số lỗi, SER(n,:) = errCount / (FFTsize*numRun); kết thúc khảo end sát save MA_07_BPSK_OFDM_NoCC_AWGN.mat; figure(1); G = semilogy(SNR,SER,'-ob'); Mô tả q trình title([' Mơ SER hệ thống BPSK OFDM kênh mô AWGN; Số bit mô = ',num2str(NumBits),' bits ', OFDM không ],'FontName','.VnTime','color','b','FontSize',16); sử dụng mã hóa LT=legend('OFDM - kênh AWGN khơng mã hóa kênh'); kênh môi set(LT,'fontname','.Vntime','fontsize',16); trường AWGN set(G,'LineWidth',1.5); AX = gca; set(AX,'fontsize',14); 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; 30 Cao Thị Huyền 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; Sử dụng mã hóa kênh (mã xoắn) Câu lệnh mode_Sim Giải thích Thiết lập tiến trình mơ sử dụng mã hóa kênh Xác định loại mã hóa = 2; 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 31 Dựa loại mã hóa, xác định số bit đầu vào mã hóa ma trận tạo mã Cao Thị Huyền for n = 1:length(SNR), errCount = 0; for k = 1:numRun numSymbols = FFTsize; data = 0.5*(sign(rand(1,numSymbols)-0.5)+1); data2 = 2*data-1; if mode_Sim ==2 inputSymbols = FWC_COV_Encoder(G,k0,data); inputSymbols=2*inputSymbols-1; else inputSymbols = 2*data-1; end 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; Khởi tạo trình khảo sát theo SNR Khởi tạo liệu đầu vào BPSK dạng 1, số lượng ký hiệu ngẫu nhiên tạo với số mẫu liệu điều chế đầu vào, chạy lại trình numRun (lần) Mã hóa liệu mã xoắn IFFT liệu Chèn CP cho liệu Cho liệu qua kênh tạp âm Gauss trắng cộng Khử CP cho EstSymbols_1=RxSymbols(CPsize+1:numSymbols_2+CPsize); liệu 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 32 FFT liệu Quyết định cứng Nếu ký hiệu >0, trả lại trả Cao Thị Huyền if mode_Sim==2 EstSymbols = FWC_COV_Dencoder(G,k0,Decis); else EstSymbols = EstSymbols_1; end if mode_Sim==2 I = find((data-EstSymbols) == 0); else I = find((data2-EstSymbols) == 0); end errCount end SER(n,:) end = errCount + (FFTsize-length(I)); = errCount / (FFTsize*numRun); save MA_07_BPSK_OFDM_CC_AWGN.mat; figure(1); G = semilogy(SNR,SER,'-vr'); title([' Mô 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 có mã hóa kênh); set(LT,'fontname','.Vntime','fontsize',16); Q trình giải mã kênh Kiểm tra lỗi, tìm vị trí mà tín hiệu đầu giống với đầu vào, từ suy lỗi Đếm số lượng lỗi, kết thúc q trình chạy Tính tỉ số lỗi, kết thúc khảo sát Mơ tả q trình mơ OFDM sử dụng mã hóa kênh mơi trường AWGN - Nhận xét : Kết mô hệ thống BPSK OFDM kênh AWGN 33 Cao Thị Huyền + SNR lớn tỉ lệ lỗi giảm - > với thực tế + So sánh có mã hóa kênh khơng mã hóa kênh : Nhận xét: Ở giá trị SNR tỉ lệ lỗi có mã hóa kênh nhỏ khơng có mã hóa Tốc độ giảm lỗi SNR tăng cao mã hóa kênh lớn khơng mã hóa Suy hệ thống tối ưu mã hóa kênh 34 .. .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ở. .. diễn tín hiệu OFDM băng tần sở;   Truyền dẫn tín hiệu OFDM băng tần vơ tuyến;  Matlab hóa để tính tốn biểu diễn tín hiệu OFDM băng tần vơ tuyến.  Trực quan hóa ngun lý hoạt động sở mô tả mô... 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  Nội dung  Khái niệm bản:  Tín hiệu phổ tần tín hiệu băng tần sở   Tín hiệu

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