基于matlab的OFDM仿真报告_第1页
基于matlab的OFDM仿真报告_第2页
基于matlab的OFDM仿真报告_第3页
基于matlab的OFDM仿真报告_第4页
基于matlab的OFDM仿真报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验总成绩: 装 订 线报告份数: 西安邮电大学 通信与信息工程学院 专业课程设计B报告专业班级: 通工xx 学生姓名: 秋风羽 学号(班内序号): xxxxxxxx(xx号) 2014 年 4 月 22 日装 订 线指导教师评语: 实 验 成 绩: 指导(辅导)教师 : 一 摘要无线网络是无线通信系统中的一个重要应用,根据网络范围大小可划分为局域网,城域网和广域网。IEEE为无线网络专门制定了相关的标准,802.11和802.16就属于这方面的标准。其中802.11针对范围更小的无线局域网。802.11标准包括802.11a、802.11b、802.11g等一系列标准,各自采用不同的物理层技

2、术,其中802.11a即采用了OFDM技术。本次专业课程设计主要是基于matlab对于整个OFDM系统的模拟,即对前导生成原理、扰码及解扰码、卷积编码及卷积解码、交织与解交织、星座映射与逆映射等一系列模块的软件实现。其目的是让我们能对OFDM技术有更加全面的认识。二英文摘要The Wireless network that is a wireless communication system is an important application, depending on the size of network can be classified as LAN, MAN and WAN. I

3、EEE specially formulated relevant standards for the wireless network. Both 802.11 and the 802.16 belong to this. The 802.11 is for a smaller range of wireless LAN. And 802.11 standards including 802.11a, 802.11b, 802.11g and so on. Each one has different physical layer technology. The OFDM technolog

4、y was used by 802.11a. This course design is mainly based on MATLAB to simulate the entire OFDM system, which was consisted of leading principle, scrambling and descrambling, convolution coding and decoding, interleaving and de-interleaving, constellation mapping and inversing constellation mapping

5、and so on by making software. Its purpose is to allow us to meet OFDM technology for a more comprehensive understanding.三 引言OFDM是一种特殊的多载波频分复用(FDM)技术。在传统的多载波频分复用系统中,各个子信道采用不同的载波并行传送数据,子载波之间间隔足够远,采用隔离带来防止频谱重叠,故频谱效率很低。在均衡器未被采用以前,人们就是用这种多载波方式在时间色散信道中进行高速通信的。研究关于实现OFDM的技术很多, 实际应用中的OFDM 复杂度很高。因此, 建立适合自己研究

6、方向的OFDM 模型, 无论是为了理解OFDM 技术的理论,还是对后续的OFDM 与其他技术相结合的研究工作,都有着非常重要意义。也由于它的简单高效,使之成为第四代移动通信中最重要的技术之一。1966年,R.W.Chang分析了在多载波通信系统中如何使经过滤波后带限的子载波保持正交。随后不久B.R.Saltzberg给出了一篇性能分析的文章,他指出在设计一个有效的并行传输系统时,应该把注意力更多地集中在减少相邻信道的串扰上,而不是使各个独立的信道工作得更好,因为此时信道串扰是造成信号失真的主要因素。1971年,S.B.Weinstein和P.M.Ebert提出用傅立叶变换(DFT)进基带OFD

7、M调制和解调。通过DFT进行OFDM基带调制和解调避免了生成多个子载波和多个窄带带通滤波器,使系统的模拟前端由多个变为一个,同时由于DFT可以用FFT来快速实现,这进一步降低了系统实现的复杂度。为对抗符号间干扰和载波闻干扰,他们提出在符号间插入一段空白时隙作为保护间隔。他们的系统虽然没有能在色散信道中获得很好的子载波正交性,但对OFDM仍是一个很大贡献。另一个重要贡献来自A.Peled和A.Rmz,他个人提出了采用循环前缀来解决色散信道中子载波间的正交性问题。当信道响应长度小于循环扩展时,循环前缀的存在使信号与信道响应的线性卷积变成循环卷积,从而使色散OFDM信号可以通过频域单点均衡进行去相关

