【雷达】基于圆拟合(circfit)算法抑制雷达信号处理中的直流分量附matlab代码

简介: 【雷达】基于圆拟合(circfit)算法抑制雷达信号处理中的直流分量附matlab代码

1 内容介绍

在现代脉冲雷达系统中,相位编码信号以其较好的抗干扰性能,越来越被重视和使用.MATLAB作为一种仿真工具,经常被用于雷达信号处理方案设计中.本文用MATLAB对相位编码信号的信号处理过程进行仿真,对信号处理过程中各节点信号进行分析,为雷达系统的总体设计提供了参考依据.

2 部分代码


clc;

close all;

clear all;


%% 雷达参数

Tx_Number = 2;               %发射天线

Rx_Number = 4;               %接收天线

Range_Number = 128;          %距离点数(每个脉冲128个点)

Doppler_Number = 128;        %多普勒通道数(总共128个重复脉冲数)

global Params;

Params.NChirp = Doppler_Number;               %1帧数据的chirp个数

Params.NChan =  Rx_Number;                    %RxAn数,ADC通道数

Params.NSample = Range_Number;                %每个chirp ADC采样数

Params.Fs = 2.5e6;                           %采样频率

Params.c = 3.0e8;                     %光速

Params.startFreq = 77e9;              %起始频率

Params.freqSlope = 60e12;             %chirp的斜率

Params.bandwidth = 3.072e9;           %真实带宽

Params.lambda=Params.c/Params.startFreq;    %雷达信号波长

Params.Tc = 144e-6;                         %chirp周期

global FFT2_mag;


%% 坐标计算

[X,Y] = meshgrid(Params.c*(0:Params.NSample-1)*Params.Fs/2/Params.freqSlope/Params.NSample, ...

   (-Params.NChirp/2:Params.NChirp/2 - 1)*Params.lambda/Params.Tc/Params.NChirp/2);  


%% 距离时域信号直流分量去除

load ReIm_Data_All.mat ;

fft1d_before=ReIm_Data_All;


AmR=zeros(Range_Number,Doppler_Number);

dataR=zeros(Range_Number,Doppler_Number,Tx_Number*Rx_Number);


for antenna=1:Tx_Number*Rx_Number

   for Range=1:Range_Number

       %1.估计每个扫频周期时间内的基带复信号中频信号的幅值

       AmR(Range,:)=fft1d_before(Range,:,antenna);

       

       %2.幅值时间序列和已知的初始相位时间序列得到复平面上的离散点      

%         figure(2);

%         plot(fft1d(:,doppler,1),'o');

%         title([num2str(doppler)]);

       

       %3.一个距离门上的所有多普勒点进行圆拟合

       xdataR=real(AmR(Range,:));

       ydataR=imag(AmR(Range,:));

       

       %最小二乘法拟合

       k0 = ones(1,3);

       F = @(k)(xdataR-k(1)).^2+(ydataR-k(2)).^2-k(3)^2;

       [k,resnorm] = lsqnonlin(F,k0);


       %k(1)是圆心的x坐标

       %k(2)是圆心的y坐标

       %k(3)的绝对值是圆的半径

       

%         r0 = [k(1),k(2)];

%         R = abs(k(3));

%         xx = k(1)-R:0.01*R:k(1)+R;

%         y1_h = sqrt(R.^2 - (xx - r0(1)).^2) + r0(2);

%         y2_h = -sqrt(R.^2 - (xx - r0(1)).^2) + r0(2);

%         figure(1);

%         plot(xx,y1_h,'b')

%         hold on

