基于MEDLL的Loran-C天地波周期联合识别及信号跟踪方法及MATLAB仿真代码和实测信号处理

目录

引言

针对目前Loran-C接收机天地波识别方法的不足,提出了一种优化包络相关与MEDLL相结合的天地波识别方法,并与正峰值比检测算法结合,从而实现天地波周期的联合识别。并从优化包络峰值检测原理、MEDLL估计方法、正峰值比检测门限等方面描述了该方法。仿真分析了联合识别方法的抗噪性能和抗天波干扰性能,验证了天地波识别的有效性,最后将该方法应用到实际Loran-C信号的处理,进一步验证了该方法的天地波和周期识别性能。试验结果表明:该方法具有良好的抗天波干扰性能,当天波延迟大于20us时,该方法能够准确地进行地波和周期识别,满足Loran-C接收机大范围的使用要求。

天地波周期联合识别算法

(1)MEDLL天地波周期联合识别

实际接收到的罗兰C信号为地波和天波的合成信号,由天地波参数构建合成信号表达式为:

式中,为地波幅度和延迟,)为m次天波幅度和延迟。实测相关函数为:

其中,为罗兰C标准脉冲包络微分的自相关函数。因此,使估计均方误差最小的参数取值为:

由上式可知,参数间相互耦合,无法单独求出,需要通过迭代更新参数估计结果,实现流程如下:

1)令,计算,得到

2)令,则,估计,更新估计

3),计算,更新估计

4)重复步骤2),3),直到估计均方误差收敛。

MEDLL(Multipath Estimation Delay Lock Loop)峰值检测是指基于多相关器原理,产生等间隔的标准罗兰C超前滞后包络微分(早迟码)分别与接收脉冲信号包络微分进行相关累积,从相关函数中提取地波和天波的幅度和延迟估计值,MEDLL峰值检测原理如下图所示:


图1 MEDLL峰值检测原理

(2)正峰值比

罗兰C脉冲各周期正向峰值在罗兰C包络峰值为1(归一化)时,都是确定的,如表1所示:

表1 Loran-C脉冲各周期归一化正峰值

零点(us) 10 20 30 40
归一化正峰值 0.0101 0.1860 0.4430 0.6795

各周期峰值与后一周期峰值比如表2所示:

表2 Loran-C脉冲周期正峰值比

零点(us) 10 20 30
归一化正峰值比 18.3790 2.3819 1.5338

因此,当比率接近 1.5538 时,相应的周期被认为是第三个周期。但在实际应用中,该值往往不等于 1.5338。一方面,在数字接收机中,信号是被采样的,因此不能保证采样点正好在峰值处。另一方面,由于噪声的影响,比值也会偏离理论值。在本文中,接收器的采样率为 1MHz,信噪比约为 18dB。经过长时间观测,确定第三个周期的峰值比在 1.53 和 1.80 之间。

(3)正向过零点估计

完成周期识别后,需要准确跟踪载波的第三周期正向过零点,由于实际中接收机的数据是经过采样后的信号,但在采样过程中,往往很难保证采样点恰好位于过零点处,因此在实际的信号处理中,一般采用极性检测的方法,即找到过零点附近的采样点,再通过插值的方法对过零点时间进行准确的估计,实际跟踪采样点的位置有以下三种情况:


图2 极性检测情况示意

在图2中,三个采样点的极性分别为"-++",此时认为准确跟踪第三周正向过零点;在图2(b)中,三个采样点的极性分别为"+++",没有负极性点,跟踪点左移一个采样点;在图2(c)中,三个采样点的极性分别为"--+",虽然同时存在正负极性点,但为了统一测量标准,将跟踪点右移一个采样点,从而与(a)中情况保持一致,经过跟踪采样点的平移,得到两个相邻的正负极性点,然后在这两个采样点之间进行线性插值。假设前两个采样点的采样值为,采样点序号为,则得到标准过零点的时刻为:

式中计算得到时刻的单位为:采样点,若需得到准确的时间,则用计算出的采样点时间乘采样间隔,即为绝对时刻。

关键代码及结果图

完整代码见文末

matlab 复制代码
%% MEDLL天地波周期识别方法抗天波干扰仿真测试
clear
close all

%% 仿真生成标准Loran-C信号
y=zeros(1,1000);
j=zeros(1,1);
x1=j; x2=j;
fs=1e6;   %采样率1MHz
T=1e6/fs;
for i=0:T:300  %单位是us
    x1=((i)/65).^2;
    x2=exp(2*(0-(i)/65));
    x3=sin(0.2*pi*i);
    j=j+1;
    y(j)=x1*x2*x3;
