雷达系统仿真maab代码

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

高分辨雷达一维距离像的融合特征识别 matlab代码

高分辨雷达一维距离像的融合特征识别 matlab代码

高分辨雷达一维距离像的融合特征识别matlab代码1高分辨雷达一维距离像的融合特征识别高分辨雷达(High Resolution Radar,HRR)是一种能够获取高分辨率距离像的雷达技术。

利用高分辨雷达技术可以获取目标物体的各种特征信息,如目标物体的距离、速度、角度、形状等。

其中,高分辨雷达一维距离像是一种重要的特征。

本文将介绍如何使用matlab 识别高分辨雷达一维距离像的融合特征。

2准备工作在进行高分辨雷达一维距离像的融合特征识别前,需要先准备好以下工作:-安装matlab软件;-获取高分辨雷达一维距离像数据文件;-确定识别目标物体的特征。

3数据处理将高分辨雷达一维距离像数据导入到matlab软件中,并进行预处理。

预处理的具体步骤如下:3.1加载数据从文件中读取高分辨雷达一维距离像数据,并将其存储到变量中:```matlabfilename='data.txt';data=load(filename);```3.2数据可视化对数据进行可视化,以便于观察数据的分布情况和特征:```matlabplot(data);```3.3数据平滑对数据进行平滑处理,降低其噪声水平:```matlabsmooth_data=smooth(data);```3.4特征提取从平滑后的数据中提取目标物体的特征,如目标物体的距离、速度、角度、形状等。

这里以目标物体的距离为例,使用峰值检测算法对数据进行处理并获取距离信息。

```matlabpeak_distance=findpeaks(smooth_data);```4特征识别在获取目标物体的特征后,可以针对不同特征进行识别。

这里以距离信息为例,介绍如何使用matlab对目标物体进行距离识别。

具体步骤如下:4.1特征选择根据实际需求选择需要识别的目标物体的距离范围,并将其存储到变量中:```matlabtarget_distance=[300,350];```4.2特征匹配对提取出的距离信息进行匹配,判断其是否和目标物体的距离范围匹配。

海杂波matlab仿真程序

海杂波matlab仿真程序

海杂波matlab仿真程序海杂波(sea clutter)是雷达信号处理中的一个重要问题,也是海洋环境中的一个常见现象。

海杂波指的是雷达接收到的来自海面的回波信号中的杂波部分,它主要由海浪、海浪与海面之间的散射物、海洋生物等引起。

海杂波会对雷达系统的性能产生影响,因此对海杂波进行研究和仿真具有重要意义。

Matlab是一种常用的科学计算软件,它提供了丰富的工具和函数,可以用来进行海杂波的仿真和分析。

在海杂波仿真中,我们可以通过模拟海洋环境中的各种因素,来生成与实际海杂波相似的信号。

这样可以帮助我们更好地理解海杂波的特性,并为雷达系统的设计和性能评估提供参考。

海杂波的特点是多变性和复杂性。

海洋环境中的海浪和散射物会引起回波信号的频率和相位的变化,这使得海杂波的特性难以准确描述。

因此,在进行海杂波的仿真时,我们需要考虑到这些因素,并结合实际的海洋环境数据进行模拟。

海杂波的仿真可以帮助我们研究海洋环境中的信号处理算法和雷达系统的性能。

通过对海杂波的仿真,我们可以评估不同算法对海杂波的抑制效果,并选择最优的算法来提高雷达系统的性能。

同时,海杂波的仿真还可以用于雷达系统的性能测试和验证,以确保系统能够正常工作。

海杂波的仿真还可以帮助我们研究海洋环境中的其他问题,例如海洋生物的检测和跟踪。

海洋生物在雷达回波中会产生特定的特征,通过对海杂波的仿真,我们可以研究这些特征,并开发相应的算法来检测和跟踪海洋生物。

除了海杂波的仿真,Matlab还可以用于海杂波数据的处理和分析。

通过对海杂波数据的处理和分析,我们可以提取出海杂波的特征和统计信息,从而更好地理解海杂波的性质。

