认识非线性调频(NLFM)信号和脉冲压缩

微信公众号获取更多FPGA相关源码:
在这里插入图片描述

1.原理概述

非线性调频信号(NLFM)脉冲压缩原理:即采用非线性调频信号的代替线性调频信号,目的是在脉压后获得更好的主副瓣比,更小的信号损失。由于其信号处理方法同LFM信号一样,所以其方法的核心是如何设计NLFM信号,主要的方法是相位逗留法:

相位逗留法

原理比较复杂,感兴趣的可以自己去搜资料看公式推导,我们主要讲怎么在Matlab里面实现。

2.相位逗留法设计NLFM

2.1 原理分析

令非线性信号 S ( t ) S(t) S(t)的频谱为 S ( ω ) S(ω) S(ω),则脉压后信号 y ( t ) y(t) y(t)的频谱 Y ( ω ) Y(ω) Y(ω)
Y ( ω ) = ∣ S ( ω ) ∣ 2 e j φ Y(ω)=|S(ω)|^2 e^jφ Y(ω)=S(ω)2ejφ
上式中 ∣ S ( ω ) ∣ 2 |S(ω)|^2 S(ω)2决定了脉压后信号波形, e j φ e^jφ ejφ由多普勒频率和时延决定,脉压性能主要由$|S(ω)|^2 $决定。

简单窗函数法中,用常见的窗函数 W ( f ) W(f) W(f)来代替 ∣ S ( ω ) ∣ 2 |S(ω)|^2 S(ω)2,通过逗留相位原理和数字计算就可以得到 y ( t ) y(t) y(t),其步骤如下:

  1. 选取窗函数 W ( f ) W(f) W(f):海明窗、汉宁窗、高斯窗等。
  2. 计算群延迟函数 T ( f ) T(f) T(f):由于积分上下限涉及无穷,没办法直接计算,数字信号处理里面,积分其实就是求和,此处对序列采用求和进行计算求即可。
    T ( f ) = K T ∫ − ∞ f W ( v ) d v T(f)=K_T ∫_{-∞}^fW(v)dv T(f)=KTfW(v)dv
    K T = T / ( ∫ − ∞ + ∞ W ( v ) d v ) K T K_T=T/(∫_{-∞}^{+∞}W(v)dv) K_T KT=T/(+W(v)dv)KT
  3. 计算频率函数$f(t):f(t) 是 是 T(f)$反函数,反函数没有显式表达式,故只能采用数值计算方法:插值求得。
    f ( t ) = T − 1 ( f ) f(t)=T^{-1} (f) f(t)=T1(f)
  4. 计算相位函数 θ ( t ) θ(t) θ(t)
    θ ( t ) = 2 π ∫ − ∞ t f ( v ) d v θ(t)=2π∫_{-∞}^tf(v)dv θ(t)=2πtf(v)dv
  5. 得到NLFM信号 s ( t ) s(t) s(t)
    s ( t ) = e j θ ( t ) s(t)=e^{jθ(t)} s(t)=ejθ(t)

2.2 Matlab实现

以汉明窗(hamming)为窗函数,带宽 B = 8 M H z , T = 64 u s B = 8MHz,T = 64us B=8MHz,T=64us,8倍插值为例,matlab代码如下:

close all
clear all
clc

B = 8e6;
T = 64e-6;
int_num = 8;%插值数

ts = 1/(B);
N = T/ts;
t = 0:ts:T-ts;
t1 = t-T/2;
u= B/T;
BT = B*T;
fs = 1/ts;
fbin = fs/N;
f = 0:fbin:fs-fbin;
f1= f-fs/2;
%% windows
wa = hamming(N);
Nwin = length(f1);

wa_interp = interp(wa,int_num);
f1_interp = interp(f1,int_num);
t1_interp = interp(t1,int_num);
%% Tg(f)
 K = T/sum(wa_interp);
 for i = 1:length(wa_interp)
     Tg(i) = K*sum(wa_interp(1:i))-T/2;
 end

 interp_coe = 4;
 t2_interp = interp(t1_interp,interp_coe);
 
 %%f(t)
 fq1 = interp1(Tg,f1_interp,t2_interp);
 fq = fq1(2:interp_coe:end);
% fq = interp1(Tg,f1_interp,t1_interp,'cubic');
 
 %% phase
 for i = 1:length(fq)
     phase_w(i) = 2*pi*sum(fq(1:i))*ts/int_num;
 end
figure;
subplot(221);plot(f1_interp,wa_interp);title('window interp');xlabel('f:Hz');
subplot(222);plot(f1_interp,Tg);title('Group delay');xlabel('f:Hz');
subplot(223);plot(t1_interp,fq);title('frequency func');xlabel('t:s');
subplot(224);plot(t1_interp,phase_w);title('Phase');xlabel('t:s');
 
%% signal
xt = exp(1i*phase_w(1:end));
Num = length(xt);

xt_LFM = exp(1i*2*pi*u*t1_interp.^2);
figure
subplot(211);plot(t1_interp,real(xt_LFM));title('NLFM signal:time');xlabel('t:s');

fbin2 = int_num*fs/Num;
ff = 0:fbin2:fs*int_num-fbin2;
f2= ff-fs*int_num/2;

fft_xt = 20*log10(fftshift(abs(fft(xt))));
fft_xt = fft_xt - max(fft_xt);
subplot(212);plot(f2,fft_xt);title('NLFM signal:frequency');xlabel('f:Hz');
%% 脉冲压缩
fil_xt = conj(fliplr(xt));
yt = conv(fil_xt,xt);
figure
plot(20*log10(abs(yt)));

窗函数、群延迟函数、调频曲线、相位曲线如下图所示:

窗函数、群延迟函数、调频曲线、相位曲线

所设计的NLFM时域和频谱图如下:

NLFM时域和频谱

脉冲压缩结果如下:

NLFM脉冲压缩结果

主副瓣比

NLFM信号主副瓣比大概式40dB左右。

实际上直接对非线性调频信号进行匹配滤波,在合理
选取窗函数和其他雷达参数的情况下,最终的主副瓣比也只能达到-40dB 左右,因此研究如何进一步降低信号的旁瓣电平很有实际意义。而且非线性调频信号还是多普勒敏感信号,即探测目标如果有速度,其主副瓣比还会变高。
微信公众号获取更多FPGA相关源码:
在这里插入图片描述

  • 9
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值