Lưu đồ mô phỏng thu phát tín hiệu QAM

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 64)

(^^Bắt đầu^^

Hình 4.4: Lưu đồ mô phỏng phát tín hiệu QAM

Với lưu đồ thuật toán mô phỏng phát tín hiệu ỌAM tham khảo mã nguồn tại file chương trình: QAM.m, read.m

Hình 4.5: Lưu đồ mô phỏng thu tín hiệu ỌAM

Với lưu đồ thuật toán mô phỏng thu tín hiệu ỌAM tham khảo mã nguồn tại fíle chương trình: QAM.m, read.m

Bắt đầu

Hình 4.6: Lưu đồ mô phỏng thuật toán tính BER

4.2. Kết quả mô phỏng

Hình 4.7: Giao diện của chương trình được đặt tên là “DATN”

4.2.1. So sánh BER của các phương pháp điêu chê trong OFDM (BPSK, QPSK, 16QAM, 64QAM)

Hình 4.9: Thể hiện BER của kỹ thuật điều chế BPSK

Hình 4.11: Thể hiện BER của kỳ thuật điều chế 16QAM

Hình 4.13: So sánh BER của các kỹ thuật điều chế trong OFDM

Nhận xét:

- Ket quả cho thấy sai số BER giữa lí thuyết và mô phỏng điều chế không đáng kể. Ta thấy tỉ số BER tăng dần từ BPSK, QPSK < 16QAM< 64QAM.

- Kỳ thuật điều chế BPSK và QPSK có tỷ lệ BER là như nhau vậy nên điều chế QPSK thì có thể xem như hệ thống điều chế pha nhị phân trên các song mang trực giao.

4.2.2. Mô phỏng hệ thống OFDM bằng simulink

Hình 4.14: Sơ đồ khối bộ phát và thu tín hiệu OFDM

Đầu tiên, bộ phát nhị phân Bernoulli sẽ tạo chuỗi tín hiệu. Chuồi dữ liệu đầu vào được mã hoá bởi bộ mã Reed-Solommon và được điều chế bởi bộ Mapping QPSK. ĨFFT là hữu ích cho OFDM vì nó phát ra các mẫu của dạng sóng có thành phần tần số thoả mãn điều kiện trực giao. Dữ liệu sau khi được biến đối sẽ được chèn thêm CP và chuỗi huấn luyện để giúp cho qua trình ước lượng kênh và đồng bộ ở máy thu.

Mô phỏng kênh truyền đưa ra các đặc trưng của kênh truyền vô tuyến chung như nhiễu, đa đường và xén tín hiệu. Dùng hai khối trong Matlab: Multipath Rayleigh Fading, AWGN

Tín hiệu thu sau khi loại bỏ CP và chuồi huấn luyện sẽ được đưa vào IFFT để chuyến các mẫu miền thời gian trở lại miền tần số. Đưa vào bộ ước lượng kênh và

4?* iv

'ị £

Frame: 2308 Frequency (MHz)

Hình 4.15: Phổ tín hiệu OFDM truyền

Frame: 2308 Frequency (MHz)

Hình ,4.16: Phổ tín hiệu OFDM,nhập

Hình 4.15 và 4.16 cho thấy tác động của kênh truyền đến phố tín hiệu OFDM. Vì kênh truyền là một kênh ĩading chọn lọc tần số nên phố tín hiệu OFDM nhận ở

Hình 4.17: Dạng sóng tín hiệu OFDM truyên đi Hình 4.18: Dạng sóng tín hiệu OFDM nhận được

Hình 4.17 và 4.18 cho thấy biên độ tín hiệu OFDM nhận được nhỏ hơn biên độ tín hiệu OFDM truyền đi.

In-phase Amplitude

Hình 4.19: Chòm sao QPSK trước CE

-1 -0.5 0 0.5 1

In-phase Amplitude

Hình 4.20: Chòm sao QPSK sau CE Hình 4.19 và 4.20 cho thấy tác dụng của bộ ước lượng và bù kênh. Hình 4.19 chòm sao ỌPSK trước khi ước lượng kênh có biên độ và pha rất không ổn định. Hình 4.20 chòm sao QPSK sau khi ước lượng kênh những điếm chỉ dao động nhỏ quanh một vị trí cố định tức là biên độ và pha gần như ốn định.

4.2.3. Sơ sánh tín hiệu QAM và OFDM

Hình 4.21: Tín hiệu QAM và OFDM bên phát ở miền tần số

Hình 4.23: So sánh tín hiệu âm thanh được điều chế bằng phương thức

Nhận xét:

Hình 4.21, 4.22 và 4.23 cho chúng ta thấy pho của tín hiệu và âm thanh qua bộ điều chế OFDM rất giống với phố tín hiệu và âm thanh ban đầu, bên cạnh đó BER của OFDM nhỏ hơn đáng kể so với BER của ỌAM. Chứng tỏ phương thức điều chế OFDM tổt hơn rất nhiều so với QAM.

4.3. Kết luận chương

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 64)