脉冲压缩及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

目录
相关文章
|
3天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
2天前
|
机器学习/深度学习 算法 安全
m基于Q-Learning强化学习的路线规划和避障策略matlab仿真
MATLAB 2022a仿真实现了Q-Learning算法在路线规划与避障中的应用,展示了智能体在动态环境中学习最优路径的过程。Q-Learning通过学习动作价值函数Q(s,a)来最大化长期奖励,状态s和动作a分别代表智能体的位置和移动方向。核心程序包括迭代选择最优动作、更新Q矩阵及奖励机制(正奖励鼓励向目标移动,负奖励避开障碍,探索奖励平衡探索与利用)。最终,智能体能在复杂环境中找到安全高效的路径,体现了强化学习在自主导航的潜力。
8 0
|
2天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
摘要: 本文介绍了使用matlab2022a中优化后的算法,应用于时间序列回归预测,结合CNN、LSTM和Attention机制,提升预测性能。GWO算法用于优化深度学习模型的超参数,模拟灰狼社群行为以求全局最优。算法流程包括CNN提取局部特征,LSTM处理序列依赖,注意力机制聚焦相关历史信息。GWO的灰狼角色划分和迭代策略助力寻找最佳解。
|
3天前
|
算法 计算机视觉
基于高斯混合模型的视频背景提取和人员跟踪算法matlab仿真
该内容是关于使用MATLAB2013B实现基于高斯混合模型(GMM)的视频背景提取和人员跟踪算法。算法通过GMM建立背景模型,新帧与模型比较,提取前景并进行人员跟踪。文章附有程序代码示例,展示从读取视频到结果显示的流程。最后,结果保存在Result.mat文件中。
|
3天前
|
资源调度 算法 块存储
m基于遗传优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了遗传优化的LDPC码OSD译码算法,通过自动搜索最佳偏移参数ΔΔ以提升纠错性能。该算法结合了低密度奇偶校验码和有序统计译码理论,利用遗传算法进行全局优化,避免手动调整,提高译码效率。核心程序包括编码、调制、AWGN信道模拟及软输入软输出译码等步骤,通过仿真曲线展示了不同SNR下的误码率性能。
9 1
|
3天前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。
|
3天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
16 1
|
3天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
3天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)

热门文章

最新文章