基于MATLAB的OQPSK调制解调实现

合集下载

基于Matlab-的QPSK调制解调仿真设计与研究

基于Matlab-的QPSK调制解调仿真设计与研究

天津理工大学计算机与通信工程学院通信工程专业设计说明书基于Matlab/Simulink的QPSK调制解调仿真设计与研究姓名韩双年学号 20092226班级 09通信3班指导老师白媛日期 2012-12-16目录摘要 (2)第一章前言 (2)1.1 专业设计任务及要求 (2)1.2 Matlab简介 (2)1.3 Matlab下的simulink简介 (3)1.4 通信系统模型 (3)第二章QPSK调制 (4)2.1 QPSK介绍 (4)2.2 QPSK调制原理 (4)2.2.1 相乘法 (4)2.2.2 选择法 (5)2.3 QPSK调制原理框图 (6)2.4 QPSK调制方式的Matlab仿真 (6)2.5 QPSK调制方式Matlab-simulink仿真 (7)2.5.1 simulink调制建模 (7)2.5.2 simulink调制仿真结果 (8)第三章QPSK解调 (13)3.1 QPSK解调原理 (13)3.2 QPSK解调原理框图 (13)3.3 QPSK解调方式Matlab仿真 (13)3.4 QPSK解调方式的Matlab-simulink仿真 (14)3.4.1 QPSK解调建模 (14)3.4.2 传输信道 (16)3.4.3仿真结果 (16)3.5 仿真结果分析 (18)第四章QPSK通信系统性能分析 (19)第五章结论 (19)参考文献 (20)附录 (20)摘要正交相移键控(QPSK),是一种数字调制方式。

QPSK技术具有抗干扰能力好、误码率低、频谱利用效率高等一系列优点。

论文主要介绍了正交相移键控(QPSK)的概况,以及正交相移键控QPSK的调制解调概念和原理,利用Matlab中M文件和Simulink模块对QPSK的调制解调系统进行了仿真,对QPSK在高斯白噪声信道中的性能进行了,分析了解Simulink中涉及到QPSK的各种模块的功能。

【关键词】Matlab QPSK Simulnk 仿真第一章前言1.1专业设计任务及要求1了解并掌握QPSK调制与解调的基本原理;2在通信原理课程的基础上设计与分析简单的通信系统;3学会利用MATLAB7.0编写程序进行仿真,根据实验结果能分析所设计系统的性能。

通信原理的MATLAB实验 QPSK的调制解调报告

通信原理的MATLAB实验 QPSK的调制解调报告

通信原理实验项目名称:QPSK的调制解调一、实验任务任意输入长度为64比特的二进制信息,采用QPSK系统传输。

码元速率为1Bps,载波频率为10Hz,采样频率为40 Hz,利用Matlab画出:(1)调制后的信号波形;(2)经信道传输后的信号波形(假设加性高斯白噪声,其功率为信号功率1/10);(3)(3)任意解调方法解调后的信号波形。

