您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > OFDM调制解调仿真
实验四OFDM调制解调仿真一、实验目的(1)了解OFDM调制解调的原理。(2)学会用星座图分析系统性能。二、实验内容(1)编写MATLAB程序,实现OFDM系统调制解调。(2)绘制各步骤图形并分析系统特性。三、实验代码1、主代码如下:clearall;closeall;N=input('请输入码元数');SNR=input('请输入信噪比');xx=randint(1,4*N);%原序列figure(1),stem(xx,'.k');%原序列图形title('原序列');B=0;form=1:4:4*NA=xx(m)*8+xx(m+1)*4+xx(m+2)*2+xx(m+3);B=B+1;ee(B)=A;endfigure(2),stem(ee,'.b');title('化为0~15的码元');yy=star(ee,N);figure(3),plot(yy,'.r');%映射后的星座图title('映射后的星座图');ff=ifft(yy,N);%傅里叶反变换N1=floor(N*1/4);N3=floor(N*3/4);N5=floor(N*5/4);figure(4),stem(ff,'.m');title('傅里叶反变换后');forj=1:N1%加循环前缀ss(j)=ff(N3+j);endforj=1:N%变成长度为N*5/4的序列ss(N1+j)=ff(j);endfigure(5),stem(ss,'.k');%画出图形title('加N/4循环前后缀');%ss=wgn(1,N5,0,10,'dBW','complex');ss=awgn(ss,SNR);%加入噪声figure(6),stem(ss,'.m');%加入噪声后的图形title('加入噪声后');zz=fft(ss((N1+1):N5),N);%傅里叶变换figure(7),plot(zz,'.b');%画图title('傅里叶变换后');rr=istar(zz,N);%星座图纠错figure(8),plot(rr,'.r');%画图title('纠错后的星座图');dd=decode(rr,N);%解码figure(9),stem(dd,'.m');%画图title('星座图纠错并解码后');%bb=d2b(dd,N);bb=d2bb(dd,N);%转化为0/1比特流figure(10),stem(bb,'.b');title('转化为0/1比特流后');2、调用的函数:(1)星座图映射%星座图映射functionyy=star(xx,N)B=[-3-3*i,-3-i,-1-3*i,-1-i,-3+3*i,-3+i,-1+3*i,-1+i,3-3*i,3-i,1-3*i,1-i,3+3*i,3+i,1+3*i,1+i];forj=1:Nyy(j)=B(xx(j)+1);end(2)星座图逆映射%星座图逆映射functionrr=istar(zz,N)forj=1:Nif(mod((floor(real(zz(j)))),2)==0)zz1(j)=ceil(real(zz(j)));elsezz1(j)=floor(real(zz(j)));endif(mod((floor(imag(zz(j)))),2)==0)zz1(j)=zz1(j)+ceil(imag(zz(j)))*i;elsezz1(j)=zz1(j)+floor(imag(zz(j)))*i;endrr(j)=zz1(j);end(3)十进制转二进制functionbb=d2b(dd,N)%十进制转二进制forj=1:N*4bb(j)=;endforj=1:4:N*4bb1=dec2bin(dd(floor(j/4)+1),4);fork=1:4bb(4*(j-1)+k)=bb1(k);endend(4)十进制转化为01比特流%十进制转化为01比特流functionbb=d2bb(dd,N)forj=1:N*4bb(j)=1;endj=1;while(j=N*4)N1=ceil(j/4)a4=mod(dd(N1),2);dd(N1)=floor(dd(N1)/2);a3=mod(dd(N1),2);dd(N1)=floor(dd(N1)/2);a2=mod(dd(N1),2);dd(N1)=floor(dd(N1)/2);a1=mod(dd(N1),2);bb(j)=a1;j=j+1;bb(j)=a2;j=j+1;bb(j)=a3;j=j+1;bb(j)=a4;j=j+1;end(5)星座图逆映射functionyy=decode(rr,N)forj=1:Nswitch(rr(j))%星座图逆映射case-3-3*iyy(j)=0;case-3-iyy(j)=1;case-1-3*iyy(j)=2;case-1-iyy(j)=3;case-3+3*iyy(j)=4;case-3+iyy(j)=5;case-1+3*iyy(j)=6;case-1+iyy(j)=7;case3-3*iyy(j)=8;case3-iyy(j)=9;case1-3*iyy(j)=10;case1-iyy(j)=11;case3+3*iyy(j)=12;case3+iyy(j)=13;case1+3*iyy(j)=14;case1+iyy(j)=15;otherwisebreak;endend四、五、实验结果
本文标题:OFDM调制解调仿真
链接地址:https://www.777doc.com/doc-4295394 .html