1. Trang chủ
  2. » Luận Văn - Báo Cáo

OFDM và ứng dụng trong truyền hình số mặt đất

78 6 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 78
Dung lượng 2,48 MB

Nội dung

LUẬN VĂN TỐT NGHIỆP OFDM VÀ ỨNG DỤNG TRONG TRUYỀN HÌNH SỐ MẶT ĐẤT Chương 1: TỔNG QUAN VỀ OFDM 1.1 Giới thiệu chương Trong năm gần đây, ghép kênh phân chia theo tần số trực giao OFDM (Orthogonal Frequency Division Multiplexing) đề xuất chuẩn hố cho truyền thơng tốc độ cao Để sâu vào tìm hiểu kỹ thuật OFDM, làm quen với khái niệm ban đầu như: Hệ thống đa sóng mang, ghép kênh phân chia theo tần số FDM (Frequency Division Multiplexing), tính trực giao…Biểu diễn tốn học tín hiệu OFDM hệ thống OFDM băng sở Cuối cùng, đánh giá ưu khuyết điểm kỹ thuật OFDM 1.2 Sơ lược OFDM OFDM nằm lớp kỹ thuật điều chế đa sóng mang (MCM) thơng tin vơ tuyến Cịn hệ thống thông tin hữu tuyến kỹ thuật thường nhắc đến tên: đa tần (DMT) Kỹ thuật OFDM lần giới thiệu báo R.W.Chang năm 1966 vấn đề tổng hợp tín hiệu có dải tần hạn chế thực truyền tín hiệu qua nhiều kênh Tuy nhiên, gần đây, kỹ thuật OFDM quan tâm nhờ có tiến vượt bậc lĩnh vực xử lý tín hiệu vi điện tử Ý tưởng kỹ thuật OFDM việc chia luồng liệu trước phát thành N luồng liệu song song có tốc độ thấp phát luồng liệu sóng mang khác Các sóng mang trực giao nhau, điều thực cách chọn độ giãn cách tần số chúng cách hợp lý 1.3 Các khái niệm liên quan đến OFDM 1.3.1 Hệ thống đa sóng mang Hệ thống đa sóng mang hệ thống có liệu điều chế truyền nhiều sóng mang khác Nói cách khác, hệ thống đa sóng mang thực chia tín hiệu thành số tín hiệu, điều chế tín hiệu sóng mang truyền kênh tần số khác nhau, ghép kênh tần số lại với theo kiểu FDM Hình 1.1[7] Cấu trúc hệ thống đa sóng mang 1.3.2 Ghép kênh phân chia theo tần số FDM Ghép kênh phân chia theo tần số phương pháp phân chia nhiều kênh thông tin trục tần số Sắp xếp chúng băng tần riêng biệt liên tiếp Mỗi kênh thông tin xác định tần số trung tâm mà truyền dẫn Tín hiệu ghép kênh phân chia theo tần số có dải phổ khác xảy đồng thời không gian, thời gian … f1 f2 fn f Hình 1.2[7] Ghép kênh phân chia theo tần số Để đảm bảo tín hiệu kênh khơng bị chồng lên tín hiệu kênh lân cận, tránh nhiễu kênh, địi hỏi phải có khoảng trống hay băng bảo vệ xen kênh Điều dẫn đến không hiệu phổ 1.4 Biểu diễn tốn học tín hiệu OFDM 1.4.1 Trực giao Các tín hiệu trực giao chúng độc lập với Trong OFDM, sóng mang chồng lấp với tín hiệu khơi phục mà khơng có xun nhiễu sóng mang kế cận sóng mang có tính trực giao Xét tập sóng mang con: fn(t), n=0, 1, …, N-1, Tập sóng mang trực giao khi: [7] (1.1) Trong đó: K số khơng phụ thuộc t, n m Và OFDM, tập sóng mang truyền viết là: [7] với (1.2) [7] (1.3) với f0 tần số offset ban đầu Tín hiệu OFDM hình thành cách tổng hợp sóng sine Tần số băng gốc sóng mang chọn bội số nghịch đảo khoảng thời ký tự, tất sóng mang có số nguyên lần chu kỳ ký tự Điều phù hợp với kết tính trực giao vừa chứng minh Hình 1.3 minh hoạ cấu trúc tín hiệu OFDM có bốn sóng mang t Hình 1.3[7] Tín hiệu OFDM có sóng mang Trong minh hoạ này, sóng mang có số nguyên chu kỳ khoảng thời gian T số chu kỳ sóng mang kế cận nhau chu kỳ Tính chất giải thích cho trực giao sóng mang Một cách khác để xem xét tính chất trực giao tín hiệu OFDM quan sát phổ Trong miền tần số, sóng mang OFDM có đáp ứng tần số sinc hay sin(x)/x Hình 1.4 mơ tả phổ ký tự OFDM có sóng mang tổng hợp phổ hàm sinc Hình 1.4 [7] Phổ tín hiệu OFDM với sóng mang 1.4.2 Tạo sóng mang sử dụng IFFTcon Nếu gọi di chuỗi liệu QAM phức, N số lượng sóng mang con, T khoảng thời ký tự fc tần số sóng mang, ký tự OFDM bắt đầu t=ts viết sau: , [20] (1.4) , Để cho dễ tính tốn, ta thay ký tự OFDM sau: , [20] (1.5) , Trong biểu thức trên, phần thực phần ảo tương ứng với thành phần pha vng pha tín hiệu OFDM, mà nhân với hàm cos sin tần số sóng mang riêng rẽ để tổng hợp tín hiệu OFDM sau exp  jN  t  t s  T  data Serial to parallel OFDM signal exp j ( N  2) t  t s  T  Hình 1.5[20] Bộ điều chế OFDM Khi tín hiệu OFDM s(t) (1.5) truyền tới phía thu, sau loại bỏ thành phần tần số cao fc, tín hiệu giải điều chế cách nhân với liên hiệp phức sóng mang Nếu liên hiệp phức sóng mang thứ j nhân với s(t), thu ký tự QAM (được nhân với hệ số T), sóng mang khác, giá trị nhân khơng sai biệt tần số (i-j)/T tạo số nguyên chu kỳ khoảng thời ký tự T, kết nhân khơng [20] (1.6) Tín hiệu OFDM mơ tả (1.5) thực tế khơng khác so với biến đổi Fourier ngược N ký tự QAM ngõ vào Lượng thời gian rời rạc biến đổi ngược Fourier rời rạc, công thức cho (1.7), với thời gian t thay số mẫu n [20] (1.7) 1.5 Khoảng thời gian bảo vệ mở rộng chu kỳ Với băng thông cho trước, tốc độ ký tự OFDM thấp nhiều so với phương thức truyền dẫn đơn sóng mang Ví dụ, kiểu điều chế BPSK đơn sóng mang, tốc độ ký tự tương đương với tốc độ bit truyền dẫn Còn hệ thống OFDM, băng thơng chia nhỏ cho N sóng mang làm cho tốc độ ký tự thấp N lần so với truyền dẫn đơn sóng mang Tốc độ ký tự thấp làm cho OFDM chống lại ảnh hưởng nhiễu ISI gây truyền đa đường Ảnh hưởng ISI lên tín hiệu OFDM cải tiến cách thêm vào khoảng thời bảo vệ lúc bắt đầu ký tự Khoảng thời gian bảo vệ copy lặp lại dạng sóng làm tăng thêm chiều dài ký tự Khoảng thời bảo vệ chọn cho lớn độ trải trễ ước lượng kênh, thành phần đa đường từ ký tự gây nhiễu cho ký tự kế cận Mỗi sóng mang con, khoảng thời gian ký tự tín hiệu OFDM khơng có cộng thêm khoảng thời gian bảo vệ, (tức khoảng thời thực biến đổi IFFT dùng để phát tín hiệu), có số ngun chu kỳ Bởi việc chép phần cuối ký tự gắn vào phần đầu ta có khoảng thời ký tự dài Hình (1.6) minh hoạ việc chèn thêm khoảng thời bảo vệ Chiều dài tổng cộng ký tự là chiều dài tổng cộng ký tự, , với TS chiều dài khoảng thời bảo vệ, T khoảng thời gian thực biến đổi IFFT để phát tín hiệu OFDM Copy IFFT Khoảng thời bảo vệ Ngõ IFFT  TFFT Ts Symbol N Symbol N-1 Khoảng IFFT thời bảo vệ Thời gian Symbol N+1 Hình 1.6[22] Chèn khoảng thời gian bảo vệ vào tín hiệu Trong tín hiệu OFDM, biên độ pha sóng mang phải ổn định OFDM suốt khoảng thời gian ký tự sóng mang ln trực giao Nếu khơng ổn định có nghĩa dạng phổ sóng mang khơng có dạng sinc xác Tại biên ký tự, biên độ pha thay đổi đột ngột theo giá trị liệu Chiều dài ảnh hưởng đột biến tương ứng với trải trễ kênh vô tuyến Các tín hiệu đột biến kết thành phần đa đường đến thời điểm khác Hình (1.7) minh hoạ ảnh hưởng Việc thêm vào khoảng thời gian bảo vệ làm cho thời gian phần đột biến tín hiệu giảm xuống Ảnh hưởng ISI giảm xuống khoảng thời gian bảo vệ dài Pha thu Pha thu độ trải trễ kênh vô tuyến Không nhiễu Dữ liệu t Bảo vệ Symbol OFDM Nhiễu đa đường t Hình 1.7[22] Khoảng thời gian bảo vệ giảm ảnh hưởng ISI Chúng ta thấy lượng phát tăng chiều dài CP tăng, lượng tín hiệu thu lấy mẫu giữ nguyên Năng lượng sóng mang nhánh là: [7] (1.8) Và suy giảm SNR loại bỏ CP máy thu là: [7] (1.9) Như vậy, CP có chiều dài lớn suy giảm SNR nhiều Thông thường, chiều dài tương đối CP giữ mức nhỏ, suy giảm SNR chủ yếu yêu cầu loại bỏ xuyên nhiễu ICI ISI (nhỏ dB ) Trong hệ thống OFDM, sóng mang nhánh biểu diễn: [7] (1.10) Trong xn,m modul số phức tương ứng với sóng mang nhánh thứ n kí tự OFDM thứ m có giá trị khác [(m -1)TS, mTS), với TS chu kỳ tín hiệu; fn tần số sóng mang nhánh thứ n Biểu diễn tín hiệu dạng trung bình sóng mang phức liên tục theo thời gian, với m cho trước: [7] (1.11) Trong đó, fn = f0 + nf với f0 tần số gốc f khoảng dãn cách sóng mang Khơng tính tổng qt, gán f0 = Thay giá trị fn lấy mẫu sm(t) tần số 1/T, ta có: [7] (1.12) Ta chọn N mẫu tín hiệu chu kỳ tín hiệu, sử dụng quan hệ t = NT, so sánh phương trình với dạng tổng quát phép biến đổi IDFT: [7] (1.13) Chúng ta thấy rằng, hàm phức xn,m theo biến n định nghĩa tín hiệu lấy mẫu biểu diễn miền tần số s(kT) dạng biểu diễn miền thời gian Do mối quan hệ hai phép biến đổi DFT IDFT: [7] (1.14) Nên phương trình (1.13) (1.14) tương đương với nhau, nếu: [7] Điều kiện giống với điều kiện tính trực giao sóng mang nhánh Như vậy, để trì tính trực giao hệ thống OFDM sử dụng phép biến đổi DFT Đây đặc điểm quan trọng hai lý sau: Thứ nhất, DFT dạng phép biến đổi Fourier mà tín hiệu lấy mẫu nhờ chúng trở nên tuần hoàn miền thời gian lẫn tần số Phép biến đổi với việc chèn thêm dải bảo vệ nhằm giúp cho kí tự OFDM tuần hồn 10 Chương chương trình mơ hệ thống OFDM Mô hệ thống OFDM với simulink Matlab dừng lại mức độ đơn giản So sánh tín hiệu QAM OFDM kênh truyền để thấy ưu điểm OFDM Chúng ta hướng đến tài liệu liên quan đến công nghệ OFDM là: - Những kỹ thuật OFDM nâng cao: VOFDM (Vector OFDM), COFDM (Code OFDM), WOFDM (Wideband OFDM), OFDMA (OFDM Access) - Kết hợp OFDM với công nghệ khác như: CDMA - Ứng dụng OFDM WLAN, Wimax, ứng dụng điện thoại di động truyền hình số mặt đất DVB-T PHỤ LỤC Đoạn chương trình mơ kênh truyền %ch.m recv = xmit; % channel is applied to recv, don't modify transmitted data if channel_on == disp('Simulating Channel') norm_factor = max(abs(recv)); % Normalize all data before applying recv = (1/norm_factor) * recv; % channel for a fair comparison ch_clipping ch_multipath ch_noise recv = norm_factor * recv; % Restore data magnitude for proper decoding end %ch_clipping.m for i = 1:length(recv) if recv(i) > clip_level recv(i) = clip_level; end 64 if recv(i) < -clip_level recv(i) = -clip_level; end end %ch_multipath.m copy1=zeros(size(recv)); for i=1+d1:length(recv) copy1(i)=a1*recv(i-d1); end copy2=zeros(size(recv)); for i=1+d2:length(recv) copy2(i)=a2*recv(i-d2); end recv=recv+copy1+copy2; %ch_noise.m if already_made_noise == % only generate once and use for both QAM and OFDM noise = (rand(1,length(recv))-0.5)*2*noise_level; already_made_noise = 1; end recv = recv + noise; %…………………………………………………………………………………… Đoạn chương trình mơ phát tín hiệu OFDM % tx.m disp('Transmitting') read data_in_pol = bin2pol(data_in); % Chuyen doi du lieu nhi phan du lieu phan cuc tx_chunk % Thuc hien IFFT de tao dang song mien thoi gian bieu dien du lieu td_sets = zeros(num_chunks,fft_size); 65 for i = 1:num_chunks td_sets(i,1:fft_size) = real(ifft(spaced_chunks(i,1:fft_size))); end tx_dechunk % tx_chunk data_length = length(data_in_pol); %So ky tu nguyen thuy o dau vao num_chunks = ceil(data_length/(2*num_carriers)); %2 du lieu tren mot song mang % (thuc va ao) r = rem(data_length,2*num_carriers); if r ~= for i = 1:num_carriers*2-r data_in_pol(data_length+i) = 0; %them du lieu voi cac muc khong vao tap hop % du lieu sau phat hoan toan end %Toc co the duoc cai thien end % Chia du lieu vao cac chunks chunks = zeros(num_chunks,num_carriers); % Danh cho toc for i = 1:num_chunks % *********************chunk da duoc thuc hien for k = 1:num_carriers chunnks(i,k) = data_in_pol(2*num_carriers*(i-1)+k)+data_in_pol(2*… num_carrier*(i-1)+k+num_carrier)*j; end end % Them cac chunk voi cac muc zero de num_carriers va fft_size thich hop % Mot da thoa, cac khoang duoc don gian hoa num_desired_carriers = num_carriers; num_zeros = 0; thinking = 1; while thinking == % Tiep tuc neu num_carriers va fft_size khong thich hop 66 if rem(fft_size/2,num_desired_carriers) == thinking = 0; else num_desired_carriers = num_desired_carriers + 1; num_zeros = num_zeros + 1; end end padded_chunks = zeros(num_chunks,num_carriers + num_zeros);% Danh cho toc padded_chunks(1:num_chunks,num_zeros + 1:num_carriers + num_zeros) = chunks; %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; for k = zeros_between +1:zeros_between +1:fft_size/2 spaced_chunks(1:num_chunks,k) = padded_chunks(1:num_chunks,i); i = i+1; end % Gap du lieu de tao mot ham le cho dau vao IFFT for i = 1:num_chunks % Chu y: chi muc = that la tan so mot chieu de ifft -> no khong % tao ban len truc y thi spaced_chunks(i,fft_size:-1:fft_size/2+2) = conj(spaced_chunks(i,2:fft_size/2)); end % tx_dechunk.m % Tin hieu khoi phuc de phat bang cach dat cac tap hop mien thoi gian % chuoi noi tiep xmit = zeros(1,num_chunks*fft_size); 67 for i = 1:num_chunks for k = 1:fft_size xmit(k + (i-1)*fft_size) = td_sets(i,k); end end %…………………………………………………………………………………… Đoạn chương trình mơ thu tín hiệu OFDM % rx.m disp('Receiving') rx_chunk % Thuc hien FFT de khoi phuc du lieu goc tu cac tap hop mien thoi gian recv_spaced_chunks = zeros(num_chunks,fft_size); for i = 1:num_chunks recv_spaced_chunks(i,1:fft_size) = fft(recv_td_sets(i,1:fft_size)); end rx_dechunk output = pol2bin(output); % Chuyen doi du lieu phan cuc nhi phan write % rx_chunk.m % Chia tin hieu thu duoc cac tap hop song song de giai dieu che 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-1)*fft_size); end end % rx_dechunk.m % take out zeros_between from recv_spaced_chunks  recv_padded_chunks recv_padded_chunks = zeros(num_chunks, num_carriers+num_zeros); 68 i = 1; for k = zeros_between +1:zeros_between +1:fft_size/2 recv_padded_chunks(1:num_chunks,i) = recv_spaced_chunks(1:num_chunks,k); i = i+1; end % take out num_zeros from padded chunks  recv_chunks recv_chunks = zeros(num_chunks, num_carriers); recv_chunks = recv_padded_chunks(1:num_chunks, num_zeros+1:num_carriers+ … num_zeros); % Recover bit stream by placing reconstructed frequency domain data in series recv_dechunked = zeros(1, num_chunks*num_carriers); for i = 1:num_chunks for k = 1:num_carriers recv_dechunked(k + (i-1)*num_carriers*2) = real(recv_chunks(i,k)); recv_dechunked(k + (i-1)*num_carriers*2) + num_carriers) = imag… (recv_chunks(i,k)); end end % take out trailing zeros from output  output output_analog = recv_dechunked(1:data_length); output = sign(output_analog); %…………………………………………………………………………………… Đoạn chương trình mơ phát tín hiệu QAM read % Doc du lieu cho QAM – Khong anh huong den OFDM data_in_pol = bin2pol(data_in); % Chuyen doi du lieu nhi phan du lieu phan cuc % Kiem tra so song mang co phai la luy thua cua is_pow_2 = num_carriers; temp_do_QAM = 0; 69 if is_pow_2 ~= while temp_do_QAM == temp_do_QAM = rem(is_pow_2,2); is_pow_2 = is_pow_2/2; if is_pow_2 == temp_do_QAM = -99;% Dung la luy thua cua -> Co the thuc hien QAM end end else temp_do_QAM = -99; % la luy thua cua end if temp_do_QAM ~= -99 do_QAM = 0; % Khong the thuc hien disp(‘ ‘),disp(‘ERROR: Cannot run QAM because num_carriers is not valid.’) disp(‘ Please see “setup.m” for details.’) end if do_QAM == tic % Bat dau de tinh toan thoi gian mo phong thuc hien QAM disp(‘ ‘), disp(‘ ‘) disp(‘QAM simulation’), disp(‘Transmitting’) % Them cac muc zeros de du lieu duoc chia cac phan bang data_length = length(data_in_pol); r = rem(data_length,num_carriers); if r ~= for i = 1:num_carriers-r data_in_pol(data_length+i) = 0; %Them dau vao voi cac zeros vao tap hop %du lieu end %Toc co the duoc cai thien end 70 data_length = length(data_in_pol); %Cap nhat sau them num_OFDM_symbols = ceil(data_length / (2*num_carriers)); % So ky hieu QAM duoc bieu dien bang so luong cua du lieu tren mot ky hieu OFDM num_QAM_symbols = num_carriers / 2; % So mau tren ky hieu QAM num_symbol_samples = fft_size / num_QAM_symbols; % Chuyen doi du lieu phan cuc [-1, 1] du lieu muc [-3, -1, 1, 3] data_in_4 = zeros(1,data_length/2); for i = 1:2:data_length data_in_4(i – (i-1)/2) = data_in_pol(i)*2 + data_in_pol(i+1); end % Dinh ro diem lay mau giua va 2*pi ts = linspace(0, 2*pi*QAM_periods, num_symbol_samples+1); % Phat du lieu 16-QAM tx_length = num_OFDM_symbols * num_QAM_symbols *… num_symbol_samples; QAM_tx_data = zeros(1,tx_length); for i = 1:2:data_length/2 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+1)*sin(ts(k)); end end Đoạn chương trình mơ thu tín hiệu QAM disp(‘Receiving’) % Khoi phuc du lieu nhi phan (Giai ma QAM) cos_temp = zeros(1,num_symbol_samples); sin_temp = cos_temp; xxx = zeros(1,data_length/4); % Khoi tao muc khong cho toc yyy = xxx; 71 QAM_data_out_4 = zeros(1,data_length/2); for i = 1:2:data_length/2 % “cheating” for k = 1:num_symbol_samples % Tang so song mang de tao tan so cao va du lieu goc cos_temp(k) = QAM_rx_data(k+((i-1)/2)*num_symbol_samples) *… cos(ts(k)); sin_temp(k) = QAM_rx_data(k+((i-1)/2)*num_symbol_samples) *… sin(ts(k)); end % LPF va xac dinh – chung ta se rat don gian LPF bang phep trung binh xxx(1+(i-1)/2) = mean(cos_temp); yyy(1+(i-1)/2) = mean(sin_temp); % Khoi phuc du lieu dang noi tiep QAM_data_out_4(i) = xxx(1+(i-1)/2); QAM_data_out_4(i+1) = yyy(1+(i-1)/2); end % Thuc hien 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, QAM_data_out_4(i) = -1; else QAM_data_out_4(i) = -3; end end % Chuyen doi du lieu muc [-3, -1, 1, 3] ve du lieu phan cuc [-1, 1] QAM_data_out_pol = zeros(1,data_length); for i = 1:2:data_length switch QAM_data_out_4(1 + (i-1)/2) case –3 72 % “cheating” QAM_data_out_pol(i) = -1; QAM_data_out_pol(i+1) = -1; case –1 QAM_data_out_pol(i) = -1; QAM_data_out_pol(i+1) = 1; case QAM_data_out_pol(i) = 1; QAM_data_out_pol(i+1) = -1; case QAM_data_out_pol(i) = 1; QAM_data_out_pol(i+1) = 1; otherwise disp(‘Error detected in switch i – This should not be happening.’); end end QAM_data_out = pol2bin(QAM_data_out_pol); % Chuyen doi ve du lieu nhi phan % Ngung tinh toan thoi gian thuc hien mo phong QAM QAM_simulation_time = toc; if QAM_simulation_time > 60 disp(strcat(‘Time for QAM simulation=’, num2str(QAM_simulation_time/60), … ‘ minutes.’)); else disp(strcat(‘Time for QAM simulation=’, num2str(QAM_simulation_time),‘ … seconds.’)); end end %…………………………………………………………………………………… 73 Đoạn chương trình mơ thuật tốn tính BER % calculate the BER global BER_QAM_TEMP; binary_err_bits_QAM = 0; for i = 1:length(data_in) err = abs(data_in(i)-QAM_data_out(i)); if err > binary_err_bits_QAM = binary_err_bits_QAM + 1; end end BER_QAM_TEMP = 100 * binary_err_bits_QAM/data_length; %…………………………………………………………………………………… Đoạn chương trình mơ đọc, ghi liệu % read.m % ******************FILE INPUT SETSETUP************************** if input_type == if file_input_type == %binary file input end if file_input_type == %text file input file = fopen(file_name,'rt'); data_samples = fread(file,'char'); fclose(file); data_in = zeros(1,8*length(data_samples)); for i = 1:length(data_samples) data_in(1 + (i-1)*8:(i-1)*8 + 8) = eight2bin(data_samples(i)); end end 74 if file_input_type == %sound file input data_samples=wavread(file_name); %needs to be normalized from -1:1 to 0:255 for bit conversion data_samples_resized = round(128*data_samples +127); data_in = zeros(1,8*length(data_samples_resized)); for i = 1:length(data_samples_resized) data_in(1 + (i-1)*8:(i-1)*8 + 8) = eight2bin(data_samples_resized(i)); end end if file_input_type == %image file input [data_in,map]=imread(file_name); % read image and corresponding color map %for display end end %write.m % ******************KIEM TRA NGO RA********************************* if input_type == if test_input_type == %Tin hieu vao da la nhi phan, khong lam gi ca end if (test_input_type == 2) | (test_input_type == 3) %Chuoi vao ngau nhien HOAC cac mau song sine output_samples = zeros(1,floor(length(output)/8)); %gia tri khong phai la % du lieu goc for i = 1:length(output_samples) output_samples(i) = bin2eight(output(1 + (i-1)*8:(i-1)*8 + 8)); end if do_QAM == 75 QAM_output_samples = zeros(1,floor(length(QAM_data_out)/8)); for i = 1:length(QAM_output_samples) QAM_output_samples(i) = bin2eight(QAM_data_out(1 + (i-1)*8:… (i-1)*8 + 8)); end end end end % ******************KIEM TRA DAU RA********************************* if input_type == if file_input_type == %Tin hieu vao da la nhi phan, thuc thi end if file_input_type == %chuoi dau output_samples = zeros(1,floor(length(output)/8)); %gia tri khong phai la %du lieu goc for i = 1:length(output_samples) output_samples(i) = bin2eight(output(1 + (i-1)*8:(i-1)*8 + 8)); end file = fopen('OFDM_text_out.txt','wt+'); fwrite(file,output_samples,'char'); fclose(file); if do_QAM == QAM_output_samples = zeros(1,floor(length(QAM_data_out)/8)); %gia tri khong phai la du lieu goc for i = 1:length(QAM_output_samples) QAM_output_samples(i) = bin2eight(QAM_data_out(1 + (i-1)*8: (i-1)*8 + 8)); 76 end file = fopen('QAM_text_out.txt','wt+'); fwrite(file,QAM_output_samples,'char'); fclose(file); end end if file_input_type == output_samples_big = zeros(1,floor(length(output)/8)); %gia tri khong phai %la du lieu goc for i = 1:length(output_samples_big) output_samples_big(i) = bin2eight(output(1 + (i-1)*8:(i-1)*8 + 8)); end %chuyen doi khoang dong tu 0:255 den -1:1 output_samples = (output_samples_big-127)/128; %am ngo wavwrite(output_samples, 11025, 8, 'OFDM_out.wav') if do_QAM == QAM_data_out_big = zeros(1,floor(length(QAM_data_out)/8)); for i = 1:length(QAM_data_out_big) QAM_data_out_big(i) = bin2eight(QAM_data_out(1 + (i-1)*8:… (i-1)*8 + 8)); end %chuyen doi khoang dong tu 0:255 den -1:1 QAM_output_samples = (QAM_data_out_big-127)/128; %am ngo wavwrite(QAM_output_samples, 11025, 8, 'QAM_out.wav') end end if file_input_type == %image file output - not implemented 77 end end 78 ... giản, hiệu nhờ sử dụng kỹ thuật biến đổi FFT Trong chương trước tìm hiểu số vấn đề kỹ thuật OFDM, chương trình bày ứng dụng việc truyền tín hiệu hệ thống truyền hình số mặt đất (DVB-T: Digital... gian-tần số với số tần số k số thời gian l; Chúng ta giữ số thời gian số tần số cố định xét chiều Những mẫu yl phải đánh giá từ số đo xm với xm số đo kênh nhiễu vị trí pilot Chúng ta nhìn vào ước... tín hiệu OFDM quan sát phổ Trong miền tần số, sóng mang OFDM có đáp ứng tần số sinc hay sin(x)/x Hình 1.4 mơ tả phổ ký tự OFDM có sóng mang tổng hợp phổ hàm sinc Hình 1.4 [7] Phổ tín hiệu OFDM với

Ngày đăng: 27/02/2022, 09:56

w