二、流程图三、完整程序Fd=1; %码元速率Fc=10; %载波频率Fs=40; %采样频率N=Fs/Fd;df=10;x=[ 1 1 0 1 1 0];%任意输入64比特的二进制信息M=2; %进制数SNRpBit=10;%加性高斯白噪声,其功率为信号功率的1/10,即信噪比为10 SNR=SNRpBit/log2(M); %转换为码元速率seed=[12345 54321];numPlot=length(x);figure(1)%画出输入二进制序列subplot(211);stem([0:numPlot-1],x(1:numPlot),'bx');title('输入波形’)%调制y=dmod(x,Fc,Fd,Fs,'fsk',M,df);numModPlot=numPlot*Fs;t=[0:numModPlot-1]./Fs;subplot(212);%画出调制后的信号plot(t,y(1:length(t)),'b-');axis([min(t) max(t) -1.5 1.5]);title('调制后的信号')%在已调信号中加入高斯白噪声randn('state',seed(2));y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%相干解调figure(2)subplot(211);plot(t,y(1:length(t)),'b-');%画出经过信道的实际信号axis([min(t) max(t) -1.5 1.5]);title('加入高斯白噪声后的已调信号')%带输出波形的相干M元频移键控解调subplot(212);stem([0:numPlot-1],x(1:numPlot),'bx');hold on;stem([0:numPlot-1],z1(1:numPlot),'ro');hold off;axis([0 numPlot -0.5 1.5]);title('相干解调后的信号')四、波形。

BPSK和QPSK调制解调原理及MATLAB程序

BPSK和QPSK调制解调原理及MATLAB程序

2.1 PSK调制方式PSK原理介绍(以2-PSK为例)移相键控(PSK)又称为数字相位调制,二进制移相键控记作2PSK。

绝对相移是利用载波的相位(指初相)直接表示数字信号的相移方式。

二进制相移键控中,通常用相位0 和π来分别表示“0”或“1”。

2PSK 已调信号的时域表达式为s2psk(t)=s(t)cosωct, 2PSK移相键控中的基带信号与频移键控和幅度键控是有区别的,频移键控和幅度键控为单极性非归零矩形脉冲序列,移相键控为为双极性数字基带信号,就模拟调制法而言,与产生2ASK 信号的方法比较,只是对s(t)要求不同,因此2PSK 信号可以看作是双极性基带信号作用下的DSB 调幅信号。

在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。

通常用已调信号载波的 0°和 180°分别表示二进制数字基带信号的 1 和 0。

二进制移相键控信号的时域表达式为e2PSK(t)=[nna g(t-nT s)]cosw c t其中, an与2ASK和2FSK时的不同,在2PSK调制中,an应选择双极性。

1, 发送概率为Pan=-1, 发送概率为1-P若g(t)是脉宽为Ts, 高度为1的矩形脉冲时,则有cosωct, 发送概率为Pe2PSK(t)=-cosωct, 发送概率为1-P由上式(6.2-28)可看出,当发送二进制符号1时,已调信号e2PSK(t)取0°相位,发送二进制符号0时,e2PSK(t)取180°相位。

若用φn表示第n个符号的绝对相位,则有0°, 发送 1 符号φn=180°, 发送 0 符号由于在2PSK信号的载波恢复过程中存在着180°的相位模糊,所以2PSK信号的相干解调存在随机的“倒π”现象,从而使得2PSK 方式在实际中很少采用。

为了解决2PSK 信号解调过程的反向工作问题, 提出了二进制差分相位键控(2DPSK),这里不再详述。

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

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

基于MATLAB的OQPSK调制解调实现摘要本课程设计的目标在于深切理解OQPSK调制与解调的基本原理,学会使用MATALB软件中的M文件来实现OQPSK的调制与解调以及分析加入不同噪声时对信号的影响程度。

首先产生一个数字基带信号,接下来调用MATLAB中的相应函数对这个基带信号进行调制,然后分析调制后的波形:,记录结果后对调制后的信号进行解调,观察解调结果并做好记录,最后在信号中加入噪声并观察其时频图的变化,分析信噪比的噪声对调制结果的影响。

本课程设计的实验开发/运行平台为windowsXP/windows7,程序设计使用MATLAB语言。

通过调试运行,基本完成设计目标,达到调制与解调的目的。

关键词:MATLAB;M文件;OQPSK;调制与解调;噪声1 引言数字调制与解调技术在数字通信中占有非常重要的地位,数字通信技术与MATLAB 的结合是现代通信系统发展的一个必然趋势。

在数字信号通信过程中,噪声的影响往往比较大,同时我们都希望有较高的频带利用率和功率利用率,而OQPSK也是一种恒包络调制技术,其频谱特性好,既保留着2PSK的高抗噪声性能、高频带利用率和高功率利用率,又有效地减弱了2PSK的“反相工作”缺陷,在通信研究中有着非常重要的意义,特别是在卫星通信和移动通信的领域有着广泛的应用。

MATLAB作为当前国际控制界最流行的面向工程与科学计算的高级语言,在控制系统的分析、仿真与设计方面得到了非常广泛的应用,随着其信号处理专业函数和专业工具箱的成熟,越来越受到通信领域人士的欢迎,其在通信领域的应用也将更加广泛。

1.1课程设计目的熟悉OQPSK的基本原理,掌握MATLAB中M文件的使用及相关函数的调用方法,在此基础上通过编程实现OQPSK的调制与解调,并通过加入的噪声来判断所设计的系统性能。

这次课程设计不仅让我对OQPSK有了更加深入的了解,而且学会了如何利用MATLAB中的M文件来实现通信系统方面的应用,最重要的是,自己能够独立完成一个小项目了,有了这方面的经验,我在以后的学习中就会有更充足的信心和动力。

在matlab上的的QPSK调制与解调仿真

在matlab上的的QPSK调制与解调仿真

QPSK的调制与解调电路的MATLAB实现摘要本课程设计主要讨论了QPSK的调制解调原理,分析了它们的调制解调实现过程的程序设计。

在课程设计中,系统开发平台为Windows 2000,程序运行平台为MATLAB集成环境下的Simulink仿真平台。

用Simulink构建QPSK调制与解调电路仿真模型,得到调制、解调信号,绘制调制前后频谱图,分析QPSK在各种噪声信道中的性能。

程序运行初步实现了QPSK的调制解调,其所得结果基本与理论结果一致。

关键词Simulink;调制解调;QPSK;目录1.前言 (1)1.1QPSK系统的应用背景简介 (1)1.2 QPSK实验仿真的意义 (1)1.3 实验平台和实验内容 (2)1.3.1实验平台 (2)1.3.2实验内容 (2)2系统实现框图和分析 (3)2.1、QPSK调制部分 (3)2.2、QPSK解调部分 (4)3实验结果及分析 (6)3.1、理想信道下的仿真 (6)3.2、高斯信道下的仿真 (7)3.3、先通过瑞利衰落信道再通过高斯信道的仿真 (8)4致谢 (9)参考文献 (10)附录 (11)1.前言1.1QPSK系统的应用背景简介QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。

在19世纪80年代初期,人们选用恒定包络数字调制。

这类数字调制技术的优点是已调信号具有相对窄的功率谱和对放大设备没有线性要求,不足之处是其频谱利用率低于线性调制技术。

19世纪80年代中期以后,四相绝对移相键控(QPSK)技术以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信及有线电视系统之中。

1.2 QPSK实验仿真的意义通过完成设计内容,复习QPSK调制解调的基本原理,同时也要复习通信系统的主要组成部分,了解调制解调方式中最基础的方法。

MATLAB实现QPSK信号的调制解调以及计算误码率BER

MATLAB实现QPSK信号的调制解调以及计算误码率BER

MATLAB实现QPSK信号的调制解调以及计算误码率BER QPSK(Quadrature Phase Shift Keying)是一种基于调制的数字通信方法,它能够提高频谱利用率并减小误码率。

在QPSK调制中,每个符号由两个正交的载波信号之一进行相位调制,共有四种可能的相位状态。

本文将介绍如何使用MATLAB实现QPSK信号的调制、解调,并计算误码率BER(Bit Error Rate)。

首先,我们将使用MATLAB生成一个随机的二进制数列作为待传输的数字数据。

假设数据位数为N。

```matlabN=1000;%数据位数data = randi([0, 1], 1, N); % 生成随机二进制数据```接下来,我们将二进制数据转换为QPSK调制所需的两个IQ通道数据。

其中,I通道代表实部,Q通道代表虚部。

我们将0和1分别映射为QPSK调制的四个相位状态(例如:00映射为相位0°,01映射为相位90°,10映射为相位180°,11映射为相位270°)。

```matlabqpsk_data = reshape(data, 2, N/2); % 转换为2*N/2矩阵qpsk_data = 2*qpsk_data - 1; % 转换为-1和1之间的数值I = qpsk_data(1, :);Q = qpsk_data(2, :);```现在,我们得到了I和Q两个IQ通道的数据。

接下来,我们将对这两个通道的数据进行调制。

在QPSK调制中,我们使用两个不同相位的正弦信号。

```matlabfs = 1000; % 采样率fc = 10; % 载波频率t = 0:1/fs:N/fc-1/fs; % 时间序列I_modulated = real(sqrt(2/T).*I.*cos(2*pi*t*fc)); % I通道调制Q_modulated = real(sqrt(2/T).*Q.*sin(2*pi*t*fc)); % Q通道调制QPSK_signal = I_modulated + Q_modulated; % QPSK信号```现在,我们得到了QPSK信号。

BPSK和QPSK调制解调原理及MATLAB程序

BPSK和QPSK调制解调原理及MATLAB程序

2.1 PSK调制方式PSK原理介绍(以2-PSK为例)移相键控(PSK)又称为数字相位调制,二进制移相键控记作2PSK。

绝对相移是利用载波的相位(指初相)直接表示数字信号的相移方式。

二进制相移键控中,通常用相位0 和π来分别表示“0”或“1”。

2PSK 已调信号的时域表达式为s2psk(t)=s(t)cosωct, 2PSK移相键控中的基带信号与频移键控和幅度键控是有区别的,频移键控和幅度键控为单极性非归零矩形脉冲序列,移相键控为为双极性数字基带信号,就模拟调制法而言,与产生2ASK 信号的方法比较,只是对s(t)要求不同,因此2PSK 信号可以看作是双极性基带信号作用下的DSB 调幅信号。

在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。

通常用已调信号载波的 0°和 180°分别表示二进制数字基带信号的 1 和 0。

二进制移相键控信号的时域表达式为e2PSK(t)=[nna g(t-nT s)]cosw c t其中, an与2ASK和2FSK时的不同,在2PSK调制中,an应选择双极性。

1, 发送概率为Pan=-1, 发送概率为1-P若g(t)是脉宽为Ts, 高度为1的矩形脉冲时,则有cosωct, 发送概率为Pe2PSK(t)=-cosωct, 发送概率为1-P由上式(6.2-28)可看出,当发送二进制符号1时,已调信号e2PSK(t)取0°相位,发送二进制符号0时,e2PSK(t)取180°相位。

若用φn表示第n个符号的绝对相位,则有0°, 发送 1 符号φn=180°, 发送 0 符号由于在2PSK信号的载波恢复过程中存在着180°的相位模糊,所以2PSK信号的相干解调存在随机的“倒π”现象,从而使得2PSK 方式在实际中很少采用。

为了解决2PSK 信号解调过程的反向工作问题, 提出了二进制差分相位键控(2DPSK),这里不再详述。

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

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

基于MATLAB的OQPSK调制解调实现摘要本课程设计的目标在于深切理解OQPSK调制与解调的基本原理,学会使用MATALB软件中的M文件来实现OQPSK的调制与解调以及分析加入不同噪声时对信号的影响程度。

首先产生一个数字基带信号,接下来调用MATLAB中的相应函数对这个基带信号进行调制,然后分析调制后的波形:,记录结果后对调制后的信号进行解调,观察解调结果并做好记录,最后在信号中加入噪声并观察其时频图的变化,分析信噪比的噪声对调制结果的影响。

本课程设计的实验开发/运行平台为windowsXP/windows7,程序设计使用MATLAB语言。

通过调试运行,基本完成设计目标,达到调制与解调的目的。

关键词: MATLAB;M文件;OQPSK;调制与解调;噪声1 引言数字调制与解调技术在数字通信中占有非常重要的地位,数字通信技术与MATLAB 的结合是现代通信系统发展的一个必然趋势。

在数字信号通信过程中,噪声的影响往往比较大,同时我们都希望有较高的频带利用率和功率利用率,而OQPSK也是一种恒包络调制技术,其频谱特性好,既保留着2PSK的高抗噪声性能、高频带利用率和高功率利用率,又有效地减弱了2PSK的“反相工作”缺陷,在通信研究中有着非常重要的意义,特别是在卫星通信和移动通信的领域有着广泛的应用。

MATLAB作为当前国际控制界最流行的面向工程与科学计算的高级语言,在控制系统的分析、仿真与设计方面得到了非常广泛的应用,随着其信号处理专业函数和专业工具箱的成熟,越来越受到通信领域人士的欢迎,其在通信领域的应用也将更加广泛。

1.1课程设计目的熟悉OQPSK的基本原理,掌握MATLAB中M文件的使用及相关函数的调用方法,在此基础上通过编程实现OQPSK的调制与解调,并通过加入的噪声来判断所设计的系统性能。

这次课程设计不仅让我对OQPSK有了更加深入的了解,而且学会了如何利用MATLAB 中的M文件来实现通信系统方面的应用,最重要的是,自己能够独立完成一个小项目了,有了这方面的经验,我在以后的学习中就会有更充足的信心和动力。

QPSK调制与解调在MATLAB平台上的实现

QPSK调制与解调在MATLAB平台上的实现

QPSK调制与解调在MATLAB平台上的实现QPSK(Quadrature Phase Shift Keying)是一种常用的调制解调技术,常用于数字通信中。

在QPSK调制中,每个符号代表两个比特,通过将这两个比特与正交信号载波进行调制,实现高效的数据传输。

在这篇文章中,我们将介绍如何在MATLAB平台上实现QPSK调制和解调。

1.QPSK调制首先,我们需要生成待发送的二进制比特序列。

我们可以使用randi 函数生成0和1之间的随机整数序列。

```matlabbits = randi([0,1],1,N);```N表示待发送的比特数。

接下来,我们需要将这个二进制序列转换为QPSK调制符号。

在QPSK 调制中,我们将每两个比特映射到一个复数符号。

将0映射为1+j,将1映射为1-j。

```matlabfor i = 1:2:Nif bits(i) == 0 && bits(i+1) == 0symbols((i+1)/2) = 1 + 1i;elseif bits(i) == 0 && bits(i+1) == 1symbols((i+1)/2) = 1 - 1i;elseif bits(i) == 1 && bits(i+1) == 0symbols((i+1)/2) = -1 + 1i;elseif bits(i) == 1 && bits(i+1) == 1symbols((i+1)/2) = -1 - 1i;endend```最终得到的symbols变量即为QPSK调制后的复数符号序列。

2.QPSK解调首先,我们需要接收到的QPSK信号进行解调,得到复数符号序列。

```matlabsymbols_received = received_signal./carrier; % 将接收到的信号除以载波得到复数符号序列```其中received_signal为接收到的QPSK信号,carrier为发送端使用的载波。

基于matlab的oqpsk调制解调

基于matlab的oqpsk调制解调

基于matlab的oqpsk调制解调在MATLAB 中进行OQPSK(Offset Quadrature Phase Shift Keying)调制和解调可以使用Communications Toolbox 提供的功能。

下面分别给出 OQPSK 调制和解调的示例代码:OQPSK 调制:% 参数设置Fs = 1000; % 采样率Ts = 1/Fs; % 采样间隔fc = 100; % 载波频率data = randi([0, 1], 1, 100); % 随机生成二进制数据% OQPSK 调制modulatedSignal = oqpskmod(data, fc, Fs, 'InputType', 'bit', 'PhaseOffset', pi/4);% 显示调制后的信号t = (0:length(modulatedSignal)-1) * Ts;figure;plot(t, real(modulatedSignal), t, imag(modulatedSignal));title('OQPSK Modulated Signal');xlabel('Time (s)');legend('I Channel', 'Q Channel');OQPSK 解调:% OQPSK 解调demodulatedData = oqpskdemod(modulatedSignal, fc, Fs, 'OutputType', 'bit', 'PhaseOffset', pi/4);% 显示解调后的数据figure;stem(data, 'r', 'DisplayName', 'Original Data');hold on;stem(demodulatedData, 'b', 'DisplayName', 'Demodulated Data');title('OQPSK Demodulation Result');xlabel('Bit Index');ylabel('Bit Value');legend('Original Data', 'Demodulated Data');这里使用了Communications Toolbox 中的oqpskmod 和oqpskdemod 函数,其中oqpskmod 用于OQPSK 调制,oqpskdemod 用于OQPSK 解调。

QPSK调制与解调(Matlab仿真)

QPSK调制与解调(Matlab仿真)

QPSK调制与解调(Matlab仿真)1. 一般在仿真的时候,大家都喜欢直接做等效基带仿真(类似于星座点的仿真)。

但实际要传,还是要传频带的波形信号。

2. 为了模拟真实的环境,先把基带信号经过一个自定义的信道,然后再做脉冲成型,上变频,加一点噪声AWGN进去。

3. 为了模拟同步,应该用专用的同步算法。

但是这里的重点不在同步。

所以用了很简单粗暴的办法。

假装直接同步上了。

4. 为了造出不同步的结果,可以这样写 x_未同步 = [x(300:end); x; x]; 相当于循环发送,循环接收。

这是仿真。

Main%%% 单载波QPSK 接收端% 2017年5月17日18:02:56clear;close all;clcrand_seed = 0;rand('seed',rand_seed);randn('seed',rand_seed);%%% Set up parameters and signals.M = 4; % Alphabet size for modulationbaud_rate = 100; % Baud ratef_carrier1 = 75; % Carrier frequencyNsym = 10000; % Number of symbolsmsg = randi([0 M-1],Nsym,1); % Random messagehMod = comm.RectangularQAMModulator(M);modmsg = step(hMod,msg); % Modulate using QAM. % 映射后的基带信号trainlen = 1000; % Length of training sequencerolloff = .3; % 滚降因子span = 20 ; % 截断长度sps = 10; % Samples per symbolrrcFilter=rcosdesign(rolloff,span,sps,'sqrt'); %根升余弦滚降滤波器,‘sqrt’均方根升余弦;‘normal’升余弦fs = baud_rate*sps; % 时间采样率,时间采样间隔为1/fs 秒Tsymbol=1/baud_rate;% 2. 脉冲成型% txSig = upfirdn(modmsg, rrcFilter, sps); % 发送端的基带复波形信号% chan = [1; .001];chan = [.986; .845; .237; .123+.31i]; % Channel coefficients% chan = [1 0.45 0.3+0.2i]; % Channel coefficientsfiltmsg = filter(chan,1,modmsg); % Introduce channel distortion.(已经经过信道的畸变的基带复信号,星座点)txSig = upfirdn(filtmsg, rrcFilter, sps); % 发送端的基带复波形信号txSig = awgn(txSig,20,'measured'); % Add AWGNt = (0:1/fs:((length(txSig)-1)/fs)).';T = t(end)+1/fs;df = 1/T;freq = -fs/2:df:fs/2-df;cos1 = cos(2*pi*f_carrier1 * t);sin1 = sin(2*pi*f_carrier1 * t);x_upconv = real(txSig).* cos1 + imag(txSig) .* sin1;%% === 接收端x_training_wave = x_upconv;x_training_msg = msg;rxSig = [x_upconv(300:end) ; x_upconv];% 1. 同步x_resampled = resample(rxSig,1,1);x_sync = sync_two_signals( x_resampled,x_training_wave,0);figure(2);plot(freq,20*log10(abs(fftshift(fft(x_sync))/max(abs(fftshift(fft(x_sync)))))));ylim([-100,10])xlim([0,freq(end)])grid on;xlabel('频率(Hz)');title('接收信号');% 2. 下变频+ 匹配滤波xi_dnconv = x_sync .* cos1;xq_dnconv = x_sync .* sin1;x_filtered = xi_dnconv + 1j * xq_dnconv;rxFilt = upfirdn(x_filtered, rrcFilter, 1, sps);rxFilt = rxFilt(span+1:end-span); % 这是接收端匹配滤波后的信号% 3. 均衡% eq1 = lineareq(6, lms(0.01)); % LMSeq1 = lineareq(30, rls(0.99,0.01)); % Create an equalizer object. % 40 taps,RLS算法,步长0.99,自相关矩阵逆矩阵的初值InvCorrInit对角线上的元素eq1.SigConst = step(hMod,(0:M-1)')'; % Set signal constellation. % 标准星座图[symbolest,~] = equalize(eq1,rxFilt,x_training_msg(1:trainlen)); % Equalize. % 均衡器obj,需要均衡的信号,训练序列symbolest = symbolest ./ mean(abs(symbolest)) .* mean(abs(eq1.SigConst));% Plot signals.h = scatterplot(rxFilt,1,trainlen,'bx'); hold on;scatterplot(symbolest,1,trainlen,'r.',h);scatterplot(eq1.SigConst,1,0,'k*',h);legend('Filtered signal','Equalized signal',...'Ideal signal constellation');hold off;% Compute error rates with equalization.hDemod = comm.RectangularQAMDemodulator(M);demodmsg = step(hDemod,symbolest); % Demodulate detected signal from equalizer.% Create ErrorRate Calculator System objectserVec = step(comm.ErrorRate,msg(trainlen+1:end),demodmsg(trainlen+1:end));srate = serVec(1)snum = serVec(2)% Convert integers to bitshIntToBit = comm.IntegerToBit(log2(M));Tx_bit = step(hIntToBit, msg(trainlen+1:end));Rx_bit = step(hIntToBit, demodmsg(trainlen+1:end));% Calculate BERberVec = step(comm.ErrorRate,Rx_bit,Tx_bit);brate = berVec(1)bnum = berVec(2)同步的代码function x_sync = sync_two_signals( x_resampled,x_training_wave,idx )% sync_two_signals( x_resampled,x_training_wave,idx )% x_resampled:收到的信号% x_training_wave:用发送的信号% idx:要找同步上的第几段。

