基于matlab模拟雷达海杂波PPI

基于matlab模拟雷达海杂波PPI
目录
共5页一、前言 (1)
二、配置雷达方案 (1)
三、运行模拟并收集退货 (3)
四、创建PPI 映像 (3)
五、结论 (5)
一、前言
此示例演示如何在海洋环境中模拟旋转天线阵列的计划位置指示器(PPI)雷达图像。

您将配置雷达方案和光谱海面模型,使用点散射体集合模拟扩展目标,生成返回信号,并绘制结果的 PPI 图像。

二、配置雷达方案
设置 RNG 种子以获得可重复的结果。

该情景将包括一个大型旋转均匀矩形阵列(URA),安装在海面上方的固定位置。

排列在长方体表面上的一组点目标将用于模拟中型集装箱船。

定义雷达系统参数。

使用 10 GHz 的 X 波段雷达,方位角波束宽度为 1 度,距离分辨率为 10 米。

使用 60 度的宽高程波束宽度,这将产生具有两行元素的 URA。

计算实现所需波束宽度所需的均匀间隔单元的数量,并创建一个 .将数组元素的属性设置为 true,以便仅包含来自指向方向的返回。

让雷达以 50 rpm 的速度旋转并以度/秒表示。

根据此速率计算旋转周期。

计算使用指定的方位角波束宽度最小覆盖 360 度所需的脉冲总数。

使用旋
转周期找到所需的脉冲重复频率(PRF)。

快速采样率必须是PRF的整数倍。

使用所需的范围分辨率找到所需的采样率,然后进行调整以将此约束与PRF相匹配。

雷达将使用短脉冲,每个分辨率单元一个样本。

现在创建并设置所需的参数。

创建并将设置为 0 以允许从配置派生更新速率。

现在配置海面。

表面将在大小为 2 公里乘 2 公里的正方形区域上定义。

该对象用于定义表面的光谱模型。

该属性定义空间域中基础网格的间距,并定义频域中网格的间距。

分辨率必须是表面长度的一个因素,因此请指定雷达距离分辨率的 1/4 的所需表面分辨率(足以捕获波的形状),然后进行调整以匹配此约束。

该对象用于指定将与表面关联的反射率模型。

使用海况为 3 的 NRL 反射率模型进行水平偏振。

使用反射率和光谱模型创建 2 km x 2 km 的海面。

将风速指定为 10 m/s,将风向指定为 0 度,以便风向 +X 方向吹。

创建雷达平台。

使用该对象将雷达安装在海拔 24 米处,并使用参数指定围绕 Z 轴的旋转速率(以弧度/秒为单位)。

使用雷达上的属性将波束指向下方,使其位于雷达最低点和海面边缘之间的中心。

定义长方体目标,然后使用提供的帮助函数将一组离散散射点添加到场景中,以基本表示目标。

指定目标尺寸、总 RCS、位置、航向和速度。

指定的距离分辨率用于确定散射体沿长方体表面的间距。

最后,通过在场景中调用该方法,为雷达启用杂波生成。

杂波发生器将仅包括光束 3 dB 宽度内的表面区域。

默认情况下,表面阴影处于启用状态,可以使用该属性禁用。

使用提供的帮助程序函数创建方案的可视化效果。

三、运行模拟并收集退货
模拟的每一帧都将为一个方位角指向方向生成一个距离剖面图。

接收到每帧的原始 IQ 数据后,将使用一个对象进行匹配过滤。

立即创建响应对象,指定使用的采样率,并从雷达的波形对象中获取所需的匹配滤波器系数。

指定要模拟的 360 度完整度数。

扫描从 0 度方位角开始,45 度的覆盖范围足以看到目标。

在具有 360 GB RAM 和 10.64 GHz CPU 的机器上,完整的3 度大约需要 6.<> 分钟。

根据所需的方位角覆盖范围设置方案停止时间。

从脉冲总数中减去一半,以确保仿真包括指定的确切脉冲数。

运行模拟。

跟踪每个循环的帧号,并从范围响应对象获取范围箱的向量。

矩阵将包含格式化为按方位角范围设置的信号数据。

四、创建PPI 映像
PPI 图像由一组以径向线排列的范围剖面组成,以形成笛卡尔空间中场景的圆形图像。

IQ 数据涵盖了整个范围的模糊性,因此首先将数据修剪到感兴趣的范围。

使用最小地面范围 200 米和等于海面长度一半的最大地面范围,然后找到与这些范围对应的范围门指数。

将方位角和范围箱转换为矩形坐标,然后使用该函数绘制图像。

为图像指定方位域时,请使用比脉冲数多一个点,以便图像完全包含所有 360 度方位角。

下面的 gif 显示了这种情况的记录,在大约 30 秒内天线旋转 34 次。

