m基于matlab的OQPSK载波同步通信系统仿真,载波同步采用costas环

时间:2022-12-18 19:56:25

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

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

OQPSK复基带信号可以表示为:

m基于matlab的OQPSK载波同步通信系统仿真,载波同步采用costas环

   在OQPSK调制解调器设计中成形滤波、数字下变频、载波恢复和定时恢复是实现OQPSK调制解调器的难点和重点。

   在数字通信系统中,由于基带码元采用矩形波表示,其频谱是无限宽,当信号通过实际带限信道,频域截短,时域变为无限,产生码间串扰,为了克服码间串扰,需要对码元进行成形滤波。实际应用中,大多采用升余弦滤波器作为成形滤波器。

具有滚降系数α的升余弦滚降特性H(ω)可表示为:

m基于matlab的OQPSK载波同步通信系统仿真,载波同步采用costas环

而相应的h( t)为: m基于matlab的OQPSK载波同步通信系统仿真,载波同步采用costas环

    升余弦滚降信号在前后抽样值处的码间串扰为0,满足抽样值无失真传输条件,滚降系数α越小,则波形的振荡起伏就越大,但传输频带减小,对接收端的定时要求增加;反之,α越大,则波形振荡起伏越小,但频带增加。α=0时,升余弦滤波器变成了理想低通滤波器,此时信号的频带最窄;α=1时,升余弦滤波器的频带最宽,为理想低通滤波器的2倍。所以,升余弦滚降滤波器是以频带的增加来换取码间干扰的减少。

   从工作原理上讲,数字下变频与模拟下变频是一样的,就是输入信号与一个本地振荡信号的乘法运算。与模拟下变频相比,数字下变频的运算速度受DSP处理速度的限制,同时,其运算速度决定了其输入信号的数据流可达到最高速率,相应地也限定了ADC的最高采样速率;另外,数字下变频的数据精度和运算速度也影响着接收机的性能,所以,数字下变频器必须进行优化设计。

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

m基于matlab的OQPSK载波同步通信系统仿真,载波同步采用costas环m基于matlab的OQPSK载波同步通信系统仿真,载波同步采用costas环

3.核心MATLAB代码预览

ts = 1/fs;                                                                 %周期 
num = 2.5e6;                                                               %数据长度
SNR = -15;                                                                 %新噪比
real_fc = 3.563e6;                                                         %实信号频率3563000;
 
 
for i = 1:num
    real_fc=real_fc;
    data(i) = sin(2*pi*real_fc*(i-1)*ts+pi/4)+sqrt(10^(SNR/10))*randn(1,1); %科斯塔斯环的输入信号
end
 
 
fc = 3.5628e6;                                                             %本地频率
 
n = fs/1000;                                                               %累积时间为1ms
nn = [0:n-1];
nf = floor(length(data)/n);                                                % 将输入数据分成1ms的多个数据块
wfc = 2*pi*fc;                                                             %本地信号
phi_prv = 0;                                                               %初始值
temp = 0;                                                                  %初始值
frame = 0;                                                                 %初始值
carrier_phase = 0;                                                         %初始值
phase = 0;                                                                 %初始值
 
%环路滤波器的参数
c1 = 153.7130;
c2 = 6.1498;
 
for frame=1:nf 
    
% 产生本地的sin和cos函数
expcol = exp(j*(wfc*ts*nn+phase));
sine = imag(expcol);   
cosine = real(expcol);
 
%发送的数据,将IQ两路信号进行混频
x = data((1:n)+((frame-1)*n));
%将数据转换到基带
x_sine = x.*sine;
x_cosine = x.*cosine;
01-009m