基于MATLAB的QPSK调制解调过程仿真

基于MATLAB的QPSK调制解调过程仿真

基于MATLAB的QPSK调制解调过程仿真摘要:设计了正交相移键控(Quadrature Phase Shift Keying,QPSK)调制与解调系统的仿真,并且利用MATLAB软件的Simulink对其进行了动态模拟仿真。

系统的仿真和分析是设计工程中的重要步骤。

利用其结果从信噪比可以衡量数字信号的传输质量;从输入和输出结果可以看出,仿真试验较好。

QPSK调制与解调系统的仿真设计,为以后设计和改正提供方了良好的依据。

关键词:调制;解调;频谱分析;仿真1引言MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写[1]。

MATLAB的核心采用C语言编写,功能越来越强大,除原有的数值计算功能外,还新增了图形处理功能[2]。

The Mathworks的MATLAB&Simulink产品家族是一个高度整合的科学计算环境,提供了强大的设计工具。

MATLAB&Simulink产品大概组成[3]。

Simulink 是一个交互式动态系统建模仿真和分析工具。

它的建模十分广泛,可以针对任何能够数学描述的系统进行建模,例如通信系统卫星控制系统,航空航天动力学系统,船舶及汽车等。

其中包括了连续、离散、条件执行、时间、单速率、多速率的混杂系统等。