五、结论
在此示例中,您了解了如何在海洋环境中使用旋转雷达生成杂波和目标回波。

您了解了如何使用光谱模型来获取逼真的海高度和表面阴影,以及如何使用一组点目标模拟扩展目标,从而允许表面部分遮挡目标。

将IQ数据从极坐标格式转换为笛卡尔格式,并使用函数的颜色通道绘制以创建简单的PPI图像。

合集下载

Matlab在雷达信号处理和雷达成像中的应用

Matlab在雷达信号处理和雷达成像中的应用

Matlab在雷达信号处理和雷达成像中的应用随着科技的不断发展,雷达技术在军事、航空、天文等领域扮演着非常重要的角色。

而在雷达的研究和应用中,数据的处理和成像是至关重要的环节。

Matlab作为一款强大的数学软件,被广泛应用于雷达信号处理和雷达成像的领域。

本文将探讨Matlab在雷达信号处理和雷达成像中的具体应用。

一、雷达信号处理1. 信号预处理雷达接收到的信号常常受到多种干扰,例如噪声、杂波等。

Matlab提供了丰富的信号预处理函数和工具箱,可以对雷达信号进行滤波、降噪、去除杂波等操作。

其中,滤波操作可以通过FIR、IIR滤波器实现,而降噪操作可以通过小波分析等方法实现。

Matlab的强大计算能力和可视化功能使得信号预处理更加高效准确。

2. 目标检测雷达信号中的目标通常表现为一些特征突出的信号,例如脉冲幅度、脉冲宽度等。

通过对这些特征进行分析和处理,可以实现雷达信号中目标的检测和定位。

Matlab提供了一系列的目标检测算法和函数,如常用的卡尔曼滤波、最小二乘法等。

通过对雷达信号进行预处理和目标检测,可以提高雷达系统的性能和准确度。

3. 距离测量雷达系统通过测量目标与雷达之间的回波时间来实现距离的测量。

Matlab提供了丰富的信号处理函数和工具,可以实现对回波信号的采样、分析和测量。

通过对回波信号进行FFT、相关分析等处理,可以精确地测量目标与雷达之间的距离。

二、雷达成像1. 合成孔径雷达成像合成孔径雷达(SAR)是一种基于合成孔径技术的雷达成像方法,可以利用雷达的运动和信号处理来实现高分辨率的雷达图像。

Matlab提供了完善的SAR成像算法和工具箱,可以实现SAR数据的处理、成像和评估。

通过对SAR数据进行范围压缩、方位压缩和图像重建,可以获得高质量的SAR图像。

2. 多普勒处理雷达在接收回波信号时,目标的运动会引起回波频率的改变,这被称为多普勒效应。

多普勒处理是雷达成像的重要环节之一。

Matlab提供了多普勒处理的算法和函数,例如多普勒频谱分析和多普勒滤波等。

雷达信号matlab仿真

雷达信号matlab仿真

雷达系统分析大作作 者: 雪娣 学号:04104207271. 最大不模糊距离:,max1252u rC R km f == 距离分辨率:1502mcR m B ∆== 2. 天线有效面积:220.07164e G A m λπ==半功率波束宽度:3 6.4o dbθ==3. 模糊函数的一般表示式为()()()22*2;⎰∞∞-+=dt e t s t s f d f j d πττχ 对于线性调频信号 ()21Re j t p t s t ct e T πμ⎛⎫= ⎪ ⎪⎝⎭则有:()()221;Re Re p j t T j t d ppp t t f ct ct e e dt T T T πμπμτχτ∞+-∞⎛⎫⎛⎫+=⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎰ ()()()sin 1;11d p p d p d p p f T T f T f T T τπμττχττπμτ⎛⎫⎛⎫+- ⎪⎪ ⎪ ⎪⎛⎫⎝⎭⎝⎭=- ⎪ ⎪⎛⎫⎝⎭+-⎪ ⎪⎝⎭分别令0,0==d f τ可得()()220;,;0τχχd f()()sin 0;d p d d pf T f f T πχπ=()sin 1;011p p p p p T T T T T τπμττχττπμτ⎛⎫⎛⎫-⎪ ⎪ ⎪ ⎪⎛⎫⎝⎭⎝⎭=- ⎪ ⎪⎛⎫⎝⎭- ⎪ ⎪⎝⎭程序代码见附录1的T_3.m, 仿真结果如下:4. 程序代码见附录1的T_4.m, 仿真结果如下:通过比较得知,加窗后的主副瓣比变大,副瓣降低到40db 以下,但主瓣的宽度却增加了,约为未加窗时的1.5倍,主瓣也有一定的损失。

