KÉT L UẬN VÀ HƯỞNG PHÁ T TRIỂN ĐÊ TÀI
Công nghệ ghép kênh phân chia theo tần số trực giao - OFDM là một công nghệ hiện đại cho truyền thông tưong lai. Hiện nay việc nghiên cứu và ứng dụng OFDM không ngừng được nghiên cứu và mở rộng phạm vi úng dụng bởi nhũng ưu điểm trong việc tiết kiệm băng tần và khả năng chống lại fading chọn lọc tần số cũng như xuyên nhiễu băng hẹp. Đồ án đã tìm hiếu, trình bày những vấn đề cơ bản của kỹ thuật OFDM cũng như một số vấn đề kỹ thuật cho công nghệ OFDM và khả năng ứng dụng OFDM vào các công nghệ tương lai này.
Đồng bộ là một vấn đề quan trọng không chỉ trong hệ thống OFDM mà còn cả trong các hệ thống khác cũng vậy. Hệ thống OFDM yêu cầu khắt khe về vấn đề đồng bộ vì sự sai lệch về tần số, ảnh hưởng của hiệu ứng Doppler khi di chuyển và lệch pha sẽ gây ra nhiễu ICI. Trong bất kỳ một hệ thống OFDM nào, hiệu suất cao phụ thuộc vào tính đồng bộ hóa giữa máy phát và máy thu, làm mất tính chính xác định thời dần đến nhiễu ISI và ICI khi mất độ chính xác tần số.
Chương trình mô phỏng tín hiệu OFDM ở đồ án này chỉ mới thực hiện được bước đầu là mô phỏng tống quan và và mô phỏng so sánh tín hiệu. Có thế thiết kế hệ thống OFDM với Simulink trong Matlab và đi vào mô phỏng các thuật toán, các phương pháp cụ thể trong từng vấn đề. Ngoài ra, để nâng cao chỉ tiêu chất lượng hệ thống OFDM, người ta sử dụng mã hóa tín hiệu OFDM.
Việc tìm hiếu tông quan về OFDM và giải quyết các vấn đề kỹ thuật trong hệ thống OFDM, chúng ta có thế hướng đến ứng dụng của OFDM trong tương lai như:
- Nghiên cứu, tìm hiểu một số hệ thống OFDM nâng cao như VOFDM (Vector OFDM), COFDM (Coded OFDM), WOFDM (Wideband OFDM),...
TÀ I LIỆU THA M KHẢO
[1] Nguyễn Phạm Anh Dũng, Phạm Khắc Kỷ, Hồ Văn Cừu, úng dụng kỹ thuật
điều chế đa sóng mang OFDM trong thông tin di động CDMA, Tạp chí Bưu
chính Viễn thông & Công nghệ Thông tin, số 12 tháng 8 năm 2004, trang 33.
[2] Nguyễn Văn Đức, Lý thuyết và các úng dụng của kỹ thuật OFDM, Nhà xuất
bản khoa học và kỹ thuật Hà Nội, 2006.
[3] Ramjee Prasad, OFDM for Wineless Communications Systems, Artech House, 2004.
[4] Nguyễn Văn Đức, Lý thuyết về Kênh Vô Tuyến, Nhà xuất bản Khoa Học và Kỹ
Thuật, 2006.
[5] Nguyễn Văn Đức, Các Bài tập Matlab về Thông Un Vô Tuyến, Nhà xuất bản
Khoa Học và Kỹ Thuật, 2006.
[6] TS. Cao Phán & KS. Cao Hồng Sơn, Ghép Kênh Tín Hiệu số, HVCN - BCVT,
6/2000
[7] L.Hanzo, M.Munster, B.J.Choi and T.Keller, OFDM and MC-CDMA for
Broadband Multi-User Communications, WLANs and Broadcasting, All of
Univesity of Southampton,UK, IEEE Press/ Wiley 2003.
[8] Th.s Nguyễn Ngọc Tiến, Một số vấn đề kỹ thuật trong OFDM, Tạp chí Bưu
Chính Viễn Thông & Công Nghệ Thông Tin, Kỳ 1 (10/2003).
PHỤ LỤC
^^^^^^^“k^huân hóct dũ* liêu triĩữc khi SÍT ỔUĨIỊ^**''Ỉ''1*'ỈÍỶ^'1*'ỈÍỶ^''! *^'Ỉ''Ỉ''Ỉ'^'Ỉ'^'1*
if channelon == 1
disp('Simulating Channel') norm_factor = max(abs(recv)); recv = (l/norm_factor) * recv; chclipping
chmultipath ch_noise
recv = norm_factor * recv; end EbN0dB=-4:l :24; EbN01in= 10. A(EbN0dB/l 0); %BPSK BPSK = 0.5*erfc(sqrt(EbN01in)); plotHandle=plot(EbNOdB,loglO(BPSK),'r-d'); set(plotHandle,'LineWidth', 1.5); hold on; %M-PSK QPSK = l/2*erfc(sqrt(EbN01in*2)*sin(pi/4)); plotHandle=plot(EbNOdB,loglO(QPSK),'b-*); set(plotHandle,'LineWidth', 1.5); hold on;
set(plotHandle,'LineWidth', 1.5); hold on; %64-QAM QAMD = 2/6*(l-l/sqrt(64))*erfc(sqrt(3*EbN01in*6/(2*(64-l)))); plotHandle=plot(EbNOdB,loglO(ỌAMD),'r-h'); set(plotHandle,'LineWidth', 1.5); hold on; legend('BPSK','QPSKV 16-QAM764-QAM’); axis([-4 24 -8 0]);
set(gca,'XTick’,-4:2:24); %re-name axis accordingly ylabel('Bit Error Rate (BER) in dB');
xlabel('Eb/N0 (dB)');
title('Bit Error Rate (BER) in dB Vs Eb/N0'); grid on;
**********************jyỊộ pị^Q^Ịg hiêu h*n^2j xén
tín
for i = l:length(recv) if recv(i) > clip level
recv(i) = clip_level; end
if recv(i) < -clip level recv(i) = -cliplevel; end
end
if already_made_noise == 0 % only generate once and use for both QAM and OFDM noise = (rand(l,length(recv))-0.5)*2*noise_level; already_made_noise = 1; P Ị-Ị^Ị- SyiTlbol oFDỉ^l disp('Transmitting')
read % Đọc dữ liệu vào
data_in_pol = bin2pol(data_in); lieu phan cuc
txchunk
% Chuyên doi du lieu nhi phan thanh du
*******Thuc hien IFFT de tao dang song mien thoi gian bieu dien du lieu***** td_sets = zeros(num_chunks,fft_size);
for i = 1 :num_chunks
td_sets(i, 1 :fft_size) = real(ifft(spaced_chunks(i, 1 :fft_size)));
end txdechunk
**************0ộị dữ liệu nhị phân (0,1) thanh du lieu cuc (-1,1)*************
y = ones(l,length(x)); for i = 1 :length(x) if x(i) — 0
^'h 4^'h'h'h'h'1''h 'h'1''h 'h'h'1''h'h'1' 'h'1''h 'k-Ị^Qị liêu. íìhi pllâĩl
thành 2ịc2ịc2Ịc ^^2ịc2Ịc2ịc
y = 0; k = 0;
fori= 1:8
% Simulation of digital M-PSK modulation schemes over an AWGN channel % November 2004. Robert Morelos-Zaragoza. San Jose State University.
% Needs the Communications toolbox. clear
Fd = 1; Fs = 1; N =100000; method-psk';
set(l) = 2; set(2) = 4; set(3) = 8; for j=l:l:3 M = set(j); i=l; for esno=0:l:18 sigma = sqrt(10A(-esno/10)/2); X = floor(M*rand(N,l)); y = modmap(x,Fd,Fs,method,M); ynoisy = y + sigma*randn(N*Fs,2); z = demodmap(ynoisy,Fd,Fs,method,M); s = symerr(x,z); ber(j,i) = (s/N)/log2(M); snr(i) = esno; i=i+i; end j end
M = set(j); 1=1:1:M;
aux = sum(abs(modmap(l-l,Fd,Fs,method,M)).A2)/M;
energy(j) = aux( 1 )+aux(2);
i=l; for esno=0:2:26; sigma = sqrt(10A(-esno/10)/2)*sqrt(energy(j)); X = floor(M*rand(N,l)); y = modmap(x,Fd,Fs,method,M); ynoisy = y + sigma*randn(N*Fs,2); z = demodmap(ynoisy,Fd,Fs,method,M); s = symerr(x,z); ber(j,i) = (s/N)/log2(M); snr(i) = esno; i=i+l; end j end semilogy(snr,ber(l,:),'-bA',snr,ber(2,:),'-bo',snr,ber(3,:),'-bs'); grid on; ylabel( BER'); xlabel('E/N_0 (dB)');
% Run OFDM simulation
tic % Start stopwatch to calculate how long QAM simulation takes dispC '),disp('---') disp('OFDM Simulation')
tx ch rx
% Stop stopwatch to calculate how long QAM simulation takes OFDM_simulation_time = toc;
if OFDM_simulation_time > 60
disp(strcat('Time for OFDM
num2str(OFDM_simulation_time/60),' minutes.')); else
disp(strcat('Time for OFDM
num2str(OFDM_simulation_time),' seconds.')); end
íunction y = pol2bin(x) % pol2bin
%
% Chuyên doi cac so phan cuc (-1,1) thanh cac so nhi phan (0,1)
simulation
simulation
% ỌAM.m So sanh OFDM (Da song mang) voi QAM da muc (Don song mang) % Khi chung ta phat cung mot so luong bit giong ngau tren mot chu ky thoi % gian
read % Doc du lieu cho QAM - Khong anh huong den OFDM
d a t a i n p o l = bin2pol(data_in); % Chuyên doi du lieu nhi phan thanh du
lieu phan cuc
% Kiem tra so song mang co phai la luy thua cua 2 is_pow_2 = num_carriers; temp_do_QAM = 0; if is_pow_2 ~= 2 while temp_do_ỌAM == 0 t e m p d o Q A M = rem(is_pow_2,2); is_pow_2 = is_pow_2/2; if is_pow_2 == 2 temp_do_ỌAM = -99; end end else
temp_do_ỌAM = -99; % 2 la luy thua cua 2
end
if temp_do_ỌAM ~= -99
do_ỌAM = 0; % Khong the thuc hien
dispC '),disp('ERROR: Cannot run ỌAM because num_carriers is not valid.') dispC Please see "setup.m" for details.')
end
if do_QAM == 1 cai thien
end
data_length = length(data_in_pol);
%Cap nhat sau khi them num_OFDM_symbols = ceil(data_length / (2*num_carriers)); % So ky hieu ỌAM duoc bieu dien bang so luong cua du lieu tren mot ky % hieu OFDM
num_QAM_symbols = numcarriers / 2; % So mau tren ky hieu QAM
numsymbolsamples = fft_size / num_QAM_symbols;
*******Chuyen doi du lieu phan cuc [-1, 1] thanh du lieu 4 muc [-3, -1, 1, 3]***** data_in_4 = zeros(l,data_length/2);
for i = 1:2:data_length
data_in_4(i - (i-l)/2) = data_in_pol(i)*2 + data_in_pol(i+l); end
% Dinh ro diem lay mau giua 0 va 2*pi
ts = linspace(0, 2*pi*QAM_periods, num_symbol_samples+l); for k = 1 :num_symbol_samples
QAM_tx_data(k+((i-1 )/2)*num_symbol_samples) data_in_4(i)*cos(ts(k)) + data_in_4(i+l)*sin(ts(k));
end
end % Do channel simulation on QAM data
xmit = QAM_tx_data; % ch dung du lieu 'xmit' va tra ve 'recv'
ch kenh
clear recv %Loai bo 'recv' sao cho no khong nhieu
voi OFDM
clear xmit % Loai bo 'xmit' sao cho no khong nhieu
voi OFDM
disp('Receiving') % Khoi phuc du lieu nhi phan (Giai ma
QAM)
muc
for i = l:2:data_length/2 % "cheating" for k = 1 :num_symbol_samples
* * * * ********Tang so song mang de tao tan so cao va du lieu goc**********
costemp(k) = QAMjrx_data(k+((i-
l)/2)*num_symbol_samples) * cos(ts(k));
sintemp(k) = QAM_rx_data(k+((i-
l)/2)*num_symbol_samples) * sin(ts(k)); end
% LPF va xac dinh - chung ta se rat don gian LPF bang phep trung %Tinh toan giua cac muc khong
zeros_between = ((fft_size/2) - (num_carriers + num_zeros))/(num_carriers + num_zeros);
spaced_chunks = zeros(num_chunks,fft_size); %Them vao giua cac muc khong
i = 1;
% Gap du lieu de tao ra mot ham le cho dau vao IFFT for i = 1 :num_chunks
% Chu y: chi muc = 1 that ra la tan so mot chieu de ifft -> no khong % tao ban sao len truc y do thi
spaced_chunks(i,fft_size:-1 :fft_size/2+2) =
conj(spaced_chunks(i,2:fft_size/2)); end
Hc*************^^ hjen xac dinh giua cac muc [-3, - 1 , 1 , 3]**************** for i = 1 :data_length/2
if QAM_data_out_4(i) >= 1, QAM_data_out_4(i) = 3; elseif QAM_data_out_4(i) >= 0, QAM_data_out_4(i) = 1; elseif QAM_data_out_4(i) >= -1, ỌAM_data_out_4(i) = -1; else QAM_data_out_4(i) = -3;
end end
*******Chuyen doi du lieu 4 muc [-3, -1, 1, 3] ve du lieu phan cuc [-1, 1]******** QAM_data_out_pol = zeros(l,data_length); % "cheating"
for i = l:2:data_length
switch QAM_data_out_4( 1 + (i-l)/2) case -3 QAM_data_out_pol(i) = -1; QAM_data_out_pol(i+l) = -1; case -1 QAM_data_out_pol(i) = -1; QAM_data_out_pol(i+l) = 1; % Chuyên doi ve du