Simulink利用鼠标拖放的方法建立系统的图形界面,而且Simulink 提供了丰富的功能快,几乎可以部署写一行代码就完整真个动态过程。

对工程人员的熟练度降到了最低[4]。

2、QPSK解调的设计2.1.1QPSK解调通过上面对QPSK信号的调制,我门对QPSK有了更加深刻的认识。

那么它的解调可以采用与2PSK信号类似的解调方法进行解调。

同样参考通信原理(樊昌信,国防工业出版社,2007.8),同相支路和正交支路分别采用相干解调方式解调,之后可以得到二者的和,经过抽样判决和串、并交换器,将上下之路得到的并行数据恢复为串行数据。

那么此时就得到我们最初的原始信号,它的解调原理图[6],如下图1所示:3.MATLAB的仿真3.1建立函数文件在MATLAB中建立函数文件,为得到误码率图像,打开MATLAB后点击上面的file——new—blank M file,然后打开一个空白的M文件,在文件中输入如下代码[8]:initialseed=71;%AWGN信道的初始化种子,可任意选择inputinitialseed=65;%随机整数生成器的初始化种子inputsampletime=1/1000;%随机整数生成器的样本时间y=[];for snr=1:10 %信噪比SNR从1取到10db,计算不同信噪比下的误码率sim('QPSK');%运行simulink的模块,在模块中还会有调制后的频谱。