这些信息可以用于雷达系统的设计和性能评估,并为海洋环境的监测和预测提供参考。

海杂波的仿真是雷达信号处理中的一个重要问题。

通过使用Matlab 进行海杂波的仿真和分析,我们可以更好地理解海杂波的特性,并为雷达系统的设计和性能评估提供参考。

海杂波的仿真还可以帮助我们研究海洋环境中的其他问题,例如海洋生物的检测和跟踪。

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

使用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 气象雷达基数据处理及可视化

matlab 气象雷达基数据处理及可视化

matlab 气象雷达基数据处理及可视化在使用MATLAB处理气象雷达基数据以及进行可视化时,可以遵循以下的基本步骤:1. **数据导入**:-使用MATLAB内置的功能,如`readradar`或其他专门的工具箱来导入气象雷达的基数据。

这些数据通常以二进制或文本格式存储。

2. **数据预处理**:-清理数据,去除噪声和无关信息。

这可能包括滤波、去除非气象回波、以及校正数据中的系统性误差。

3. **雷达图像重建**:-使用MATLAB中的绘图函数和工具箱(如Image Processing Toolbox)来重新构造雷达反射率图像。

4. **数据分析**:-分析雷达数据以提取气象特征,如降水强度、速度、谱宽等。

这可能需要使用统计方法、滤波器或其他信号处理技术。

5. **数据可视化**:-使用MATLAB的绘图功能来创建各种气象雷达图像,如反射率图、径向速度图、谱宽度图等。

-可以利用色彩映射、等高线、矢量图等多种方式来增强图像的可读性和信息量。

6. **结果验证**:-通过与实地气象数据对比,验证处理后的雷达数据的有效性和准确性。

7. **编写脚本或函数**:-编写MATLAB脚本或函数以便于自动化和重复使用数据处理流程。

8. **用户界面(GUI)设计**:-如果需要,可以设计GUI来简化数据处理流程,使得非专业用户也能方便地使用雷达数据分析工具。

下面是一个简化的示例MATLAB代码,用于读取雷达数据并创建一个简单的反射率图像:```matlab假设雷达数据存储在一个名为'radardata.bin'的文件中filename = 'radardata.bin';读取雷达数据data = readradar(filename);数据预处理(这里只是示例,具体处理取决于数据和需求)data = filter(some_filter, data);重建雷达图像reflectivity = reshape(data, [rows, columns]);创建反射率图像imshow(reflectivity, 'ColorMap', 'hot');title('气象雷达反射率图像');xlabel('距离范围');ylabel('高度');显示图像grid on;```请注意,上述代码中的`readradar`和`filter`函数以及其他函数和工具箱的使用需要根据您的具体数据格式和处理需求进行调整。

SAR成像RD算法MATLAB仿真

SAR成像RD算法MATLAB仿真

SAR成像RD算法MATLAB仿真在雷达成像中,SAR(Synthetic Aperture Radar)是一种通过向地面发射微波信号并接收反射回来的信号,来生成高分辨率地面图像的技术。

而RD(Range Doppler)算法是一种常用的SAR成像算法,用于将获得的原始数据处理成可视化的图像。

MATLAB是一种在科学和工程领域广泛使用的数学软件,具有强大的矩阵运算和图像处理功能。

下面将介绍如何使用MATLAB进行SAR成像的RD算法仿真。

首先,需要生成模拟的SAR返回信号。

可以使用MATLAB的信号处理工具箱中的函数进行模拟。

假设我们使用一个长度为N的脉冲信号进行雷达扫描,在SAR成像中,我们通常使用线性调频(Linear Frequency Modulation)信号。

可以使用MATLAB的`chirp`函数生成一个线性调频信号。

```matlabN=1024;%信号长度T=5e-6;%信号周期,信号的时间长度为T*Nfs = 100e6; % 采样频率f0=0;%初始频率f1=10e6;%终止频率t = 0:1/fs:T*N-1/fs;s = chirp(t, f0, T*N, f1);```接下来,我们需要生成一个代表地物散射特性的复数反射系数矩阵。

