logo资料库

基于MATLAB的OFDM系统仿真及性能分析-基于MATLAB的OFDM系统仿真及性能分析.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
  第 22卷  第 10期 计  算  机  仿  真 2005年 10月    文章编号 : 1006 - 9348 (2005) 10 - 0164 - 05 基于 M ATLAB的 O FDM 系统仿真及性能分析 吕爱琴 1 ,田玉敏 1 ,朱明华 2 (1. 西安电子科技大学计算机学院 ,陕西 西安 710071; 2. 中国科学院上海微系统与信息技术研究所 , 上海 200050) 摘要 :正交频分复用 (OFDM ) 是第四代移动通信的核心技术。该文首先简要介绍了 OFDM基本原理 ,重点研究了理想同步情 况下 ,保护时隙 (CP) 和不同的信道估计方法在高斯信道和多径瑞利衰落信道下对 OFDM系统性能的影响。在给出 OFDM系 统模型的基础上 ,用 MATLAB语言实现了整个系统的计算机仿真并给出参考设计程序。最后给出在不同的信道条件下 ,保 护时隙 、信道估计方法对 OFDM 系统误码率影响的比较曲线 ,得出了较理想的结论。 关键词 :正交频分复用 ;仿真 ;循环前缀 ;信道估计 中图分类号 : TP302. 7  文献标识码 : A M ATLAB S im ula tion and Performance Ana lysis of O FDM System LU A i - q in1 , T IAN Yu - m in1 , ZHU M ing - hua2 (1. Schoo l of Computer Science and Technology, X idian U niversity, X i an Shanxi 710071, China; 2. Shanghai Institute ofM icrosystem and Inform ation Technology Chinese A cadem y of Sciences, Shanghai 200050, China) ABSTRACT:O FDM is the key techno logy of 4G in the field of mobile communication. In this article OFDM basic p rincip le is briefly introduced. Then, the influence of CP and different channel estim ation on the system perfo rm ance is emphatically analyzed respectively in Gauss and Rayleigh fading channels in the condition of ideal synchronization. B esides, based on the given system model OFDM system is computer sim ulated w ith MATLAB language and the referential design p rocedure is given. Finally, the B ER curves of CP and channel estim ation are given and compared. The conclusion is satisfactory. KEYW O RD S:O FDM; Sim ulation; CP; Channel estimation 1 引言 O FDM 作为一种多载波调制技术 ,具有频谱利用率高 、 抗频率选择性衰落或窄带干扰等优点 。多载波调制原理最早 在 20世纪 60年代中期由 Co llins kinep lex提出 [ 1 ] 。70年代 ,主 要用于美国军用无线高频通信系统 ; 80年代 , OFDM 研究主 要用在高速调制解调器 、数字移动通信及高密度录音带中 ; 90年 代 以 后 , OFDM 主 要 用 在 非 对 称 的 数 字 用 户 环 路 (AD SL) 、ETSI标准的数字音频广播 (DAB ) 、数字视频广播 (DVB ) 、高清晰度电视 (HD TV ) 、无线局域网 (WLAN ) 等 。 OFDM 与 CDMA 技术结合主要有两种形式 , 一种是多载波 CDMA (MC - CDMA ) ,一种是多载波直扩 CDMA (MC - DS - CDMA ) 。前者是频域扩展和多载波调制技术相结合 ,后者是 时域扩展和多载波调制技术相结合 ,文 [ 2 ] 给出它们的性能 比较分析 。这些方案都是基于 O FDM 之上的 , 因此 , 研究 O FDM 系统的性能就显得 非 常 必 要 。本 文 首 先 简 要 介 绍 O FDM 基本原理 ,在这个基础上建立了 O FDM 仿真模型 ,然 后通过加保护时隙及进行信道估计 , 分析 O FDM 系统在 AW GN和多径 Rayleigh衰落信道下的性能 ,最后给出仿真结 果 。 2 O FDM 基本原理 O FDM 是一种特殊的多载波传送方案 。单个用户码周期 为 Ts的信息流被串 /并变换为 N路并行低速率码流 (100 Hz ~ 50 kHz) ,转换后的并行信号周期为 T ( T = N Ts ) , 每个码 流都用一条载波发送 ,子载波的频率满足 fn = f0 + n / (N Ts ) , n = 0, 1, …, N - 1,即子载波的频谱相互正交 ,发射信号为 : 收稿日期 : 2004 - 06 - 15 —461— s = ∑ dn exp ( j2πfn t) = exp ( j2πf0 ) ∑ N - 1 n =0 N - 1 n =0 dn exp ( j2π n N Ts t)