QPSK调制与解调在MATLAB平台上的实现

QPSK调制与解调在MATLAB平台上的实现

QPSK调制与解调在MATLAB平台上的实现QPSK(Quadrature Phase Shift Keying)是一种常见的数字调制技术,主要用于数字通信领域中的高速数据传输。

QPSK调制与解调的实现可以利用MATLAB平台,并结合数字信号处理工具箱中的相关函数来完成。

在本文中,将详细介绍QPSK调制和解调的MATLAB实现步骤,并给出相关代码示例。

1. 生成一个二进制序列作为调制数据。

可以使用MATLAB中的randi函数生成0和1构成的随机序列。

```matlabdata = randi([0 1], 1, N); % N表示数据长度```2. 将二进制序列转换为QPSK调制符号。

由于QPSK调制中每个调制符号代表2个比特,所以需要将二进制序列分成两部分,并将每一部分映射到相应的星座点上。

可以使用MATLAB中的bi2de函数将二进制序列转换为十进制数,并按照星座点的排列顺序进行映射。

示例代码如下:```matlabI_data = bi2de(data(1:2:end), 'left-msb');Q_data = bi2de(data(2:2:end), 'left-msb');```3. 根据映射的结果,使用复数运算来生成QPSK调制信号。

可将实部和虚部分别设置为I_data和Q_data,形成一个复数信号。

示例代码如下:```matlabmodulated_signal = I_data + 1i*Q_data;```4. 将调制信号进行归一化并添加高斯白噪声(可选)。

调制信号一般需要归一化为特定的信号功率,可以使用MATLAB中的awgn函数向调制信号添加高斯白噪声。

示例代码如下:```matlabnormalized_signal = modulated_signal / sqrt(2); % 归一化信号功率noisy_signal = awgn(normalized_signal, SNR); % 向信号添加高斯白噪声,SNR表示信噪比```QPSK解调的实现步骤如下:1.接收到带有噪声的QPSK信号。

基于Matlab的QPSK调制与解调系统仿真

基于Matlab的QPSK调制与解调系统仿真

一、多进制调制带通二进制键控系统中,每个码元只能传输1b信息,其频带利用率不高。

为了提高频带利用率,最有效的办法是使一个码元传输多个比特的信息。

这就是多进制键控体制。

多进制数字调制是利用多进制数字基带信号去调制载波的振幅,频率或相位。

因此,相应地有多进制数字振幅调制(MASK),多进制数字频率调制(MPSK)以及多进制数字相位调制(MPSK)等。

多进制数字调制是利用多进制数字基带信号去调制载波的振幅、频率或相位。

由于多进制数字调制信号的被调参数在一个码元宽度内有多个可能的取值,因此与二进制数字调制相比,具有以下两个特点:(1)在相同的信道码元传输速率下,L进制系统的信息传输速率是二进制系统的log L倍;2(2)在相同的系统传信率下,多进制信道的符号速率可以低于二进制的符号速率,因而所需信道带宽减小。

因此,多进制调制方式获得了广泛的应用,成为提高通信效率的主要手段。

二、QPSK的原理QPSK(4PSK,正交相移键控)又叫四相绝对相移调制,是最常用的MPSK,分为π/2系统和π/4系统两种。

它是利用载波的四种不同相位来表征数字信息。

由于每一种载波相位代表两个比特信息,故每个四进制码元又被称为双比特码元。

QPSK系统在用正交调制部分需要进行串/并变换,其中串/并变换电路将QPSK调制的两位编码按比特分开,走上下两路,分成的两路序列速率减半,电平发生器分别产生双极性二电平信号I(t)和Q(t),然后各自去调制相互正交的正弦波,再进行矢量合成,即得到QPSK信号。