假设地面上有一个半径为R的圆形散射体,其反射系数为0.8、可以使用MATLAB的`meshgrid`函数生成一个二维的坐标网格,然后使用`sqrt`函数计算每个网格点到原点的距离。

```matlabR=5;%圆形散射体半径Np=100;%地物散射点个数x = linspace(-R, R, Np);y = linspace(-R, R, Np);[X, Y] = meshgrid(x, y);rho = sqrt(X.^2 + Y.^2); % 距离计算```然后,我们可以根据雷达与地物之间的距离计算相位偏移。

根据SAR 成像的原理,SAR返回信号中的每个采样点都对应着不同距离下的散射信号。

SAR_雷达_建模__仿真

SAR雷达成像仿真摘要雷达发展初期由于分辨率较低,其作用主要是“点”目标的检测和跟踪。

而现代机载雷达系统则要执行更多任务,从目标检测和识别到大面积地形测绘。

地形测绘可通过合成孔径雷达(SAR)实现。

通过采用相干辐射照射地面并测量回波信号,SAR可以产生地表的高分辨率二维图像,其成像质量由系统分辨单元的大小决定。

分辨单元由系统的距离和方位分辨率共同决定。

高的距离分辨率通过脉冲压缩技术实现。

高方位分辨率取决于天线尺寸及雷达波长,可以通过雷达运动达到增加天线孔径从而提高方位分辨率的目的。

本文简介了SAR的发展历史,着重研究条带式状正侧视SAR的成像原理,建立点目标回波模型,重点讨论了其R-D成像算法,介绍了目前常用的其他成像算法,在频域内对该算法进行了距离徙动校正(RCMC),从而得到多点目标的Matlab仿真。

关键词:SAR 正侧视距离徙动校正成像ABSTRACTBecause of low resolution radar at the early stage of development, its main function is "point target detection and tracking". The modern airborne radar system to perform more tasks, from the target detection and recognition to terrain mapping in large area. Topographic mapping can be actualized by synthetic aperture radar (SAR) . By using the coherent radiation and measure the echo signal,SAR can produce high resolution two-dimensional image , its imaging quality depends on the system resolution cell size. Resolution unit consists of range and azimuth resolution .High range resolution is achieved through the pulse compression technique. High range resolution depends on the size of the antenna and radar wavelength,the carrier’s motion is used to increase the antenna aperture radar so as to improve the range resolution of the.This paper introduces the development history of SAR, focuses on the imaging principle of belt shaped side looking SAR, and establishes the echo model of point target. The paper mainly part focuses on the R-D imaging algorithm, and introduces some other common imaging algorithm.The algorithm of range migration correction(RCMC) is solved in frequency domain,thereby getting the several-point-target Matlab imaging simulation.Keyword: SAR Side looking Range migration correction ImagingI目录第一章绪论 (1)1.1 合成孔径雷达(SAR)的发展历程和现状 (1)1.2 现代SAR的发展方向及意义 (2)1.2.1 多参数SAR系统 (2)1.2.2 聚束SAR (2)1.2.3 极化干涉SAR(POLINSAR) (3)1.2.4 合成孔径激光雷达(Synthetic Aperture Ladar) (3)1.2.5 星载合成孔径雷达的小型化 (3)1.2.6雷达与可见光卫星的多星组网是主要的使用模式 (4)1.3 论文的内容及结构安排 (4)第二章合成孔径雷达的工作原理 (5)2.1 线性调频信号及其脉冲压缩 (5)2.2 方位分辨率 (6)2.3 SAR点目标回波模型 (8)第三章合成孔径雷达的成像算法 (10)3.1 运动补偿技术的发展及现状 (10)3.1.1 引言 (10)3.1.2 基于运动传感器补偿算法的发展 (10)3.1.3 运动补偿算法的发展 (11)3.1.4 基于回拨数据运动补偿算法的发展 (12)3.1 距离徙动 (12)3.2 距离-多普勒算法(R-D算法) (15)3.2.1 原始正侧视及其改进的距离多普勒算法 (15)3.2.2 斜侧视下距离多普勒算法 (17)3.3 其他SAR成像算法简介 (18)3.3.1 线性调空变平移算法(Chirp Scaling,C-S) (18)II3.3.2 距离徙动算法(RMA) (19)3.3.3 极坐标格式算法(PFA) (19)3.3.5 频域变尺度算法(Frequency Scaling) (20)3.3.6 各算法的比较 (20)第四章成像仿真及分析 (22)第五章全文总结 (27)致谢 (28)参考文献........................................................................................ 错误!未定义书签。