( 1) 用 t = m Ts (m = 0, 1, …, N - 1) 对进行采样可得到 N个样值 : sm = exp ( j2πf0 ) ∑ = exp ( j2πf0 ) ∑ N - 1 n =0 N - 1 n =0 ) dn exp ( j2π nm Ts N Ts dn exp ( j2π nm N ) , (m = 0, 1, N - 1) ( 2) 图 1 和图 2 分 别 给 出 OFDM 调 制和 解 调 原 理 , Cn, 0 …Cn, N - 1 为 需传送的数据 比特经数字调 制 (如 M PSK, MQAM 等 ) 后的复信号 ,这样 ,子载波的调制和解调可以通 过 N点 IFFT和 FFT变换完成 。 图 1 O FDM M odula tor 图 2 O FDM D em odula tor 3 O FDM 系统仿真模型 根据 OFDM 基本原理 , 图 3 给出利用 MA TLAB 编写 OFDM 系统的仿真链路流程 。串行数据经串并变换后进行 QD PSK数字调制 ,调制后的复信号通过 N点 IFFT变换 ,完成 多载波调制 ,使信号能够在 N 个子载波上并行传输 ,中间插 入 10训练序列符号用于信道估计 ,加入循环前缀后经并串 转换 、D /A后进入信道 ,接收端经过 N 点 FFT变换后进行信 道估计 ,将 QD PSK解调后的数据并串变换后得到原始信息 比特 。 本文采用 MA TLAB语言编写 M文件来实现上述系统 。M 文件包括脚本 M 文件和函数 M 文件 ,M 文件的强大功能为 MA TLAB的可扩展性提供了基础和保障 ,使得 MA TLAB能不 断完善和壮大 ,成为一个开放的 、功能强大的实用工具 。M 文 件通过 input命令可以轻松实现用户和程序的交互 ,通过循 环向量化 、数组维数预定义等提高 M 文件执行速度 ,优化内 存管理 ,此外 ,还可以通过类似 C + +语言的面向对象编程方 法等等 。附件给出主要仿真程序和说明 。 4 循环前缀及信道估计对系统误码率的改善分析 4. 1 循环前缀 O FDM 系统中 ,每个并行数据支路都是窄带信号 ,可近 似认为每个支路都经历平坦衰落 ,这样就减小了频率选择性 衰落对信号的影响 。同时 ,每路子数据流速率的降低 ,减小了 符号间干扰 ( ISI) 。此外 ,还可以通过加保护间隔的办法完全 消除符号间干扰 。假设每个 O FDM 符号由 Y个样值组成 ,由 于时延扩展 ,接收端将会有和信道冲激响应持续时间相对应 的前 L (L < Y) 个样值发生错误 ,为此 ,可以在发送信号前端 加上 M个样值 ,接收端收到信号时 ,先去掉前 M个样值 ,然后 再进行 FFT,只要 M ≥ L就可完全消除 ISI。 最初的保护间隔是用空数据填充的 ,这虽然消除了 ISI, 但却破坏了信道间的正交性 。后来 , Peled和 Ruiz[ 3 ] 提出了用 循环前缀填充保护间隔的方法 ,即把 Y个样值的最后 M个复 制到个 O FDM 符号的前端作为保护间隔 ,利用循环卷积的概 念 ,只要循环前缀的长度大于信道的冲激响应 ,信道间仍是 正交的 。符号周期由 T增加至 T′= T +ΔT,ΔT是保护时隙 , 增加保护时隙会降低频谱利用率 , 所以 ΔT一般小于等于 T/4。 4. 2 信道估计 这里 简 要 介 绍 两 种 信 道 估 计 方 法 。一 是 LS(Least Square) 估计法 ,就是以最小平方为目的的信道估计 。LS信道 估计器的表达式为 : Y hLS = X - 1 ( 2) LS信道估计器的性能不是很好 ,但是在保证一定误码率 的情况下 ,其复杂度相对非常低 。二是 MM SE (M inimum M ean Square Error) 估计法 ,就是以最小均方误差为目的的信道估 计方法 。在文 [ 4 ]中对其进行了详细的讨论 ,MM SE信道估计 器的表达式为 : hMM S E = F gMM S E = FQMM S E FH XH Y ( 3) gMM S E 为 信 道 的 冲 激 响 应 , QMM S E = 其 中 , R gg [ ( FH XH X F) - 1σ2 n + R gg〗- 1 ( FH XH X F) - 1 , R gg 为信道矢量的自协方差矩阵 , F是 D FT矩阵 ,σ2 为噪声信号的方差 。 4. 3 仿真结果及分析 n 图 3 基于 M ATLAB的 O FDM 系统仿真链路 仿真参数如表 1所示 。 —561—
π 子载波数 位数 / 符号 符号数 / 载波 训练符号数 循环前缀长度 调制方式 多径信道数 信道最大时延 π 表 1 仿真参数 200 2 50 10 T / 4 QDPSK 2、3、4 7 (单位数据符号 )   图 4给出高斯信道和多径瑞利衰落信道下系统的误码 率曲线 ,该曲线表明 O FDM系统仿真过程正确 。图 5给出高斯 信道下循环前缀和信道估计对误码率影响曲线 ,该曲线表明 高斯信道下循环前缀和信道估计对系统的影响并不显著 ,在 这样的信道条件下可以去除信道估计器以降低接收机的复 杂度 。图 6给出多径瑞利衰落信道下分别利用 LS、MM SE信 道估计方法的误码率对比曲线 ,该曲线表明 MM SE估计法明 显优于 LS估计法 , 但其复杂度较高 , 在误码率满足的条件 下 ,可以采用简单的 LS估计法降低接收机复杂度 。 图 5 高斯信道下循环前缀和信道估计对误码率影响曲 图 4 高斯信道和多径瑞利衰落信道下系统的误码率曲线 5 结论 本文针对目前的研究热点 O FDM 技术进行计算机仿真 研究 ,在 O FDM 仿真模型的基础上用 MA TLAB 语言编写出 OFDM 发送 、信道及接收整个系统 ,在系统仿真正确的前提 下 ,对循环前缀 、信道估计等性能改善方法进行进一步仿真 验证 ,得到了预期的理想结果 。今后 ,作者将在这一仿真基础 上进行 O FDM 系统的 FPGA实现 。 附录 : O FDM 系统仿真主要 M 文件 clear all; clo se all; OFDM 仿真 \ n \ n fp rintf ( IFFT_bin_length = 1024; —661— ) ; 图 6 多径瑞利衰落信道下两种信道估计误码率对比曲 carrier_count = 200; bits_per_symbol = 2; sym bo ls_per_carrier = 50; SNR = input( ) ; baseband_out_length = carrier_count SNR = bits_per_sym bo l; sym bols_per_ carrier floo r( carrier_count/2) ) ; carriers = (1: carrier_count) + ( floo r( IFFT_bin_ length /4) - conjugate_carriers = IFFT_bin_length - carriers + 2; % 信号发射 baseband_out = round ( rand (1, baseband_out_length) ) ; convert_matrix = reshape ( baseband_out, bits_per_sym bol, length ( baseband_out) / bits_per_symbo l) ; fo r k = 1: ( length ( baseband_out) / bits_per_symbol)  modulo_baseband ( k) = 0;  for i = 1: bits_per_symbo l
3 ; π + , ( (2 p i) / ( carrier_ ones( size (2^bits_per_ 2^( bits_per_sym bol - i) ; = modulo_baseband ( k)   modulo_baseband ( k) convert_m atrix ( i, k)  end end carrier_m atrix = reshape (modulo_baseband, carrier_ count, sym bols_per_carrier) % QD PSK调制 carrier_m atrix = [ zero s(1, carrier_count) ; carrier_ m atrix]; for i = 2: ( symbo ls_per_carrier + 1)  carrier_m atrix( i, : ) = rem ( carrier_m atrix( i, : ) + carrier_ matrix ( i - 1, : ) , 2^bits_per_sym bo l) ; end carrier_m atrix = carrier_matrix sym bol) ) ; [ X, Y ]   = po l2cart( carrier_matrix, matrix, 1) , size ( carrier_m atrix, 2) ) ) ; comp lex_carrier_m atrix = comp lex (X, Y) ; % 加训练序列 training_sym bols = [ 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 1 j j 1 - 1 - j - j - 1 ]; training_symbols = cat(1, training_symbols, training_ symbols) ; training_symbols = cat(1, training_symbols, training_ symbols) ; comp lex_carrier_m atrix = cat(1, training_sym bols, comp lex_ carrier_m atrix) ; IFFT_modulation = zeros(4 + sym bols_per_carrier + 1, IFFT_bin_length) ; IFFT_modulation (: , carriers) = comp lex_ carrier_ m atrix; IFFT_modulation (: , conjugate_carriers) = conj ( comp lex _ carrier_matrix) ; tim e_wave_matrix = ifft( IFFT_modulation tim e_wave_matrix = tim e_wave_m atrix for i = 1: 4 + sym bols_per_carrier + 1  w indowed_tim e_wave_matrix( i, : ) _m atrix ( i, : ) ) ; end ofdm _modulation 1, Tx_data = ofdm_modulation; % 信道 reshape (w indowed_tim e_wave_matrix (4 + symbo ls_per_carrier + 1) ) ; = IFFT_bin_length real( time_wave ; = ) ; Tx_data ( i - d1) ; Tx_data ( i - d2) ; d1 = 4; a1 = 0. 2; d2 = 5; a2 = 0. 3; d3 = 6; a3 = 0. 4; d4 = 7; a4 = 0. 5; copy1 = zero s( size ( Tx_data) ) ; fo r i = 1 + d1: length ( Tx_data)  copy1 ( i) = a1 end copy2 = zero s( size ( Tx_data) ) ; fo r i = 1 + d2: length ( Tx_data)  copy1 ( i) = a2 end copy3 = zero s( size ( Tx_data) ) ; fo r i = 1 + d3: length ( Tx_data)  copy1 ( i) = a3 end copy4 = zero s( size ( Tx_data) ) ; fo r i = 1 + d4: length ( Tx_data)  copy1 ( i) = a4 end Tx_data = Tx_data + copy1 + copy2; Tx_data ( i - d3) ; Tx_data ( i - d4) ; ; length ( Tx_data) ) no ise_scale_ factor; IFFT_bin_length, 4 + Tx_signal_power = var( Tx_data) ; linear_SNR = 10^( SNR /10) ; noise_sigm a = Tx_signal_power/ linear_SNR; noise_scale_factor = sqrt( noise_sigm a) ; noise = randn (1, Rx_D ata = Tx_data + noise; % 信号接收 Rx_D ata_m atrix = reshape (Rx_D ata, sym bo ls_per_carrier + 1) ; Rx_spectrum = fft(Rx_Data_m atrix) ; % Rx_carriers = Rx_spectrum ( carriers, : ) Rx_training_sym bols = Rx_carriers( (1: 4) , : ) ; Rx_carriers = Rx_carriers( (5: 55) , : ) ; % 信道估计 Rx_training_sym bols sym bo ls; Rx_training_sym bols_deno = Rx_training_sym bo ls. ^2; Rx_training_sym bols_deno = Rx_training_sym bols_deno (1, : ) + Rx_training_sym bols_deno (2, : ) + Rx_training_sym bols_deno (3, : ) + Rx_training_sym bols_deno (4, : ) ; Rx_training_sym bols_nume = Rx_training_symbo ls(1, : ) + Rx_training_sym bols(2, : ) + Rx_training_sym bols(3, : ) + Rx_training_sym bols(4, : ) ; Rx_training_sym bols_nume = conj(Rx_training_sym bols_nume) ; Rx_training_symbols. / training_ = —761—
3 π = = = Rx_carriers; (180 /p i) ; Rx_training_sym bo ls_num e. cat(1, Rx_training_symbo ls, cat(1, Rx_training_sym bols_4, cat(1, Rx_training_sym bols_2, cat(1, Rx_training_symbo ls_50, Rx_training_sym bo ls = /Rx_training_symbols_deno; Rx_training_sym bo ls_2 = Rx_training_sym bo ls) ; Rx_training_sym bo ls_4 Rx_training_sym bo ls_2) ; Rx_training_sym bo ls_8 Rx_training_sym bo ls_4) ; Rx_training_sym bo ls_16 = cat(1, Rx_training_symbols_8, Rx_training_sym bols_8) ; Rx_training_sym bo ls_32 = cat(1, Rx_training_symbols_16, Rx_training_sym bo ls_16) ; Rx_training_sym bo ls_48 = cat(1, Rx_training_symbols_32, Rx_training_sym bo ls_16) ; Rx_training_sym bo ls_50 = cat(1, Rx_training_symbols_48, Rx_training_sym bo ls_2) ; Rx_training_sym bo ls Rx_training_sym bo ls) ; Rx_carriers = Rx_training_sym bols. Rx_phase = angle (Rx_carriers) phase_negative = find (Rx_phase < 0) ; Rx_phase (phase_negative) rem (Rx_phase (phase_negative) + 360, 360) ; Rx_decoded_phase = diff(Rx_phase) ; phase_negative = find (Rx_decoded_phase < 0) ; Rx_decoded_phase (phase_negative) = rem (Rx_decoded_phase (phase_negative) + 360, 360) ; % QD PSK解调 base_phase = 360 /2^bits_per_sym bo l; delta_phase = base_phase /2; Rx_decoded_sym bols = zero s( size (Rx_decoded_phase, 1) , size (Rx_decoded_phase, 2) ) ; % for i = 1: (2^bits_per_sym bol - 1)  center_phase = base_phase i;  p lus_delta = center_phase + delta_phase;  m inus_delta = center_phase - delta_phase;  decoded = find ( (Rx_decoded_phase < = p lus_delta) & (Rx_decoded_phase > m inus_delta) ) ;  Rx_decoded_symbols( decoded) = i; end Rx_serial_sym bols size (Rx_decoded_sym bols, 1) 2) ) ; reshape (Rx_decoded_sym bo ls size (Rx_decoded_symbo ls, = , 1, = - 1: 1 fo r i = bits_per_sym bol:  if i ~ = 1   Rx_binary_m atrix( i, : ) = rem (Rx_serial_ sym bols, 2) ;   Rx_serial_sym bols = floo r(Rx_serial_sym bols/2) ; else   Rx_binary_m atrix( i, : ) = Rx_serial_sym bols;  end  end baseband_in = reshape (Rx_binary_matrix, 1, size (Rx_binary_matrix, 1) % 误码率计算 bit_errors = find ( baseband_in ~ = baseband_out) ; bit_error_count = size ( bit_errors, 2) ; to tal_bits = size ( baseband_out, 2) ; bit_error_rate = bit_error_count/ total_bits; fp rintf( size (Rx_binary_matrix, 2) ) ; , bit_error_rate) ; % f\ n 参考文献 : [ 1 ]   Erich Cosby. O rthogonal Frequency D ivision M ultip lexing (OFDM ) Tutorial and Analysis[M ]. Northern V irginia Center, 2001. [ 2 ]  M ingqi L i, , Q icong Peng, Yubai L i, Performance Evaluation of MC - DS - CDMA System s in M ultipath Fading Channels[ J ]. 0 - 7803 - 7547 - 5 /02, IEEE , 2002. [ 3 ]  A Peled, A Ruiz. Frequency domain data transm ission using reduced computational comp lexity algorithm s[ C ]. In Proc. IEEE Int. Conf. Acoust. , Speech, Signal Processing, 1980. 964 - 967. [ 4 ]  R van Nee. OFDM W ireless M ultimedia Communications[M ]. R rasad R. A rtech House, 1998. [ 5 ]  周正兰 ,等. O FDM及其链路级平台的 Simulink实现 [ J ]. 中国 数据通信 , 2003, (10) : 90 - 92 [ 6 ]  尹泽明 ,等. 精通 MATLAB6 [M ]. 清华大学出版社 , 2002. [ 7 ]  蔡涛 , 等译. 无线通信原理与应用 [M ]. 电子工业出版社 , 1999. [ 8 ]  丁玉美 ,等. 数字信号处理 [M ]. 西安电子科技大学出版社 , 2003. [作者简介 ] 吕爱琴 (1978 - ) ,女 (汉族 ) ,江苏人 ,西安电子科 技大学计算机学院在校硕士研究生 , 主要研究方 向为无线通信仿真设计 ,多载波 CDMA等。 朱明华 (1965 - ) ,男 (汉族 ) ,四川人 ,北邮博士 , 硕导 ,中科院上海微系统与信息技术研究所副研 究员 ,主要研究方向为无线通信仿真设计 。 田玉敏 (1966 - ) ,女 (汉族 ) ,河南人 ,西安电子科技大学计算机外设 所 ,博士 ,教授 ,主要研究计算机图形图像处理 ,网络安全等 。 —861—
分享到:
收藏