基于matlab的OFDM信号调制解调与多径传输_第1页
基于matlab的OFDM信号调制解调与多径传输_第2页
基于matlab的OFDM信号调制解调与多径传输_第3页
基于matlab的OFDM信号调制解调与多径传输_第4页
基于matlab的OFDM信号调制解调与多径传输_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、基于matlab的OFDM信号调制和多径传输仿真一、 OFDM信号的调制OFDM系统实现的基本步骤为:首先是对待发送的序列进行串并转换,然后进行映射,再对其进行IFFT,即为OFDM信号的调制,加入循环前缀,然后发送。接收端接收到信号首先去掉循环前缀,然后进行FFT,即为OFDM信号的解调,然后在进行并串转换,最后进行判决得到接收序列。1、 产生发送序列:可以通过matlab的round(rand(1,N))命令来产生一个随机的发送序列。2、 串并转换:通过matlab的reshape命令进行串并转换,需要注意的是转换后的结果是以列为单位的,不是以行为单位的。3、 16QAM调制:一般可以用Q

2、PSK、M-QAM等调制方式,本次试验使用16QAM调制方式。在实验中利用所编的qam.m(自己编的)子函数来进行16QAM调制。4、 调制:OFDM信号的调制是利用IFFT来实现的,注意使用matlab的IFFT命令时,是对矩阵的列向量进行变换,而不是对行向量进行变换,这样经过变换后每一行的元素的频率就是一样的,而正好每一行频率都是正交的,而每一行是属于同一个子载波。5、 加入循环前缀:将IFFT变换后的后面gl个元素复制到前面,作为循环前缀,这样能抵抗由于多径时延引起的码间干扰的影响,如果循环前缀的长度大于最大时延扩展,则在理论上说能完全消除码间干扰的影响。6、 并串转换后送入信道进行传输

