移动通信大作业.docx
《移动通信大作业.docx》由会员分享,可在线阅读,更多相关《移动通信大作业.docx(14页珍藏版)》请在冰豆网上搜索。
![移动通信大作业.docx](https://file1.bdocx.com/fileroot1/2023-1/29/d903bfe1-2d9e-41e7-a3dd-c46e8d905dba/d903bfe1-2d9e-41e7-a3dd-c46e8d905dba1.gif)
移动通信大作业
广西科技大学
大作业
课程名称:
移动通信
题目:
基于MATLAB的白噪声下OFDM调制解调基带系统仿真
学院:
电气与信息工程学院
专业:
电子信息工程
班级:
学号:
成绩:
姓名:
电话号码:
基于MATLAB的白噪声下OFDM调制解调基带系统仿真
[摘要]随着通信产业的逐步发展,4G时代已经来临。
作为第四代移动通信技术的核心,OFDM得到了前所未有的关注。
它具有频谱利用率高、抗干扰能力强等优点。
本次大作业首先简要介绍了OFDM的发展状况以及优缺点,然后详细分析了OFDM的工作原理,并利用MATLAB对OFDM基带系统设计仿真,分别采用了16QAM和QPSK两种方式进行映射和逆映射,得到了OFDM基带系统的误比特性能曲线以及OFDM信号的功率谱和OFDM符号的频谱。
[关键词]OFDM16QAM误比特性能曲线功率谱频谱
一、OFDM概述
随着移动通信和无线网需求的不断增长,需要越来越高速的无线系统设计,而这其中一个最直接的挑战就是克服无线信道带来的严重的频率选择性衰落。
正交频分复用(OFDM)技术可以很好地克服无线信道的频率选择性衰落。
由于其简单高效,OFDM已成为实现高速无线通信系统中最核心的技术之一。
OFDM(OrthogonalFrequencyDivisionMultiplexing)是一种特殊的多载波传输方式,由于各子载波之间存在正交性,允许子信道的频谱互相重叠,与常规的频分复用系统相比,OFDM可以最大限度的利用频谱资源,使得频谱利用率提高近一倍。
同时它把高速数据通过串并转换,使得每个子载波上的数据符号持续长度相对增加,降低了子信道的信息速率,将频率选择性衰落信道转换为平坦衰落信道,从而具有良好的抗噪声、抗多径干扰的能力,适合在频率选择性衰落信道中进行高速数据的传输。
此外,在OFDM中引入循环前缀,克服了OFDM相邻块之间的干扰(IBI),保持了载波间的正交性,同时循环前缀长度大于信道扩展长度,有效地抑制了码间干扰(ISI)。
可以看出,OFDM技术抗多径能力强、频谱利用率高、易于实现的优势,对短波数据通信具有广阔的应用价值,为提高短波通信频谱利用率和传输速率提供了新的解决方案。
二、OFDM技术发展历史
OFDM是一种特殊的多载波频分复用(FDM)技术。
在传统的多载波频分复用系统中,各个子信道采用不同的载波并行传送数据,子载波之间间隔足够远,采用隔离带来防止频谱重叠,故频谱效率很低。
在均衡器未被采用以前,人们就是用这种多载波方式在时间色散信道中进行高速通信的。
1966年,R.W.Chang分析了在多载波通信系统中如何使经过滤波后带限的子载波保持正交。
随后不久B.R.Saltzberg给出了一篇性能分析的文章,他指出在设计一个有效的并行传输系统时,应该把注意力更多地集中在减少相邻信道的串扰上,而不是使各个独立的信道工作得更好,因为此时信道串扰是造成信号失真的主要因素。
1971年,S.B.Weinstein和P.M.Ebert提出用傅立叶变换(DFT)进基带OFDM调制和解调。
通过DFT进行OFDM基带调制和解调避免了生成多个子载波和多个窄带带通滤波器,使系统的模拟前端由多个变为一个,同时由于DFT可以用FFT来快速实现,这进一步降低了系统实现的复杂度。
为对抗符号间干扰和载波闻干扰,他们提出在符号间插入一段空白时隙作为保护间隔。
他们的系统虽然没有能在色散信道中获得很好的子载波正交性,但对OFDM仍是一个很大贡献。
另一个重要贡献来自A.Peled和A.Rmz,他个人提出了采用循环前缀来解决色散信道中子载波间的正交性问题。
当信道响应长度小于循环扩展时,循环前缀的存在使信号与信道响应的线性卷积变成循环卷积,从而使色散OFDM信号可以通过频域单点均衡进行去相关。
当然,循环扩展的引入会导致少量的信噪比损失。
由于无线信道的多径传播会使宽带OFDM信号产生频率选择性衰落,导致各个子信道上的信噪比不同,因此实际的OFDM系统都是与交织、纠错编码结合在一起,形成编码的正交频分复用(COFDM)。
交织和编码能够使OFDM系统获得良好的频率和时间二维分集。
三、OFDM的优缺点
虽然OFDM已经得到广泛的应用,但是在使用中我们也要清楚的认识到它的优缺点,下面简要的从这两方面介绍下OFDM。
OFDM技术的优点主要有:
(1)OFDM调制方式适用于多径和衰落信道中的高速数据传输。
当信道因为多径的影响出现频率选择性衰落时,只有落在频率凹陷处的载波及其携带的信息受到影响,其它子载波未受损害;。
(2)在OFDM调制方式中,通过插入保护间隔,可以很好地克服符号间干扰(ISI)和载波间干扰(ICI)
(3)由于OFDM各子载波相互正交,允许各子载波有1/2重叠,因此可以大大提高频谱利用率:
(4)由于深度衰落而丢失的一些子载波可通过编码、交织等措施来很好的恢复,提高系统抗误码性能,且通过各子载波的联合编码,具有很强的抗衰落能力;
(5)OFDM技术抗脉冲及窄带干扰的能力很强,因为这些干扰仅仅影响到很小一部分的子信道;
(6)与单载波系统相比,对采样定时偏移不敏感。
OFDM技术的缺点主要有:
(1)由于要求各子载波正交,所以对频率偏移和相位噪声很敏感;
(2)由于各子载波相互独立,峰值功率与均值功率比相对较大,且随子载波数目的增加而增加。
高峰均比信号通过功放时,为了避免信号的非线性失真和带外频谱再生,功放需要具有较大的线性范围,导致射频放大器的功率效率降低。
四、OFDM的调制解调原理
正交频分复用OFDM(OrthogonalFrequencyDivisionMultiplex)是一种多载波调制方式,通过减小和消除码间串扰的影响来克服信道的频率选择性衰落。
它的基本原理是将信号分割为N个子信号,然后用N个子信号分别调制N个相互正交的子载波。
由于子载波的频谱相互重叠,因而可以得到较高的频谱效率。
图1-1是在一个OFDM符号内包含4个子载波的实例。
其中,所有的子载波都具有相同的幅值和相位,但在实际应用中,根据数据符号的调制方式,每个子载波都有相同的幅值和相位是不可能的。
从图1-1可以看出,每个子载波在一个OFDM符号周期内都包含整数倍个周期,而且各个相邻的子载波之间相差1个周期。
这一特性可以用来解释子载波之间的正交性,即
图1-1 OFDM符号内包括4个子载波的情况
这种正交性还可以从频域的角度来解释,图1-2给出了相互覆盖的各个子信道内经过矩形波成形得到的符号sinc函数频谱。
每个子载波频率最大值处,所以其他子信道的频谱值恰好为零。
因为在对OFDM符号进行解调过程中,需要计算这些点上所对应的每个子载波频率的最大值,所以可以从多个相互重叠的子信道符号中提取每一个子信道符号,而不会受到其他子信道的干扰。
从图1-2中可以看出OFDM符号频谱实际上可以满足奈奎斯特准则,即多个子信道频谱之间不存在相互干扰。
因此这种子信道频谱出现最大值而其他子信道频谱为零的特点可以避免载波间干扰(ICI)的出现。
图1-2 OFDM系统中子信道符号的频谱
在发送端,设串行的码元周期为ts,速率为rs=1/ts。
经过串/并变换后N个串行码元被转换为长度为Ts=Nts、速率为Rs=1/Ts=1/Nts=rs/N的并行码。
N个码元分别调制N个子载波:
(n=0,1,2,…,N-1)
式中:
Δf为子载波的间隔,设计为
它是OFDM系统的重要设计参数之一。
当f0>>1/Ts时,各子载波是两两正交的,即
1,n=m
1,n≠m
输入的串行比特以L比特为一帧,每帧分为N组,每组比特数可以不同,第i组有qi个比特,即
第i组比特对应第i子信道的Mi=2qi个信号点。
这些复数信号点对应这些子信道的信息符号,用dn(n=0,1,2,…,N-1)表示。
利用IDFT可以完成{dn}的OFDM基带调制,因为式(4-147)的复包络可以表示为
则OFDM信号就为
若对A(t)以1/ts速率抽样,由式(4-147)得到:
可见,所得到的A(m)是{dn}的IDFT,或者说直接对{dn}求离散傅氏反变换就得到A(t)的抽样A(m)。
而A(m)经过低通滤波(D/A变换)后所得到的模拟信号对载波进行调制便得到所需的OFDM信号。
在接收端则进行相反的过程,把解调得到的基带信号经过A/D变换后得到dn,在经过并串变换输出。
当N比较大时可以采用高的效率IFFT(FFT)算法,现在已有专用的IC可用,利用它可以取代大量的调制解调器,使结构变得简单。
下图是OFDM基带信号处理原理图。
其中,(a)是发射机工作原理,(b)是接收机工作原理。
(一)OFDM的调制解调原理
OFDM通过把需要发射的数据流分解为若干个并行的数据子流,这样每个数据子流在速率上就会降低很多,然后再进行相关调制,将它们调制到一组总数为N,频率之间的间隔相等,且又两两正交的子载波上。
OFDM的调制可以用离散傅里叶反变化(IDFT)来实现,相应的有在解调端可以用离散傅里叶变换(DFT)来实现。
而这两种傅里叶变换都有相应的快速算法,在系统的效率和相应时间上会有所提高。
系统的实际应用中一般采用IFFT和FFT技术。
(二)串并转换
数据传输的典型形式是串行数据流,符号被连续传输,每一个数据符号的频谱可占据整个可利用的带宽。
但在并行守护据传输系统中,许多符号被同时传输,减少了那些在串行系统中出现的问题。
在OFDM系统中,每个传输符号速率的大小大约在几十bps到几十Kbps之间,所以必须进行串并变换,将输入串行比特流转换为可以传输的OFDM符号。
由于调制模式可以自适应调节,所以每个子载波的调制模式是可变化的,因而每个子载波可传输的比特数也是可以变化的,所以串并转换需要分配给每个子载波数据段的长度是不一样的。
在接收端执行相反的过程,从各个子载波处来的数据被转换回原始的串行数据。
(三)保护间隔和循环前缀
应用OFDM的一个重要原因在于它可以有效的对抗多径时延扩展。
通过把输入数据流串并变换到N个并行的子信道中,使得每一个调制子载波的数据周期可以扩大为原始数据符号周期的N倍。
为了最大限度的消除符号间干扰,还可以在每个OFDM符号间插入保护间隔(GI),而且该保护间隔长度一般要大于无线信道中的最大时延扩展,这样一个符号的多径分量就不会对下一个符号造成干扰。
在这段保护间隔内,可以不插入任何信号,即是一段空闲的传输时段。
(四)OFDM的基本参数
各种OFDM参数的选择就是需要在多项要求冲突中进行折中考虑。
通常来讲,如前所述,首先要确定3个参数:
带宽、比特率以及保护间隔,按照惯例,保护间隔的时间长度应该为应用移动环境信道的时延均方根值的2~4倍。
一旦确定了保护间隔,则OFDM符号周期长度就可以确定。
为了最大限度的减少由于插入保护间隔所带来的信噪比的损失,希望OFDM符号周期长度要远远大于保护间隔长度。
但是符号周期长度又不可能任意大,否则OFDM系统中包括更多的子载波数,从而导致子载波间隔相应减少,系统的实现复杂度增加,而且还加大了系统的峰值平均功率比,同时使系统对频率偏差更加敏感。
因此在实际应用中,一般选择符号周期是保护间隔长度的5倍,这样由于插入保护比特所造成的信噪比损耗只有1dB左右。
(五)调制方式
可以通过改变发射的射频信号的幅度、相位和频率来调制信号。
对于OFDM系统来说,只能采用前两种调制方法,而不能采用频率调制的方法,这是因为子载波是频率正交,而且携带独立的信息,调制子载波频率会破坏这些子载波的正交特性,这是频率调制不能在OFDM系统中采用的原因。
(六)16QAM调制
16QAM是用两路独立的正交4ASK信号叠加而成,4ASK是用多电平信号去键控载波而得到的信号。
它是2ASK体制的推广,和2ASK相比,这种体制的优点在于信息传输速率高。
16QAM信号采取正交相干解调的方法解调,解调器首先对收到的16QAM信号进行正交相干解调,一路与cosωct相乘,一路与sinωct相乘。
然后经过低通滤波器,低通滤波器LPF滤除乘法器产生的高频分量,获得有用信号,低通滤波器LPF输出经抽样判决可恢复出电平信号。
16进制的正交振幅调制是一种振幅相位联合键控信号。
16QAM的产生有2种方法:
(1)正交调幅法,它是有2路正交的四电平振幅键控信号叠加而成;
(2)复合相移法:
它是用2路独立的四相位移相键控信号叠加而成。
(七)QPSK调制
QPSK是在2PSK(二相调相)的基础上发展而来的一种多进制相位调制。
QPSK是利用载波的四种不同相位来表征传送的数字信息。
在QPSK调制中,首先对输入的二进制数据按二位数字编成一组,以此构成双比特码元。
其组合共有4种,即有4种不同状态。
故可以用M=4种相位或相位差来表示。
这里M=4,故称为四相调相。
同样,若采用八相调制方式,在一个码元时间内可传送3位码,其信息传送速率是二相调制方式的3倍。
由此可见,采用多相调制的级数愈多,系统的传输速率愈高,但相邻载波之间的相位差愈小,接收时要区分它们的困难程度就愈大,将使误码率增加。
五、基于OFDM基带的系统设计仿真
本次分别采用了16QAM和QPSK两种方式进行映射和逆映射,OFDM基带系统程序流程图如下图所示:
(一)实验程序:
1、QPSK映射程序
function[out_message]=QPSK(Sig)
[a1,b1]=find(Sig(:
1)==0&Sig(:
2)==0);out_message(a1)=-1-j;
[a2,b2]=find(Sig(:
1)==0&Sig(:
2)==1);out_message(a2)=-1+j;
[a3,b3]=find(Sig(:
1)==1&Sig(:
2)==0);out_message(a3)=1-j;
[a4,b4]=find(Sig(:
1)==1&Sig(:
2)==1);out_message(a4)=1+j;
end
2、QPSK逆映射程序
function[out_symbol,out_bit]=DeQPSK(Sig_noise)
m1=find(angle(Sig_noise)<=pi/2&angle(Sig_noise)>0);
out_symbol(1,m1)=1+j;out_bit(m1,1)=1;out_bit(m1,2)=1;
m2=find(angle(Sig_noise)>pi/2&angle(Sig_noise)<=pi);
out_symbol(1,m2)=-1+j;out_bit(m2,1)=0;out_bit(m2,2)=1;
m3=find(angle(Sig_noise)>-pi&angle(Sig_noise)<=-pi/2);
out_symbol(1,m3)=-1-j;out_bit(m3,1)=0;out_bit(m3,2)=0;
m4=find(angle(Sig_noise)>-pi/2&angle(Sig_noise)<=0);
out_symbol(1,m4)=1-j;out_bit(m4,1)=1;out_bit(m4,2)=0;
end
3、复高斯白噪声程序
function[sig_noise,snr_dB]=fu_awgn(Sig,SNR,Num_signal)
L_SNR=10.^(SNR/10);%转换为线性信噪比
Eb=sum(abs(Sig).^2)/Num_signal;%每比特的能量
N0=Eb/L_SNR;%噪声功率谱密度
noise_R1=randn(1,length(Sig));%实际产生均值为0,方差为1的随机高斯序列,功率谱密度是1
noise_R2=noise_R1-mean(noise_R1);%让均值再更接近0
noise_R3=noise_R2./std(noise_R2);%标准差归一化让均值等于0
noise_R=noise_R3*sqrt(N0/2);%使得功率谱密度是N0/2
noise_I1=randn(1,length(Sig));%实际产生均值为0,方差为1的随机高斯序列,功率谱密度是1
noise_I2=noise_I1-mean(noise_I1);%让均值再更接近0
noise_I3=noise_I2./std(noise_I2);%标准差归一化让均值等于0
noise_I=noise_I3*sqrt(N0/2);%使得功率谱密度是N0/2
x=noise_R+j*noise_I;%生成复噪声
sig_noise=Sig+x;%此时加入的就是Eb/N0
snr=sum(abs(Sig).^2)/sum(abs(x).^2);
snr_dB=10*log10(snr);%实际加入的信噪比SNR
end
4、主程序(求误比特率曲线)
%%OFDM基带系统
clearall;closeall;clc
%%参数设置
N=256;%fft点数
Num_carriers=256;%载波数
length_symbol=10000;%符号长度
M=2;
bit_num=Num_carriers*length_symbol*M;%数据个数
Pe_check=[];
forSNR=2:
2:
14%输入信噪比
%%产生基带数据信号
Sig=randi([01],1,bit_num);
%%QPSK调制
Sig=reshape(Sig,2,bit_num/2)';%QPSK映射
[out_message]=QPSK(Sig);
%%串并转换
Sig__modulation=reshape(out_message,Num_carriers,length_symbol);
%%插值
interp_Sig_modulation=[Sig__modulation(1:
Num_carriers/2,:
);zeros(N-Num_carriers,length_symbol);Sig__modulation(Num_carriers/2+1:
Num_carriers,:
)];
%%ifft
ifft_message=ifft(interp_Sig_modulation,N);
%求PSD
fft_ps_ifft_message=fftshift(fft(ifft_message,1024));
PSD_message=10*log10(abs(fft_ps_ifft_message).^2/max(abs(fft_ps_ifft_message).^2));
f1=(0:
length(PSD_message)-1)/length(PSD_message);
figure
(1)
plot(f1,PSD_message);holdon;plot(0:
1/N:
1,0,'r*');axis([01-400]);xlabel('归一化频率');ylabel('归一化功率');title('OFDM信号功率谱')
%%加入复高斯白噪声
Re_message=reshape(ifft_message,1,N*length_symbol);
[sig_noise,snr_dB]=fu_awgn(Re_message,SNR,length(Re_message));
%%并串转换
ps_sig_noise=reshape(sig_noise,N,length_symbol);
%%fft
fft_Re_message=fft(ps_sig_noise,N);
%%抽值
samp_fft_Re_message=[fft_Re_message(1:
Num_carriers/2,:
);fft_Re_message(Num_carriers/2+1:
Num_carriers,:
)];
%%QPSK解调
samp_fft_Re_message=reshape(samp_fft_Re_message,1,Num_carriers*length_symbol);
[out_symbol,out_bit]=DeQPSK(samp_fft_Re_message);%QPSK逆映射
[resum,ratio1]=symerr(Sig,out_bit);
Pe=ratio1;
Pe_check=[Pe_check,Pe];
end
SNR=4:
2:
16;
figure
semilogy(SNR,Pe_check,'-kd');xlabel('信噪比/dB');ylabel('误比特率');axis([4161e-61]);
5、主程序(绘制功率谱和频谱)
%%OFDM基带系统
clearall;closeall;clc
%%参数设置
N=64;%fft点数
Num_carriers=32;%载波数
length_symbol=100;%符号长度
M=2;
bit_num=Num_carriers*length_symbol*M;%数据个数
%%产生基带数据信号
Sig=randi([01],1,bit_num);
%%QPSK调制
Sig=reshape(Sig,2,bit_num/2)';%QPSK映射
[Sig_modulation]=QPSK(Sig);
%%串并转换
Sig_modulation=reshape(Sig_modulation,Num_carriers,length_symbol);
%%插值
interp_Sig_modulation_psd=[Sig_modulation(1:
Num_carriers/2,:
);zeros(N-Num_carriers,length_symbol);Sig_modulation(Num_carriers/2+1:
Num_carriers,:
)];%求功率谱插值
Sig_modulation=[Sig_modulation';zeros(length_symbol,Num_carriers)];
%每隔一个信道插值一个符号长度的0;此时得到的频谱不正交
interp_Sig_modulation=reshape(Sig_modulation,length_symbol,2*Num_carriers)';
%%ifft
ifft_message=ifft(interp_Sig_modulation_psd,N);
%求PSD
fft_ps_ifft_message=fftshift(fft(ifft_message,1024));
PSD_message=10*log10(abs(fft_ps_ifft_message).^2/max(abs(fft_ps_ifft_message).^2));
f1=(0:
length(PSD_message)-1)/length(PSD_message);
figure
(1)
plot(f1,PSD_message