Kết luận chương

Một phần của tài liệu nghiên cứu kỹ thuật ofdm ứng dụng trong thông tin vô tuyến (Trang 74 - 85)

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

Một phần của tài liệu nghiên cứu kỹ thuật ofdm ứng dụng trong thông tin vô tuyến (Trang 74 - 85)

Tải bản đầy đủ (DOC)

(85 trang)
w