脉冲压缩及MATLAB仿真(二)

简介: 脉冲压缩及MATLAB仿真(二)

脉冲压缩及MATLAB仿真(一)https://developer.aliyun.com/article/1473945

①、MATLAB 源码

stretch.m

function [y] = stretch(nscat,taup,f0,b,rrec,scat_range,scat_rcs,winid)
eps = 1.0e-16;              % 未用到
htau = taup / 2.;           % 未用到
c = 3.e8;
trec = 2. * rrec / c;       % 接收窗时间大小 
n = fix(2. * trec * b);     % 所要求的最小样本数,足以完全描述时宽为接收窗大小,带宽为 b 的 LFM 波形
m = power_integer_2(n);     % 计算一个大于等于 n 的最小的 2 的整数幂。
nfft = 2.^m;                % 接收窗 FFT 的长度
x(nscat,1:n) = 0.;
y(1:n) = 0.;
if( winid == 0.)
   win(1:n) = 1.;
   win =win';
else
   if(winid == 1.)
      win = hamming(n);
   else
      if( winid == 2.)
         win = kaiser(n,pi);
      else
         if(winid == 3.)
            win = chebwin(n,60);
         end
      end
   end
end
deltar = c / 2. / b;            % 每个带宽单位内的传播时间
max_rrec = deltar * nfft / 2.;  % 最大可接收的传播距离
maxr = max(scat_range);
if(rrec > max_rrec | maxr >= rrec ) % 判断接收窗口的大小是否合理
   'Error. Receive window is too large; or scatterers fall outside window'
   return
end
t = linspace(0,taup,n);
% 通过循环计算每个散射体对应的压缩回波信号。首先,根据散射体的距离 range 计算相位 psi1 和 psi2,然后使用指数函数计算每个散射体对应的回波信号,并将其累加到 y 中。
for j = 1:1:nscat                       
    range = scat_range(j);% + rmin;     % 目标距离
   psi1 = 4. * pi * range * f0 / c - ...
      4. * pi * b * range * range / c / c/ taup;
   psi2 = (2*4. * pi * b * range / c / taup) .* t;
   x(j,:) = scat_rcs(j) .* exp(i * psi1 + i .* psi2);
   y = y + x(j,:);
end
figure(1)
plot(t,real(y),'k')
xlabel ('Relative delay - seconds')
ylabel ('Uncompressed echo')
grid
ywin = y .* win';
yfft = fft(y,n) ./ n;
out= fftshift(abs(yfft));
figure(2)
delinc = rrec/ n;
%dist = linspace(-delinc-rrec/2,rrec/2,n);
dist = linspace((-rrec/2), rrec/2,n);
plot(dist,out,'k')
xlabel ('Relative range in meters')
ylabel ('Compressed echo')
axis auto
grid

test.m

clear all
close all
nscat = 3;      % three point scatterers
taup = 1e-2;    % 10 millisecond uncompressed pulse
f0 = 5.6e9;     % 5.6 GHz
b = 1e9;        % 1 GHz bandwdith
rrec = 30;      % 30 meter processing window
scat_range = [2 5 10] ; % scattterers are 2 and 5 and 10 meters into window
scat_rcs = [1 1 2]; % RCS 1 m^2 and 1m^2 and 2m^2
winid = 2; % kaiser window
[y] = stretch(nscat,taup,f0,b,rrec,scat_range,scat_rcs,winid);

②、仿真结果

1) 未压缩回波信号,3个目标不能分辨

2) 压缩回波信号,3个日标可以分辨

3、目标速度引起的失真

当目标径向速度非零时,接受脉冲宽度会被时间膨胀因子扩展(或压缩)。另外,接收脉冲的中心频率会以多普勒频率的大小偏移。

由目标径向速度引起的失真校正可以使用下面方法实现:在几个脉冲的时间内,雷达处理器估计跟踪目标的径向速度,然后改变下一个发射脉冲的chirp斜率和脉冲宽度,以补偿估计出的多普勒频率和时间膨胀。

目标速度引起的失真仿真如下:

①、MATLAB 源码

% use this program to reproduce Fig. 5.14 of text
clear all
eps = 1.5e-5;
t = 0:0.001:.5;                 
y = chirp(t,0,.25,20);
figure(1)
plot(t,y);
yfft = fft(y,512) ;
ycomp = fftshift(abs(ifft(yfft .* conj(yfft))));
maxval = max (ycomp);
ycomp = eps + ycomp ./ maxval; 
figure(1)
del = .5 /512.;
tt = 0:del:.5-eps;
plot (tt,ycomp,'k')
axis tight
xlabel ('Relative delay - seconds');
ylabel('Normalized compressed pulse')
grid
%change center frequency
y1 = chirp (t,0,.25,21);
y1fft = fft(y1,512);
y1comp = fftshift(abs(ifft(y1fft .* conj(yfft))));
maxval = max (y1comp);
y1comp = eps + y1comp ./ maxval; 
figure(2)
plot (tt,y1comp,'k')
axis tight
xlabel ('Relative delay - seconds');
ylabel('Normalized compressed pulse')
grid
%change pulse width
t = 0:0.001:.45;                 
y2 = chirp (t,0,.225,20);
y2fft = fft(y2,512);
y2comp = fftshift(abs(ifft(y2fft .* conj(yfft))));
maxval = max (y2comp);
y2comp = eps + y2comp ./ maxval; 
figure(3)
plot (tt,y2comp,'k')
axis tight
xlabel ('Relative delay - seconds');
ylabel('Normalized compressed pulse')
grid

②、仿真结果

1) LFM 信号

2) 脉冲压缩处理器的压缩脉冲输出

3) 失配的压缩脉冲,5%多普勒频移

4) 失配的压缩脉冲,10%时间膨胀

三、资源自取

脉冲压缩思维导图.rar

目录
相关文章
|
8月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
431 0
|
8月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
1022 30
|
8月前
|
编解码 算法 数据可视化
MATLAB 实现同步压缩小波变换
MATLAB 实现同步压缩小波变换
555 3
|
8月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
8月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
9月前
|
机器学习/深度学习 边缘计算 算法
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
380 0
|
8月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
730 0
|
8月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
967 0
|
8月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
251 0
|
8月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
261 0

热门文章

最新文章