OFDM通信系统与QPSK系统性能比较

更新时间:2023-05-21 07:23:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

OFDM通信系统与QPSK系统性能比较

学号:

OFDM通信系统与QPSK系统的性能比较

摘要:正交频分复用(OFDM) 是第四代移动通信的核心技术。本文首先简要介绍了OFDM基本原理,并对OFDM的系统框架进行了分析,其中包括调制、解调以及IFFT、FFT的数学模型实现。接着重点用MATLAB语言实现了整个系统基于QPSK调制技术的计算机仿真,分析该系统的信噪比及PAPR的分布。最后对QPSK调制解调系统进行了仿真,对两种系统的性能进行了比较。仿真结果表明:OFDM频带利用率高,误码率高,功率利用率下降,而QPSK频带利用率低,误码率低,功率利用率升高。

关键词:正交频分复用,QPSK,快速傅里叶变换

第一章 OFDM系统的基本原理

OFDM的全称为Orthogonal Frequency Division Multiplexing,意为正交频分复用。OFDM的思想可以追溯到20世纪60年代,当时人们对多载波调制做了许多理论上的工作,论证了在存在符号间干扰的带限信道上采用多载波调制可以优化系统的传输性能。进入20世纪90年代,由于数字信号处理技术和大规模集成电路技术的进步,OFDM技术在高速数据传输领域受到了人们的广泛关注。现在OFDM已经在欧洲的数字音视频广播(如DAB和DVB)、欧洲和北美的高速无线局域网系统(如HIRERLAN2、IEEE802.11a)、高比特率数字用户线(如ADSL、VDSL)以及电力线载波通信中得到了广泛的应用。

OFDM通信技术是多载波传输技术的典型代表。多载波传输把数据流分解为若干个独立的子比特率,每个子数据流将具有低得多的比特速率,用这样低比特率形成的低速率多状态符号去调制相应的子载波,就构成了多个低速率符号并行发送的传输系统。OFDM是多载波传输方案的实现方式之一,利用快速傅里叶逆变换(IFFT)和快速傅里叶变换(FFT)来分别实现调制和解调,是实现复杂度最低、应用最广的一种多载波传输方案。

1.1 正交调制解调

OFDM是一种特殊的多载波传送方案,单个用户的信息流被串/并变换为多个低速率码流,每个码流都用一条载波发送。OFDM弃用传统的用带通滤波器来分隔子载波频谱的方式,改用跳频方式选用那些即便频谱混叠也能够保持正交

的波形,因此,OFDM既可以当作调制技术,也可以当作复用技术。OFDM增强了抗频率选择性衰落和抗窄带干扰的能力。为了提高频谱利用率,OFDM方式中各个子载波频谱有1/2重叠,但保持相互正交,在接收端通过相关解调分离出各个子载波,同时消除码间干扰的影响。

OFDM是一种多载波调制技术,其原理是用N个子载波把整个信道分割成N个子信道,即将频率上等间隔的N个子载波信号调制并相加后同时发送,实现N个信道并行传输信息。这样每个符号的频谱只占用信道带宽的1/N,且使各子载波在OFDM符合周期T内保持频谱的正交性。即满足:

1T

1.2 系统组成

T

e

jwnt

e

jwmt

1,n mdt

0,n m

1.3用IFFT、FFT实现调制和解调技术 调制和解调框图如下:

j2 f1t

图2-1 调制解调框图

以下是数学模型的实现。 (1) 调制部分:

OFDM信号可以用复数形式表示为:

s(t) cirect(t

i 0

N 1

T

TS)exp[j2 fi(t TS)], 2

式中,TS为起始时间,rect(t)为门函数,fi为第i个子载波的频率,ci为第i个信号。

令TS=0,fi fc 则:

i T

N 1

T

s(t) cirect(t )exp[j2 fi(t TS)]

2i 0i

ciexp[j2 (fc )(t TS)]

Ti 0 exp(j2 fct) ciexp(j2

i 0N 1

N 1

i

t)T