3、,信号在信道中会产生多径、频偏、相偏等现象。7、 接收端进行串并转换(同(2);8、 去循环前缀;9、 FFT:去循环前缀之后的信号进行FFT,使用matlab的FFT命令;10、 信道估计:在此实验中是利用多径时延信道进行信息传送的,因此信号在信道中传输的过程中会出现多径时延,多普勒频移等现象,所以接收到的信号会产生严重的失真,但是如果我们知道信道对信号的影响,在接收端对信号进行恢复,从而减弱甚至抵消信道对信号的影响。本实验中使用基于LS算法的信道估计。11、 16QAM解调:在实验中利用deqam.m(自己编的)子函数进行16QAM解调。二、 仿真结果1、 产生的发送序列:随机产生的01序

4、列,总数为25600个,此处只画出它的前50个值;图12、 经过符号的星座映射后产生的星座图:该实验中使用16QAM进行数字调制;图23、 发送信号:图34、 接收信号:信号在信道中传输,不仅会受到噪声的影响,还会产生多径时延、多普勒频移等现象,所以信号会出现严重的失真;图45、 信道估计后信号的星座图:图5图66、 接收序列:所得的接收序列应该也是一个长度为25600的01序列,此处只画出它的前50个值;图7多径时延信道对信号的一个重要影响就是会使信号产生多径时延,如图8、9、10分别列出了最大时延为16、33和41个数据单位时信道估计后的信号的矢量图;图8图9图10从图8、9、10可以看出

5、,随着最大时延的增大,信道估计后的信号的矢量图的离散性越来越大。所以说最大时延和误码率有关。图11以上所涉及的都是4-path Rayleigh Fading channel,下图是多径的条数和系统误码率的关系;图12从图12可以看出,在相同的信噪比下,随着信道多径条数的增大,系统的误码率也随之增大。当信道多径的条数一定时,系统的误码率随着信噪比的增大而减小。下面分析系统误码率和信噪比的关系(以多径条数为4为例)图13、14和15分别给出了当系统的信噪比为20,15,10dB时,信道估计后的信号的矢量图;图13图14图15从图13、14、15可以看出,随着系统信噪比的减小,信道估计后的信号与发

6、送信号的区别越来越大。下图为基于4-path Rayleigh Fading channel的系统的信噪比和误码率的关系;图16附:本次实验用到的程序clc;clear all;rand('state',4);SNR=15;%信噪比取值,单位为dbfl=128;%fft的长度Ns=50;%设置一个帧结构中OFDM信号的个数para=128;%设置并行传输的子载波个数sr=250000;%设置符号速率br=sr*2;%设置每个子载波的比特率gl=32;%设置保护时隙的长度an=1,0.7,0.3,0.5;%每条多径的幅度增益% tn=0,1,2,3;%每条路径的相对时延,单位为u

7、swn=rand(1,4).*10;%每条路径的多普勒频移% an=rand(1,4)*2;tn=fix(rand(1,4)*0);% wn=round(rand(1,4)*10);sita=rand(1,4).*2*pi;%设置相偏%*信源发生器*signal=round(rand(1,para*Ns*4);figure(1);stem(signal(1:50);title('产生的序列');%*16QAM调制*x1=qam(signal);x=reshape(x1,para,Ns);figure(2);plot(x,'o');title('产生的复信

8、号的星座图');%*加入训练序列*training_symbols=qam(round(rand(1,para*4);training_symbols=training_symbols'training_symbols_2=cat(2,training_symbols,training_symbols);training_symbols_4=cat(2,training_symbols_2,training_symbols_2);training_symbols_8=cat(2,training_symbols_4,training_symbols_4);x=cat(2,tra

9、ining_symbols_8,x);%*IFFT*y=ifft(x);ich2=real(y);qch2=imag(y);%*插入循环前缀*ich3=ich2(fl-gl+1:fl,:);ich2;qch3=qch2(fl-gl+1:fl,:);qch2;ich4=reshape(ich3,1,(fl+gl)*(Ns+8);qch4=reshape(qch3,1,(fl+gl)*(Ns+8);Trdata=ich4+qch4.*sqrt(-1);%形成复数发射数据%*加入噪声*Trdata_power=var(Trdata)+mean(Trdata)*mean(Trdata);linear_

10、SNR=10(SNR/10);noise_sigma=Trdata_power/linear_SNR;noise_factor=sqrt(noise_sigma);noise=randn(1,length(Trdata)*noise_factor;redata=Trdata+noise;% redata=Trdata;figure(3)plot(redata,'o');title('加入噪声的发送信号');%*建立信道*%*得到信道的响应函数,然后令输入信号和信道响应做卷积得到输出信号q=0:max(tn);h=zeros(4,max(tn)+1);for p=

11、1:4h(p,:)=an(p).*exp(sqrt(-1).*(wn(p).*q).*exp(sqrt(-1)*sita(p).*(dirac(q-tn(p)>1);endh=sum(h);s2=conv(redata,h);s3=s2(1:length(redata);figure(4)plot(s3,'o');title('接收信号')%*接收端,去掉循环前缀,fft*idata=real(s3);qdata=imag(s3);idata1=reshape(idata,fl+gl,Ns+8);qdata1=reshape(qdata,fl+gl,Ns+

12、8);idata2=idata1(gl+1:gl+fl,:);qdata2=qdata1(gl+1:gl+fl,:);Rx_data=idata2+qdata2*sqrt(-1);Rx_carriers=fft(Rx_data);Rx_training_symbols=Rx_carriers(:,(1:8);Rx_carriers=Rx_carriers(:,(9:(Ns+8);%*信道估计*training_symbols=cat(2,training_symbols,training_symbols);training_symbols=cat(2,training_symbols,trai

13、ning_symbols);training_symbols=cat(2,training_symbols,training_symbols);Rx_training_symbols=Rx_training_symbols./training_symbols;Rx_training_symbols_deno=Rx_training_symbols.2;Rx_training_symbols_deno=Rx_training_symbols_deno(:,1)+Rx_training_symbols_deno(:,2)+Rx_training_symbols_deno(:,3)+Rx_train

14、ing_symbols_deno(:,4)+Rx_training_symbols_deno(:,5)+Rx_training_symbols_deno(:,6)+Rx_training_symbols_deno(:,7)+Rx_training_symbols_deno(:,8);Rx_training_symbols_nume=Rx_training_symbols(:,1)+Rx_training_symbols(:,2)+Rx_training_symbols(:,3)+Rx_training_symbols(:,4)+Rx_training_symbols(:,5)+Rx_train

15、ing_symbols(:,6)+Rx_training_symbols(:,7)+Rx_training_symbols(:,8);% Rx_training_symbols_nume=conj(Rx_training_symbols_nume);Rx_training_symbols=Rx_training_symbols_nume./Rx_training_symbols_deno;Rx_training_symbols2=cat(2,Rx_training_symbols,Rx_training_symbols);Rx_training_symbols4=cat(2,Rx_traini

16、ng_symbols2,Rx_training_symbols2);Rx_training_symbols8=cat(2,Rx_training_symbols4,Rx_training_symbols4);Rx_training_symbols16=cat(2,Rx_training_symbols8,Rx_training_symbols8);Rx_training_symbols32=cat(2,Rx_training_symbols16,Rx_training_symbols16);Rx_training_symbols48=cat(2,Rx_training_symbols32,Rx_training_symbols16);Rx_training_symbols50=cat(2,Rx_training_symbols48,Rx_training_symbols2);Rx_carriers=Rx_training_symbols50.*Rx_carriers;%*进行傅里叶变换*ry=reshape(Rx_carriers,

温馨提示

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

评论

0/150

提交评论