%         plot(xx,y2_h','b')

%         plot(xdata,ydata,'*r')

%         title('距离维圆拟合');

%         xlabel('实部');

%         ylabel('虚部');

%         axis equal %axis square

       

       %4.修正补偿

       %获取拟合圆的圆心

       x=k(1);

       y=k(2);

       

       %将圆心移到零点(0,0)

       xdataR=xdataR-x;

       ydataR=ydataR-y;


       %5.得到新的点的时间序列相位

       dataR(Range,:,antenna)=complex(xdataR,ydataR);

%         hold off;

   end

end

 

%% 速度维 圆拟合

AmV=zeros(Range_Number,Doppler_Number);

dataV=zeros(Range_Number,Doppler_Number,Tx_Number*Rx_Number);

for antenna=1:Tx_Number*Rx_Number

   for doppler=1:Doppler_Number

       %1.估计每个扫频周期时间内的基带复信号中频信号的幅值

       AmV(:,doppler)=dataR(:,doppler,antenna);

       

       %2.幅值时间序列和已知的初始相位时间序列得到复平面上的离散点      

%         figure(2);

%         plot(fft1d(:,doppler,1),'o');

%         title([num2str(doppler)]);

       

       %3.一个距离门上的所有多普勒点进行圆拟合

       xdataV=real(AmV(:,doppler));

       ydataV=imag(AmV(:,doppler));

       

       %最小二乘法拟合

       k0 = ones(1,3);

       F = @(k)(xdataV-k(1)).^2+(ydataV-k(2)).^2-k(3)^2;

       [k,resnorm] = lsqnonlin(F,k0);


       %k(1)是圆心的x坐标

       %k(2)是圆心的y坐标

       %k(3)的绝对值是圆的半径

       

%         r0 = [k(1),k(2)];

%         R = abs(k(3));

%         xx = k(1)-R:0.01*R:k(1)+R;

%         y1_h = sqrt(R.^2 - (xx - r0(1)).^2) + r0(2);

%         y2_h = -sqrt(R.^2 - (xx - r0(1)).^2) + r0(2);

%         figure(1);

%         plot(xx,y1_h,'b')

%         hold on

%         plot(xx,y2_h','b')

%         plot(xdata,ydata,'*r')

%         axis equal %axis square

       

       %4.修正补偿

       %获取拟合圆的圆心

       x=k(1);

       y=k(2);

       

       %将圆心移到零点(0,0)

       xdataV=xdataV-x;

       ydataV=ydataV-y;


       %5.得到新的点的时间序列相位

       dataV(:,doppler,antenna)=complex(xdataV,ydataV);

%         hold off;

   end

end


%% 1D FFT

fft1d= zeros(Range_Number,Doppler_Number,Tx_Number*Rx_Number);

for antenna =1:Tx_Number*Rx_Number

   for Range=1:Range_Number

       fft1d(Range,:,antenna) = fft((dataV(Range,:,antenna)));

   end

end


FFT1_mag=abs(fft1d(:,:,1));

figure();

mesh(FFT1_mag);

xlabel('采样点数');ylabel('脉冲数');zlabel('幅度');

title('圆拟合 1D-FFT结果');


%% 2D-FFT

fft2d= zeros(Range_Number,Doppler_Number,Tx_Number*Rx_Number);

for antenna=1:Tx_Number*Rx_Number

   for doppler=1:Doppler_Number

        fft2d(:,doppler,antenna) =fftshift( fft((fft1d(:,doppler,antenna))));  

   end

end

FFT2_mag=(abs(fft2d(:,:,1)));

figure();

mesh(X,Y,FFT2_mag);

xlabel('距离维(m)');ylabel('速度维(m/s)');zlabel('幅度');

title('圆拟合 2D-FFT结果');

%% END

3 运行结果

4 参考文献

[1]殷俊丽, 丁康利, 郝鹏飞. 基于MATLAB的雷达信号处理仿真[J]. 电子技术与软件工程, 2017(18):1.

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。



相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
1月前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
254 1
|
26天前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
9天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
3天前
|
数据采集 算法 数据可视化
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
10 1
|
11天前
|
算法
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
18 3
|
11天前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
14 3
|
11天前
|
算法
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
31 1
|
12天前
|
移动开发
MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测
MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测
18 0
|
13天前
|
数据可视化
matlab用高斯曲线拟合模型分析疫情数据
matlab用高斯曲线拟合模型分析疫情数据
16 0
|
13天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
19 0

热门文章

最新文章