多普勒雷达仿真代码

多普勒雷达仿真代码下面是一个简单的多普勒雷达仿真代码的示例,使用 Python 编写。

这个示例代码模拟了多普勒雷达的基本工作原理,并生成了一些模拟的雷达回波数据。

```pythonimport numpy as npimport matplotlib.pyplot as plt# 定义多普勒雷达的参数c = 3e8 # 光速(m/s)f = 1e9 # 雷达频率(Hz)v = 300 # 目标速度(m/s)theta = np.radians(30) # 雷达波束与目标速度之间的夹角# 生成时间序列t = np.linspace(0, 2 * np.sqrt(v**2 * np.sin(theta)**2 / (2 * c * f)), 1000) # 计算多普勒频移fd = 2 * v * np.sin(theta) * np.cos(2 * np.pi * f * t / c)# 生成模拟的雷达回波数据echo = np.sin(2 * np.pi * f * t + fd)# 绘制结果plt.plot(t, echo)plt.xlabel('Time (s)')plt.ylabel('Amplitude')plt.title('Doppler Radar Simulation')plt.show()```在这个示例代码中,我们首先定义了一些多普勒雷达的参数,包括光速`c`、雷达频率`f`、目标速度`v`和雷达波束与目标速度之间的夹角`theta`。

然后,我们生成了一个时间序列`t`,表示雷达发射和接收信号的时间。

接下来,我们根据多普勒效应的公式计算了多普勒频移`fd`,并生成了模拟的雷达回波数据`echo`。

在这里,我们使用了一个简单的正弦函数来模拟回波信号的形状。

最后,我们使用`matplotlib`绘制了结果,显示了时间`t`和回波信号`echo`的关系图。

毫米波雷达三坐标matlab

毫米波雷达三坐标matlab介绍毫米波雷达是一种利用毫米波频段进行探测和成像的雷达系统。

它具有高分辨率、抗干扰能力强等优点,被广泛应用于机场安全、车辆自动驾驶、人体成像等领域。

三坐标毫米波雷达是一种可以同时获取目标的距离、速度和角度信息的雷达系统,它可以实现对目标的精准定位和跟踪。

本文将介绍如何使用Matlab对三坐标毫米波雷达进行数据处理和分析。

数据获取三坐标毫米波雷达通常由发射天线、接收天线和信号处理系统组成。

在实验中,我们可以使用一个仿真平台来模拟雷达系统的工作过程。

Matlab提供了一个名为Phased Array System Toolbox的工具箱,它可以用于设计、分析和模拟天线阵列和雷达系统。

我们可以使用这个工具箱来生成毫米波雷达的信号和接收数据。

首先,我们需要定义雷达系统的参数,包括发射频率、接收天线的位置和方向、目标距离和速度等。

然后,我们可以使用phased.LinearFMWaveform函数生成线性调频信号,该函数可以指定信号的中心频率、带宽和脉冲宽度等参数。

接下来,我们可以使用phased.Transmitter和phased.Receiver对象来模拟发射和接收天线。

这些对象可以指定天线的位置、方向和增益等参数。

最后,我们可以使用phased.RadarTarget对象来模拟目标,并将其放置在指定的距离和速度处。

该对象可以指定目标的反射系数和散射特性等参数。

数据处理一旦我们生成了雷达信号和接收数据,我们就可以使用Matlab进行数据处理和分析。

首先,我们需要将接收数据进行FFT变换,以获得频域信息。

然后,我们可以使用信号处理技术来提取目标的距离、速度和角度信息。

