版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、移动通信系统课程设计报告OFDM系统仿真目录移动通信系统课程设计报告 1(一)题目要求: 2(二)相关原理: 21)OFDM 22)QPSK调制: 33)导频与均衡: 34)循环前缀: 35)分组交织: 4(三)基本思路: 4(四)结果: 101)软解码与硬解码情况下不同信噪比的误码率: .102)不同信噪比下译码相位图: 11(五)总结体会: 12(六)分工合作: 13(七)程序代码: 13(一)题目要求:1)0FDM12路传输;2)QPSI调制3)AWG信道4)3径或4径瑞利衰落信道(二)相关原理:1) OFDM将信道分成若干正交子信道,将高速数据信号转换成并行 的低速子数据流,调制到在每
2、个子信道上进行传输。 正交信号 可以通过在接收端采用相关技术来分开, 这样可以减少子信道 之间的相互干扰(ISI)。每个子信道上的信号带宽小于信道的 相关带宽,因此每个子信道上可以看成平坦性衰落,从而可以消除码间串扰,而且由于每个子信道的带宽仅仅是原信道带宽 的一小部分,信道均衡变得相对容易。OFDtvt子载;滅频谱-8000-6000-400020000:2000400060008000频率2) QPSI调制:将每两个相连比特组在一起形成双比特码元,它的四种状态用4个不同的相位表示;3) 导频与均衡:在OFDM信息序列中插入已知的导频序列x n ,通过信道后将其提取得yn,做频域除法得传输函
3、数HZ=XZ,再通过线性插值后得到每个信道频率响应,均衡滤波传输函数1Hz4) 循环前缀:循环前缀(Cyclic Prefix, CP)是将OFDM符号尾部的信号搬移到头部构成的。用来消去码间干扰,通常取长度Tg( 为信道冲激响应持续时间)5)分组交织:为了解决成串的比特差错问题,采用了交织技术:把一条 消息中的相 继比特分散开的方法,即一条信息中的相继比特 以非相继方式发送,这样即使在传输过程中发生了成串差错, 恢复成一条相继比特串的消息时,差错也就变成单个(或者长 度很短)的错误比特,这时再用信道纠正随机差错的编码技术(FEC消除随机差错。纠错数bmax D t(三)基本思路:信号产生卷积
4、编码交织(32)QPSK调制(96路)插入导频信 号(32路)VOFDM调制 (IFFT)插入循环前 缀(1/4长度)并串转换AWGN信道3径瑞利信道1串并转换->OFD M解调 (FFT)->取导频信道估计与 均衡并串转换QPSK解调一 解交织 ->卷积译码误码率统计说明:1)编码:使用216卷积码;相关代码:%卷积编码 %ori_data_t_ 仁reshape(ori_data_t, numn f,2*cha nn ell); %58*192 ori_data_t_2=zeros( num,2*cha nn ell);%128*192for i = 1:2*cha nn
5、 ellseq = ori_data_t_1(:,i):seq_code = en code216(seq):ori_data_t_2(:,i) = seq_code;endori_data=resh ape(ori_data_t_2,1,2* nu m*cha nn ell);%1*24576编码函数:fun ctio n code=e ncode216(m)%输入信息序列%g1=1,0,0,0,0,0;g2=1,1,0,0,1,1;trel=poly2trellis(6,40 63);%定义网格m仁m,0,0,0,0,0,0;code=c onven c(m1,trel);%卷积码编码2)
6、交织:交织深度为32;相关代码:%编码交织 %ori_data1=reshape(ori_data,deep,(2* nu m*cha nn ell)/deep)' %768*32ori_data2=reshape(ori_data1,1,2* nu m*cha nn ell);%1*245763) QPSK调制:转换为96路相位信号(复数);代码:%QPS调制 % ori_data_0=reshape(ori_data2,2,channell*num); %拆分成两行 12288 列ori_data_ 仁 bi2de(ori_data_0','left-msb'
7、;)' %QPSK的未调制数据12288列M=4的数据de_OFDM_1=modem.pskmod(4); % 生成调制器对象,设置 qpsk调制 QPSK_data=modulate(de_OFDM_1,ori_data_1); %1*12288复数形式%channel_data=reshape(QPSK_data,channell,num); %拆分成 128 行,每行10个复数128*10channel_data=reshape(QPSK_data,num,channell); % 拆分成 128 行,每行96个复数128*964) 插入导频:32路已知序列;代码:%插入导频信号
8、 % pliot_ 仁2*ra nd(128,32);pliot_2=2*ra nd(128,32); %插入的导频信号,实数pliot=pliot_1+pliot_2*1i; %插入的导频信号,复数cha nn el_data_ 1= zeros(128,128);for i = 0:31cha nn el_data_1(:,4*i+1)=pliot(:,i+1);cha nn el_data_1(:,4*i+2)=cha nn el_data(:,3*i+1);cha nn el_data_1(:,4*i+3)=cha nn el_data(:,3*i+2);cha nn el_data_
9、1(:,4*i+4)=cha nn el_data(:,3*i+3);end5) OFDM调制:使用IFFT;相关代码:%OFD信号产生 %IFFT_data=zeros(128,128);for i = 1:128IFFT_data(:,i)=ifft(cha nn el_data_1(:,i),128); %128*128ifft数据endr_ifft_data=real(IFFT_data); %实部 128*128i_ifft_data=imag(IFFT_data); %虚部 128*1286) 插入循环前缀:这里选取长度为32;相关代码:%加入循环前缀 %r_data=r_ifft
10、_data( num-nu m/4+1: num,:);r_ifft_data; %保护间隔取传送数据的四分之一i_data=i_ifft_data( num-n um/4+1: nu m,:);i_ifft_data; %160*1287) 并串转换:转换成1路;代码:%并串转换 %r_out=reshape(r_data,1,( num+n um/4)*cha nn el);%1*1600i_out=reshape(i_data,1,( nu m+num /4)*cha nn el); %1*1600 data=r_out+i_out.*1i;8) AWGN加入信噪比-1020dB的噪声;
11、代码:%AWG信道 % data_AWGN=awg n(data,SNR,'measured') ;% 加入噪声9) 串并转换:转换成128路;代码: %串并转换 % r_rcv_data1=reshape(r_rcv_data, num+nu m/4,cha nn el);i_rcv_data1=reshape(i_rcv_data, num+nu m/4,cha nn el);10) OFDM军调:FFT快速算法;代码:%OFD解调 FFT% de_OFDM_data=zeros(128,128);for i = 1:128de_OFDM_data(:,i)=fft(rcv
12、_data(:,i),128); %128*128矩阵end11) 去导频:取出过信道后导频序列y n ;12) 信道估计:计算收到每一路导频序列的 Yz,已知导频序列的Xz,得到信道H z二些,利用线性插值得到每一路Xz信息序列的Hi z ;13) 均衡:将每一路信号Xiz Eiz,Eiz 二,得到均衡后Hiz的信号频域YJz,然后得到y'(n);代码:%信道估计与均衡(新的)depliot=zeros(128,32);for i = 0:31depliot(:,i+1)=de_OFDM_data(:,4*i+1);enddepliot_ 1= zeros(128,32);depli
13、ot_2=zeros(32,128); de_OFDM_0=zeros(128,32);for i = 1:32depliot_1(:,i)=pliot(:,i)./depliot(:,i);% depliot_2(i,:)=reshape(depliot_1(:,i),1,128);%x=1:128;%hx=1:128;%de_OFDM_0(:,i)=i nterp1(x,depliot_2(i,:),hx,'pchip'); %线性插值endde_OFDM_仁zeros(128,128);for i= 0:30de_OFDM_1(:,4*i+1)=depliot_1(:,i
14、+1);de_OFDM_1(:,4*i+2)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i +1)/4;de_OFDM_1(:,4*i+3)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1)/2;de_OFDM_1(:,4*i+4)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1)/4*3;endde_OFDM_1(:,125)=depliot_1(:,32);de_OFDM_1(:,126)=depliot_1(:,32);de_OF
15、DM_1(:,127)=depliot_1(:,32);de_OFDM_1(:,128)=depliot_1(:,32);de_OFDM_2=de_OFDM_data.*de_OFDM_1;还原数据de_OFDM_3=;for i = 2:4:126de_OFDM_3=de_OFDM_3,de_OFDM_2(:,i:i+2); % 提取出 128*96 数据部分end14) 并串转换:变为96路信息序列;代码:%并串转换 % de_OFDM_data3=reshape(de_OFDM_3,1,cha nnell*nu m); %128*9615) QPSK解调:还原调制前的数据;代码:%QPS
16、解调 % de_OFDM_data3_real=real(de_OFDM_data3);de_OFDM_data3_imag=imag(de_OFDM_data3);de_OFDM_4=zeros(1,2*le ngth(de_OFDM_data3_real);%求方差 %sigma=sum(abs(real(de_OFDM_data3)-real(QPSK_data)+abs(imag(de_OFDM_data3)-imag(QPSK_data)/(2*le ngth(de_OFDM_data3_real);fori=1:le ngth(de_OFDM_data3_real)%求判决到各个位
17、置的概率%re_f1= normpdf(de_OFDM_data3_real(i),-1,sigma);re_0=no rmpdf(de_OFDM_data3_real(i),0,sigma);re_仁no rmpdf(de_OFDM_data3_real(i),1,sigma);im_f1= normpdf(de_OFDM_data3_imag(i),-1,sigma);im_0=normpdf(de_OFDM_data3_imag(i),0,sigma);im_1= no rmpdf(de_OFDM_data3_imag(i),1,sigma);de_OFDM_4(2*i-1)=(re_f
18、1+re_0*im_f1/(im_f1+im_1)/(re_f1+re_1+re_0)5de_OFDM_4(2*i)=(im1+im_1)/(im_f1+im_1+im_0);enddata_last_0=de_OFDM_4; %1*2457616) 解交织;代码:%解交织 %data_last_0_0=reshape(data_last_0,(2* nu m*cha nn ell)/deep,deep):data_last_0_ 仁reshape(data_last_0_0,1,2* nu m*cha nn ell);17) 卷积译码:分别使用维特比译码,软解码,硬解码方法,得到译码结果;代
19、码:%卷积码译码 %data_last_ 仁reshape(data_last_0_1, num,cha nn ell*2);%128*256data_last_2=zeros( numn f,cha nn ell*2);%58*256for k = 1:2*cha nn ellseqO = data_last_1(:,k):seq0=1-2.*seq0;seq0_code = decode216(seq0,1):data_last_2(:,k) = seq0_code;enddata_last = reshape(data_last_2,1,2* numn f*cha nn ell); %1
20、*14848译码函数:function decode=decode216(m,k)%m为码字序列,硬判决译码输入k为1,软判决译码输入k为0trel=poly2trellis(6,40 63);%定义网格tblen=35;%回朔长度,为约束长度的5倍if(k=1)%硬判决译码hcode=m<0;decode1=vitdec(hcode,trel,tble n, 'term','hard');else%软判决量化译码(3比特量化)in dex,hcode=qua ntiz(m,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,7,6,5,4,
21、3,2,1,0);decode1=vitdec(hcode,trel,tble n, 'term','soft',3);enddecode=decode1(1:le ngth(decode1)-6);18)误码率统计;代码:%误码率统计 % error_ num=sum(abs(data_last-ori_data_t);bit_error_rate(1,(SNR-SNR_mi n)/2+1)= error_ num/N; %误码率sn r(1,(SNR-SNR_mi n)/2+1)=SNR;endstem(s nr,-10*log10(bit_error_ra
22、te),'-*','L in eStyle',' non e');xlabel('SNR');ylabel('BER');title('Performa nee of OFDM un der the cha nnel AWGN')(四) 结果:1)软解码与硬解码情况下不同信噪比的误码率:Performa nee of OFDM un der the cha nnel AWGN0-0.5-1.5-2-2.5 -3-3.5-4-4.5-568 10 12soft decode 十 hard decode
23、SNR(dB)由上图可以看出,信号误码性能随着信噪比增加而增加, 当信噪比达到10dB的时候误码率已经低于 0.01,信噪比 达到16dB时误码率已经达到-5量级,再之后出现相关波 动;另外,由于此次用于测试的数据只有24576个,所以误 码率更高的时候误码率已经变为 0。同时,在低信噪比时,软解码与硬解码性能差别不大; 在信噪比达到8dB之后,软解码性能明显比硬解码好;2)不同信噪比下译码相位图:Scatter plot2015oSNR=(dB)Scatter plotLLlPPSNR=f(d助eluLakaauQo5-20-100In-Phase5o5-o2-prnrardauQ-2-3-
24、4-5102054321 0 1In-PhaseIn-Phase由上图可以看出,在不同信噪比下,相位图译码结果不一样;信噪比越大,相位译码越清晰;(五)总结体会:1)这次课设时间周期较长,一边学习一边编写,前后花了好几周;最开始搭建基本框架比较顺利,通过对课程的理解,成功地理清了思路;2)编写导频和均衡部分时,由于书上讲得不是很透彻,网上查阅资料也纷繁复杂,几乎陷入了瓶颈;后来慢慢摸索,询问老师,小组讨论,同学交流;慢慢知道了自己的问题所在,混淆了频域和时域;3)小组讨论后将程序分工,成员各自负责不同部分,有问题时一起交流讨论,这次团队协作非常愉快,并且高效;4)从最开始做的无从下手到现在基本
25、理解吃透,经历了一段 时间。中间也询问了很多人,查阅了许多资料;非常感谢 老师的指导,也希望李老师以后讲解可以再耐心一些;(六)分工合作:我们小组成员有倪鸿志,王旭,周裔欢;这次我(倪鸿志) 负责的是OFDM系统,信道的编写,王旭负责了编码译码部分, 周裔欢写了 QPSK调制,剩下的均衡,导频,软译码是大家一 起商量完成的。(七)程序代码:1)主程序:clc;clear all;嫁数设置 %p=0.5; % 设定p值cha nn el=128; nu m=128;cha nn ell=96;deep=32;%交织深度numnf=num/2-6; % 每一组信息位 bit,注意复数包含两组,58
26、N=cha nn ell*2* num_inf;SNR_mi n=6;SNR_max=20;echo_ num=8;ts=1e-5;fd=0;tau=ts 3*ts 8*ts;pdb=0 -3 -8 ;%采样时间为 1us,无多普勒频移bit_error_rate=zeros(echo_ num,(SNR_max-SNR_mi n)/2+1);sn r=zeros(1,(SNR_max-SNR_mi n) /2+1); %信噪比矩阵初始化for SNR=SNR_mi n:2:SNR_maxfor echo=1:echo_ num;洌始信号产生 % ori_data=ra nd(1,N);ori
27、_data_t=ori_data<p; %生成伯努利信息序列1*11136喘积编码 %ori_data_t_ 1=reshape(ori_data_t, numn f,2*cha nn ell); %58*192ori_data_t_2=zeros( nu m,2*cha nn ell);%128*192for i = 1:2*cha nn ellseq = ori_data_t_1(:,i)'seq_code = en code216(seq):ori_data_t_2(:,i) = seq_code;endori_data=reshape(ori_data_t_2,1,2*
28、nu m*cha nn ell);%1*24576%编码交织 %ori_data1=reshape(ori_data,deep,(2* nu m*cha nn ell)/deep)' %768*32 ori_data2=reshape(ori_data1,1,2* nu m*cha nn ell);%1*24576%QPS调制 % ori_data_0=reshape(ori_data2,2,cha nn ell* nu m); % ori_data_ 1= bi2de(ori_data_0','left-msb')'%QPSK列M=4的数据de_OFD
29、M_1=modem.pskmod(4);设置qpsk调制QPSK_data=modulate(de_OFDM_1,ori_data_1);%cha nn el_data=reshape(QPSK_data,cha nn ell ,nu m); %个复数128*10cha nn el_data=reshape(QPSK_data ,nu m,cha nn ell); %个复数128*96拆分成两行12288列的未调制数据12288生成调制器对象,%1*12288拆分成拆分成128128复数形式行,每行10行,每行96満入导频信号 % pliot_ 仁2*ra nd(128,32);pliot_2
30、=2*ra nd(128,32); %插入的导频信号,实数pliot=pliot_1+pliot_2*1i; %插入的导频信号,复数cha nn el_data_ 仁 zeros(128,128);for i = 0:31cha nn el_data_1(:,4*i+1)=pliot(:,i+1);cha nn el_data_1(:,4*i+2)=cha nn el_data(:,3*i+1);cha nn el_data_1(:,4*i+3)=cha nn el_data(:,3*i+2);cha nn el_data_1(:,4*i+4)=cha nn el_data(:,3*i+3);
31、end%OFD信号产生 %IFFT_data=ifft(cha nn el_data); %128*10ifft数据IFFT_data=zeros(128,128);for i = 1:128IFFT_data(:,i)=ifft(cha nn el_data_1(:,i),128);%128*128ifft数据endr_ifft_data=real(IFFT_data); %实部 128*128i_ifft_data=imag(IFFT_data); %虚部 128*128%加入循环前缀 %r_data=r_ifft_data( num-nu m/4+1: nu m,:);r_ifft_da
32、ta; %保护间隔取传送数据的四分之一i_data=i_ifft_data(num-num/4+1:num,:);i_ifft_data; %160*128骈串转换 %r_out=reshape(r_data,1,( num+nu m/4)*cha nn el); %1*1600 i_out=reshape(i_data,1,( num+nu m/4)*cha nn el); %1*1600data=r_out+i_out.*1i;%AWGN 道 %data_AWGN=awg n(data,SNR,'measured') ;% 力口入噪声%瑞利信道 %cha n = rayle
33、ighcha n(ts,fd,tau,pdb);ru_data = filter(cha n,data_AWGN);% % % % %艰收信号 % r_rcv_data=real(ru_data);i_rcv_data=imag(ru_data);%l并转换 %r_rcv_data1=reshape(r_rcv_data, num+nu m/4,cha nn el);i_rcv_data1=reshape(i_rcv_data, num+nu m/4,cha nn el);眩前缀 %r_rcv_data2=r_rcv_data1( nu m/4+1: num+nu m/4,:);i_rcv_d
34、ata2=i_rcv_data1( nu m/4+1: num+nu m/4,:); rcv_data=r_rcv_data2+i_rcv_data2*1i;%OFD解调 FFT% de_OFDM_data=zeros(128,128);for i = 1:128de_OFDM_data(:,i)=fft(rcv_data(:,i),128); %128*128矩阵end%言道估计与均衡(新的)depliot=zeros(128,32);for i = 0:31depliot(:,i+1)=de_OFDM_data(:,4*i+1);enddepliot_ 1= zeros(128,32);d
35、epliot_2=zeros(32,128);de_OFDM_0=zeros(128,32);for i = 1:32depliot_1(:,i)=pliot(:,i)./depliot(:,i);endde_OFDM_1=zeros(128,128);for i= 0:30de_OFDM_1(:,4*i+1)=depliot_1(:,i+1);de_OFDM_1(:,4*i+2)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1)/4;de_OFDM_1(:,4*i+3)=depliot_1(:,i+1)+(depliot_1(:,i+2)
36、-depliot_1(:,i+1)/2;de_OFDM_1(:,4*i+4)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1)/4*35endde_OFDM_1(:,125)=depliot_1(:,32);de_OFDM_1(:,126)=depliot_1(:,32);de_OF DM_1(:,127)=depliot_1(:,32);de_OFDM_1(:,128)=depliot_1(:,32);de_OFDM_2=de_OFDM_data.*de_OFDM_1;还原数据de_OFDM_3=;for i = 2:4:126 de_O
37、FDM_3=de_OFDM_3,de_OFDM_2(:,i:i+2); % 提取出 128*96 的数据部分 end骈串转换 %de_OFDM_data3=reshape(de_OFDM_3,1,cha nn ell* nu m); %128*96%QPS解调 %h1 = modem.pskdemod(4);%de_QPSK_data=demodulate(h1,de_OFDM_data3); %demodata=de2bi(de_QPSK_data,'left-msb')'de_OFDM_data3_real=real(de_OFDM_data3);de_OFDM_d
38、ata3_imag=imag(de_OFDM_data3);de_OFDM_4=zeros(1,2*le ngth(de_0FDM_data3_real);%求方差 %sigma=(sum(de_OFDM_4-ori_data)/(2*le ngth(de_OFDM_data3_real)A2;for i=1:le ngth(de_OFDM_data3_real)%求判决到各个位置的概率 %re_f1=n ormpdf(de_OFDM_data3_real(i),-1,sigma);re_0=normpdf(de_OFDM_data3_real(i),0,sigma);re_1=n ormpd
39、f(de_OFDM_data3_real(i),1,sigma);im_f1=n ormpdf(de_OFDM_data3_imag(i),-1,sigma);im_0=normpdf(de_OFDM_data3_imag(i),0,sigma);im_1= no rmpdf(de_OFDM_data3_imag(i),1,sigma);de_OFDM_4(2*i-1)=(re_f1+re_O*im_f1/(im_f1+im_1)/(re_f1+re_1+re_O); de_OFDM_4(2*i)=(im_f1+im_1)/(im_f1+im_1+im_O);enddata_last_0=de_OFDM_4; %1*24576%解交织 %data_last_0_0=reshape(data_last_0,(2* nu m*cha nn ell)/deep,deep)'data_last_0_ 仁 reshape(data_last_0_0,1,2* nu m*cha nn ell);喘积码译码 %data_l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南汽车工程职业学院单招职业技能测试模拟测试卷附答案
- 2026年汽车电工考试题库完整答案
- 2026年川北幼儿师范高等专科学校单招职业适应性测试模拟测试卷及答案1套
- 2026安徽合肥海恒控股集团有限公司招聘18人笔试备考试题及答案解析
- 2026年度保密员资格考试及一套答案
- 2026年桂林山水职业学院单招职业倾向性考试模拟测试卷附答案
- 2025年10月广东广州市天河区金燕幼儿园编外教辅人员招聘1人(公共基础知识)测试题附答案
- 2025年磐石市总工会公开招聘工会社会工作者(8人)考试参考题库附答案
- 2025年甘肃省临夏州和政羊智慧文旅发展有限公司招聘52人笔试备考试题附答案
- 2026河南漯河市召陵区公益性岗位招聘5人笔试备考题库及答案解析
- 2026年广东农垦火星农场有限公司公开招聘作业区管理人员备考题库及参考答案详解
- 肿瘤化疗导致的中性粒细胞减少诊治中国专家共识解读
- 2025年查对制度考核考试题库(答案+解析)
- 云南省2025年普通高中学业水平合格性考试历史试题
- 养老护理服务的法律监管与执法
- 四川省2025年高职单招职业技能综合测试(中职类)汽车类试卷(含答案解析)
- 隧道施工清包合同(3篇)
- 消化系统肿瘤多学科协作(MDT)诊疗方案
- 围手术期疼痛的动物模型与转化研究
- 安泰科技招聘笔试题库2025
- 二级生物安全培训课件
评论
0/150
提交评论