基于 MATLAB 的 OQPSK 调制解调实现课程设计
《基于 MATLAB 的 OQPSK 调制解调实现》 第 1 页 共 22 页
基于 MATLAB 的 OQPSK 调制解调实现
摘 要 本课程设计的目标在于深切理解 OQPSK 调制与解调的基本原理,学会使
用 MATALB 软件中的 M 文件来实现 OQPSK 的调制与解调以及分析加入不同噪声时对
信号的影响程度。首先产生一个数字基带信号,接下来调用 MATLAB 中的相应函数
对这个基带信号进行调制,然后分析调制后的波形:,记录结果后对调制后的信号
进行解调,观察解调结果并做好记录,最后在信号中加入噪声并观察其时频图的变
化,分析信噪比的噪声对调制结果的影响。本课程设计的实验开发/运行平台为
windowsXP/windows7,程序设计使用 MATLAB 语言。通过调试运行,基本完成设计
目标,达到调制与解调的目的。
关键词: MATLAB;M 文件;OQPSK;调制与解调;噪声
1 引 言
数字调制与解调技术在数字通信中占有非常重要的地位 ,数字通信技术与
MATLAB 的结合是现代通信系统发展的一个必然趋势。在数字信号通信过程中,噪
声的影响往往比较大,同时我们都希望有较高的频带利用率和功率利用率,而
OQPSK 也是一种恒包络调制技术,其频谱特性好,既保留着 2PSK 的高抗噪声性
能、高频带利用率和高功率利用率,又有效地减弱了 2PSK 的“反相工作”缺陷,
在通信研究中有着非常重要的意义,特别是在卫星通信和移动通信的领域有着广泛
的应用。MATLAB 作为当前国际控制界最流行的面向工程与科学计算的高级语言,
在控制系统的分析、仿真与设计方面得到了非常广泛的应用,随着其信号处理专业
函数和专业工具箱的成熟,越来越受到通信领域人士的欢迎,其在通信领域的应用
也将更加广泛。
《基于 MATLAB 的 OQPSK 调制解调实现》 第 2 页 共 22 页
1.1 课程设计目的
熟悉 OQPSK 的基本原理,掌握 MATLAB 中 M 文件的使用及相关函数的调用方
法,在此基础上通过编程实现 OQPSK 的调制与解调,并通过加入的噪声来判断所设
计的系统性能。这次课程设计不仅让我对 OQPSK 有了更加深入的了解,而且学会了
如何利用 MATLAB 中的 M 文件来实现通信系统方面的应用,最重要的是,自己能够
独立完成一个小项目了,有了这方面的经验,我在以后的学习中就会有更充足的信
心和动力。
1.2 课程设计要求
熟悉 MATLAB 中 M 文件的使用方法,并在深切理解 OQPSK 调制解调原理的基础
上,编写出 OQPSK 调制解调程序。绘制出 OQPSK 信号解调前后在时域和频域中的波
形,并观察解调前后频谱有何变化以加深对 OQPSK 信号解调原理的理解。分别对信
号叠加不同噪声,并进行解调,绘制出解调前后信号的时频波形,分析不同噪声对
信号传输造成的影响大小。
1.3 课程设计步骤
先产生随机信号,然后对信号进行调制和解调,在调制和解调过程中加入高斯
白噪声,观察现象。
1、 产生四进制数字作为数字基带信号,对其进行调制;
2、 将函数调制信号改为相应的时域波形调制信号;
3、 在函数调制信号中加入高斯白噪声,生成加入噪声后的时域波形调制信号;
4、 分别生成没加或加了噪声的调制信号波形图和频谱图;
5、 分别对没加或加了噪声的调制信号进行解调;
6、 计算误码率。
《基于 MATLAB 的 OQPSK 调制解调实现》 第 3 页 共 22 页
2 OQPSK 调制解调原理
2.1 OQPSK 调制原理
OQPSK,即 Offset Quadrature Phase Shift Keying 的缩写,中文意思为偏置
正交相移键控,是 QPSK(正交相移键控,又有 4PSK 之称)的改进,有关 QPSK 的资
料请参考
[1]《通信原理(第六版)》,这里就不多赘述了。OQPSK 与 QPSK 相同的是相位
关系,即:把输入信号分为两路,然后正交调制。所不同的是,OQPSK 把同相和正
交两支路的码流在时间上错开了半个码元周期。因为两支路码元上偏移了半个周
期,每次只能有
ooo 一路可能发生极性翻转。所以,OQPSK 信号能跳变的相位只能是 0、+90、-
90,不会
o 发生 180 的跳变,OQPSK 与 QPSK 相比,信号的包络波动幅度有限,经过限幅
放大后的频带范围也要小,所以性能也更加优良。其星座映射图如下(图 2-1)所示:
图 2-1 OQPSK 星座映射图
OQPSK 的产生原理方框图如下(图 2-2)所示:输入的数据信号是二进制不归零双
极性码元,它被“串/并变换”电路变成两路码元 a 和 b 后,其每个码元的持续时
间是输入码元的 2 倍,且 b 路码元在产生后马上增加了一个 Ts/2(半个周期)的延
时电路。由 a 路码元和经延时后的 b 路码元相加的信号即为 OQPSK 调制信号。
《基于 MATLAB 的 OQPSK 调制解调实现》 第 4 页 共 22 页
图 2-2 OQPSK 的产生原理框图
2.2 OQPSK 解调原理
OQPSK 信号的解调原理图如下(图 2-3)所示,OQPSK 信号可以看作是两个正交信
号 2PSK 信号 a 和 b,且 b 路信号在时间上延迟了半个周期 Ts/2 后再与 a 路信号的
叠加,所以用两路正交的相干载波和一个 Ts/2 延时器就可以分离这两路延迟正交
的 2PSK 信号,且 b 路信号应该先延时 Ts/2 再进行抽样判决。这样产生的两路并行
信号 a 和 b,经过“并/串变换”后,成为串行数据输出,即解调信号。
图 2-3 OQPSK 的解调原理框图
3 仿真实现过程
3.1 OQPSK 调制信号的产生
首先利用函数 x = randint(a,1,[0 3])产生一串四进制数字基带信号,其中
a,1 表示生成一个含 a 个元素的行向量,在这里可以直接表示为生成 a 个数字基
带信号码元。[0 3]表示产生的随机数的范围是 0~3。基带信号产生后可以利用
fft(x,1024)对其进行傅里叶变换,得到基带信号的频谱图。再利用函数
oqpskmod(x)对基带信号进行调制,由于 MATLAB 中的 oqpskmod(x)函数功能有限,
此时的调制信号还不能用波形图表示出来,需要自己编写部分代码(见附录),所以
使用调制信号的星座图代替调制信号图,使用函数 scatter(y)可生成星座图。代
码编写完成后即可得到相应的 OQPSK 调制波形图,同样使用 fft(n,1024)函数来产
生波形信号的频谱图,其中 n 为调制信号,即在调制信号中
《基于 MATLAB 的 OQPSK 调制解调实现》 第 5 页 共 22 页
取 1024 个点进行傅里叶变换。调制波形图出来以后进行加噪声处理,此处利
用的是 awgn(n,snr)函数, snr 为信噪比的值,先设定 snr 为 1。随后产生加入噪
声后的调制信号频谱图。下面先介绍几个关键变量及重要函数,然后将展示出调制
过程中出现的比较重要的图形。在这里为了更清晰地看出调制后信号的波形图、频
谱图,及方便解调时对比加入噪声后出现的错码位置,只选取 8 个基带信号。
a=8; %基带信号码元个数
x = randint(a,1,[0 3]); % 随机产生 a 个四进制数
y =oqpskmod(x);% 进行 oqpsk 调制
scatterplot(y) %解调信号的星座图
fc=100; %载波频率
fs=1600; %抽样频率
b=0; %设置初始相位为 0
s=0; %调制信号的波形图纵坐标初始化
n=0; %调制信号波形图二维初始化
基带信号(如图 3-1):
图 3-1 基带信号
基带信号的频谱图如下(图 3-2 ):
r=fft(x,1024); %取 1024 个点对基带信号进行傅里叶变换
fr=(0:length(r)-1)*fs/length(r)-fs/2; %横坐标为频域
plot(fr,abs(r)); % OQPSK 基带信号频谱图
《基于 MATLAB 的 OQPSK 调制解调实现》 第 6 页 共 22 页
图 3-2 基带信号频谱图
函数调制信号的星座图如下(图 3-3)所示 :
scatterplot(y) %产生调制信号的星座图
图 3-3 调制信号星座图
函数调制信号的星座图会随输入基带信号初值的变化而改变,即不同的第一个
信号码元对应不同的星座图。因为 OQPSK 信号是由两路原本相互正交、但其中一路
比另一路早半个周期的信号组成,这就使得第一路信号刚进去时和第二路信号最后
进去时系统中都只有一路信号,此时会出现纯实数或纯虚数,即会出现上面调制信
号星座图中非角落的点。
调制信号波形图如下(图 3-4)所示 :
m=(2*pi*fc*k)/fs+b; %合相位
s=sin(m); %生成波形图
n=[n sin(m)]; %将一维转化为二维
g=1:length(n); % g 为调制波形图的横坐标
plot(g,n) %调制信号波形图
《基于 MATLAB 的 OQPSK 调制解调实现》 第 7 页 共 22 页
图 3-4 调制信号波形图
加了噪声之后的调制信号波形图如下(图 3-5)所示 :
snr=0.01; %信噪比
noi=n +awgn(n,snr);%加入噪声后的调制信号
图 3-5 加噪声后的调制信号
调制信号频谱图如下(图 3-6)所示 :
s1=fft(n,1024); %去 1024 个点对调制信号进行傅里叶变化
fs1=(0:length(s1)-1)*fs/length(s1)-fs/2; %横坐标为频域
plot(fs1,abs(s1)); %OQPSK 调制信号频谱图
《基于 MATLAB 的 OQPSK 调制解调实现》 第 8 页 共 22 页