脉冲压缩处理
脉冲压缩指雷达在发射时采用宽脉冲信号,接收和处理回波后输出窄脉冲。脉冲压缩技术是匹配滤波理论和相关接收理论的一个很好的实际应用。很好地解决了这样的一个问题:在发射端发射大时宽、带宽信号,以提高信号的发射能量,而在接收端,将宽脉冲信号压缩为窄脉冲,以提高雷达对目标的距离分辨精度和距离分辨力。该技术解决了雷达远距离探测与高精度测距性能不可兼顾的问题,是现代雷达中不可缺少的关键技术。
脉冲压缩的DSP处理方法有时域相关或频域相乘。对于点数较多的回波信号,采用频域相乘方法可以获得较快的运算速度。频域脉冲压缩的原图如下图所示。
图1 脉冲压缩处理流程图
DSP对采样后的数据进行FFT变换,变换至频域后,与其匹配滤波器频率数据进行复数相乘,相乘后,再与复数补偿因子进行相乘解决脉冲间距离走动问题,最后将结果做IFFT,重新变换回时域。其中,FFT点数、复数相乘点数、IFFT点数均为1024点。
信号s(t)的匹配滤波器的时域脉冲响应为:
(1.1)
t0是使滤波器物理可实现所附加的时延。理论分析时,可令t0=0,重写1.1式,
(1.2)
将1.1式代入1.2式得:
图2 LFM信号的匹配滤波
如上图,s(t)经过系统h(t)得输出信号s0(t0),当0≥t≥T时,
当-T≥t≥0时,
合并两式:
上式即为LFM脉冲信号经匹配滤波器得输出,它是一固定载频fc的信号。当t≤T时,包络近似为辛克(sinc)函数。
图3 匹配滤波的输出信号
如上图,当πBt=±π时,t=±1/B为其第一零点坐标;当πBt=±π/2时,t=±1/(2B),习惯上,将此时的脉冲宽度定义为压缩脉冲宽度。
LFM信号的压缩前脉冲宽度T和压缩后的脉冲宽度之比通常称为压缩比D,
上式表明,压缩比也就是LFM信号的时宽频宽积。
s(t),h(t),so(t)均为复信号形式,MATLAB仿真时,只需考虑它们的复包络S(t),H(t),So(t)。以下为MATLAB程序段,并将仿真结果和理论进行对照。仿真结果如下图:
图4 LFM信号的匹配滤波
图中,时间轴进行了归一化。图中反映出理论与仿真结果吻合良好。第一零点出现在±1(即±1/B)处,此时相对幅度-13.4dB。压缩后的脉冲宽度近似为1/B(±1/(2B)),此时相对幅度-4dB,这理论分析一致。
对于点数较多的回波信号,采用频域相乘方法可以获得较快的运算速度。对采样后的数据进行FFT变换,变换至频域后,与其匹配滤波器频谱数据进行复数相乘,最后将结果做IFFT,重新变换回时域。以下MATLAB代码仿真了上述过程,并将输入信号以及脉压后的输出信号进行了比较。
【仿真代码】
%% 线性调频信号的匹配滤波
clc;close all;clear all;
T=10e-6; %脉宽
B=25e6; %信号带宽
K=B/T; %调频斜率
Fs=200e6;Ts=1/Fs; %采样率
N=T/Ts;
t=linspace(-T/2,T/2,N);
St=exp(1j*pi*K*t.^2); %线性调频信号
Ht=exp(-1j*pi*K*t.^2); %匹配滤波器
Sot=conv(St,Ht); %匹配滤波后的线性调频信号
figure;
subplot(211)
L=2*N-1;
t1=linspace(-T,T,L);
Z=abs(Sot);Z=Z/max(Z); %归一化
Z=20*log10(Z+1e-6);
Z1=abs(sinc(B.*t1)); %sinc函数
Z1=20*log10(Z1+1e-6);
t1=t1*B;
plot(t1,Z,t1,Z1,'r.');
axis([-15,15,-50,inf]);
grid on;
legend('仿真','sinc');
xlabel('Time in sec timesitB');
ylabel('幅度,dB');
title('匹配滤波后的线性调频信号');
subplot(212) %zoom
N0=3*Fs/B;
t2=-N0*Ts:Ts:N0*Ts;
t2=B*t2;
plot(t2,Z(N-N0:N+N0),t2,Z1(N-N0:N+N0),'r.');
axis([-inf,inf,-50,inf]);grid on;
set(gca,'Ytick',[-13.4,-4,0],'Xtick',[-3,-2,-1,-0.5,0,0.5,1,2,3]);
xlabel('Time in sec timesitB');
ylabel('幅度,dB');
title('匹配滤波后的线性调频信号(Zoom)');
【线性调频信号匹配滤波的频域实现】
%% 线性调频信号匹配滤波的频域实现
clc;close all;clear all;
T=10e-6; %脉宽
B=25e6; %带宽
K=B/T; %调频斜率
Fs=200e6;Ts=1/Fs; %采样率
N=T/Ts;
t=linspace(-T/2,T/2,N);
St=exp(1j*pi*K*t.^2); %线性调频信号
Ht=exp(-1j*pi*K*t.^2); %匹配滤波器
Sf = fft(St,2048); %变换至频域
Hf = fft(Ht,2048);
Sot = fftshift(ifft(Sf.*Hf)); %频域相乘后做IFFT
Z=abs(Sot);
Z=Z/max(Z);
Z=20*log10(Z+1e-6);
figure;
subplot(211)
plot(t*1e6,real(St));axis tight;
xlabel('时间/mus','FontSize',12);ylabel('信号幅度','FontSize',12);
title('LFM输入信号','FontSize',12);
subplot(212)
t1=linspace(-T/2,T/2,2048);
% plot(t1,db(abs(Sot)));axis tight;
plot(t1,Z);axis tight;
xlabel('时间/s','FontSize',12);ylabel('信号幅度/dB','FontSize',12);
title('LFM脉压后的输出信号','FontSize',12);
END
- [快学Python3]基础知识
- [快学Python3]开发工具
- [快学Python3]解析器
- [快学Python3]函数
- [快学Python3]循环控制
- [linux][kprobe]谁动了我的文件---使用kprobe找到目标进程
- [快学Python3]if条件控制
- codeforces 767A Snacktower(模拟)
- [快学Python3]Sets(集合)
- [nptl][rwlock]pthread rwlock原理分析
- [快学Python3]Dictionary(字典)
- [快学Python3]List(列表)
- [快学Python3]Tuple(元组)
- HDU 1248 寒冰王座(完全背包裸题)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法