logo资料库

基于MATLAB的OQPSK调制解调实现课程设计.doc

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
基于 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 页
分享到:
收藏