8、。当然,循环扩展的引入会导致少量的信噪比损失。由于无线信道的多径传播会使宽带OFDM信号产生频率选择性衰落,导致各个子信道上的信噪比不同,因此实际的OFDM系统都是与交织、纠错编码结合在一起,形成编码的正交频分复用(COFDM)。交织和编码能够使OFDM系统获得良好的频率和时间二维分集。现代移动通信发展至今,已经经历了三代,而3G 的后续技术也在加速研究中。目前,国际标准化组织正在推动无线传输技术从2Mb/s 的传输速率向100Mb/s 和1000Mb/s 的目标发展,对4G 的定义也已经逐渐清晰起来。基本上可以确定,OFDM/OFDMA、MIMO和智能天线等技术将成为4G 的主流技术。 扰码

9、卷积编码交织数字调制插入导频串/并解交织数字解调信道校正并/串串/并并/串IFFTFFT插入循环前缀和加窗数/模RF TX信道RF RX模/数定时和频率同步去循环前缀PPDU结构:IEEE802.11a关于无线局域网的规定中,其物理层汇聚协议PLCP采用的是OFDM调制的技术标准。802.11a对OFDM的帧结构作了具体的规定。如下图:四 软件设计1.802.11a前导生成原理前导序列由短训练序列和长训练序列组成,流程图如下:开始 去掉子载波中唯一一个0得到调制因子L去掉子载波序列7连0中的一个将调制因子L进行逆傅里叶变换得到长训练序列long能量归一化S = (13/6)(1/2)* S;取

10、long中64个点的33-64个,再将64点重复两次加窗得到long_strS调用傅里叶逆变换得到短训练序列short将short(1:16)重复10次再加窗得到short_str组合得到Preamble = short_str,long_str结束2.扰码及解扰码扰码的目的是抑制线路码中的长连“0” 和长连“1” ,便于从线路信号中提取时钟信号。(1)减少连“0”或连“1”长度,保证接收机能提取到位定时信号。(2)使加扰后的信号频谱更能适合基带传输。(3)保密通信需要。流程图如下:开始 初始化加扰器,设置为全1将移位寄存器4和7中数据进行异或存入t3中将数组及寄存器右移,并将t3中数据送入s

11、(1,1)输出移位寄存器s(1,1)中数据于scramble(1,i)得到扰码scramble并与数据加扰结束3.卷积编码与卷积解码若以(n,k,m)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n为每个k元组码字对应的卷积码输出n元组码字,m为编码存储度,也就是卷积编码器的k元组的级数,称m+1= K为编码约束度m称为约束长度。卷积码将k元组输入码元编成n元组输出码元,但k和n通常很小,特别适合以串行形式进行传输,时延小。与分组码不同,卷积码编码生成的n元组元不仅与当前输入的k元组有关,还与前面m-1个输入的k元组有关,编码过程中互相关联的码元个数为n*m。卷积码的纠错性能随m的增加

12、而增大,而差错率随N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。卷积编码与卷积解码流程图: 卷积: 解卷积: 开始开始 g0 = 1 0 1 1 0 1 1g1 = 1 1 1 1 0 1 1输入寄存器结构参数将数据分别跟g0,g1卷积后放入OutA,OutB调用维特比函数将OutA,OutB中的数据按顺序放入新数组中输出解出的数据结束将新数组按行输出结束4.交织与解交织交织其实是通信系统中进行数据处理而采用的一种技术,交织器从其本质上来说就是一种实现最大限度的改变信息结构而不改变信息内容的器件。从传统上来讲就是使信道传输过程中所突发产生集中的错误最大限度的分散化。因