图1 QPSK调制电路在解调部分可以用两个正交的载波信号实现相干解调。

正交路和同相路分别设置两个相关器,得到I(t)和Q(t),经电平判决和并/串变换即可恢复原始信息。

图2 QPSK解调电路三、详细设计步骤1 根据QPSK的调制及解调原理及原理框图,MATLAB程序来仿真这个系统应遵循以下几个步骤:调制部分:(1)串/并变换(2)极性转换(3)电平产生(4)两分路分别与载波相乘(5)合并两路信号信道部分:加入高斯白噪声解调部分:(1)接收到的信号分别乘以正弦信号及余弦信号(2)两路信号分别进行抽样判决(3)并/串变换2 用MATLAB 程序来实现QPSK 调制与解调系统仿真四、设计结果及分析0100200300400500600700800-2-1.5-1-0.50.511.52产生的二进制波形图1 产生的随机二进制序列050100150200250300350400-2-112二进制信息050100150200250300350400-2-112余弦分路信号图2 基数位的二进制序列及调制后的波形050100150200250300350400-2-112二进制信息050100150200250300350400-2-112正弦分路信号图3偶数位的二进制序列及调制后的波形050100150200250300350400-1-0.50.51加性高斯白噪声时域波形050100150200250300350400051015加性高斯白噪声频谱图4 加性高斯白噪声的时域波形及频谱050100150200250300350400-55接收端信号的时域图050100150200250300350400-202接收端正弦分路信号050100150200250300350400-22接收端余弦分路信号图5接收端信号的时域图及正余弦两路信号的波形0510********35404550-29.5-29-28.5-28-27.5-27-26.5-26-25.5-25-24.5Frequency (Hz)P o w e r /f r e q u e n c y (d B /H z )加性高斯白噪声功率谱密度图6 加性高斯白噪声的功率谱密度0100200300400500600700800-2-1.5-1-0.50.511.52解调出的波形图7 接收端最终解调后的二进制序列五、总结在现代通信中,提高频谱利用率一直是人们关注的焦点之一。

基于MATLAB的 PSK调制与解调 通信原理实验

基于MATLAB的 PSK调制与解调 通信原理实验

实验六PSK调制与解调1.实验目的和要求用MA TLAB实现二进制序列的调制与解调2.实验内容用角频率为2的载波信号实现序列[1 0 1 1 0 0 0 0]的调制。

3.软件部分源代码clear,close all,g=[1 0 1 1 0 0 0 0];f=2;t=0:2*pi/99:2*pi;cp=[];sp=[];mod=[];bit=[];for n=1:length(g);if g(n)==0;die=-ones(1,100);se=zeros(1,100);else g(n)==1;die=ones(1,100);se=ones(1,100);endc=sin(f*t);cp=[cp die];mod=[mod c];bit=[bit se];endpsk=cp.*mod;subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on;title('Binary Signal');axis([0 100*length(g) -2.5 2.5]);subplot(2,1,2);plot(psk,'LineWidth',1.5);grid on;title('PSK modulation');axis([0 100*length(g) -2.5 2.5]);4.实验现象理解了psk的概念和原理以及如何使用matlab实现psk的调制与解调。

加深了对专业知识的理解,同时又锻炼了matlab程序编写的技巧。

虽然在实验中遇到许多的困难,但主要还是自己对所学的知识并没有完全的消化,以至对原理都是似懂非懂,浪费了较多的时间,另外通过此次的实验,对MA TLAB软件的使用也有了更深一步的了解与掌握,通过此次实验不仅对原来通信原理知识得到了巩固,而且还学会了许多原来不会的东西。

基于 MATLAB的 QPSK 调制解调仿真

基于 MATLAB的 QPSK 调制解调仿真

基于MATLAB的QPSK 调制解调仿真( 1 ) 熟悉2QPSK 调制解调原理。

(2)掌握编写2QPSK 调制解调程序的要点。

(3)掌握使用MATLAB 调制解调仿真的要点。

( 1 ) 根据2QPSK 调制解调原理,设计源程序代码。

( 2 ) 通过MATLAB软件仿真给定信号的调制波形。

(3)对比给定信号的理论调制波形和仿真解调波形。

QPSK即四进制移向键控(quaternary phase shift keying),它利用载波的4种不同相位来表示数字信息,由于每一种载波相位代表两个比特信息,因此每个四进制码元可以用两个二进制码元的组合来表示。

两个二进制码元中的前一个码元用a 表示,后一个码元用b 表示。

由QPSK 信号的调制原理可知,对它的解调可以采用与2PSK 信号类似的解调方法进行解调。

解调原理图如图2-18-2 所示,同相支路和正交支路分别采用相干解调方式解调,得到I ( t )和Q(t),经过抽样判决和并/串交换器,将上下支路得到的并行数据恢复成串行数据。

(1 )利用QPSK 正交调制器,用调相法产生QPSK信号。

( 2 ) 画出QPSK 信号的波形。

( 3 ) 利用相干解调法,画出QPSK解调后的信号。

( 1 ) 首先,用调相法产生QPSK 信号。

( 2 ) 使用MATLAB 画出QPSK 信号的波形。

(3)根据相干解调法,画出解调后的波形,与原始信号波形进行比较。