OFDM信号的产生式首先在基带实现,然后通过上变频产生输出信号。因此,在基带处理时可令fc 0,则与快速离散傅里叶反变换形式相比较,IFFT实现为:

s(t) ciexp(j2 fit)`

`

i 0

N 1

(2)解调部分

k c

1T`

s(t)exp( j2 fi)dt 0T

1TN 1

ciexp( j2 fi`)exp( j2 fk`)dtT0i 0 1T

0ckdt,i k T 0,i k

(3)传输的信号应用实信号,则:

N 1i 0

s(t) Re [ckexp(j2

k

t)exp(j2 fkt)] T

k

则:s(t) ckexp(j2 t)

Ti 0

sB(t)

N 1i 0

t Ts

N 1

k2

ckexp(j2 nTs) ckexp(jnTs)

TNi 0i 0N 1

N 1

nk

ckWN

1N 1nk ckWN

Ni 0

在Hermitian对称条件,一般将N点数据共轭扩展2N个点,即:

ck c*(2N k),0 k 2N k

的约束下,2N点快速离散傅里叶反变换将频域内的N个复数信号子符号ck变换成时域中的2N个实数样值ck,k 0,1,2,N... ,,加上循环前缀

*ck c(2N k)之后,这2N J个实数样值就构成了实际的OFDM 发送符号。

ck经过并/串变换之后,通过时钟速率fs (2N J)/Ts的D/A转换器和低通滤波

器输出基带信号。最后经过上变频输出OFDM信号。

第二章 系统性能分析指标

2.1 OFDM信号的PAPR及其分布

对于一个OFDM系统而言,由于复合包络是多个子载波信号的叠加,所以它将会有大的包络变化范围,因此会产生很大的PAPR。通常,PAPR与子载波数N之间呈现正比的关系。在OFDM中,实际发射的信号是多个子载波信号的叠加,这将不可避免地导致信号的包络变化非常剧烈,如果N个子载波的信号均以相同的相位相加时,就会产生一个OFDM信号的峰值功率,这个峰值功率是平均功率的N倍。通常,我们将在一个时间内最大峰值功率与平均功率的比值称为峰值平均功率比(PAPR)。

PAPR(dB) 10lg

maxxn

n

Ex22

1N 1nk

x XW kN 其中,即:nxn表示经过IFFT运算之后得到的输出信号,

Nk 0

2.2 频带利用率

设一OFDM系统中共有N个路子子载波,子信道码元持续时间为T,每路子载波均采用M进制的调制,则它占用的频带宽带等于

频带利用率为单位带宽传输的比特率:BOFDM 当N很大时, B/OFDM

N 1

TS

Nlog2M1N

log2M(b/s Hz) TSBOFDMN 1

若用单个载波的M进制码元传输,为得到相同的传输速率,则码元持续时间应缩短为,而占用带宽等于,故频带利用率为:

B/M

Nlog2MTS1 log2M(b/s Hz) TS2N2

第三章 OFDM通信系统仿真设计

3.1仿真参数设定

根据前面已经介绍的OFDM通信系统的设计,表3-1给出了仿真系统的主要参数。

表3-1 OFDM通信系统的仿真参数

3.2 程序流程图

3.3 OFDM系统性能仿真

根据前面已经介绍的OFDM通信系统的设计,可以仿真得到设计系统的性能,如图3-1所示OFDM系统的信噪比。

不同信噪比下的误码率

0.14

0.12

0.1

误码率

0.08

0.06

0.04

0.02

信噪比

图3-1

3.3 QPSK调制解调系统性能仿真 1、QPSK工作原理

四相绝对移相调制是利用载波的4种不同相位来表征数字信息。每一种载波相位代表两个比特的信息。例如,若输入一进制数字信息,序列为10011100…….则应该先将其进行分组,每两个比特编为一组。可将它们分成10,00,01,11等,然后分别用4种不同的相位来表示。故每个四进制码元又被称为双比特码元。把组成双比特码元的前一个信息比特用ab表,后一个信息比特用b代表。双比特码元中的两个信息比特ab通常是按格雷码排列的。载波相位若用θk表示,则θk在0到2∏内等间隔的取值仅有4种可能。表3-2给出QPSK信号的编码。又由于正弦函数和余弦函数的互补特性,对应于θk的4种取值,例如45°,135°,225°,315°,其幅度ak和bk只有两种取值,所以,四相绝对移相调制可以看作两个正交的二相绝对移相调制的合成。载波相位θk的4种取值矢量关系,

如图1。图1( a)中表示采用方式1的Q PSK信号的矢量图,图1(b)表示采用方式2的QPSK信号的矢量图。

表3-2 QPSK信号的编码

图1(a) 图1(b)

2、QPSK信号产生

因为四相绝对移相调制可以看作两个正交的二相绝对移相调制的合成,所以同相通道I和门正交通道Q的调制过程应与二相绝对移相调制相同。因此,在本质上QPSK调制器是两个2PSK调制器的并行组合。QPSK信号产生的方法和2PSK信号一样,用调相法产生∏ /4体系的QPSK信号的系统中,串并变换器将输入的二进制序列依次分为两个速率减半的并行的单极性序列。假设两个序列中的二进制数字分别为a和b每一对ab称为一个双比特码元。单极性的a和b脉冲通过极性变换,即0变-1和1变0,变成双极性一电平信号I(t)和Q(t),然后进入两个平衡调制器,分别对同相载波和正交载波进行二相调制,将两路输出叠加,即得到四相移相信号。

3、QPSK系统仿真

QPSK不同信噪比下的误码率

0.14

0.12

0.1

误码率

0.08

0.06

0.04

0.02

02468

10信噪比

1214161820

3.4 OFDM技术和QPSK技术的性能比较

OFDM频带利用率高,误码率高,功率利用率下降,而QPSK频带利用率低,误码率低,功率利用率升高。

参考文献:

[1]张纯德,王兴亮.现代通信理论与技术指导.西安电子科技大学出版社.2005.

[2]樊昌信,曹丽娜著.通信原理.国防工业出版社.2007

[3]邵佳,董辰辉著.MATLAB/Simulink通信系统建模与仿真实例精讲.2009

附录:MATLAB程序清单 %main_OFDM.m

%OFDM通信系统的仿真设计,包括QPSK或QAM数字调制、IFFT、 %保护间隔、高斯信道建模、FFT、解调、计算信噪比及PAPR clear all;

%+++++++++++++++++++++++++++++++++++++++++++++++++ %seq_num

%SNR_Pre 设定用于仿真的信噪比的初值 %interval_SNR 设定用于仿真的信噪比间隔 %frame_num 每一个信噪比下仿真的数据的帧数 %Pe 用于计算出现的误比特数 %N 子载波数

%+++++++++++++++++++++++++++++++++++++++++++++++++ N=64; SNR_Pre=1; interval_SNR =1; Pe=zeros(1,20);

%发射机 frame_num =5000;

for SNR_System=SNR_Pre:interval_SNR:20 counter=0;

for seq_num=1:frame_num

%+++++++++++++++输入数据++++++++++++ datain=randint(1,N);

%+++++++++++++++++++++++++++++++++++

%++++++++++++++QPSK调制++++++++++++++ qpskin=reshape(datain,2,[]);%将生成序列变成两行 qpskflection=(ones(2,N/2)).*(-1);

qpskflection=qpskflection.^qpskin;%0--1;1---1 qpskflection(2,:)=j*qpskflection(2,:); qpskout=sum(qpskflection);

%+++++++++++++++++++++++++++++++++++++++

%++++++++++++++++扩展++++++++++++++++++ ifftin=zeros(1,N); ifftout=zeros(1,N);

for k=1:N %将输入的N/2点扩展为共轭对称的N点 if (33>k>=1) if(k==1)

ifftin(1)=qpskflection(1,1); else

ifftin(k)=qpskout(k); end else

if(k==33)

ifftin(k)=(-1)*j*qpskflection(2,1); else

ifftin(k)=conj(qpskout(N+2-k)); end end end

%+++++++++++++++++++++++++++++++++++++

%+++++++++++++++++IFFT+++++++++++++++++ ifftout=ifft(N*ifftin);

%+++++++++++++++++++++++++++++++++++++++

%+++++++++++++++加入保护间隔++++++++++++++++++++ clength=N+N/16; PVout=zeros(1,clength); col=(N-N/16+1):(N); PVout=[ifftout(col),ifftout];

%++++++++++++++++++++++++++++++++++++++++++++++++

%+++++++++++++++++高斯白噪声信道+++++++++++++++++ gsrv=awgn(PVout,SNR_System,'measured');

%+++++++++++++++++++++++++++++++++++++++++++++++++

%接收机

%+++++++++++++++++++++去保护间隔++++++++++++++++++++++++

movep=zeros(1,N); length=(N/16+1):(N+N/16); movep=gsrv(length);

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%+++++++++++++++++++++FFT++++++++++++++++++++++++++++

fftout=(fft(movep))/N;

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%+++++++++++++++QPSK解调++++++++++++++++++++++++++++

%outsign=qpskout(fftout,count,k); count=1; K=1;

%判决门限取0 if((fftout(K))>=0) outsign(count)=0; count=count+1; else

outsign(count)=1; count=count+1; end

if((fftout(N/2+1))>0) outsign(count)=0; count=count+1; else

outsign(count)=1; count=count+1; end for K=2:N/2

realpart=real(fftout(K)); imagpart=imag(fftout(K)); if(realpart>=0) outsign(count)=0; count=count+1; else

outsign(count)=1; count=count+1; end

if(imagpart>=0) outsign(count)=0; count=count+1; else

outsign(count)=1;

count=count+1; end end

%+++++++++++++++++++++++++++++++++++++++++++++++

%++++++++++++++++++计算误码率++++++++++++++++++++++++ for k=1:N

if(outsign(k)~=datain(k)) counter=counter+1; end end end

Pe(SNR_System)=counter/(N*frame_num); end

%画图 figure plot(Pe,'b'); xlabel('信噪比'); ylabel('误码率');

title('不同信噪比下的误码率'); grid on;

%********************** preparation part *************************** para=64; % Number of parallel channel to transmit (points) fftlen=64; % FFT length

nd=1; % Number of information OFDM symbol for one loop ml=2; % Modulation level : QPSK gilen=8; % Length of guard interval (points)

%**************************Data generation ****************************

seldata=rand(1,para*nd*ml)>0.5; % rand : built in function

%****************** Serial to parallel conversion ***********************

paradata=reshape(seldata,para,nd*ml); % reshape : built in function

%************************** QPSK modulation *************************

[ich,qch]=qpskmod(paradata,para,nd,ml); kmod=1/sqrt(2); % sqrt : built in function ich1=ich.*kmod; qch1=qch.*kmod;

%******************* IFFT ************************ x=ich1+qch1.*i;

y=ifft(x); % ifft : built in function ich2=real(y); % real : built in function qch2=imag(y); % imag : built in function

%********* Gurad interval insertion ********** [ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); fftlen2=fftlen+gilen; N=fftlen2*nd*ml; y=ich3+qch3*i; N=64;

fs=10240000; % Symbol rate df = fs/N; f1 = 0:df:(N-1)*df; y1=ich3+qch3*i; z1 = fft(y1,N); figure;

plot(f1,abs(z1),'r--'); xlabel('f');ylabel('幅度谱'); legend('原信号'); N=64;

fs=10240000/2; % Symbol rate df = fs/N; f2 = 0:df:(N-1)*df; y2=ich+qch*i; z2 = fft(y2,N); figure;

plot(f2,abs(z2),'r--'); xlabel('f');ylabel('幅度谱'); legend('QPSK后的信号');

N=fftlen2;

fs=10240000/2/64; % Symbol rate df = fs/N; f3 = 0:df:(N-1)*df; y3=ich3+qch3*i; z3 = fft(y3,N); figure;

plot(f3,abs(z3),'r--'); xlabel('f');ylabel('幅度谱'); legend('OFDM后的信号');

本文来源:https://www.bwwdw.com/article/6t14.html

Top