以下是一些常用的信号处理技术:1. 距离测量:我们可以使用峰值检测算法来提取目标的距离信息。

该算法可以搜索FFT谱中的峰值,并计算对应的距离值。

2. 速度测量:我们可以使用多普勒处理技术来提取目标的速度信息。

该技术可以将接收信号进行FFT变换,并提取多普勒频移。

基于MATLAB的GPS信号仿真完整源代码123

配套毕业设计论文见百度文库请搜索《基于MATLAB的GPS信号仿真123》附录C 仿真程序代码1、数据码的产生function datacode=data(x)y=rand(1,x);for i=1:xif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendy(1)=0;show2(1)=datacode(1);q=2;for i=1:length(datacode)for j=1:100y(q)=i-1+j*0.01;show2(q)=datacode(i);q=q+1;endendplot(y,show2);axis([0 length(datacode) -0.2 1.2]);1、C/A码的产生及扩频调制clc;c=input('请输入数据码的长度:c=');y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);number=input('请输入卫星PRN号码:number=');cacode=CAgenerate(number);temp=cacode(1:100)x(1)=0;show(1)=temp(1);p=2;%下面的循环是为了将结果显示成方波形式 for i=1:length(temp)for j=1:100x(p)=i-1+j*0.01;show(p)=temp(i);p=p+1;endend%画出仿真结果图subplot(4,1,2);plot(x,show);title('C/A码');axis([0 100 -0.2 1.2]);%截取CA码的前十个数据进行扩频,每个数据插入5个CA序列cacode1=cacode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50);elsedatacodek((i-1)*50+1:i*50)=zeros(1,50);endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),cacode1(addr));endend%下面的循环是为了将结果显示成方波形式x(1)=0;show(1)=kuopindata(1);p=2;for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave];for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);plot(GPSsignal(1:500));title('调制后数据');C/A码产生的子程序CAgenerate:function cacode=CAgenerate(number)if (number<1)|(number>37)disp('输入参数必须在1 ~ 37之间取值');returnendCACode=zeros(1,1023); %生成一个1*1023的零矩阵% 设置寄存器初相Reg1=[1,1,1,1,1,1,1,1,1,1];Reg2=[1,1,1,1,1,1,1,1,1,1];% 设置反馈点,1表示需要反馈gp1=[0,0,1,0,0,0,0,0,0,1];gp2=[0,1,1,0,0,1,0,1,1,1];% 抽头G2Table=[ 2,3,4,5,1,2,1,2,3,2,3,5,6,7,8,9,1,2,3,4,5,6,1,4,5,6,7,8,1,2,3,4,5,4,1,2,4;6,7,8,9,9,10,3,4,6,7,8,9,10,4,5,6,7,8,9,3,6,7,8,9,10,6,7,8,9,10,10,7,8,10;]% 生成一个周期的伪码序列for m=1:1023CACode(m)=mod(Reg1(10)+Reg2(G2Table(1,number))+Reg2(G2Table(2,number)),2); Reg1=[mod(Reg1*gp1',2),Reg1(1:9)];Reg2=[mod(Reg2*gp2',2),Reg2(1:9)];endcacode=CACode;2、C/A码的相关性分析clc;n=input('请输入卫星PRN号码:n=');cacode1=CAgenerate(n);%在G2序列中找出-1并转换为0,找出1并转换为1ind1=find(cacode1==1);ind2=find(cacode1==0);cacode1(ind1)=-ones(1,length(ind1));cacode1(ind2)=ones(1,length(ind2));N=1023;z=zeros(1,1023);for i=0:N-1for k=i+1:N-1z1(k)=cacode1(k)*cacode1(k-i); z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/N;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 1300 -0.5 1.2]);n=input('请输入卫星PRN号码:n='); cacode2=CAgenerate(n);ind1=find(cacode2==1);ind2=find(cacode2==0);cacode2(ind1)=-ones(1,length(ind1)); cacode2(ind2)=ones(1,length(ind2)); N=1023;h=zeros(1,1023);for i=0:N-1for k=i+1:N-1h1(k)=cacode1(k)*cacode2(k-i); h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/N;endsubplot(2,1,2);plot(h);title('互相关特性');axis([-50 1300 -0.5 1]);4、 P码的产生及扩频调制clc;c=input('请输入数据码的长度:c=');y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);NumberPCode=input('enter the NumberPcode='); NumberShift=input('enter the NumberShift=');a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift);x(1)=0;show(1)=pcode(1);p=2;for i=1:length(pcode)for j=1:100x(p)=i-1+j*0.01;show(p)=pcode(i);p=p+1;endendsubplot(4,1,2);plot(x,show);title('P码');axis([0 length(pcode) -0.2 1.2]);pcode=pcode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50);elsedatacodek((i-1)*50+1:i*50)=zeros(1,50);endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),pcode(addr));endendx(1)=0;show(1)=kuopindata(1);p=2;%下面的循环是为了将结果显示成方波形式for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave]; for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);title('调制后数据');plot(GPSsignal(1:500));以下是P码产生的子程序Pcode:function pcode=Pcode(a,NumberPCode,NumberShift) % P码产生reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1a=0;rx1b=0;rx2a=0;rx2b=0;x1bWork=1;x2aWork=1;x2bWork=1;N=NumberShift;C1=4092*3750;C2=4093*3749;z1a=mod(N,4092);%取余数x1a=mod([(N-z1a)/4092],3750);y1a=(N-z1a-4092*x1a)/C1;if ((N-C1*y1a)>=C2)z1b=4092;x1bWork=0;x1b=3748;elsez1b=mod((N-C1*y1a),4093);x1bWork=1;x1b=(N-z1b-C1*y1a)/4093;endm=mod(N,(C1+37));y2a=(N-m)/(C1+37);if (m>=C1)dv=m-C1;elsedv=0;endz2a=mod((m-dv),4092);x2a=mod((((m-dv)-z2a)/4092),3750);z2b=mod((m-dv),4093);if (m>=C2)x2b=3748;elsex2b=(m-z2b)/4093;end%各移位寄存器的状态for i=1:z1aslave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)= reg1a(1:11);reg1a(1)=slave1a;endfor i=1:z1bslave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11)+ reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;endfor i=1:z2aslave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+reg2a(10) +reg2a(11+reg2a(12)) ,2);reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;endfor i=1:z2bslave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2); reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;end%各控制变量的判断if z1a==4091rx1a=1;endif z1b==4092rx1b==1;endif z2a==4091rx2a=1;x2aWork=0;endif z2b==4092rx2b=1;x2bWork=0;end%开始产生P码p=zeros(NumberPCode,1);x1acou=0;x1bcou=0;x2acou=0;x2bcou=0;cou37=dv;x2(1:a)=1;for i=1:(NumberPCode+37)x1(i)=mod( reg1a(12)+reg1b(12),2);x2(i+a)=mod( reg2a(12)+reg2b(12),2);%寄存器x1b的移位函数if x1bWork==1if rx1b==0slave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11)+reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;else if rx1b==1reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1b=0;endendelse if x1bWork==0endendif reg1b==[0 1 0 1 0 1 0 1 0 1 0 0 ]rx1b=1;x1bcou=x1bcou+1;if x1bcou==3749x1bwork=0;x1bcou=0;endend%寄存器x1a的移位函数if rx1a==0slave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)=reg1a(1:11);reg1a(1)=slave1a;else if rx1a==1reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];rx1a=0;endendif reg1a==[0 0 1 0 0 1 0 0 1 0 0 0]rx1a=1;x1acou=x1acou+1;if x1acou==3750x1bwork=1;x1acou=0;endend%寄存器x2b的移位函数if x2bWork==1if rx2b==0slave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2); reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;else if rx2b==1x2bout=reg2b(11);reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx2b=0;endendelse if x2bWork==0reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];x2bWork=1;rx2b=0;endendif reg2b==[0 1 0 1 0 1 0 1 0 1 0 0]rx2b=1;x2bcou=x2bcou+1;if x2bcou==3749x2bWork=0;x2bcou=0;endend%寄存器x2a的移位函数if x2aWork==1if rx2a==0slave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+reg2a(10)+reg2a(11)+reg2a(12) ,2); reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;else if rx2a==1reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];rx2a=0;endendelse if x2aWork==0if rx2a==1cou37=cou37+1;if cou37==37rx2a=0;x2awork=1;cou37=0;endendendendif reg2a==[0 1 0 0 1 0 0 1 0 0 1 1]rx2a=1;x2acou=x2acou+1;if x2acou==3750x2awork=0;x2acou=0;endendendfor i=1:NumberPCodep(i)= mod( x1(i)+x2(i),2);endp=p';pcode=p';5、 P码的相关性分析clc;NumberPCode=input('enter the number Pcode='); NumberShift=input('enter the numbershift=');a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift); ind1=find(pcode==1);ind2=find(pcode==0);pcode(ind1)=-ones(1,length(ind1));pcode(ind2)=ones(1,length(ind2));M=NumberPCode;z=zeros(1,M);for i=0:M-1for k=i+1:M-1z1(k)=pcode(k)*pcode(k-i);z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/M;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 M -0.5 1.2]);a=input('enter a=');NumberShift=input('enter the numbershift='); pcode2=Pcode(a,NumberPCode,NumberShift); h=zeros(1,M);for i=0:M-1for k=i+1:M-1h1(k)=pcode(k)*pcode2(k-i);h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/M;endsubplot(2,1,2);plot(h);title('互相关特性');axis([-50 M -0.5 1]);。

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

