全数字OQPSK调制解调的基本算法,包括成形滤波器、NCO模型、载波恢复

简介: 全数字OQPSK调制解调的基本算法,包括成形滤波器、NCO模型、载波恢复

1.算法描述

    OQPSK调制技术是一种恒包络调制技术,受系统非线性影响小,具有较高的带宽利用率和功率利用率,在卫星环境、无线环境下得到广泛应用。因此,在通信信号侦收设备所处理的信号中,存在大量的OQPSK信号。在传统的侦收设备中,接收机的解调单元都是采用模拟处理方法和器件实现的。大都使用了模拟滤波器、鉴相器(乘法器)和压控振荡器(VCO)。这种传统的模拟解调单元电路体积大,形式复杂;调试过程复杂、调试周期长;器件内部噪声大,易受环境影响,可靠性差。因此,这种传统的侦收设备不能完全发挥数字通信的优势,实现信号的最佳接收。随着大规模集成电路(VLSI)技术和工艺的进步,数字集成电路的复杂度和功能达到了前所未有的高度,以专用集成电路(ASIC)、数字信号处理器(DSP)、和现场可编程逻辑门阵列(FPGA)为代表的IC,已经在工业生产中得到大规模的应用。这些技术和工艺的快速发展,给侦收设备中解调单元的全数字化提供了可能。

   全数字化的调制解调器与传统的模拟电路调制解调器相比主要有以下优点:硬件电路稳定、通用、易维护;电路的稳定性好,基本不受环境、器件个体性能差异因素影响,无需复杂的电路调试。算法由软件实现,可以在通用的硬件平台上用不同的算法实现不同的调制解调器。数字调制解调算法通过计算机设计仿真,易于调试。易于实现自适应接收,可以切换或者调整系统软件,加载不同的算法,实现对多种不同体制信号的自适应接收。利于集成,随着数字器件的高速发展,数字接收机的集成度越来越高,使通信设备的小型化成为可能。本课题正是以某型侦收设备中OQPSK解调器的全数字化为背景展开研究,设计并实现全数字OQPSK调制解调器。

     OQPSK也称为偏移四相相移键控(offset-QPSK),是QPSK的改进型。它与QPSK有同样的相位关系,也是把输入码流分成两路,然后进行正交调制。不同点在于它将同相和正交两支路的码流在时间上错开了半个码元周期。由于两支路码元半周期的偏移,每次只有一路可能发生极性翻转,不会发生两支路码元极性同时翻转的现象。因此,OQPSK信号相位只能跳变0°、±90°,不会出现180°的相位跳变。

  OQPSK信号可采用正交相干解调方式解调。它与QPSK信号的解调原理基本相同,其差别仅在于对Q支路信号抽样判决时间比I支路延迟了/2,这是因为在调制时Q支路信号在时间上偏移了/2,所以抽样判决时刻也应偏移/2,以保证对两支路交错抽样。

  OQPSK克服了QPSK的l80°的相位跳变,信号通过BPF后包络起伏小,性能得到了改善,因此受到了广泛重视。但是,当码元转换时,相位变化不连续,存在90°的相位跳变,因而高频滚降慢,频带仍然较宽。

    采用非归零码直接进行调制所得的QPSK信号的幅度非常恒定,但其信号频谱较大。然而,当QPSK进行波形成形时,它们将失去恒包络的性质。偶尔发生的弧度为π的相移,会导致信号的包络在瞬间通过零点。任何一种在过零点的硬限幅或非线性放大都会引起旁瓣再生和频谱扩展,必须使用效率较低的线性放大器放大QPSK信号,这将使放大器的效率受到限制,进而影响到终端的小型化。
    为了克服QPSK对信道的线性度要求很高,交错QPSK(OQPSK)或参差QPSK虽然在非线性环境下也会产生频谱扩展,但对此已不那么敏感,因此能支持更高效率的放大器。
   在OQPSK中,其I支路比特流和Q支路比特流在数据沿上差半个符号周期,其它特性和QPSK信号类似。在QPSK信号中,奇比特流和偶比特流的比特同时跳变,但是在OQPSK信号中,I支路比特流和Q支路比特流,在它们的变化沿的地方错开一比特(半个符号周期)。

    由于在标准QPSK中,相位跳变仅在每个Ts=2TB秒时发生,并且存在180°的最大相移。可是在OQPSK信号中,比特跳变(从而相位跳变)每Tb秒发生一次。因为I支路和Q支路的跳变瞬时被错开了,所以在任意给定时刻只有两个比特流中的一个改变它的值。这意味着,在任意时刻发送信号的最大相移都限制在±90°。因此OQPSK信号消除了180°相位跳变,改善了其包括特性。

    从星座图看出,180°相位跳变消除了,所以OQPSK信号的带限不会导致信号包络经过零点。OQPSK包络的变化小多了,因此对OQPSK的硬限幅或非线性放大不会再生出严重的频带扩展现,OQPSK即使在非线性放大后仍能保持其带限的性质,这就非常适合移动通信系统,因为在低功率应用情况下,带宽效率和高效非线性放大器是起决定性作用的。还有,当在接收机端由于参考信号的噪声造成相位抖动时,OQPSK信号表现的性能比QPSK要好。