5.由雷达方程221340(4)tPG Te SNR KT LFR λσπ=计算可得1196.5540log SNR R =- db作图输出结果如下,程序代码见附录1的T_5.m在R=70km 时,计算得单个脉冲的SNR 1=2.7497 db,要达到要求的检测性能则需要12.5dB 的最小检测输入信噪比,而M 个相参脉冲积累可以将信噪比提高M 倍, 故 10)1(SNR D M ==9.4413 因此要达到要求就需要10个以上的相参脉冲进行积累。

五,海杂波统计特性分析及其建模仿真

五,海杂波统计特性分析及其建模仿真

五、海杂波统计特性分析及其建模仿真[一] 课程设计的目的:1. 利用已有的IPIX 雷达海杂波数据来进行统计特性分析,如幅度分布、相关系数估计、功率谱估计等,对海杂波统计特性有一定的了解。

2. 在Matlab 环境下产生不同参数的相关复合K 分布的海杂波数据,并且能够对其统计特性进行分析。

3. 应用Matlab 语言工具实现各种随机序列的产生,理解和熟悉随机过程分析在实际中的应用。

[二] 课程设计的要求:1. 能够掌握和正确运用信号处理工具箱中的一些函数,通过这些函数的运用能够正确分析相应的雷达海杂波数据的统计特性。

2. 要求能够熟练应用Matlab 语言产生各种常见的随机分布序列,并能够了解和分析其统计特性。

3. 能够根据不同的要求设计产生出不同分布参数的相关K 分布海杂波随机序列,并能分析其统计特性及其相关特性。

[三] 课程设计的内容:1. 海杂波有关的特性阐述高分辨雷达、低观测角,海杂波体现一种脉冲行为,更准确地说显示为类似目标的回波,称为尖峰(spikes )。

实验证明雷达杂波显著偏离了高斯行为,研究新的统计模型描述杂波的幅度、频谱和高阶统计量是很有必要的。

对于一阶幅度统计特征量已经提出了几种概率密度函数(PDF )。

在低观测角时,与杂波幅度符合的很好的是双参数分布家族,即包含一个形状(shape )参数和尺度(scale )参数的PDF ,其中采用最多的是Weibull 和K 分布,这两种分布总体上是和复合高斯分布兼容的。

其PDF 分别为:1)Weibull分布的PDF为:()1exp p p z pz P z q q q −⎡⎤⎛⎞⎛⎞=−−⎢⎥⎜⎟⎜⎟⎢⎥⎝⎠⎝⎠⎣⎦,()120,0,0,2p z p q q σ>>>= 其中q为尺度因子,p为形状因子,根据不同的海情,在1.4到2之间变化。

若p=2,就成为瑞利分布,若p=1则为指数分布。

2)K 分布的PDF为:111()(),2()A a u f u K au ννννν−−−=Γ 0,u ≥ ,0a ν>其中:()Γi 为Gamma 函数,()K νi 是ν阶第二类修正贝赛尔函数,ν为形状参数,a 为尺度因子。

在Matlab中进行雷达信号处理和目标跟踪

在Matlab中进行雷达信号处理和目标跟踪

在Matlab中进行雷达信号处理和目标跟踪雷达信号处理和目标跟踪是现代雷达技术的重要组成部分,在军事、航空、航天、气象等领域中具有广泛的应用。

Matlab作为一种功能强大的数学软件工具,为雷达信号处理和目标跟踪提供了便利的开发环境。

本文将介绍如何利用Matlab 进行雷达信号处理和目标跟踪,并探讨一些常用的算法和技术。

首先,我们需要了解雷达信号处理的基本概念和流程。

雷达信号处理包括信号预处理、目标检测、目标定位和跟踪等步骤。

在Matlab中,我们可以利用其丰富的工具箱和函数实现这些步骤。

例如,通过使用信号处理工具箱中的函数,我们可以对雷达信号进行滤波、解调、去噪等预处理操作;而通过使用图像处理工具箱中的函数,我们可以实现雷达信号的目标检测和定位。

此外,Matlab还提供了强大的图形界面和数据可视化工具,使我们能够直观地显示和分析雷达信号。

接下来,让我们具体介绍一些常用的雷达信号处理算法和技术。

其中之一是自适应抗干扰处理技术。

雷达系统在实际应用中可能会受到各种干扰,如天线旁瓶、气象杂波等。

自适应抗干扰技术能够根据实时环境自动调整各种参数,提高雷达系统的抗干扰性能。

在Matlab中,我们可以使用自适应滤波器函数对雷达信号进行抗干扰处理。

另一个常用的算法是脉冲压缩处理。

脉冲压缩是一种通过延长脉冲宽度来提高雷达目标分辨率的方法。

在Matlab中,我们可以利用FFT(快速傅里叶变换)等函数对雷达信号进行压缩处理,从而减小脉冲宽度,提高目标分辨率。

除了雷达信号处理,目标跟踪也是雷达应用中的重要环节。