N=20;%比特数T=1;%比特周期fc=2;%载波频率Fs=100;%抽样频率bitstream=randi([0,1],1,N);%随机产生的比特数0、1bitstream=2*bitstream-1;%单极性变为双极性(0到-1;1到1)I=[];Q=[];%奇数进I路,偶数进Q路for i=1:Nif mod(i,2)~=0I=[I,bitstream(i)];elseQ=[Q,bitstream(i)];endend%采用绘图比较I、Q比特流bit_data=[];for i=1:Nbit_data=[bit_data,bitstream(i)*ones(1,T*Fs)];%在一个比特周期里面有T*Fs个1和采样点一模一样endI_data=[];Q_data=[];for i=1:N/2%I路和Q路是原来比特周期的两倍,2Tb=Ts(码元周期),因此采样点个数为T*Fs*2I_data=[I_data,I(i)*ones(1,T*Fs*2)];Q_data=[Q_data,Q(i)*ones(1,T*Fs*2)];end%绘图figure();%时间轴t=0:1/Fs:N*T-1/Fs;subplot(3,1,1)plot(t,bit_data);legend('Bitstream')%比特信息subplot(3,1,2)plot(t,I_data);legend('I Bitstream')%I路信息subplot(3,1,3)plot(t,Q_data);legend('Q Bitstream')%Q路信息%载波信号bit_t=0:1/Fs:2*T-1/Fs;%载波周期为2倍比特周期,定义时间轴%定义I路和Q路的载波I_carrier=[];Q_carrier=[];for i=1:N/2I_carrier=[I_carrier,I(i)*cos(2*pi*fc*bit_t)];%I路载波信号Q_carrier=[Q_carrier,Q(i)*cos(2*pi*fc*bit_t+pi/2)];%Q路载波信号end%传输信号QPSK_signal=I_carrier+Q_carrier;%绘图figure();%产生一个新图subplot(3,1,1)plot(t,I_carrier);legend('I signal')%I路信号subplot(3,1,2)plot(t,Q_carrier);legend('Q signal')%Q路信号subplot(3,1,3)plot(t,QPSK_signal);legend('QPSK signal')%I路、Q路和的信号snr=1;%信躁比%接收信号QPSK_receive=awgn(QPSK_signal,snr);%awgn()添加噪声%解调for i=1:N/2I_output=QPSK_receive(1,(i-1)*length(bit_t)+1:i*length(bit_t)).*cos(2 *pi*fc*bit_t);if sum(I_output)>0 %积分器求和,大于0为1,否则为-1I_recover(i)=1;elseI_recover(i)=-1;endQ_output=QPSK_receive(1,(i-1)*length(bit_t)+1:i*length(bit_t)).*cos(2 *pi*fc*bit_t+ pi/2);if sum(Q_output)>0Q_recover(i)=1;elseQ_recover(i)=-1;endend%并/串变换bit_recover=[];for i=1:Nif mod(i,2)~=0bit_recover=[bit_recover,I_recover((i-1)/2+1)];%奇数取I路信息elsebit_recover=[bit_recover,Q_recover(i/2)];%偶数取Q路信息endend%适用绘图比较I、Q比特流recover_data=[];for i=1:Nrecover_data=[recover_data,bit_recover(i)*ones(1,T*Fs)];endI_recover_data=[];Q_recover_data=[];for i=1:N/2I_recover_data=[I_recover_data,I_recover(i)*ones(1,T*Fs*2)];Q_recover_data=[Q_recover_data,Q_recover(i)*ones(1,T*Fs*2)];end%绘图figure();t=0:1/Fs:N*T-1/Fs;subplot(3,1,1)plot(t,recover_data);legend('Bitstream')%恢复的比特信息subplot(3,1,2)plot(t,I_recover_data);legend('I Bitstream')%恢复的I路信息subplot(3,1,3)plot(t,Q_recover_data);legend('Q Bitstream')%恢复的Q路信息Q路对应的比特数和波形图如下所示路和信号(QPSK)对应波Q路信息波形图如图所示在本次实验中,我根据QPSK 调制解调仿真原理,写出了源程序代码,了解到了很多东西,其中通过Matlab软件根据相干解调法,画出解调后的波形,与原始信号波形进行仿真比较。

基于MATLAB仿真的BPSK的调制与解调报告

基于MATLAB仿真的BPSK的调制与解调报告

基于MATLAB 仿真的BPSK 的调制与解调一、实验要求根据题目要求,查阅相关资料,掌握数字带通的 BPSK 调制解调的相关知识。

学习 MATLAB 软件,掌握 MATLAB 各种函数的使用。

在此基础上,完成以下实验要求:1) 设计系统整体框图及数学模型。

2) 运用 MATLAB 进行编程,实现 BPSK 的调制解调过程的仿真。

其中包括信源、BPSK 信号的产生,信道噪声的加入,BPSK 信号的载波提取和相干解调。

3) 系统性能的分析包括信号带宽,波形对比以及误码率的计算。

二、实验原理数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道 具有带通特性而不能直接传输基带信号。

为了使数字信号在带通信道中传输,必 须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。

这种用数 字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。

数字调制技术的两种方法:1) 模拟相乘法。

利用模拟调制的方法去实现数字式调制,即把把数字基带信号当做模拟信号的特殊情况处理。

2) 键控法。

利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。

这种方法通常称为键控法,比如本实验对载波的相位进行键控,便可获得相移键控(PSK )基本的调制方式。

1.BPSK 的调制原理:二进制移相键控是用二进制数字信号0和1去控制载波的两个相位0和π的方法。

在2PSK 中,通常用初始相位0和π分别表示二进制1和0。

