---------------------------------------------------------------------------------------------------------------------------------
PRI变换法是雷达信号分选当中的一种经典算法,下面对其原理进行阐述并进行matlab仿真
---------------------------------------------------------------------------------------------------------------------------------
目录
一、PRI变换法原理
1.1、PRI变换法定义
其中,为脉冲到达时间的函数,定义 g(t) 的 PRI 变换公式如下
将g(t) 带入上式子得:
到此为止得到了真正的PRI变换法的公式。
1.2、PRI变换法具体实现

PRI 变换的谱可表示如下式:
根据上式,当b趋近于0时,这是在
连续的时候,但当
离散的时候如果将每一个箱子宽度表示为1,则
该步操作是为了更进一步简化运算,如果将每一个箱子宽度表示为1,则,这里的
是离散形式,如果不这么取的话则一个k的值
则代表着好几个
的变换。
算法实现流程图如下:
1.3、相位因子说明
再来说一下相位因子:考虑脉冲 PRI 固定的情况,PRI 箱中序列到达时间 tn 可表示为:
则在整个序列中(一个大箱子)

对应脉冲的相位就是
如下图:
1.4、门限说明
计算完PRI谱之后,我们需要设定检测门限来区别出真实 PRI 值所对应的谱峰,
门限设定遵循的原则:观察时间原则,消除子谐波原则以及消除噪声原则
暂不说明。
二、matlab仿真及其结果分析
2.1、单个固定PRI的信号
产出单个固定PRI的信号作为检测到的TOA序列,分别对其进行相关函数变换和PRI变换,运行结果如下:(PRI值为5,第一个TOA为1)
可以看到PRI变化法对谐波的抑制有很好的效果,而且保证不影响实际的PRI值的累计。
2.2、两个固定PRI的信号
这次产生两个固定PRI的信号叠加在一起作为检测序列.
(第一个PRI值为5,TOA为1)
(第二个PRI值为12,TOA为2)
分别对其进行相关函数变换和PRI变换,运行结果如下:
可以看到PRI变化法的优点。
---------------------------------------------------------------------------------------------------------------------------------
附录A 相关函数
假设信源脉冲流中有 N 个脉冲,到达时间为tn(n=0,1,...N-1),则截获脉冲表达式如下:
定义相关函数:
将g(t)带入C(\tau)得:
---------------------------------------------------------------------------------------------------------------------------------
附录B 推理过程
---------------------------------------------------------------------------------------------------------------------------------
附录C matlab代码:
clear
clc
x_range=50;
x=zeros(1,x_range);
pri_1=5;
pri_2=12;
x(1:pri_1:x_range)=1;%x(1:pri_1:x_range)+1;
x(2:pri_2:x_range)=1;%x(2:pri_3:x_range)+1;
t_n=[];
for p=1:length(x)
if x(p)~=0
t_n=cat(2,t_n,p);
end
end%147852369
diff=[];
for p=1:length(t_n)-1
diff(p)=t_n(p+1)-t_n(p);%记录tn的值
end
tau_min=min(diff);
tau_max=t_n(length(t_n))-t_n(1);
K=49;
k_bro=1;%手动算一下:k_bro=length[tau_min:tau_max]
D=zeros(1,K);
C=zeros(1,K);
for n=2:length(t_n)
for m= n-1:-1:1
tau=t_n(n)-t_n(m);
if tau < tau_min
continue
end
if tau >= tau_max
break
end
k=ceil(tau/k_bro);
D(k)=D(k)+exp(1i*2*pi*t_n(m)/tau);
C(k)=C(k)+1;
end
end
subplot(131)
stem(x)
subplot(132)
stem(abs(C));
subplot(133)
stem(abs(D));