% ===========================================================================================% % 该程序完成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=; %光速(m/s) RF=2; %雷达射频 Lambda=C/RF;%雷达工作波长 PulseNumber=16; %回波脉冲数 BandWidth=; %发射信号带宽 带宽B=1/τ,τ是脉冲宽度 TimeWidth=; %发射信号时宽 PRT=240e-6; % 雷达发射脉冲重复周期(s),240us对应1/2*240*300=36000米最大无模糊距离 PRF=1/PRT; Fs=; %采样频率 NoisePower=-12;%(dB);%噪声功率(目标为0dB) % ---------------------------------------------------------------% SampleNumber=fix(Fs*PRT);%计算一个脉冲周期的采样点数480; TotalNumber=SampleNumber*PulseNumber;%总的采样点数480*16=; BlindNumber=fix(Fs*TimeWidth);%计算一个脉冲周期的盲区-遮挡样点数; %===================================================================================% % 目标参数 % %===================================================================================% TargetNumber=4;%目标个数 SigPower(1:TargetNumber)=[1 1 1 ];%目标功率,无量纲 TargetDistance(1:TargetNumber)=[3000 8025 15800 8025];%目标距离,单位m 距离参数为[3000 8025 9000+(Y*10+Z)*200 8025]

DelayNumber(1:TargetNumber)=fix(Fs*2*TargetDistance(1:TargetNumber)/C);% 把目标距离换算成采样点(距离门) fix函数向0靠拢取整 TargetVelocity(1:TargetNumber)=[50 0 204 100];%目标径向速度 单位m/s 速度参数为[50 0 (Y*10+X+Z)*6 100] TargetFd(1:TargetNumber)=2*TargetVelocity(1:TargetNumber)/Lambda; %计算目标多卜勒频移2v/λ