2.仿真效果预览
matlab2022a仿真结果如下:

image.png

3.MATLAB核心程序

clear ;
 
len = 2000;               %设置数据长度
Freq_Data = 16.32e6;      %采样频率--转换抽样频率为:16.32MHZ
nsamp = 16;                %采样率
Freq_Sample = Freq_Data * nsamp;
 
%%
Freq_Carr = 8e6;          %载波频率
FC_NCO = 8e6;             %本地NCO频率
 
Ts = 1 / Freq_Sample;
T = nsamp * Ts;
alpha = 0.5;
delay = 2;
wc = Freq_Carr * 2 * pi;
wc_nco = FC_NCO * 2 * pi;
Delta_Freq = - Freq_Carr/100;     %频偏 
 
%%
 
%得到OQPSK调制两路信号
 I_Data = ones(len,1);
 for i = 1 : 2 : len
     I_Data(i) = -1;
 end
 Q_Data = I_Data;
 I_D = u_rrcsend(I_Data,len,nsamp,0,Ts);
 Q_D = u_rrcsend(Q_Data,len,nsamp,0,Ts);
 
 
 carlen = length(I_D)/nsamp;
 %载波信号
 Delta_Phase=0;   %初始相位为0
  
 I_Carrier=cos((wc+Delta_Freq)/Freq_Sample*(1:carlen*nsamp));   %I路载波
 Q_Carrier=-sin((wc+Delta_Freq)/Freq_Sample*(1:carlen*nsamp));  %Q路载波
 %调制
 I_MOD = I_D.*I_Carrier;
 Q_MOD = Q_D.*Q_Carrier;
 
 
 
 %生成OQPSK信号
 send = I_MOD + Q_MOD;
 
 
 
figure(1);stairs(I_Data);
figure(2);stairs(Q_Data);
 
 
figure(3);plot(I_D);
figure(4);plot(Q_D);
 
figure(5);plot(I_Carrier);
figure(6);plot(Q_Carrier);
 
figure(7);plot(I_MOD);
figure(8);plot(Q_MOD);
相关文章
|
13天前
|
算法
基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真
本项目基于MATLAB2022a,采用模糊PI控制算法结合龙格-库塔方法,对CSTR模型进行Simulink建模与仿真。通过模糊控制处理误差及变化率,实现精确控制。核心在于将模糊逻辑与经典数值方法融合,提升系统性能。
|
13天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
90 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
93 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
86 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
3月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
122 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
2月前
|
机器学习/深度学习 数据采集 算法
如何在一夜之间成为模型微调大师?——从零开始的深度学习修炼之旅,让你的算法功力飙升!
【10月更文挑战第5天】在机器学习领域,预训练模型具有强大的泛化能力,但直接使用可能效果不佳,尤其在特定任务上。此时,模型微调显得尤为重要。本文通过图像分类任务,详细介绍如何利用PyTorch对ResNet-50模型进行微调,包括环境搭建、数据预处理、模型加载与训练等步骤,并提供完整Python代码。通过调整超参数和采用早停策略等技巧,可进一步优化模型性能。适合初学者快速上手模型微调。
128 8
|
2月前
|
机器学习/深度学习 算法 搜索推荐
django调用矩阵分解推荐算法模型做推荐系统
django调用矩阵分解推荐算法模型做推荐系统
44 4