目标跟踪旨在实时追踪目标的位置和运动状态。

在Matlab中,我们可以使用一些常见的目标跟踪算法,如卡尔曼滤波器和粒子滤波器。

这些算法能够根据目标的先验信息和测量值,精确估计目标的位置和动态特性,并实现目标的实时跟踪。

除了以上提到的算法和技术,Matlab还提供了许多其他功能强大的工具和函数,如多普勒失真校正、雷达图像生成、目标特征提取等。

(2021年整理)雷达系统仿真matlab代码

(2021年整理)雷达系统仿真matlab代码

(完整)雷达系统仿真matlab代码编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)雷达系统仿真matlab代码)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)雷达系统仿真matlab代码的全部内容。

%====================================================================== =====================%% 该程序完成16个脉冲信号的【脉压、动目标显示/动目标检测(MTI/MTD)】%===================================================================================== ======%%程序中根据每个学生学号的末尾三位(依次为XYZ)来决定仿真参数,034% 目标距离为[3000 8025 9000+(Y*10+Z)*200 8025],4个目标%目标速度为[50 0 (Y*10+X+Z)*6 100]%===================================================================================== ======%close all;%关闭所有图形clear all; %清除所有变量clc;%===================================================================================%%雷达参数 %%===================================================================================% C=3.0e8; %光速(m/s)RF=3.140e9/2; %雷达射频 1。

雷达信号处理的MATLAB仿真

雷达信号处理的MATLAB仿真

11目录1. 设计的基本骤 (1)1.1 雷达信号的产生 (1)1.2 噪声和杂波的产生 (1)2. 信号处理系统的仿真 (1)2.1 正交解调模块 (2)2.2 脉冲压缩模块 ...............................................2.3 回波积累模块 ...............................................2.4 恒虚警处理(CFAR)模块 (4)结论 (11)1 设计的基本骤雷达是通过发射电磁信号,再从接收信号中检测目标回波来探测目标的。

再接收信号中,不但有目标回波,也会有噪声(天地噪声,接收机噪声);地面、海面和气象环境(如云雨)等散射产生的杂波信号;以及各种干扰信号(如工业干扰,广播电磁干扰和人为干扰)等。

所以,雷达探测目标是在十分复杂的信号背景下进行的,雷达需要通过信号处理来检测目标,并提取目标的各种信息,如距离、角度、运动速度、目标形状和性质等。

图3-6 设计原理图2 信号处理系统的仿真雷达信号处理的目的是消除不需要的信号(如杂波)及干扰,提取或加强由目标所产生的回波信号。

雷达信号处理的功能有很多,不同的雷达采用的功能也有所不同,本文是对某脉冲压缩雷达的信号处理部分进行仿真。

一个典型的脉冲压缩雷达的信号处理部分主要由A/D 采样、正交解调、脉冲压缩、视频积累、恒虚警处理等功能组成。

因此,脉冲压缩雷达信号处理的仿真模型.2.1 正交解调模块雷达中频信号在进行脉冲压缩之前,需要先转换成零中频的I 、Q 两路正交信号。

中频信号可表示为:0()()cos(2())IF f t A t f t t πϕ=+ (3.2)式(3.2)中, f 0 为载波频率。

令:00()()cos 2()sin 2IF f t I t f t Q t f t ππ=- (3.3)则00()()cos 2()sin 2IF f t I t f t Q t f t ππ=- (3.4)在仿真中,所有信号都是用离散时间序列表示的,设采样周期为T ,则中频信号为 f IF (rT ) ,同样,复本振信号采样后的信号为f local =exp(?j ω 0rT ) (3.5)则数字化后的中频信号和复本振信号相乘解调后,通过低通滤波器后得到的基带信号f BB (r ) 为:11000{()cos()}(){()sin()}()N N BB IF IF n n f f r n r n T h n j f r n r n T h n ωω--==-----∑∑ (3.6)式(3.6)中, h (n ) 是积累长度为N 的低通滤波器的脉冲响应。

使用Matlab进行实时雷达信号处理与目标识别的实践指南

使用Matlab进行实时雷达信号处理与目标识别的实践指南引言雷达技术在军事、航空航天、气象等领域中有着广泛的应用。

实时雷达信号处理与目标识别是其中重要的研究方向之一。

Matlab作为一种功能强大的工具,可以帮助我们实现实时雷达信号处理和目标识别的算法。

本文将介绍如何使用Matlab进行实时雷达信号处理与目标识别,并提供实践指南。

一、雷达信号处理的基础知识1.1 雷达系统基本原理雷达系统由发射机、天线、接收机和信号处理模块组成。

发射机将电磁波发送至目标物体并接收反射回来的信号。

天线用于发射和接收信号。

接收机接收和放大返回的信号。