%====================================================================================% % 产生线性调频信号 % %====================================================================================% number=fix(Fs*TimeWidth);%回波的采样点数=脉压系数长度=暂态点数目+1 if rem(number,2)~=0 %rem求余 number=number+1; end %把number变为偶数

for i=-fix(number/2):fix(number/2)-1

Chirp(i+fix(number/2)+1)=exp(j*(pi*(BandWidth/TimeWidth)*(i/Fs)^2));%exp(j*fi)*,产生复数矩阵Chirp end coeff=conj(fliplr(Chirp));%把Chirp矩阵翻转并把复数共轭,产生脉压系数 figure(1);%脉压系数的实部 plot(real(Chirp));axis([0 90 ]);title('脉压系数实部'); %-------------------------产生目标回波串-----------------------------------------------------------------------------------------% %-------------------------产生前3个目标的回波串-------% SignalAll=zeros(1,TotalNumber);%所有脉冲的信号,先填0 for k=1:TargetNumber-1 % 依次产生各个目标 SignalTemp=zeros(1,SampleNumber);% 一个PRT

SignalTemp(DelayNumber(k)+1:DelayNumber(k)+number)=sqrt(SigPower(k))*Chirp;%一个脉冲的1个目标(未加多普勒速度)(DelayNumber(k)+1):(DelayNumber(k)+number) Signal=zeros(1,TotalNumber); for i=1:PulseNumber % 16个回波脉冲 Signal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp; %每个目标把16个SignalTemp排在一起 end FreqMove=exp(j*2*pi*TargetFd(k)*(0:TotalNumber-1)/Fs);%目标的多普勒速度*时间=目标的多普勒相移 Signal=Signal.*FreqMove;%加上多普勒速度后的16个脉冲1个目标 SignalAll=SignalAll+Signal;%加上多普勒速度后的16个脉冲4个目标 end % %-------------------------产生第4个目标的回波串-------% fi=pi/3; SignalTemp=zeros(1,SampleNumber);% 一个脉冲