end

%% 抗噪性能测试
for SNR=0:28
    swave=-10^0.6*[y(end-50+1:end) y(1:end-50)];%将原信号右移模拟天波信号
    r=y+swave;
    if SNR<14
        r1=awgn(r,SNR+30);
    else
        r1=awgn(r,50);
    end
    bze1(SNR+1)=TrackMainStation(fs,r1);
end
figure;plot(0:28,bze1);
title('抗噪性能测试结果');xlabel('SNR/dB');ylabel('周期识别输出/us');

%% 抗天波干扰性能测试天波
SCG=12;
m=1;
for delay=30:80;%天波延迟30~80微妙
     swave=-10^0.6*[y(end-delay+1:end) y(1:end-delay)];%将原信号右移模拟天波信号
     r2=y+swave;
     bze2(m)=TrackMainStation(fs,r2);
     m=m+1;
end
figure;plot(30:80,bze2);
title('抗天波干扰性能测试结果');xlabel('天波延迟/us');ylabel('周期识别输出/us');

%% 实际信号测试结果
load b3.mat;
r=b3;
load b.mat;
%fs=1e6;

me=abs(hilbert(r));%罗兰脉冲包络
yd=(diff(b))/max(diff(b));%y标准罗兰脉冲,yd标准罗兰脉冲微分
md=(diff(me))/max(diff(me));%实际接收罗兰脉冲微分

delta1=find(me==max(me))-find(b==max(b));  %接收信号包络峰值与标准包络的距离

%DLL峰值检测
delta2=fs*10e-6;%相关器间隔10us
Ec=delta1-delta2; %早码左移的距离
Lc=delta1+delta2;%迟码右移的距离
if Ec<0
   E=[b(abs(Ec)+1:end) zeros(1,abs(Ec))];
else if Ec>0
   E=[zeros(1,Ec) b(1:end-Ec)];     
    else E=b;
    end
end   %早码
if Lc<0
   L=[b(abs(Lc)+1:end) zeros(1,abs(Lc))];
else if Lc>0
   L=[zeros(1,Lc) b(1:end-Lc)];     
    else L=b;
    end
end   %迟码
et=xcorr(diff(me),diff(E))-xcorr(diff(me),diff(L));
%plot(et);
etd=diff(et);
right=find(et==max(et));
zz=length(et)/2;

R=etd(900:1099)/max(etd(900:1099));%实测
%R=R';
load dd.mat;
dd1=conversion(dd,1e6,fs);
R=[R zeros(1,length(dd1)-length(R))];
Rx=dd1;
Rx=Rx/max(Rx);%基准
%R1=zeros(1,length(R));
R2=zeros(1,length(R));
for i=1:40
    R1=R-R2;
    [a1,tao1,R1]=estimationR(R1,Rx);
    R2=R-R1;
    [a2,tao2,R2]=estimationR(R2,Rx);
    res=R-R1-R2;
    mres(i)=mean(res);
    stdres(i)=std(res);
end
figure;plot(R1);hold on;plot(R2);
title('实际信号测试结果');xlabel('延迟/us');ylabel('相关值');


完整代码分为多个文件,数量较多,无法放在文章中。完整代码在下方。

相关推荐
远望清一色1 小时前
基于MATLAB的实现垃圾分类Matlab源码
开发语言·matlab
顶呱呱程序6 小时前
2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
算法·matlab·音视频·matlab-gui·音频滤波·脉冲响应不变法
简简单单做算法9 小时前
基于Retinex算法的图像去雾matlab仿真
算法·matlab·图像去雾·retinex
一个通信老学姐19 小时前
专业130+总400+武汉理工大学855信号与系统考研经验电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
其实吧319 小时前
基于Matlab的图像融合研究设计
人工智能·计算机视觉·matlab
Matlab程序猿小助手1 天前
【MATLAB源码-第208期】基于matlab的改进A*算法和传统A*算法对比仿真;改进点:1.无斜穿障碍物顶点2.删除中间多余节点,减少转折。
开发语言·嵌入式硬件·算法·matlab·机器人
IT猿手1 天前
基于卷积神经网络(CNN)的时间序列预测,15个输入1个输出,可以更改数据集,MATLAB代码
人工智能·深度学习·神经网络·算法·matlab·cnn
其实吧31 天前
基于MATLAB的运动车辆跟踪检测系统
开发语言·matlab
梦里水乡8572 天前
基于MATLAB的农业病虫害识别研究
开发语言·matlab
墨痕_7772 天前
论文阅读笔记Dense Passage Retrieval for Open-Domain Question Answering
matlab