信号处理模块用于提取目标信息。

1.2 雷达信号处理流程雷达信号处理包括信号质量评估、信号预处理、目标检测与跟踪等步骤。

信号质量评估用于分析信号的特点,判断信号质量。

信号预处理包括去噪、增强等操作,以提高信号的质量。

目标检测与跟踪则是通过信号处理算法来识别目标。

二、Matlab在实时雷达信号处理中的应用2.1 信号质量评估Matlab提供了丰富的工具箱和函数,方便我们对信号进行特征提取和质量评估。

例如,我们可以使用MATLAB中的fft函数对信号进行频谱分析,通过观察频谱来评估信号的质量。

2.2 信号预处理信号预处理是提高信号质量的一个重要步骤。

Matlab提供了各种去噪和增强算法,例如小波去噪算法和自适应滤波算法。

我们可以根据具体需求选择适合的算法,并结合实时数据对算法进行调参和优化。

2.3 目标检测与跟踪目标检测与跟踪是雷达信号处理的核心任务之一。

在Matlab中,我们可以使用各种目标检测和跟踪算法来实现目标识别。

例如,常用的算法包括卡尔曼滤波、粒子滤波、模板匹配等。

Matlab提供了相关工具箱和函数,方便我们进行算法的实现和调试。

三、Matlab实时雷达信号处理与目标识别的实践指南3.1 数据获取与处理实时雷达信号处理需要依赖实时采集的雷达信号数据。

我们可以通过硬件设备或仿真数据生成器来获取数据。

基于MATLAB的雷达数字信号处理

雷达信号恒虚警率检测就是要求虚警概率保持恒定,这主要是因为在雷达信号检 测中,信号的最佳检测通常采用奈曼-皮尔逊准则,即在保持恒定的虚警概率的条件下, 使正确检测的概率达到最大值。
完成相参积累后,形成“距离-多普勒”二维分布图。对该二维分布图取模值处理后, 形成 CFAR(恒虚警)平面,若回波中存在目标信号,则二维分布图上会出现目标尖峰,
频率不同而以,因此,MATLAB 仿真时,只需考虑 S(t)。以下 MATLAB 程序产生 1.4
式的 chirp 信号,并作出其时域波形和幅频特性,如图 2 所示。
2
线性调频信号
0.5
0
-0.5
-1
-5 -4 -3 -2 -1
0
1
2
3
4
5
Time in u sec
线性调频信号的幅频特性
40
30
20
5. 目标信息提取处理
本文介绍的雷达系统采用单脉冲体制,具备精密跟踪的能力。每发射一个脉冲, 天线能同时形成若干个波束,将各波束回波信号的振幅和相位进行比较,当目标位于 天线轴线上时,各波束回波信号的振幅和相位相等,信号差为零;当目标不在天线轴 线上时,各波束回波信号的振幅和相位不等,产生信号差,驱动天线转向目标直至天 线轴线对准目标,这样可测出目标的方位角与俯仰角。从各波束接收的信号之和,可 测出目标的距离,从而实现对目标的测量和跟踪功能。单脉冲雷达已经广泛应用,在 军事上主要用于目标识别、靶场精密跟踪测量、导弹预警和跟踪、导弹再入弹道测量、 火箭和卫星跟踪、武器火力控制、炮位侦查、地形跟随、导航、地图测绘等,在民用 上主要用于交通管制。
sin K (T t)t e j2 fct Kt
合并 2.4 和 2.5 两式:

matlabsvd抑制海杂波代码

序号一:介绍matlabsvd抑制海杂波代码的背景和意义随着海洋资源的开发和利用日益增多,海洋监测和勘测技术也变得越来越重要。

然而,由于海洋环境的复杂性,海洋勘测中经常面临海杂波的干扰。

海杂波会对海洋监测数据的准确性和可靠性造成较大的影响,因此抑制海杂波成为海洋勘测技术中的一个重要问题。

在海洋勘测技术中,matlabsvd抑制海杂波代码是一种常用的方法。

它利用奇异值分解(Singular Value Dposition,SVD)对海洋监测数据进行处理,能够有效地抑制海杂波,提高数据的质量和可靠性。

研发和应用matlabsvd抑制海杂波代码对于促进海洋监测技术的发展具有重要意义。

序号二:matlabsvd抑制海杂波代码的原理和方法matlabsvd抑制海杂波代码的核心原理是利用SVD对海洋监测数据进行分解和重构。

具体方法如下:1. 将海洋监测数据矩阵进行SVD分解,得到三个矩阵U、S、V,其中U和V为正交矩阵,S为对角矩阵。

2. 根据海杂波的特点和分布情况,选择合适的奇异值对S矩阵进行处理。

一般来说,海杂波所占的奇异值较小,可以将这部分奇异值置为零,从而抑制海杂波干扰。