SignalTemp(DelayNumber(4)+1:DelayNumber(4)+number)=sqrt(SigPower(4))*exp(j*fi)*Chirp;%一个脉冲的1个目标(未加多普勒速度) Signal=zeros(1,TotalNumber); for i=1:PulseNumber Signal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp; end FreqMove=exp(j*2*pi*TargetFd(4)*(0:TotalNumber-1)/Fs);%目标的多普勒速度*时间=目标的多普勒相移 Signal=Signal.*FreqMove; SignalAll=SignalAll+Signal;

figure(2); subplot(2,1,1);plot(real(SignalAll),'r-');title('目标信号的实部');grid on;zoom on; subplot(2,1,2);plot(imag(SignalAll));title('目标信号的虚部');grid on;zoom on;

%====================================================================================% % 产生系统噪声信号 % %====================================================================================% SystemNoise=normrnd(0,10^(NoisePower/10),1,TotalNumber)+j*normrnd(0,10^(NoisePower/10),1,TotalNumber); %均值为0,标准差为10^(NoisePower/10)的噪声 %====================================================================================% % 总的回波信号 % %====================================================================================% Echo=SignalAll+SystemNoise;% +SeaClutter+TerraClutter,加噪声之后的回波 for i=1:PulseNumber %在接收机闭锁期,接收的回波为0 Echo((i-1)*SampleNumber+1:(i-1)*SampleNumber+number)=0; %发射时接收为0 end figure(3);%加噪声之后的总回波信号 subplot(2,1,1);plot(real(Echo),'r-');title('总回波信号的实部,闭锁期为0'); subplot(2,1,2);plot(imag(Echo));title('总回波信号的虚部,闭锁期为0'); %================================时域脉压=================================% pc_time0=conv(Echo,coeff);%pc_time0为Echo和coeff的卷积 pc_time1=pc_time0(number:TotalNumber+number-1);%去掉暂态点 number-1个 figure(4);%时域脉压结果的幅度 subplot(2,1,1);plot(abs(pc_time0),'r-');title('时域脉压结果的幅度,有暂态点');%pc_time0的模的曲线 subplot(2,1,2);plot(abs(pc_time1));title('时域脉压结果的幅度,无暂态点');%pc_time1的模的曲线 % ================================频域脉压=================================% Echo_fft=fft(Echo,8192);%理应进行TotalNumber+number-1点FFT,但为了提高运算速度,进行了8192点的FFT coeff_fft=fft(coeff,8192); pc_fft=Echo_fft.*coeff_fft; pc_freq0=ifft(pc_fft); figure(5); subplot(2,1,1);plot(abs(pc_freq0(1:TotalNumber+number-1)));title('频域脉

相关文档
最新文档