OFDM调制解调仿真.docx

上传人:b****7 文档编号:9826210 上传时间:2023-02-06 格式:DOCX 页数:11 大小:226.98KB
下载 相关 举报
OFDM调制解调仿真.docx_第1页
第1页 / 共11页
OFDM调制解调仿真.docx_第2页
第2页 / 共11页
OFDM调制解调仿真.docx_第3页
第3页 / 共11页
OFDM调制解调仿真.docx_第4页
第4页 / 共11页
OFDM调制解调仿真.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

OFDM调制解调仿真.docx

《OFDM调制解调仿真.docx》由会员分享,可在线阅读,更多相关《OFDM调制解调仿真.docx(11页珍藏版)》请在冰豆网上搜索。

OFDM调制解调仿真.docx

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*N

A=xx(m)*8+xx(m+1)*4+xx(m+2)*2+xx(m+3);

B=B+1;

ee(B)=A;

end

figure

(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);

end

forj=1:

N%变成长度为N*5/4的序列

ss(N1+j)=ff(j);

end

figure(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:

N

yy(j)=B(xx(j)+1);

end

(2)星座图逆映射

%星座图逆映射

functionrr=istar(zz,N)

forj=1:

N

if(mod((floor(real(zz(j)))),2)==0)

zz1(j)=ceil(real(zz(j)));

elsezz1(j)=floor(real(zz(j)));

end

if(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;

end

rr(j)=zz1(j);

end

(3)十进制转二进制

functionbb=d2b(dd,N)

%十进制转二进制

forj=1:

N*4

bb(j)=;

end

forj=1:

4:

N*4

bb1=dec2bin(dd(floor(j/4)+1),4);

fork=1:

4

bb(4*(j-1)+k)=bb1(k);

end

end

(4)十进制转化为01比特流

%十进制转化为01比特流

functionbb=d2bb(dd,N)

forj=1:

N*4

bb(j)=1;

end

j=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:

N

switch(rr(j))%星座图逆映射

case-3-3*i

yy(j)=0;

case-3-i

yy(j)=1;

case-1-3*i

yy(j)=2;

case-1-i

yy(j)=3;

case-3+3*i

yy(j)=4;

case-3+i

yy(j)=5;

case-1+3*i

yy(j)=6;

case-1+i

yy(j)=7;

case3-3*i

yy(j)=8;

case3-i

yy(j)=9;

case1-3*i

yy(j)=10;

case1-i

yy(j)=11;

case3+3*i

yy(j)=12;

case3+i

yy(j)=13;

case1+3*i

yy(j)=14;

case1+i

yy(j)=15;

otherwisebreak;

end

end

四、

五、

实验结果

 

 

 

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1