收藏 分销(赏)

Matlab实现OFDM调制学习资料.doc

上传人:快乐****生活 文档编号:3867909 上传时间:2024-07-22 格式:DOC 页数:9 大小:61KB 下载积分:6 金币
下载 相关 举报
Matlab实现OFDM调制学习资料.doc_第1页
第1页 / 共9页
Matlab实现OFDM调制学习资料.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
Matlab实现OFDM调制 精品文档 Matlab实现OFDM调制 一、实验目的 1、进一步加深对matlab的了解和使用,熟练掌握matlab的相关库函数。 2、学习OFDM调制的原理,通过实验加深对其理解。 3、学会用matlab实现BPSK调制和QPSK调制。 二、实验原理 OFDM调制原理: OFDM —— OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM Multi-CarrierModulation,多载波调制的一种。其主要思想是:将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号可以通过在接收端采用相关技术来分开,这样可以减少子信道之间的相互干扰 ICI 。每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上的可以看成平坦性衰落,从而可以消除符号间干扰。而且由于每个子信道的带宽仅仅是原信道带宽的一小部分,信道均衡变得相对容易。在向B3G/4G演进的过程中,OFDM是关键的技术之一,可以结合分集,时空编码,干扰和信道间干扰抑制以及智能天线技术,最大限度的提高了系统性能。包括以下类型:V-OFDM,W-OFDM,F-OFDM,MIMO-OFDM,多带-OFDM。 三、实验内容 实验要求:(1)不加噪声时,调制出来的信号与原信号进行对比。(2)加噪声时的误码率曲线图。 用randint产生512乘以100的信号源 1、 调制原理框图 BPSK(QPSK)的数字调制 加噪声 添加长度为10的循环前缀 512点的IFFT调制 source Mod 调制信号 CP OFDM调制 解调的原理框图 OFDM解调 去CP 调制信号 解调信号bit BPSK(QPSK)解调 2、BPSK调制:f(0)=1,f(1)=-1 代码: original=randint(1,512*100,2); %源为0和1的随机序列,为1行51200列;用512个子载波,做100次 bpsk=(-1).^original; %BPSK调制,将源中的0替换为-1,生成1行51200列的1和-1序列 m=1; ioriginal=zeros(1,512*100); %生成零矩阵,定义变量初值 ofdm=zeros(100,512); iofdm=zeros(100,512); iiofdm=zeros(1,512*100); cp=zeros(100,512+10); cpsend=zeros(1,(512+10)*100); icp=zeros(100,512); ibpsk=zeros(1,512*100); while m~=101 ofdm(m,:)=bpsk(((m-1)*512+1):(m*512)); %将bpsk矩阵转化为100行512列的矩阵ofdm ofdm(m,:)=ifft(ofdm(m,:),512); %OFDM调制,返回512点的逆向DFT cp(m,1:10)=ofdm(m,503:512); %添加长度为10的循环前缀, cp(m,11:end)=ofdm(m,:); %生成矩阵cp为100*(512+10) cpsend(((m-1)*(512+10)+1):(m*(512+10)))=cp(m,:);%cpspend为1*((512+10)*100) m=m+1; end cp1=cpsend; %没有添加噪声是调制生成的矩阵 snr=-2:1:5; %信噪比 ber=zeros(1,length(snr)); light=1; for t=-2:1:5 m=1; %解调 while m~=101 icp(m,:)=cpsend(((m-1)*512+m*10+1):(m*(512+10))); %去前缀10 iofdm(m,:)=fft(icp(m,:),512); %将icp做返回512点的DFT iiofdm(((m-1)*512+1):(m*512))=iofdm(m,:); %iiofdm为1*(512*100) m=m+1; end for n=1:(512*100) real_iiofdm=real(iiofdm(n)); image_iiofdm=imag(iiofdm(n)); distance1=sqrt((real_iiofdm+1)^2+image_iiofdm^2); %根据距离来判断是0还是1 distance0=sqrt((real_iiofdm-1)^2+image_iiofdm^2); if distance1>=distance0 ibpsk(n)=0; else ibpsk(n)=1; end end ioriginal=ibpsk; %计算误码率 flag=(original==ioriginal); %相等时flag为1,不相等时flag为0 error=numel(find(flag==0)); %统计0的个数 ber(light)=error/51200; %计算误码率 light=light+1; end semilogy(snr,ber) BPSK调制的误码率曲线图: 3、QPSK调制: f(00)= (1+i)/sqrt(2), f(01)= (-1+i)/sqrt(2), f(10)= (-1-i)/sqrt(2), f(11) =(1-i)/sqrt(2)。 代码: source=randint(1,512*100,2); sqpsk=source; qpsk=zeros(1,512*50); m=1; n=1; while m~=(512*100+1) if sqpsk(1,m:(m+1))==[0,0] qpsk(1,n)=1/sqrt(2)*(1+i); elseif sqpsk(1,m:(m+1))==[0,1] qpsk(1,n)=1/sqrt(2)*(-1+i); elseif sqpsk(1,m:(m+1))==[1,0] qpsk(1,n)=1/sqrt(2)*(-1-i); else qpsk(1,n)=1/sqrt(2)*(1-i); end m=m+2; n=n+1; end m=1; ssource=zeros(1,512*100); ofdm=zeros(50,512); oofdm=zeros(50,512); ooofdm=zeros(1,512*50); cp=zeros(50,512+10); cpsend=zeros(1,(512+10)*50); ccp=zeros(50,512); qqpsk=zeros(1,512*100); for m=1:50 ofdm(m,:)=qpsk(((m-1)*512+1):(m*512)); ofdm(m,:)=ifft(ofdm(m,:),512); cp(m,1:10)=ofdm(m,503:512); cp(m,11:end)=ofdm(m,:); cpsend(((m-1)*(512+10)+1):(m*(512+10)))=cp(m,:); end cp1=cpsend; snr=-2:1:5; ber=zeros(1,length(snr)); as=1; for t=-2:1:5 cpsend=awgn(cp1,t,'measured'); m=1; for m=1:50 ccp(m,:)=cpsend(((m-1)*512+m*10+1):(m*(512+10))); oofdm(m,:)=fft(ccp(m,:),512); ooofdm(((m-1)*512+1):(m*512))=oofdm(m,:); end s=1; for m=1:(512*50) real_ooofdm=real(ooofdm(m)); image_ooofdm=imag(ooofdm(m)); distance0=sqrt((real_ooofdm-1)^2+(image_ooofdm-1)^2); distance1=sqrt((real_ooofdm+1)^2+(image_ooofdm-1)^2); distance2=sqrt((real_ooofdm+1)^2+(image_ooofdm+1)^2); distance3=sqrt((real_ooofdm-1)^2+(image_ooofdm+1)^2); bb(1,1:4)=[distance0,distance1,distance2,distance3]; aa(1,1)=min(bb); if aa(1,1)==distance0 qqpsk(1,s:(s+1))=[0,0]; elseif aa(1,1)==distance1 qqpsk(1,s:(s+1))=[0,1]; elseif aa(1,1)==distance2 qqpsk(1,s:(s+1))=[1,0]; else aa(1,1)==distance3 qqpsk(1,s:(s+1))=[1,1]; end s=s+2; end ssource=qqpsk; flag=(source==ssource); error=numel(find(flag==0)); ber(as)=error/51200; as=as+1; end semilogy(snr,ber) ; QPSK调制的误码率曲线图: 收集于网络,如有侵权请联系管理员删除
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服