因此,2PSK 信号的时域表达式为:)cos(A )(2PSK n c t t e ϕω+= (1)式中,ϕn 表示第n 个符号的绝对相位:⎩⎨⎧=”时发送“”时发送“,1,00πϕn (2)因此,上式可以改写为⎩⎨⎧--=Pt P t t e c c 1,cos A ,cos A )(2PSK 概率为概率为ωω (3)由于两种码元的波形相同,极性相反,故BPSK 信号可以表述为一个双极性全占空矩形脉冲序列与一个正弦载波的相乘:()t t s t e c ωcos )(2PSK = (4) 式中∑-=ns n nT t g a t s )()( (5)这里s(t)为双极性全占空(非归零)矩形脉冲序列,g(t)是脉宽为T s 的单个矩形脉冲,而a n 的统计特性:⎩⎨⎧--=P P a n 1,1,1概率为概率为 (6)图1 BPSK 信号的波形示例2.BPSK 的解调原理:2PSK 信号的解调方法是相干解调法。

基于MATLAB的QPSK调制解调的设计与实现

基于MATLAB的QPSK调制解调的设计与实现

基于MATLAB的QPSK调制解调的设计与实现
基于MATLAB的QPSK调制解调的设计与实现
吕彦明
【期刊名称】《电脑迷》
【年(卷),期】2017(000)026
【摘要】当前我国4G行业正值蓬勃发展,国家又在大力倡导三网融合.各个运营商都在极力扩展自己的业务.众所周知,调制解调技术是信号传输的基本和核心.好的技术能够快速地传递用户信息,并且有着高的准确性(即非常低的误码率)和可靠性.QPSK调制解调技术以其高的解调速率、低的误码率,在CDMA领域得到广泛应用.此项研究,对通信行业的发展有着积极推进的作用,利于提高我国通信行业的技术水准,以便于更好的为国家和人民服务.
【总页数】1页(153)
【关键词】QPSK;编译码;调制解调;电平转换;相干解调;抽样判决
【作者】吕彦明
【作者单位】山东科技大学山东青岛 266000
【正文语种】中文
【中图分类】
【相关文献】
1.基于MATLAB数字调制与解调的设计与仿真实现 [J], 蔡兴奋; 雷红
2.2FSK调制解调器的FPGA与MATLAB设计与实现 [J], 贺炜
3.基于MATLAB的幅度调制与解调的实现 [J], 马军辉
4.基于Matlab的调制解调系统仿真设计 [J], 张宇伟; 王耀明
5.基于Matlab/Simulink的幅度调制与解调综合实验设计[J], 李露; 史振威;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB的OQPSK调制解调实现学生姓名:周翌指导老师:吴志敏摘要本课程设计的目标在于深切理解OQPSK调制与解调的基本原理,学会使用MATALB软件中的M文件来实现OQPSK的调制与解调以及分析加入不同噪声时对信号的影响程度。

首先产生一个数字基带信号,接下来调用MATLAB中的相应函数对这个基带信号进行调制,然后分析调制后的波形:,记录结果后对调制后的信号进行解调,观察解调结果并做好记录,最后在信号中加入噪声并观察其时频图的变化,分析信噪比的噪声对调制结果的影响。

本课程设计的实验开发/运行平台为windowsXP/windows7,程序设计使用MATLAB语言。

通过调试运行,基本完成设计目标,达到调制与解调的目的。

关键词:MATLAB;M文件;OQPSK;调制与解调;噪声1 引言数字调制与解调技术在数字通信中占有非常重要的地位,数字通信技术与MATLAB 的结合是现代通信系统发展的一个必然趋势。

在数字信号通信过程中,噪声的影响往往比较大,同时我们都希望有较高的频带利用率和功率利用率,而OQPSK也是一种恒包络调制技术,其频谱特性好,既保留着2PSK的高抗噪声性能、高频带利用率和高功率利用率,又有效地减弱了2PSK的“反相工作”缺陷,在通信研究中有着非常重要的意义,特别是在卫星通信和移动通信的领域有着广泛的应用。

MATLAB作为当前国际控制界最流行的面向工程与科学计算的高级语言,在控制系统的分析、仿真与设计方面得到了非常广泛的应用,随着其信号处理专业函数和专业工具箱的成熟,越来越受到通信领域人士的欢迎,其在通信领域的应用也将更加广泛。

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、计算误码率。

2 OQPSK调制解调原理2.1 OQPSK调制原理OQPSK,即Offset Quadrature Phase Shift Keying的缩写,中文意思为偏置正交相移键控,是QPSK(正交相移键控,又有4PSK之称)的改进,有关QPSK的资料请参考《通信原理(第六版)》[1],这里就不多赘述了。

OQPSK与QPSK相同的是相位关系,即:把输入信号分为两路,然后正交调制。

所不同的是,OQPSK把同相和正交两支路的码流在时间上错开了半个码元周期。

因为两支路码元上偏移了半个周期,每次只能有一路可能发生极性翻转。

所以,OQPSK信号能跳变的相位只能是0o、+90o、-90o,不会发生180o的跳变,OQPSK与QPSK相比,信号的包络波动幅度有限,经过限幅放大后的频带范围也要小,所以性能也更加优良。

其星座映射图如下(图2-1)所示:图2-1 OQPSK星座映射图OQPSK的产生原理方框图如下(图2-2)所示:输入的数据信号是二进制不归零双极性码元,它被“串/并变换”电路变成两路码元a和b后,其每个码元的持续时间是输入码元的2倍,且b路码元在产生后马上增加了一个Ts/2(半个周期)的延时电路。

由a路码元和经延时后的b路码元相加的信号即为OQPSK调制信号。

图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为调制信号,即在调制信号中取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; %设置初始相位为0s=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基带信号频谱图图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) %调制信号波形图图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调制信号频谱图图3-6调制信号频谱图调制信号加噪声后的频谱图如下(图3-7)所示:s2=fft(noi,1024); %取1024个点对加噪声后的调制信号进行傅里叶变换fs2=(0:length(s2)-1)*fs/length(s2)-fs/2; %横坐标为频域plot(fs2,abs(s2)) %加入噪声后OQPSK调制信号的频谱图图3-7调制信号加入噪声后的频谱图3.2 OQPSK解调实现此步建立在已经进行完OQPSK调制的基础之上。

在OQPSK的解调过程中,我们使用的是oqpskdemod(y)这个函数,与函数oqpskmod(x)一样,这个函数的功能也非常有限,仅是oqpskmod(x)的逆过程,即oqpskdemod(y)的输入信号必须是oqpskmod(x)的输出信号,否则系统就会报错。

在没有加噪声之前,仅依靠简单的oqpskdemod(y)函数就可以将调制后的信号解调出来。

k=oqpskdemod(y); %解调信号解调信号如下(图3-8)所示:图3-8解调信号解调信号的频谱图如下(图3-9)所示:jtpp=fft(k,1024); %解调信号的傅里叶变换fj=(0:length(jtpp)-1)*fs/length(jtpp)-fs/2; %横坐标为频域plot(fj,abs(jtpp)) %解调信号的频谱图图3-9解调信号的频谱图与上一小节(3.1)中的调制信号进行对比,可以看出时域已经由不规则正弦信号还原成数字信号;且调制信号的频域变化非常快,两个最高峰都超过了50,这样有利于信号在信道中进行传输,而解调信号的频域变化比较缓慢,最高峰也都低于15,已经恢复到基带信号的频域特征了。

与上一小节中的基带信号进行对比,可以看出,解调后信号的值和频谱图与原基带信号完全一致,即OQPSK信号经调制后再解调,前后没有发生任何变化,实现了调制与解调的功能。

把调制信号当做在信道中传输的信号,此时的信道可以看成绝对理想信道,即信号在信道中的传输过程中没有受到任何干扰。

然而实际通信信道中,噪声是不可避免的一个影响信道性能的重要因素,在下一小节中将讨论加入噪声后的解调情况。

3.3叠加噪声的OQPSK解调噪声在通信系统中是一个不可忽视的元素,即使没有传输信号,通信系统中也有噪声,噪声永远存在于通信系统中,因此叠加了噪声的模拟OQPSK调制与解调结果会更加具有真实性、更有实用意义。

相关文档
最新文档