13、此,具体来讲也许数据置乱器这个称呼更加符合交织器其本质,会让人们对交织器的基本工作机理有更多的感性认识。First Permutationi = s ´ floor(j/s) + j + floor(16 ´ j/ NCBPS) mod s, j = 0, 1, ., NCBPS 1s = max(NBPSC/2 , 1) Second Permutationk = 16 ´ i (NCBPS 1 )floor(16 ´ i / NCBPS), i = 0, 1, ., NCBPS 1 流程图如下:交织: 解交织: 开始开始 接收数据将输入的数据补0到4

14、8的整倍数在将数组变为48行的矩阵进行第一次解置换进行第一次置换进行第二次解置换并输出解出的数据进行第二次置换并输出结束结束5.星座映射及逆映射QAM是英文Quadrature Amplitude Modulation的缩略语简称,意为正交幅度调制,是一种数字调制方式。116QAM是指包含16种符号的QAM调制方式。16QAM 是用两路独立的正交 4ASK 信号叠加而成,4ASK 是用多电平信号去键控载波而得到的信号。它是 2ASK 体制的推广,和 2ASK 相比,这种体制的优点在于信息传输速率高。正交幅度调制是利用多进制振幅键控(MASK)和正交载波调制相结合产生的。16 进制的正交振幅调制

15、是一种振幅相位联合键控信号。16QAM 的产生有 2 种方法:(1)正交调幅法,它是有 2 路正交的四电平振幅键控信号叠加而成;(2)复合相移法:它是用 2 路独立的四相位移相键控信号叠加而成。16QAM 信号采取正交相干解调的方法解调,解调器首先对收到的 16QAM 信号进行正交相干解调,一路与 cos c t 相乘,一路与 sin c t 相乘。然后经过低通滤波器,低通滤波器 LPF 滤除乘法器产生的高频分量,获得有用信号,低通滤波器LPF 输出经抽样判决可恢复出电平信号。流程图如下: 映射: 逆映射: 开始开始 将接收的数据补0到16的整数倍再变成一个4列的矩阵构建16QAM星座图将复数

16、映射到星座图上得实数位置到将2进制变为16进制的整数并构建16QAM星座图将实数转化为四位2进制数将数据映射到星座图上成为复数将2进制数按行输出结束将新数组输出结束五源代码1.802.11前导生成原理function LeaderSequence = LS()S = 0, 0, 1+i, 0, 0, 0, -1-i, 0, 0, 0, 1+i, 0, 0, 0, -1-i, 0, 0, 0, -1-i, 0, 0, 0, 1+i, 0, 0, 0, 0, 0, 0, -1-i, 0, 0, 0,. -1-i, 0, 0, 0, 1+i, 0, 0, 0, 1+i, 0, 0, 0, 1+i 0

17、, 0, 0, 1+i, 0, 0;L = 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1,. 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1;S = (13/6)(1/2)* S;short = IFFT64(S);shortcp = short(1:16);short = shortcp;for f = 1:9 short = short,

18、shortcp;endshort_str = short;long = IFFT64(L);long1 = long(33:64);long2 = long(1:64);long_str = long1,long2,long2;preamble = short_str,long_str;preamble(:,161) = preamble(:,161)*0.5 + preamble(:,1)*0.5;%¼Ó´°preamble(:,1) = preamble(:,1)*0.5;LeaderSequence = preamble;2.扰码及解扰码funct

