资源描述
摘要正交频分复用(OFDM) 是第四代移动通信的核心技术。该文首先简要介绍了OFDM的发展状况及基本原理, 文章对OFDM 系统调制与解调技术进行了解析,得到了OFDM 符号的一般表达式,给出了OFDM 系统参数设计公式和加窗技术的原理及基于IFFT/FFT 实现的OFDM 系统模型,阐述了运用IDFT 和DFT 实现OFDM 系统的根源所在,重点研究了理想同步情况下,保护时隙(CP)、加循环前缀前后和不同的信道内插方法在高斯信道和多径瑞利衰落信道下对OFDM系统性能的影响。在给出OFDM系统模型的基础上,用MATLAB语言实现了传输系统中的计算机仿真并给出参考设计程序。最后给出在不同的信道条件下,研究保护时隙、循环前缀、信道采用LS估计方法对OFDM系统误码率影响的比较曲线,得出了较理想的结论。关键词:正交频分复用;仿真;循环前缀;信道估计Title: MATLAB Simulation and Performance Analysis of OFDM SystemABSTRACTOFDM is the key technology of 4G in the field of mobile communication. In this article OFDM basic principle is briefly introduced. This paper analyzes the modulation and demodulation of OFDM system, obtaining a general expression of OFDM mark, and giving the design formulas of system parameters, principle of windowing technique, OFDM system model based on IFFT/FFT, the origin which achieves the OFDM system by using IDFT and DFT. Then, the influence of CP and different channel estimation on the system performance is emphatically analyzed respectively in Gauss and Rayleigh fading channels in the condition of ideal synchronization. Besides, based on the given system model OFDM system is computer simulated with MATLAB language and the referential design procedure is given. Finally, the BER curves of CP and channel estimation are given and compared. The conclusion is satisfactory.KEYWORDS:OFDM; Simulation; CP; Channel estimation目 次1 概述11.1 OFDM的发展及其现状21.2 OFDM的优缺点22 OFDM的基本原理42.1基于IFFT/FFT 的OFDM 系统模型42.2 OFDM信号的频谱特性72.3 0FDM 系统调制与解调解析82.4 加窗103 循环前缀及信道估计对系统误码率的改善分析133.1循环前缀133.2 OFDM系统的峰值平均功率比173.3信道估计183.3.1信道估计概述183.3.2基于导频的信道估计方法193.3.3信道的插值方法203.3.4仿真结果及分析21结 论22致 谢23参 考 文 献24附 录261 概述随着移动通信和无线因特网需求的不断增长,越来越需要高速无线系统设计,而这其中的一个最直接的挑战就是克服无线信道带来的严重的频率选择性衰落。正交频分复用(OFDM)技术可以很好地克服无线信道的频率选择性衰落,由于其简单高效,OFDM已成为实现未来无线高速通信系统中最核心的技术之一。现代移动通信发展至今,已经经历了三代,而3G 的后续技术也在加速研究中。目前,国际标准化组织正在推动无线传输技术从2Mb/s 的传输速率向100Mb/s 和1000Mb/s 的目标发展,对4G 的定义也已经逐渐清晰起来。基本上可以确定,OFDM/OFDMA、MIMO和智能天线等技术将成为4G 的主流技术。OFDM 相关的技术很多, 实际应用中的OFDM 复杂度很高。因此, 建立适合自己研究方向的OFDM 模型, 无论是为了理解OFDM 技术的理论,还是对后续的OFDM 与其他技术相结合的研究工作,都有着非常重要意义。OFDM是一种特殊的多载波调制技术,它利用载波间的正交性进一步提高频谱利用率,而且可以抗窄带干扰和多径衰落。多载波调制原理最早在20 世纪60 年代中期由Collins kinep lex 提出。70 年代,主要用于美国军用无线高频通信系统;80 年代,OFDM的研究主要用在高速调制解调器、数字移动通信及高密度录音带中;90 年代以后,OFDM主要用在非对称的数字用户环路(ADSL) 、ETSI 标准的数字音广播(DAB) 、数字视频广播(DVB) 、高清晰度电视(HDTV) 、无线局域网(WLAN)等。OFDM与CDMA技术结合主要有两种形式, 一种是多载波CDMA(MC-CDMA) , 一种是多载波直扩CDMA (MC-DS-CDMA) 。前者是频域扩展和多载波调制技术相结合,后者是时域扩展和多载波调制技术相结合。OFDM通过多个正交的子载波将串行的数据并行传输,可以增大码元的宽度,减少单个码元占用的频带,抵抗多径引起的频率选择性衰落;可以有效克服码间串扰( ISI) ,降低系统对均衡技术的要求,适用于多径环境和衰落信道中的高速数据传输;而且信道利用率很高,这一点在频谱资源有限的无线环境中尤为重要。这些方案都是基于OFDM 之上的, 因此, 研究OFDM系统的性能就显得非常必要。本文首先简要介绍OFDM基本原理,在这个基础上建立了OFDM仿真模型,然后通过加保护时隙及进行信道估计, 分析OFDM 系统在AWGN和多径Rayleigh衰落信道下不用的插入算法的性能,最后给出仿真结果。1.1 OFDM的发展及其现状OFDM是一种特殊的多载波频分复用(FDM)技术。在传统的多载波频分复用系统中,各个子信道采用不同的载波并行传送数据,子载波之间间隔足够远,采用隔离带来防止频谱重叠,故频谱效率很低。在均衡器未被采用以前,人们就是用这种多载波方式在时间色散信道中进行高速通信的。1966年,R.W.Chang分析了在多载波通信系统中如何使经过滤波后带限的子载波保持正交。随后不久B.R.Saltzberg给出了一篇性能分析的文章,他指出在设计一个有效的并行传输系统时,应该把注意力更多地集中在减少相邻信道的串扰上,而不是使各个独立的信道工作得更好,因为此时信道串扰是造成信号失真的主要因素。1971年,S.B.Weinstein和P.M.Ebert提出用傅立叶变换(DFT)进基带OFDM调制和解调。通过DFT进行OFDM基带调制和解调避免了生成多个子载波和多个窄带带通滤波器,使系统的模拟前端由多个变为一个,同时由于DFT可以用FFT来快速实现,这进一步降低了系统实现的复杂度。为对抗符号间干扰和载波闻干扰,他们提出在符号间插入一段空白时隙作为保护间隔。他们的系统虽然没有能在色散信道中获得很好的子载波正交性,但对OFDM仍是一个很大贡献。另一个重要贡献来自A.Peled和A.Rmz,他个人提出了采用循环前缀来解决色散信道中子载波间的正交性问题。当信道响应长度小于循环扩展时,循环前缀的存在使信号与信道响应的线性卷积变成循环卷积,从而使色散OFDM信号可以通过频域单点均衡进行去相关。当然,循环扩展的引入会导致少量的信噪比损失。由于无线信道的多径传播会使宽带OFDM信号产生频率选择性衰落,导致各个子信道上的信噪比不同,因此实际的OFDM系统都是与交织、纠错编码结合在一起,形成编码的正交频分复用(COFDM)。交织和编码能够使OFDM系统获得良好的频率和时间二维分集。1.2 OFDM的优缺点 虽然OFDM已经得到广泛的应用,但是在使用中我们也要清楚的认识到它的优缺点,下面简要的从这两方面介绍下OFDM。OFDM技术的优点主要有:(1) OFDM调制方式适用于多径和衰落信道中的高速数据传输。当信道因为多径的影响出现频率选择性衰落时,只有落在频率凹陷处的载波及其携带的信息受到影响,其它子载波未受损害;。(2) 在OFDM调制方式中,通过插入保护间隔,可以很好地克服符号间干扰(ISI)和载波间干扰(ICI)(3) 由于OFDM各子载波相互正交,允许各子载波有1/2重叠,因此可以大大提高频谱利用率:(4) 由于深度衰落而丢失的一些子载波可通过编码、交织等措施来很好的恢复,提高系统抗误码性能,且通过各子载波的联合编码,具有很强的抗衰落能力;(5) OFDM技术抗脉冲及窄带干扰的能力很强,因为这些干扰仅仅影响到很小一部分的子信道;(6) 与单载波系统相比,对采样定时偏移不敏感。OFDM技术的缺点主要有:(1) 由于要求各子载波正交,所以对频率偏移和相位噪声很敏感; (2) 由于各子载波相互独立,峰值功率与均值功率比相对较大,且随子载波数目的增加而增加。高峰均比信号通过功放时,为了避免信号的非线性失真和带外频谱再生,功放需要具有较大的线性范围,导致射频放大器的功率效率降低。国外对OFDM技术的研究已有近50年的历史。最初无线OFDM传输系统是用在军用无线高频通信链路中,随着数字信号处理(DSP)超大规模集成电路(VLSI)技术的发展,OFDM技术获得了长足的进步并广泛应用于社会生活的各个方面。其应用主要有:(1) 广泛应用于音频和视频传输中,如欧洲数字音频广播18J(DAB)、数字视频广播(DVB)以及日本的综合业务数字广播(ISDB)等;(2) 非对称数字用户链路(ADSL);(3) 无线局域网标准IEEE802.1la、欧洲电信标准协会(ETSI)推出的局域网标准Hyperlan2等;(4) 无线城域网标准IEEE802.16a;(5) 已具雏形的4G蜂窝系统;2 OFDM的基本原理在宽带无线通信系统中,影响高速信息传输的最主要一类干扰是频率选择性干扰。它表现为对信号的某些频率成分衰减严重,而对另外一些频率成分有较高的增益。为克服这类衰落,一个很自然的想法是在信道上划分多个子信道,使每一个子信道的频率特性都近似于平坦,使用这些独立的子信道传输信号并在接收机中予以合并,以实现信号的频率分集,这就是多载波调制的基本思想。在无线通信中应用最广的是OFDM多载波调制技术,它的每一个子载波都是正交的,提高了频谱的利用率。还可以在OFDM符号之间插入保护间隔,令保护间隔大于无线信道的最大时延扩展,最大限度的消除由于多径带来的符号间干扰。2.1基于IFFT/FFT 的OFDM 系统模型 基于IFFT/FFT 实现的OFDM 系统方框图如图2.2.1 所示图2.1.1 IFFT/FFT 实现的OFDM 系统图2.1.1中串行输入数据为经过信道编码后的序列(如Turbo码),将该序列转换成包含R个比特的块,每块再分成N个组,每个组对应一个子载波。根据所采用调制方式的不同,每个组包含的比特数可以不同,设第K 组的比特数为, 则有采用ASK、PSK、QAM等调制方式将这个比特映射成复值符号。 除了上述经过数据调制的信息符号外,还有个不需要经过数据调制的用于同步与信道估计的导频符号,一共有 组有用数据。在适当的位置上添加一定数量的零使得总的信息符号个数为刚好大于N的2 的整数幂,记为N,即有个子信道不用,其上传输的复值符号为0。这样处理的目的一方面是为了采用,另一方面是为了防止谱外泄。对于连续的OFDM信号模型,假设系统的总带宽是,OFDM码元周期为,为保护间隔。一个OFDM复值基带码元可以表示为: (2.1) 式(2.1)中的信号以1/(t = T / N )的速率从时刻开始采样,所得的N 个样本为:= = , k=0,1,2,3.N-1 (2.2)显然,这个样值与序列S=的IDFT,除了系数外完全一样。由于对每个连续OFDM 码元采样N 个样本,正好满足Nyquist 采样定理,所以可以通过这些样值重构原始的连续信号。这样样值可以通过IDFT 来得到,这就是用IDFT 和DFT 可以实现OFDM 系统的根源。下面给出OFDM载波的幅度谱和相位谱,分别如下图2.1.2和图2.1.3所示图2.1.2 OFDM载波幅度谱图2.1.3 OFDM载波相位谱2.2 OFDM信号的频谱特性当各个子载波用QAM或MPSK进行调制时,如果基带信号采用矩形波形,则每个子信道上已调的频谱为形状,其主瓣宽度为,其中为OFDM信号长度(不包括CP)。由于在时间内共有OFDM信号的N个抽样,所以OFDM信号的时域信号的抽样周期为。由于相邻子载波之间的频率间隔为,所以即这些已调子载波信号频谱函数的主瓣宽度为,间隔为。根据函数性质,知道它们在频域上正交,这就是正交频分复用(OFDM)名称的由来。一般的频分复用传输系统的各个子信道之间要有一定的保护频带,一便在接收端可以用带通滤波器分离出各个信道的信号。保护频带降低了整个系统的频谱利用率。OFDM系统的子系统间不但没有保护频带,而且各个信道的信号频谱还相互重叠。如图2.2.1所示:图2.2.1 OFDM信号正交性的频域解释示意图这使得OFDM系统的频谱利用率相比普通频分复用系统有很大的提高,而各子载波可以采用频谱效率高的QAM和MPSK调制方式,进一步提高OFDM系统的频谱效率。2.3 0FDM 系统调制与解调解析以t =为起始时刻的OFDM符号可以表示为:, (2.3)式(2.3)实部和虚部分别对应于OFDM 符号的同相和正交分量,实际应用中可以分别与相应子载波的cos 分量和sin 分量相乘,构成最终的子信道信号和合成的OFDM 符号。收端对应OFDM 解调,其第k 路子载波信号解调过程为:将接收信号与第k 路的解调载波相乘,然后将得到的结果在OFDM 符号的持续时间T 内进行积分,即可获得相应的发送信。实际上,式(2.3)中定义的OFDM 复等效基带信号可以采用离散逆傅里叶变换(IDFT)实现。令式(2.3)的=0,t=KT/N(k=0,1,N-1),则可以得到: (2.4)在式(2.4)中,即为的IDFT 运算。在接收端,为了恢复出原始的数据符号,可以对进行DFT 变换得到: (2.5)由上述分析可以看出,OFDM 系统可以通过N 点IDFT运算,把频域数据符号变换为时域数据符号,经过载波调制之后,发送到信道中;在接收端,将接收信号进行相干解调。然后将基带信号进行N 点DFT 运算,即可获得发送的数据符号。实际应用中, 可用快速傅里叶变换(FFT/IFFT)来实现OFDM 调制和解调。N 点IDFT 运算需要实施次的复数乘法,而IFFT 可以显著地降低运算的复杂度。对于常用的基2IFFT 算法来说,其复数乘法的次数仅为。本文中假设FFT的点数是2048,载波数量是200,每个符号代表2bit,每个载波使用100个符号,则OFDM的时域和频域图形如下:图2.3.1 OFDM一个符号周期的时域OFDM信号图2.3.2 OFDM每一个载波对应的时域信号2.4 加窗由式(2.3)所定义的OFDM 符号存在的缺点是功率谱的带外衰减速度不够快。技术上,可以对每个OFDM 符号进行加窗处理,使符号周期边缘的幅度值逐渐过渡到零。经常被采用的窗函数是式(2.6)定义的升余弦窗 (2.6)(2.6)式中, 表示加窗前的符号长度。而加窗后符号的长度应该为,从而允许在相邻符号之间存在有相互覆盖的区域。在实际系统中,经过加窗的OFDM 符号的产生过程为:首先,在个经过数字调制的符号后面补零,构成N 个输入样值序列,然后进行IFFT 运算;将IFFT 输出的最后Tprefix个样值插入到OFDM 符号的最前面,将IFFT 输出的最前面的Tpostfix 个样值插入到OFDM 符号的最后面;接下来,将OFDM 符号与式(2.6)定义的升余弦窗函数时域相乘;最后将经过加窗的OFDM 符号延时,与前一个经过加窗的OFDM 符号相加。应当指出,式(2.6)中值的选择要适当,如对于64 个子载波的OFDM 符号,可取=0.025。用matlab可以画出其频谱密度仿真图。如图2.4.1(a),2.4.1(b)所示;其中,每一个子图横轴表示归一化频率,纵轴表示归一化幅度衰减(单位:dB)。(a)、(b)两个子图分别表示包含128、256个子载波的OFDM符号的功率密度谱。从图中可以看出,随子载波数增加,OFDM符号功率密度谱下降速度会增快。但是即使在256个子载波情况下,其3dB带宽仍然会是128个载波3dB带宽的2倍。 为了加快OFDM信号功率谱带外衰减部分的下降速度,可以对每个OFDM时域符号进行加窗,使符号周期边缘的幅度值逐渐过渡到零,这与成型滤波的原理相当的类似。成型滤波是在频域加平方根升余弦窗,降低时域信号的拖尾振荡;而OFDM符号在时域加升余弦窗,降低频域信号拖尾振荡,使带外衰减速度加快。图2.4.1(a)载波数为256的信号频谱信号仿真图图2.4.1(b)载波数128的信号频谱信号功率谱带外衰减仿真图对OFDM时域符号加窗之前,首先要添加循环前缀和循环后缀,添加了循环前缀和循环后缀后的归一化功率的OFDM复信号表示为: (2.7)加入循环前缀、循环后缀后的OFDM功率谱密度为: (2.8)如图2.4.2(a)和2.4.2(b)所示,通过对OFDM信号加窗前后的信号频谱进行仿真比较,得到加窗后信号的带外衰减大副减小,但是对信号的误码率也有一定的影响。图 2.4.2(a)未加窗OFDM功率频谱带外衰减仿真图2.4.2(b)加升余弦窗后OFDM功率谱带外衰减仿真3 循环前缀及信道估计对系统误码率的改善分析3.1循环前缀OFDM系统中,每个并行数据支路都是窄带信号,可近似认为每个支路都经历平坦衰落,这样就减小了频率选择性衰落对信号的影响。同时,每路子数据流速率的降低,减小了符号间干扰( ISI) 。此外,还可以通过加保护间隔的办法完全消除符号间干扰。假设每个OFDM符号由Y个样值组成,由于时延扩展,接收端将会有和信道冲激响应持续时间相对应的前L (L %产生随机二进制数据:baseband_out = round(rand(1,baseband_out_length);convert_matrix=reshape(baseband_out,bits_per_symbol,length(baseband_out)/bits_per_symbol);for k = 1:(length(baseband_out)/bits_per_symbol) modulo_baseband(k) = 0; for i = 1:bits_per_symbolmodulo_baseband(k)=modulo_baseband(k)+convert_matrix(i,k)*2(bits_per_symbol-i);endend% 串并转换carrier_matrix = reshape(modulo_baseband, carrier_count, symbols_per_carrier);% 对每一个载波的符号进行差分编码carrier_matrix = zeros(1,carrier_count);carrier_matrix;for i = 2:(symbols_per_carrier + 1) carrier_matrix(i,:)=rem(carrier_matrix(i,:)+carrier_matrix(i-1,:),2bits_per_symbol);end% 把差分符号代码转换成相位carrier_matrix = carrier_matrix * (2*pi)/(2bits_per_symbol);% 把相位转换成复数X,Y = pol2cart(carrier_matrix, ones(size(carrier_matrix,1),size(carrier_matrix,2);complex_carrier_matrix = complex(X,Y);% 分配载波到指定的IFFT位置IFFT_modulation = zeros(symbols_per_carrier + 1, IFFT_bin_length);IFFT_modulation(:,carriers) = complex_carrier_matrix;IFFT_modulation(:,conjugate_carriers) = conj(complex_carrier_matrix);% 画出频域中的OFDM信号代表figure (1)stem(0:IFFT_bin_length-1, abs(IFFT_modulation(2,1:IFFT_bin_length),b*-)grid onaxis (0 IFFT_bin_length -0.5 1.5)ylabel(Magnitude)xlabel(IFFT Bin)title(OFDM Carrier Frequency Magnitude)% figure (2)plot(0:IFFT_bin_length-1, (180/pi)*angle(IFFT_modulation(2,1:IFFT_bin_length), go)hold onstem(carriers-1, (180/pi)*angle(IFFT_modulation(2,carriers),b*-)stem(conjugate_carriers-1, (180/pi)*angle(IFFT_modulation(2,conjugate_carriers),b*-)axis (0 IFFT_bin_length -200 +200)grid onylabel(Phase (degrees)xlabel(IFFT Bin)title(OFDM Carrier Phase)% 通过IFFT将频域转化为时域,得到时域信号time_wave_matrix = ifft(IFFT_modulation);time_wave_matrix = time_wave_matrix;%画出一个符号周期的时域OFDM信号figure (3)plot(0:IFFT_bin_length-1,time_wave_matrix(2,:)grid onylabel(Amplitude)xlabel(Time)title(OFDM Time Signal, One Symbol Period)%画出每一个载波对应的时域信号(分离的OFDM信号)for f = 1:carrier_count temp_bins(1:IFFT_bin_length)=0+0j; temp_bins(carriers(f)=IFFT_modulation(2,carriers(f); temp_bins(conjugate_carriers(f)=IFFT_modulation(2,conjugate_carriers(f); temp_time = ifft(temp_bins); figure(4) plot(0:IFFT_bin_length-1, temp_time) hold onendgrid onylabel(Amplitude)xlabel(Time)title(Separated Time Waveforms Carriers)for i = 1:symbols_per_carrier + 1windowed_time_wave_matrix(i,:)=real(time_wave_matrix(i,:).*hamming(IFFT_bin_length);windowed_time_wave_matrix(i,:) = real(time_wave_matrix(i,:);end%串并转换ofdm_modulation=reshape(windowed_time_wave_matrix,1,IFFT_bin_length*(symbols_per_carrier+1);% 画出整个时域OFDMtemp_time = IFFT_bin_length*(symbols_per_carrier+1);figure (5)plot(0:temp_time-1,ofdm_modulation)grid onylabel(Amplitude (volts)xlabel(Time (samples)title(OFDM Time Signal)% 画出频域OFDM信号symbols_per_average = ceil(symbols_per_carrier/5);avg_temp_time = IFFT_bin_length*symbols_per_average;averages = floor(temp_time/avg_temp_time);average_fft(1:avg_temp_time) = 0;for a = 0:(averages-1)subset_ofdm=ofdm_modulation(a*avg_temp_time)+1):(a+1)*avg_temp_time); subset_ofdm_f = abs(fft(subset_ofdm); average_fft = average_fft + (subset_ofdm_f/averages);endaverage_fft_log = 20*log10(average_fft);figure (6)plot(0:(avg_temp_time-1)/avg_temp_time, average_fft_log)hold onplot(0:1/IFFT_bin_length:1, -35, rd)grid onaxis(0 0.5 -40 max(average_fft_log)ylabel(Magnitude (dB)xlabel(Normalized Frequency (0.5 = fs/2)title(OFDM Signal Spectrum)% 上变频,这个模型中我们把经过IFFT运算后OFDM直接发送Tx_data = ofdm_modulation;%信道=% The channel model is Gaussian (AWGN) +Multipath(时延为1) Tx_signal_power = var(Tx_data);linear_SNR = 10(SNR/10);noise_sigma = Tx_signal_power/linear_SNR;noise_scale_factor = sqrt(noise_sigma);noise = randn(1, length(Tx_data)*noise_scale_factor;copy1=zeros(1,length(ofdm_modulation);for i=2:length(ofdm_modulation) copy1(i)=ofdm_modulation(i-1);endRx_Data = Tx_data + noise;%RECEIVE % 根据符号长度和符号数将串行的符号转换为并行的% - 每一列是符号周期Rx_Data_matrix = reshape(Rx_Data, IFFT_bin_length, symbols_per_carrier + 1);%对每一列信号做FFT得到频域信号Rx_spectrum = fft(Rx_Data_matrix);% 画出接收到的OFDM信号频域代表%-1-2-3-4-5-6-7-8figure (7)stem(0:IFFT_bin_length-1, abs(Rx_spectrum(1:IFFT_bin_length,2),b*-)grid onaxis (0 IFFT_bin_length -0.5 1.5)ylabel(Magnitude)xlabel(FFT Bin)title(OFDM Receive Spectrum, Magnitude)figure (8)plot(0:IFFT_bin_length-1, (180/pi)*angle(Rx_spectrum(1:IFFT_bin_length,2), go)hold onstem(carriers-1, (180/pi)*angle(Rx_spectrum(carriers,2),b*-)stem(conjugate_carriers-1, (180/pi)*angle(Rx_spectrum(conjugate_carriers,2),b*-)axis (0 IFFT_bin_length -200 +200)grid onylabel(Phase (degrees)xlabel(FFT Bin)title(OFDM Receive Spectrum, Phase)% 抽取接收信号中有载波的点Rx_carriers = Rx_spectrum(carriers,:);%画出每个接收符号分布图figure (9)Rx_phase_P = angle(Rx_carriers);Rx_mag_P = abs(Rx_carriers);polar(Rx_phase_P, Rx_mag_P,bd);% 计算载波的相位% - 弧度转换为角度% - 归一化相位(0-360)Rx_phase = angle(Rx_carriers)*(180/pi);phase_negative = find(Rx_phase
展开阅读全文