Đ Ạ I H Ọ C Q U Ố C G IA HÀ N Ộ I
KHOA CÔNG NGHỆ
N G U Y ỄN TH À N H H IÊU
TỶ SỐ CÔNG SUẤT ĐỈNH TRÊN CÔNG SUÂT TRUNG BÌNH
TRONG HỆ OFDM
C huyên ngành: K ỹ thuật vô tuyến điện tử và thông tin liên lạc
M ã số: 0 2 .0 7 .0 0
LU ẬN VÁN TH ẠC s ĩ
NGƯỜI HƯ ỚNG DẪN KH OA HỌC:
PGS.TS N guyễn V iết K ính
í
H à N ội - N ăm 2003
LỜI NÓI ĐẦU
Trong vài năm gần đây, những ứng dụng của điều chế đa sóng
mang đã xuất hiện khá nhiều trên thị trường như: truyền hình số mặt đất
DVB-T, truyền thanh số DAB, mạng vô tuyến cục bộ WLAN, đường
dây thuê bao số bất đối xứng ADSL... Điều chế đa sóng mang có nhiều
ưu điểm so với các hệ đơn sóng mang truyền thống như kháng nhiễu tốt
trên kênh pha-đinh đa đường, nhưng nó cũng có những nhược điếm
không tránh khỏi. Luận văn này đề cập tới một vấn dề trong đa sóng
mang là tỷ số công suất đỉnh trên công suất trung bình (PAR) lớn. Giải
pháp để giảm PAR được xem xét chi tiết là phương pháp dành riêng tần.
MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU VỀ HỆ THÔNG TIN ĐA SÓNG MANG
1
1.1 Truyền sóng trong môi trường không k h í........................................ 1
1.2 Lược sử về đa sóng m an g.....................................................................2
1.3 Cơ sở ghép kênh tần số trực giao........................................................4
1.3.1
Tổng hợp các tín hiệu hạn băng trực giao cho hệ thông tin
đa k ê n h ............................................................................................................. 4
1.3.2.
Truyền dữ liệu bằng ghép kênh tần số dùng biến đổi Fourier
rời rạc.................................................................................................................6
1.4 Kết lu ân .....................................................................................................7
CHƯƠNG 2 GHÉP KÊNH TẦN SỐ TR ựC GIAO OFDM
9
2.1 OFDM dưa
trên biến đổi Fourier rời rac.........................................
9
•
•
2.1.1
Ánh xạ tín h iệ u ................................................................................ 11
2.1.2
Biến đổi nối tiếp - song song.....................................................12
2.1.3
Biến đổi IFFT /FFT ....................................................................... 12
2.1.4
Dải bảo v ệ ..................................................................................... 14
2.1.5
Kỹ thuật dùng cửa sổ (W indow ing)......................................... 16
2.2 Thiết kế một hệ O FD M ....................................................................... 17
2.2.1
Độ dài ký hiệu và dải bảo v ệ ...................................................... 17
2.2.2
Số sóng mang c o n .........................................................................18
2.2.3
Mô hình điều chế và mã h ó a ...................................................... 18
2.2.4
Ví dụ về thiết kế hệ O FD M ........................................................ 18
2.3 Ưu nhươc điểm của OFDM ................................................................ 19
2.3.1
ư u điểm .............................................................................................19
2.3.1.1 Khảng nhiêu cao trên kênh pha-đinh chọn tần.....................................19
2.3. ỉ. 2 Hiệu suất phô cao ...................................................................................... 23
2.3.1.3 Hiệu quả trong điều chế và giài điều chế ..............................................24
2.3.1.4 Phân tập tần sổ ........................................................................................... 24
2.3 .2
Nhược đ iể m .................................................................................... 24
2.3.2.1 Tỷ sổ công suất cực đại trẽn trung bình (PAR) cao............................ 25
23.2.2 Đồng bộ trong OFDM ...............................................................................25
CHƯƠNG 3 TỶ SÓ CÔNG SUẤT ĐỈNH TRÊN CÔNG SUẤT TRUNG
BÌNH
27
3.1 G iói thiêu.................................................................................................27
3.2 Các khái n iêm ........................................................................................ 27
3.3 Các tính chất thống kê của P A R ....................................................... 30
3.4 Các giải pháp để giảm PAR................................................................ 33
3.4.1
M ã k h ố i............................................................................................ 34
3.4.2
Biến đổi hiệu ứng g him ................................................................. 35
3.4.2.1 Cân chinh khối (block scaling)................................................................ 35
3.4.2.2 Tái tạo tại nơi tha ....................................................................................... 35
3.4.2.3 Thay đôi các đình bị ghim......................................................................... 35
3.4.3
Các phương pháp xác suất............................................................. 35
3.4.3.1 Phương pháp (lùng ánh xạ lọc lựa (SLM)..............................................5<5
3.4.3.2 Phieơng pháp dùng dãy truyền lừng phan (PTS)................................ 38
3.4.3.3 Phương pháp chèn tần (TI)....................................................................... 39
3.4.3.4 Phương pháp dành riêng tần (TR)........................................................... 41
CHƯƠNG 4 GIẢI PHÁP GIẢM PAR THEO PHƯƠNG PHÁP TR
42
4.1 Cơ sở của TR...........................................................................................42
4.2 Thuât
toán thưc
hiên
TR
•
•
•
43
4.2.1
Xác định vectơ c ..........................................................................43
4.2.2
Xấp xỉ nhanh c ............................................................................ 46
4.2.3
Lựa chọn vị trí tần dành riê n g ................................................... 50
4.3 Kết lu ân .................................................................................................. 51
CHƯƠNG 5 MỘT SỐ KÉT QUẢ VÀ PHÂN TÍCH
52
5.1 Đơn sóng mang và đa sóng mang trên các kênh nh iễu..............52
> K ênh pha-đinh đa đường......................................................................52
> K ênh nhiễu c ộ n g ................................................................................... 56
5.2 Các thuộc tính của O FD M ................................................................ 57
5.3 Kết lu ân .................................................................................................. 61
DANH MỤC TỪ VIÉT TẮT
AD
A nalog to Digital Converter
ADSL
Asymmetric Digital Subcriber Line
AW GN
Additive W hite Gaussian Noise
BER
Bit Error Rate
BPSK
Binary Phase Shift Keying
CF
Crest Factor
CO FD M
Coded O rthogonal Frequency Division M ultiplex
CP
Cyclic Prefix
DAB
Digital Audio Broadcast
DAC
Digital to Analog Converter
DFT
D iscrete Fourier Transform
DM T
D iscrete M ultiTone
DRL
Data Rate Loss
DS-CDM A
D irect Sequence Code Division M ultiple Access
DVB
Digital Video Broadcast
FFT
Fast Fourier Transform
GI
Guard Interval
ICI
Intercarrier Interference
IFDT
Inverse D iscrete Fourier Transform
IFFT
Inverse Fast Fourier Transform
IM T2000
International M obile Telephony 2000
ISI
InterSymbol Interference
MAP
M aximum A Posteriori Probability
M C-CDM A
M ulticarrier Code Division M ultiple Access
MCM
M ulticarrier M odulation
ML
M aximum Likelihood
MSE
M ean Square Error
NP
N ondeterm inistic polynomial time
OFDM
Orthogonal Frequency Division M ultiplex
PAR
Peak to A verage Power Ratio
PRT
Peak Reduction Tone
PS
Parallel to Serial Converter
PTS
Partial Transmission Sequence
QAM
Quadrature Am plitude M odulation
QPSK
Quadrature Phase Shift Keying
RC
Raised Cosine
RF
Radio Frequency
SLM
Selected M apping
SNR
Signal to Noise Ratio
SP
Serial to Parallel Converter
11
Tone Injection
TR
Tone Reservation
TRL
Tone Rate Loss
UMTS
Universal M obile Telecommunications System
VLSI
Very Large Scale Integrated
WLAN
W ireless Local A rea Network
xDSL
X
Digital Subcriber Line
CHÚ THÍCH
Liên hợp phức của a
V ectơ
X
Toán tử kỳ vọng
S ra/s =
J k ) | 2«*
Chuẩn bậc I của vectơ X
(
V2
Chuân bậc 2 của vectơ x: ||x||2 = Y ^x2
VI
/
Chuẩn co của vectơ x: \\x\\ = max, ịx |}
Đơn vị ảo j = Vm
TT'
11 í 1 n = 0
Hàm delta ổ(n) = ị
Ịo
n = \
N hân chập: y n = x„ * h„ = ỵ . x kh ^k
k=0
c* là nghiệm tối ưu của bài toán tìm min của hàm
II* + cfrn theo biến c.
Bất phương trình vectơ: Ỵj < Z| Vi=l ...N.
Vectơ 1: (1.... Ị)s
Vectơ 0: ( 0, . . . , 0)n
C H Ư Ơ N G 1 GIỚI TH IỆU VÈ HỆ TH Ô N G TIN Đ A SÓ NG
M ANG
Sự bùng bổ về thông tin đa phương tiện gần đây đã đòi hỏi những hệ thống
truyền thông phải có tốc độ cao hơn, tin cậy hơn trên những môi trường khác
nhau cả hữu tuyến và vô tuyến. Hệ thông tin đa sóng mang M CM là một ứng
viên quan trọng đã và đang được áp dụng trên nhiều hệ thống khác nhau.
1.1
Truyền sóng trong môi trường không khí
Ta đã biết truyền sóng trong môi trường không khí có nhiều bất trắc và
khône ổn định. Trong phần này ta sẽ xem xét các đặc điểm truyền sóng trong
môi trường đó.
•
Suv hao đường truyền
Suy hao đường truyền tăng theo khoảng cách và theo tần số. Trong
không gian tự do thì suv hao này tỷ lệ với bình phương khoảng cách.
Tuy nhiên do các hiệu ứng về che khuất bởi các vật cản nên biên độ tín
hiệu thu được sẽ thăng giáng ngẫu nhiên. Người ta gọi hiện tượng này
là pha-đinh logarit chuẩn. Okum ura và Hata đã xây dựng công thức
thực nghiệm để mô hình hóa loại pha-đinh này:
Lp( d)(dB) = Ls(dữ){dB) + 10 n logl0 ( ~ ) + X a (d)B
dữ
Trong đó Lp là hàm của khoảng cách d giữa nơi phát và nơi thu, dị) là
khoảng cách chuấn từ lm -lk m tùy theo mô hình được chọn. Ls(dọ) là
suy hao tại điểm có khoảng cách chuẩn do, n là hệ số mũ suy hao. x ơ là
một giá trị ngẫu nhiên phân bố chuẩn có phương sai là ơ, nó thường
được đo trực tiếp và có giá trị từ 6-10dB.
•
Pha-đinh quy mô nhỏ
1
Trên môi trường truyền này ngoài suy hao do khoảng cách và che
khuất, tín hiệu thu được cũng còn bị thăng giáng do phản xạ. Tín hiệu
tại nơi thu là tống hợp của nhiều song phản xạ. Đường bao biên độ
trong trường hợp này có dạng phân bố Rayleigh, còn nếu có thêm tia
nhìn thẳng thì là phân bố Rice.
Nếu truyền sóng trong môi trường này mà nơi phát và nơi thu lại chuyển
động thi khi đó còn phải xét tới hiện đượng di tần Doppler.
Vì nhiều lý do như trên mà thông tin trong môi trường này là rất khó khăn,
đặc biệt là thông tin với tốc độ cao. M à thông tin đa phương tiện lại đòi hỏi
tốc độ ngày càng cao nên nó đòi hỏi những phương thức điều chế phải ổn
định. Đ iều chế đa sóng mang là loại điều chế rất phù họp với môi trường này.
1.2
L ược sử về đa sóng mang
Hệ thông tin đa sóng mang có một lịch sử phát triển tương đối dài, khoảng
40 năm, nhưng đến gần đây nó mó'i được áp dụng một cách rộng rãi. Vào đầu
những năm 60, hệ thông tin đa sóng m ang là một đề tài quan trọng trong
những nghiên cứu của phòng thí nghiệm BellLab. Vào năm 1966, Chang ở
BellLab đã ra bài báo[3] về tổng hợp tín hiệu hạn băng để truyền trên nhiều
sóng m ang con. Bài báo này đã chứng minh rằng nhiễu xuyên ký hiệu ISI và
nhiễu xuyên sóng mang ISI có thể tách mà không cần tới các mạch lọc hoàn
hảo. Các kết quả này đã thu hút được sự quan tâm đặc biệt cả trong giới học
thuật và công nghiệp. Năm 1967, Saltzberg[l 1] đã phân tích các kết quả của
Chang và gợi ý rằng nhiễu xuyên kênh kề là một hạn chế chính trong các hệ
truyền thông song song. Gợi ý quan trọng này đã định hướng cho nhiều
nghiên cứu về thiết kế hệ M CM /OFDM nhàm tránh ISI...
Hệ thống do Chang đề xuất thực sự mới là hệ tương tự, nó đòi hỏi các
băng lọc và nhiều phần tử cao tan RF. Các yêu cầu khắt khe đó đã hạn chế
2
việc ứng dụng rộng rãi hệ trên. Nó mới chỉ được áp dụng trong các hệ thông
tin của quân đội như:
•
Hệ KINEPLEX của Collin Radio Co (USA)
•
Hệ ANDEFT/SC-32 của General Dynamics Corp (USA)
•
Hệ A N /G SC -10 KATHRYN của General Atronics Corp (USA)
Có một bước ngoặt xảy ra vào năm 1971 được tạo ra bởi hai nhà khoa học
trẻ của BellLab là W eistein và Ebert[18]. Họ đã đề nghị thay băng lọc và các
phần tử RF bằng việc xử lý băng gốc thông qua biến đổi DFT có dùng thuật
toán biến đổi Fourier nhanh FFT. Cùng với sự phát triển nhanh chóng của
công nghệ VLSI tốc độ cao, việc ứng dụng MCM đã nhanh chóng được phổ
biến. Cũng trong bài báo trên, hai tác giả còn đưa ra khái niệm khoảng bảo vệ
Gl, nghĩa là chèn vào những đoạn trống trước khi truyền tín hiệu đi. GI có hai
chức năng chính: triệt ISI và khống chế ISI. ISI sẽ bị triệt bằng cách chọn GI
rộng trong miền thời gian là thu hẹp trong miền tần số. Hiển nhiên thêm Cil sẽ
làm giảm hiệu suất của hệ thống nhưng lợi ích nó đem lại lớn hơn cái giá phải
trả. M ặc dù trong bài báo của họ chưa đề cập tới sự mất tính trực giao giữa
các sóng mang do kênh gây nên, nhưng đề xuất của họ đóng một vai trò quan
trọng trong việc thực thi chúng trong công nghiệp. Hầu hết các hệ thống
M CM /OFDM ngày nay đều dựa trên cấu trúc này. M ột đóng góp quan trọng
nữa cho việc thiết kế hệ M CM /OFDM đó là của Peled và Ruiz vào năm
1980[ 10]. Hai tác giả đã cải tiến và dùng tiền tố vòng CP. CP đảm bảo tính
chập vòng của mỗi ký hiệu, vì vậy tính trực giao vẫn được bảo đảm dù kênh
xấu hoặc lỗi đồng bộ. Với những cải tiến trên, hệ thống M CM /OFDM đã
được dùng rộng rãi trong nhiều lĩnh vực như: DAB/DVB, ADSL và mạng vô
tuyến cục bộ W LAN (như IEEE 802.11a). Nó cũng được đề xuất cho giao
diện vô tuyến của IM T2000/UM TS.
3
1.3
C ơ sở ghép kênh tần số trực giao
Thông thường có hai cách gọi hệ thống truyền thông song song trên nhiều
sóng mang:
•
Điều chế đa sóng mang M CM hoặc đa tần rời rạc DM T cho hệ hữu
tuyến.
•
Ghép kênh tần số trực giao OFDM cho hệ vô tuyến.
Bây giờ, ta sẽ tiệp tục xem xét các cơ cấu đa sóng mang mà Chang
và
W einstein đã đề xuất.
1.3.1
Tống hợp các tín hiệu hạn băng trực giao cho hệ thông tin đa
kênh[3]
Đe tiện cho việc phân tích, ta xét hệ thống băng gốc với các điều PPING(QAM-ENCODE) Mapping nhi phan sang QPSK(dang cuc) va
QAM( 16QAM,256QAM)
3
L
lent=length(data_in);
b=QAM;
rz=rem(lent,b);
if rz~=0
xl=[data_in zeros(l,b-rz)];
else xl=data_in;
end
x2=reshape(x 1,b,ceil(lent/b));
x3=x2';
data out = bi2de(x3,'left-msb'); %Chuyen tu nhi phan thanh thap phan
vl=data_out'+l;
y=zeros( 1,length(y 1));
for i—1:length(y 1)
if yl(i)>2Ab/2
y(i)=yl(i)-2Ab-l;%dich muc de tao ra du lieu dang phan cuc hai phia
else y(i)=yl(i);
end
end
dataQAM = y;
%---------------------------------------------------------------- ----------- ----------%MODULATION
datamod=dataQAM;
data_length = length(datamod);
num_chunks = ceil(data_length/(2*num_carriers));
r = rem(data_length,2*num_carriers);
if r ~= 0
fo ri= l:n u m carriers*2-r
4
datam od(data_length+ i) = 0;
end
end
chunks = zeros(num _chunks,num _carriers);
for i = 1:num_chunks
for k = 1:num_carriers
chunks(i,k) = datamod(2*num_carriers*(i-l)+k) + ...
datamod(2 *num_carriers* (i-1)+k+num_carriers)*j;
end
end
% Dan them zeros de tuong thich num carriers va fit size
num_desired_carriers = num_carriers;
num_zeros = 0;
ihinking = 1;
while thinking == 1
if rem(fft_size/2,num_desired_carriers) == 0
thinking = 0;
else
num desiredcarriers = num_desired_carriers + 1;
num_zeros = num_zeros + 1;
end
padded_chunks = zeros(num_chunks,num_carriers + num zeros);
padded_chunks( 1:num_chunks,num_zeros + l:num_zeros+ ...
num_carriers ) = chunks;
zeros_bet\veen = ((fft_size/2) - (num_carriers + num_zeros))/(num_carriers + ...
num_zeros);
spaced_chunks = zeros(num_chunks,fft_size);
5
i = 1;
for k = zeros_between +1 :zeros_between +1 :fft_size/2
spaced_chunks(l:num_chunks,k) = padded_chunks(l:num_chunks,i);
i = i+1;
end
for i = 1:num_chunks
spaced_chunks(i,fft_size:-l:fft_size/2+2) = ...
conj(spaced_chunks(i,2:fft_size/2));
end
%IFFT PERFORMANCE
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
xmit = zeros(l ,num_chunks*fft_size);%Transmit
lor i = 1 :num _chunks
for k = 1:fft_size
xmit(k + (i-l)*fft_size) = td_sets(i,k);
end
end
%--------------------------------------------------------------------------------------%CIIANNEL
recv = xm it;
if channelon == 1
disp('Mo phong kenh')
norm_factor = max(abs(recv));
6
ị
I
recv = (1/normJ'actor) * recv;
% chjnultipath
copy 1=zeros(size(recv));
for i= 1+dl :length(recv)% Duong 1 tre dl
copyl(i)=al*recv(i-dl);% suy hao al
end
copy2=zeros(size(recv));
for i=l+d2:length(recv)% Duong 2 tre d2
copy2(i)=a2*recv(i-d2);% Suy hao a2
end
rec v=rec v+copy 1+copy2;
%ch_noise
noise = (randn(l,length(recv))-0.5)*2*noise_level;
recv = recv + noise;% Nhieu cong
recv = norm_factor * recv;
end
%------------------------------ ---------------------------------%RECEIVE
disp('Nhan')
recv_td_sets = zeros(num_chunks,fft_size);
for i = 1:num_chunks
for k = 1:fft_size
recv_td_sets(i,k) = recv(k + (i-l)*fft_size);
end
end
7
%FFT PERFORMANCE
recv_spaced_chunks = zeros(num _chunks,fft_size);
for i = 1:num _chunks
rec v _ sp aced _ ch u n k s(i,l :fft_size) = fft(recv_td_sets(i,l :fft_size));
end
recv _ padded_chunks = zeros(num _chunks, num _carriers+ num _zeros);
i = 1;
for k = zeros_betw een +1 :zeros_betw een +1 :fft_size/2
recv__padded_chunks( 1 :num _chunks,i) =
recv_spaced_chunks( 1 :num _chunks,k);
i = i+ l;
end
recv_chunks = zeros(num _chunks, num carriers);
r e c v c h u n k s = recv_padded_ch unks( 1:num _chunks,
n u m _ z e ro s+ 1 :num _carriers+ num _zeros);
recv dechunked = z e ro s (l, n u m _ ch unks*num _caư iers);
for i = 1:num _chunks
for k = 1:num _carriers
recv_dechunked(k + (i-l)* n u m _ ca rrie rs* 2 ) = real(recv_chunks(i,k));
recv_dechunked(k + (i-l)* n u m _ ca rrie rs* 2 + num _carriers) = ...
im ag(recv_chunks(i,k));
end
8
end
output analog = recv_dechunked( 1:data_length);
% --------------------------------------------------
%DEMAPPING
l=length(output_analog);
threshold=2A(b-l)-l;%b=3 -> threshold=3
output l=zeros( 1,1);
for i=l :1
if output_analog(i)>3.5,output 1(i)=3;
elseif output_analog(i)>2.5,outputl(i)=2;
elseif output _analog(i)> 1.5,output l(i)=l;
elseif output_analog(i)>0, output 1(i)=0;
elseif output_analog(i)>-1.5,output 1(i)=7;
elseif output_analog(i)>-2.5,outputl(i)=6;
elseif output_analog(i)>-3.5, output 1(i)=5;
else outputl(i)=4;
end
end
len=l*3;
temp=zeros(len,4);
temp=de2bi(outputl,3,'left-msb');
output=temp.';
output=reshape(output, 1,len);
output=output( 1,1 :lent);
9
%---------- ----
% WRITE TO FILE
if input_type == 1
if test_input_type == 1
end
if (test_input_type == 2) I (test_input_type == 3)
output_samples = zeros(l,floor(length(output)/8));
for i = l:length(output_samples)
output_samples(i) = bin2eight(output(l + (i-l)*8:(i-l)*8 + 8));
end
end
if input_type == 2
if file_input_type == 1
output_samples = zeros(l,floor(length(output)/8));
for i = 1:length(output_samples)
output_samples(i) = bin2eight(output(l + (i-l)*8:(i-l)*8 + 8));
end
file = fopen('OFDM_text_out.txtVwt+');
fwrite(file,output_samples,'char');
fclose(file);
end
if file_input_type == 2
output_samples_big = zeros(l,floor(length(output)/8));
for i = l:length(output_samples_big)
10
output_samples_big(i) = bin2eight(output(l + (i-l)*8:(i-l)*8 + 8));
end
output_samples = (output_samples_big-127)/128;
wavwrite(output_samples, 11025, 8, 'OFDM_out.wav')
end
end
%............. ...... ...............................................................................
%FINISH SIMULATION
O FD M sim ulationtim e = toe;
if OFDM_simulation_time > 60
disp(strcat('Thoi gian mo phong OFDM -,
num2str(OFDM_simulation_time/60),' minutes.'));
else
disp(strcat('Thoi gian mo phong OFDM -,
num2str(OFDM_simulation_time),' seconds.'));
%-------------------------------------------------------------------------------------------%ANALYSIS
dispC '), dispC--------------------------------------------------------------- ')
disp('Bat dau phan tich')
figure(l), elf
if (input_type == 1) & (test_input_type == 1)
subplot(221), stem(data_in), title('OFDM Binary Input Data');
subplot(223), stem(output), title('OFDM Recovered Binary Data')
subplot(221), plot(data samples), title('OFDM Symbol Input Data');
11
subplot(223), plot(output_samples), title('OFDM Recovered Symbols');
subplot(222), plot(xmit), title(Transmitted OFDM');
subplot(224), plot(recv), title('Received OFDM');
dig_x_axis = (1 :length(xmit))/length(xmit);
figure(2), elf
if channelon ==1
num = [1, zeros(l, d 1-1), al, zeros(l, d2-d 1-1), a2];
den = [1];
[H, W] = freqz(num, den, 512);
mag = 20*logl0(abs(H));
phase = angle(H) * 180/pi;
subplot(313)
irecL data = abs(fft(recv));
L = length(freq_data)/2;
plot(dig_x_axis(l :L), freq_data(l:L))
xlabel('FFT of Received OFDM')
axistem p = axis;
subplot(311),
freq_data = abs(fft(xmit));
plot( dig_x_axis(l:L),freq_data(l:L)), axis(axis_temp)
title('FFT of Transmitted OFDM')
subplot(312)
plot(W/(2*pi),mag),
ylabel('Channel Magnitude Response')
12
else
subplot(212)
freq_data = abs(fft(recv));
L = length(freq_data)/2;
plot(dig_x_axis( 1:L), freq_data( 1:L))
xlabel('FFT of Received OFDM')
axis_temp = axis;
subplot(211),
freq_data = abs(fft(xmit));
plot(dig_x_axis(l :L), freq_data( 1:L)), axis(axis_temp)
title('FFT of Transmitted OFDM')
end
binary _err_bits_OFDM = 0;
i'or i = l:length(data_in)
err = abs(data_in(i)-output(i));
if err > 0
binary_err_bits_OFDM = binary_err_bits_OFDM +1;
end
end
B ER O FD M = 100 * binary_err_bits_OFDM/length(data_in);
disp(strcat('OFDM: B E R -, num2str(BER_OFDM,3),' %'))
disp(strcat('Number of error bits=', num2str(binary_err_bits_OFDM)))
diary('kq.txt')
Chủ y: Trong chương trình trên có dùng các hàm:
•
Chuyên sô nguyên 1-255 sang dạng nhị phân 8 bit
function y = eight2bin(x)
y = zeros(l,8);
13
k = 0;
w hile X > 0
y(8-k) = rem(x,2);
k = k + 1;
X =
flo o r ( x / 2 ) ;
end
•
Chuyên dạng nhị p h â n 8bit sang so nguyên ỉ -255
function y = bin2eight(x)
y = 0;
k = 0;
for i = 1:8
y = y + x(8-k)*2Ak;
k = k+1;
2. Mô phòng phương pháp TR
•
Chương trình chính
%main.m
clear all,close all;
[shape_fnc,index]=kernel(64,3);% Kernel vector
simul_par;% Generate xmit
xmit2=xmitr;
clear xmitl;
for i=l :length(xmit)/fft_size
out_clipped(i,:)=clip(xmit2(i,:),shape_fnc,mean(abs(xmit)), 1.2,8);% Clipping
outl=out_clipped';
par_clip= 10* log 10((max(abs(out 1). *abs(out 1)))./mean(abs(out 1). *abs(out 1)));
14
•
Chưoìig trình tạo ra tín hiệu OFDM
%simul_par.m
%Generate bit stream
N=2A20;
ỌAM= 1;
rand('state',sum( 100*clock));
b=rand(l,N);
x=sign(b-.5);%data in polar
b=(b>=.5);%data in NRZ
%---------------- ------ ................. ................. ...... —.............
%Parameters
num_carriers=3 2;
fft_size=64;
%Modulation
datamod=x;clear x;
data_length = length(datamod);
num chunks = ceil(data_length/(2*num_carriers));
chunks = zeros(num_chunks,num_carriers);
for i = 1:num_chunks
for k = 1:num_carriers
if k~=index % Posistion of Tone Reservation
chunks(i,k) = datamod(2*num_carriers*(i-l)+k) +
datamod(2 *num_carriers* (i-1)+k+num_carriers)*j;
end
end
end
clear datamod;
15
spaced_chunks = zeros(num_chunks,fft_size);
for i = 1:num_chunks
spaced_chunks(i,fft_size:-l :fft_size/2+2) = conj(chunks(i,2:fft_size/2));
end
clear chunks;
%IFFT PERFORMANCE
td_sets = zeros(num_chunks,fft_size);
for i = 1:num_chunks
td_sets(i,l:fft_size) = real(ifft(spaced_chunks(i,l:fft_size)));
end
clear spaced_chunks;
xmit=reshape(td_sets', 1,num_chunks*fft_size);
clear td_sets;
%plot(xmit);
xmitl=reshape(xniit,fft_size,length(xmit)/fft_size);
par^ 10* log 10((max(abs(xmit 1).*abs(xmit 1)))./mean(abs(xmit 1). *abs(xmit 1)));
%figure(l);
%histiit(xmit); %Khóp histogram theo phân bo chuẩn
%hist(xmit,-.4:.009:.4);
%flgure(2);
%hist(par,6:.2:20);% Histogram cua PAR
•
Hàm tạo vectơ nhân
iunction [shape,index_clip]=kernel(N,L);
%Compute kernel vector
%N: fit size
%L: number of Tone Reservation
x=zeros(l,N);
i=randint(l,L,[l,N]);
x(:,i)=l;
16