19、ion SCRAMB = scramb_des( input_data )S = 1, 1, 1, 1, 1, 1, 1;scramb = zeros(1, (16*8-1); Fscramble = zeros(1, length(input_data); for i = 1:(16*8-1) t1 = S(1, 7); t2 = S(1, 4); t3 = xor(t1, t2); S = circshift(S, 0, 1); S(1, 1) = t3; scramb(1,i) = t3;endscramble_copy = repmat(scramb, 1, ceil(length(i

20、nput_data)/length(scramb);scramble_num = scramble_copy(1: length(input_data);for j = 1: length(input_data) Fscramble(:, j) = xor(scramble_num(:, j), input_data(:, j);endSCRAMB = Fscramble;3.卷积编码与卷积解码function CONVOLUTION = Convolution( input_data )g0 = 1 0 1 1 0 1 1;g1 = 1 1 1 1 0 0 1;DataNum = lengt

21、h(input_data);OutA = mod(conv(input_data, g0), 2);OutB = mod(conv(input_data, g1), 2);NewData2 = zeros(1, length(OutA)+length(OutB);j = 1;for i = 1:length(OutA) NewData2(1, j) = OutA(1, i); NewData2(1, j+1) = OutB(1, i); j = j+2;endCONVOLUTION = NewData2; function DECONVO = DeConvo( input_data )trel

22、lis = poly2trellis(7, 133 171);tblen = 5;Temp = vitdec(input_data, trellis, tblen, 'cont', 'hard' );·¨DECONVO = Temp( 6 : length(Temp)-1 );4.交织与解交织function INTER = InterleavedCod( input_data )DataNum = length(input_data);Ncbps = 48;Nbpsc = 1;Mod = mod(DataNum, Ncbps);t = Nc

23、bps-Mod;if t=48 t = 0;endData = input_data;NewD = zeros(1, DataNum+t);Nend = zeros(1, DataNum+t);InputD = zeros(1, DataNum+t);InputD(1:DataNum) = Data(1:DataNum);Data = InputD;DevideNum = (DataNum+t)/Nbpsc;Devide = reshape(Data, Nbpsc, DevideNum)' Devide = reshape(Devide, 1, );Data = Devide;s =

24、max(Nbpsc/2, 1);t = length(Data);for k = 0:length(Data)-1 t1 = Data(1, k+1); i = (Ncbps/16)*(mod(k,16)+floor(k/16); NewD(1, i+1) = t1;end for i =0:length(NewD)-1 t1 = NewD(1,i+1); j = s*floor(i/s)+mod(i+Ncbps-floor(16*i/Ncbps), s); Nend(1, j+1) = t1;endINTER = Nend; function DEINTER = DeInter( input

25、_data )Data = input_data;DataNum = length(Data);Ncbps = 48;Nbpsc = 1;Mod = mod(DataNum, Ncbps); NewD = zeros(1, DataNum); Nend = zeros(1, DataNum); s = max(Nbpsc/2, 1);for j = 0:DataNum-1 t1 = Data(1, j+1); i = s*floor(j/s)+mod(j+floor(16*j/Ncbps),s); NewD(1, i+1) = t1;endfor i =0:length(NewD)-1 t1

26、= NewD(1,i+1); k = 16*i-(Ncbps-1)*floor(16*i/Ncbps); Nend(1, k+1) = t1;endDEINTER = Nend;5.星座映射及逆映射function CM = ConstellationMap(input_data)Data = input_data;DataNum = length(Data);Mod = mod(DataNum, 16);DataTem = zeros(1, DataNum+(16-Mod);DataTem(1:DataNum) = Data;DataCol4 = reshape(DataTem, 4, )&

27、#39;DataHexa = (DataCol4*8;4;2;1+1)'DataHxaNum = length(DataHexa);x = -3 -1 3 1;y = -3 -1 3 1;z = zeros(1,16);k = 1;for k1 = 1:4 for k2 = 1:4 z(1, k) = x(1,k1)+y(1,k2)*j; k = k+1; endendz = reshape(z, 1, 16);for i = 1:DataHxaNum DataTem(1, i) = z(1, DataHexa(1, i);endscatterplot(DataTem(1:DataHxaNum);DataTem = DataTem*(1/sqrt(10);CM = DataTem(1:DataHxaNum);function DCM = DeConstellationMap(input_data)Data = input_data;DataNum = length(Data);Data = Data*(sqrt(10);NewData = zeros(1, DataN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论