预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Matlab实现OFDM调制 Matlab实现OFDM调制 Matlab实现OFDM调制 Matlab实现OFDM调制 一、实验目的 1、进一步加深对matlab的了解和使用,熟练掌握matlab的相关库函数。 2、学习OFDM调制的原理,通过实验加深对其理解。 3、学会用matlab实现BPSK调制和QPSK调制。 二、实验原理 OFDM调制原理: OFDM——OFDM(OrthogonalFrequencyDivisionMultiplexing)即正交频分复用技术,实际上OFDM是MCMMulti—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); whilem~=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; fort=—2:1:5 m=1;%解调 whilem~=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 forn=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); ifdistance1>=distance0 ibpsk(n)=0; else ibpsk(n)=1; end e