3. 利用处理后的S矩阵和U、V矩阵重构原始的海洋监测数据,得到抑制了海杂波的数据结果。

通过以上方法,matlabsvd抑制海杂波代码能够有效地抑制海杂波的干扰,提高海洋监测数据的质量。

序号三:matlabsvd抑制海杂波代码的优势和应用matlabsvd抑制海杂波代码具有以下几个优势和特点:1. 高效性:matlabsvd抑制海杂波代码能够快速、准确地对海洋监测数据进行处理,抑制海杂波的效果明显。

2. 灵活性:matlabsvd抑制海杂波代码可以根据海杂波的特点和具体情况进行调整和优化,具有较强的灵活性和适用性。

3. 可靠性:经过处理后的海洋监测数据质量更高,可靠性更强,能够为海洋监测和勘测提供更可靠的数据支持。

matlabsvd抑制海杂波代码在海洋监测技术中有着广泛的应用。

Matlab雷达回波数据模拟

clear, hold offformat compactJ = sqrt(-1);close all% Get root file name for saving resultsfile=input('Enter root file name for data and listing files: ','s');% form radar chirp pulseT = 10e-6; % pulse length, secondsW = 10e6; % chirp bandwidth, Hzfs = 12e6; % chirp sampling rate, Hz; oversample by a littlefprintf('\nPulse length = %g microseconds\n',T/1e-6)fprintf('Chirp bandwidth = %g Mhz\n',W/1e6)fprintf('Sampling rate = %g Msamples/sec\n',fs/1e6)s = git_chirp(T,W,fs/W); % 120-by-1 arrayplot((1e6/fs)*(0:length(s)-1),[real(s) imag(s)])title('Real and Imaginary Parts of Chirp Pulse')xlabel('time (usec)')ylabel('amplitude')gridNp = 20; % 20 pulsesjkl = 0:(Np-1); % pulse index array, 慢时间采样的序列,注意第一个PRI标记为0是为了慢时间起始时刻从零开始PRF = 10.0e3; % PRF in HzPRI = (1/PRF); % PRI in secT_0 = PRI*jkl; % relative start times of pulses, in secg = ones(1,Np); % gains of pulsesT_out = [12 40]*1e-6; % start and end times of range window in sec,这个就是接收窗的时间宽度TrecT_ref = 0; % system reference time in usec, T_ref = 0指T_0=0时,r_at_T_0 = ri ;当T_0 ~= 0时,r_at_T_0 = ri - vi*T_0(j)fc = 10e9; % RF frequency in Hz; 10 GHz is X-bandfprintf('\nWe are simulating %g pulses at an RF of %g GHz',Np,fc/1e9)fprintf('\nand a PRF of %g kHz, giving a PRI of %g usec.',PRF/1e3,PRI/1e-6) fprintf('\nThe range window limits are %g to %g usec.\n', ...T_out(1)/1e-6,T_out(2)/1e-6)% Compute unambiguous Doppler interval in m/sec% Compute unambiguous range interval in metersvua = 3e8*PRF/(2*fc); %第一盲速rmin = 3e8*T_out(1)/2;rmax = 3e8*T_out(2)/2;rua = 3e8/2/PRF;fprintf('\nThe unambiguous velocity interval is %g m/s.',vua)fprintf('\nThe range window starts at %g km.',rmin/1e3)fprintf('\nThe range window ends at %g km.',rmax/1e3)fprintf('\nThe unambiguous range interval is %g km.\n\n',rua/1e3)% Define number of targets, then range, SNR, and% radial velocity of each. The SNR will be the actual SNR of the target in% the final data; it will not be altered by relative range.Ntargets = 4; del_R = (3e8/2)*( 1/fs )/1e3; % in kmranges = [2 3.8 4.4 4.4]*1e3; % in kmSNR = [-3 5 10 7]; % dBvels = [-0.4 -0.2 0.2 0.4]*vua; % in m/sec% From SNR, we compute relative RCS using the idea that SNR is proportional% to RCS/R^4. Students will be asked to deduce relative RCS.rel_RCS = (10.^(SNR/10)).*(ranges.^4);rel_RCS = db(rel_RCS/max(rel_RCS),'power')fprintf('\nThere are %g targets with the following parameters:',Ntargets) for i = 1:Ntargetsfprintf('\n range=%5.2g km, SNR=%7.3g dB, rel_RCS=%7.3g dB, vel=%9.4g m/s', ...ranges(i)/1e3,SNR(i),rel_RCS(i),vels(i) )end% Now form the range bin - pulse number data mapdisp(' ')disp(' ')disp('... forming signal component')y = radar(s,fs,T_0,g,T_out,T_ref,fc,ranges,SNR,vels); % y是337-by-20的矩阵% add thermal noise with unit powerdisp('... adding noise')%randn('seed',77348911);[My,Ny] = size(y);nzz = (1/sqrt(2))*(randn(My,Ny) + J*randn(My,Ny)); % 产生方差为1的复高斯白噪声y = y + nzz;% create log-normal (ground) "clutter" with specified C/N and 具体原理不清楚,需要时套用此格式即可!% log-normal standard deviation for amplitude, uniform phase% Clutter is uncorrelated in range, fully correlated in pulse #disp('... creating clutter')CN = 20; % clutter-to-noise ratio in first bin (dB)SDxdB = 3; % in dB (this is NOT the sigma of the complete clutter) ncc=10 .^((SDxdB*randn(My,Ny))/10);ncc = ncc.*exp( J*2*pi*rand(My,Ny) );% Force the power spectrum shape to be Gaussiandisp('... correlating and adding clutter')G = exp(-(0:4)'.^2/1.0);G = [G;zeros(Ny-2*length(G)+1,1);G(length(G):-1:2)];for i=1:Myncc(i,:)=ifft(G'.*fft(ncc(i,:)));end% rescale clutter to have desired C/N ratiopcc = var(ncc(:));ncc = sqrt((10^(CN/10))/pcc)*ncc;% 10*log10(var(ncc(:))/var(nzz(:))) % check actual C/N% Now weight the clutter power in range for assume R^2 (beam-limited) losscweight = T_out(1)*((T_out(1) + (0:My-1)'*(1/fs)).^(-1));cweight = cweight*ones(1,Np);ncc = ncc.*cweight; % var(ncc)可以看出20列clutter的方差均在30左右y = y + ncc;[My,Ny]=size(y);d=(3e8/2)*((0:My-1)*(1/fs) + T_out(1))/1e3; % T_out(1))/1e3是接收窗的起始时刻plot(d,db(y,'voltage'))xlabel('distance (km)')ylabel('amplitude (dB)')grid% Save the data matrix in specified file.% Save the student version in the mystery file.% Also save all parameter value displays in corresponding filedata_file=[file,'.mat'];mystery_file=[file,'_mys.mat'];listing_file=[file,'.lis'];eval(['save ',data_file,' J T W fs s Np PRF PRI T_out fc vua', ...' rmin rmax rua Ntargets ranges vels SNR rel_RCS y']);eval(['save -v6 ',mystery_file,' J T W fs s Np PRF T_out fc y']);fid=fopen(listing_file,'w');fprintf(fid,['\rDESCRIPTION OF DATA IN FILE ',file,'.mat AND ',file,'_mys.mat\r\r']);fprintf(fid,'\rPulse length = %g microseconds\r',T/1e-6);fprintf(fid,'Chirp bandwidth = %g Mhz\r',W/1e6);fprintf(fid,'Sampling rate = %g Msamples/sec\r',fs/1e6);fprintf(fid,'\rWe are simulating %g pulses at an RF of %g GHz',Np,fc/1e9); fprintf(fid,'\rand a PRF of %g kHz, giving a PRI of %g usec.',PRF/1e3,PRI/1e-6);fprintf(fid,'\rThe range window limits are %g to %g usec.\r', ...T_out(1)/1e-6,T_out(2)/1e-6);fprintf(fid,'\rThe unambiguous velocity interval is %g m/s.',vua); fprintf(fid,'\rThe range window starts at %g km.',rmin/1e3);fprintf(fid,'\rThe range window ends at %g km.',rmax/1e3);fprintf(fid,'\rThe unambiguous range interval is %g km.\r\r',rua/1e3); fprintf(fid,'\rThere are %g targets with the following parameters:', ... Ntargets);for i = 1:Ntargetsfprintf(fid,'\r range=%5.2g km, SNR=%7.3g dB, rel_RCS=%7.3g dB, vel=%9.4g m/s', ...ranges(i)/1e3,SNR(i),rel_RCS(i),vels(i) );endfclose(fid);fprintf(['\n\nData is in file ',data_file])fprintf(['\nStudent data is in file ',mystery_file])fprintf(['\nListing is in file ',listing_file,'\n\n']) _________________________________________________________________________用到的函数function y = radar( x, fs, T_0, g, T_out, T_ref, fc, r, snr, v )% RADAR simulate radar returns from a single pulse or burst% of identical pulses% usage:% R = radar( X, Fs, T_0, G, T_out, T_ref, Fc, R, SNR, V )% X: baseband single pulse waveform (complex vector)% Fs: sampling frequency of input pulse [in Hz]% T_0: start time(s) of input pulse(s) [sec]% (number of pulses in burst assumed = length(g) )% G: complex gain(s) of pulse(s),即慢时间,各个PRI对应的脉冲的前的加权 20-by-1% T_out: 2-vector [T_min,T_max] defines output% window delay times w.r.t. start of pulse% T_ref: system "reference" time, needed to simulate% burst returns. THIS IS THE "t=0" TIME !!!% Fc: center freq. of the radar. [in Hz]% R: vector of ranges to target(s) [meters]% (number of targets assumed = length(r) )% SNR: vector of target SNRs (unit noise power assumed)% This will be SNR *after* allowing for R^4% V: vector of target velocities (optional) [in m/sec]% (positive velocities are towards the radar)%% note(1): VELOCITY in meters/sec !!!% distances in m, times in sec, BW in Hz.% note(2): assumes each pulse is constant (complex) amplitude% note(3): will accomodate up to quadratic phase pulses% note(4): vector of ranges, R, allows DISTRIBUTED targets%% (c) jMcClellan 7/28/90% Modified by M. A. Richards, August 1991J = sqrt(-1);c = 3e8; % velocity of light in m/sec Mx = length(x);delta_t = 1/fs; % sampling interval (sec)t_y = [ T_out(1):delta_t:T_out(2) ]'; % output sampling times (sec),接收窗的宽度的等间隔采样 337-by-1T_p = Mx*delta_t; % length of input pulse (sec),基带信号chirp的脉冲持续时间,即Te% Assume zero velocities (stationary targets) if no velocity% vector providedif nargin < 7v = zeros(r);end% ensure that all vectors are column vectorsx=x(:); g=g(:); T_0=T_0(:); r=r(:); snr=snr(:); v=v(:);%determine the quadratic phase modulation parameters for% later interpolation of pulse samplest_x = delta_t*[0:(Mx-1)]';x_ph = unwrap(angle(x)); %基带chirp信号的相位,可以看出x_ph是个抛物线q = polyfit(t_x,x_ph,2); %目的是用 q = ax^2 + bx + c 逼近x_ph% check result using correlation coefficientxfit = polyval(q,t_x); % 看看用 q = ax^2 + bx + c 拟合的xfit与x_ph的一致程度if (x_ph'*xfit)/norm(x_ph)/norm(xfit) < 0.99disp('pulse phase is not quadratic')keyboardend%%--- Form (initially empty) output matrix ---%Mr = length(t_y); Nr = length(g); % output samples in a matrixy = zeros(Mr,Nr); % 337-by-20% Index 'i' loops over the number of targets for i = 1:length(r)ri = r(i);vi = v(i);f_doppler = 2*vi*fc/c; %看看目标以速度v接近雷达应该如何表示,f_doppler = 2*v/lambda % Index 'j' loops over the number of pulses for j = 1:length(g) % 20 pulsesr_at_T_0 = ri - vi*T_0(j); %一般 T_0 = 0表示当下目标离雷达距ri,若 T_0 = 7 则表示7秒前目标离雷达距ri,现在目标距雷达? % Compute start and end time of reflected pulse at receiver,% ensure that it falls at least partially within the range (time) windowtau = 2*r_at_T_0/(c+vi); tmax = tau + T_p;if tau >= T_out(2) | tmax <= T_out(1)fprintf('\nEcho from target #%g at range %g km',i,ri)fprintf('\nis COMPLETELY OUT OF the range window')fprintf('\non pulse #%g.\n',j)else % Figure out which sample locations in the output grid contain% reflected pulset_vals = t_y - tau; %t_y是接收窗的区间 tau = 2*r_at_T_0/(c+vi) ,表示tau时刻目标位于r_at_T_0 ,tau即书上的t0 = 2R0/c% 用t_vals 而不是t_y是为了用 t_vals与 [0, T_p]这两个上下界相比较,可以想象若用t_y应该和 tau 和 T_p + tau比较 n_out = find( t_vals >= 0 & t_vals < T_p ); %T_p是chirp基带信号的长度,一个chirp脉冲携带有效测量数据,即Te上的采样点if tau < T_out(1)fprintf('\nEcho from target #%g at range %g km',i,ri) fprintf('\nSTARTS BEFORE the range window')fprintf('\non pulse #%g.\n',j)endif tmax > T_out(2)fprintf('\nEcho from target #%g at range %g km',i,ri) fprintf('\nFINISHES AFTER the range window')fprintf('\non pulse #%g.\n',j)end % Place scaled, range-delayed, Doppler shifted pulse into output matrix% Unit noise power and unit nominal pulse amplitude assumed to% get amplitude from SNR. amp = 10^(snr(i)/20);% n_out 是对应chirp脉冲宽度Te的120-by-1向量,原来接收的chirp信号未经过脉冲压缩在距离上占据c*Te/2米的长度,和对应长度的rect信号在距离上占据的长度是一样的! 经过脉冲压缩后chirp信号在距离上才占据c/(2B)米的长度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档