雷达系统仿真matlab代码.docx
- 格式:docx
- 大小:18.84 KB
- 文档页数:6
雷达系统分析大作1. 最大不模糊距离: ,max 1252u rC R km f == 距离分辨率: 1502mcR m B ∆== 2. 天线有效面积: 220.07164e GA 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.由雷达方程22134(4)tPG TeSNRKT LFRλσπ=计算可得1196.5540logSNR 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个以上的相参脉冲进行积累。
雷达仿真matlab课设
好的,下面为你提供雷达仿真matlab课设的相关内容:
随着社会和科技的不断发展,现代雷达系统更加复杂且精准,故需要借助计算机来完成对系统各项功能和性质的仿真,以完成对系统性能的评估。
在雷达仿真matlab课设中,你可以根据雷达信号处理的主要方式,运用信号处理理论与MATLAB软件相结合的思想,提出一个雷达系统的仿真模型。
该模型具有包含杂波的信号进入雷达信号处理机的动态处理过程。
在实际的课程设计中,你可以选择使用MATLAB对一脉冲雷达系统进行仿真,并给出具体过程的仿真图形。
在仿真过程中,你可以考虑雷达信号的产生、噪声和杂波的产生、正交解调模块、脉冲压缩模块、回波积累模块、恒虚警处理模块等方面。
如果你需要更多的帮助或指导,请提供更具体的需求或信息,以便我更好地为你解答。
标题:ddma mimo 雷达信号处理 matlab代码一、概述雷达技术是一种用于检测、跟踪和识别目标的重要技术手段。
而MIMO(multiple-input multiple-output)雷达系统则是一种利用多个发射天线和接收天线的雷达系统,能够有效提高雷达系统的性能。
在MIMO雷达系统中,DDMA(digital beamforming and diversitybining)技术被广泛应用,以提高雷达信号处理的效率和精度。
本文将介绍DDMA MIMO雷达信号处理的Matlab代码实现。
二、DDMA MIMO雷达信号处理原理DDMA技术通过数字波束形成和多样性组合,能够有效地抑制干扰、提高信噪比、增强目标探测和跟踪性能。
MIMO雷达系统中,可以通过多个发射天线和接收天线实现精确的波束形成和多样性组合,从而实现高分辨率的目标成像和跟踪。
DDMA MIMO雷达信号处理算法主要包括以下几个步骤:1. 信号接收:接收多通道雷达回波信号,并进行数字化处理;2. 数字波束形成:利用接收天线阵列的数据,通过波束形成算法得到波束指向;3. 多样性组合:利用多个接收通道的信息,进行多样性组合,提高信号质量;4. 目标探测和跟踪:利用波束形成和多样性组合后的信号,进行目标探测和跟踪。
三、Matlab代码实现在Matlab评台上,可以使用信号处理工具箱和多通道雷达信号处理工具箱实现DDMA MIMO雷达信号处理。
以下是一个简单的Matlab 代码实现示例:```matlab接收信号处理rxSignal = randn(4, 1000); 模拟4个接收通道的雷达信号数字波束形成steeringVector = exp(1i * pi * (0:3).' * sind(30)); 设置波束指向为30度beamformedSignal = steeringVector' * rxSignal;多样性组合diversityCombinedSignal = sum(beamformedSignal, 1);目标探测和跟踪略显示结果figure;subplot(2,1,1);plot(1:1000, real(rxSignal));title('Received Signal');xlabel('Sample Index');ylabel('Amplitude');subplot(2,1,2);plot(1:1000, real(diversityCombinedSignal));title('Diversity Combined Signal');xlabel('Sample Index');ylabel('Amplitude');```以上代码示例中,首先模拟了4个接收通道的雷达信号,然后利用波束指向和多样性组合得到了合成的信号,并进行了显示。
多普勒雷达仿真代码下面是一个简单的多普勒雷达仿真代码的示例,使用 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`的关系图。
11目录1. 设计的基本骤 (1)1.1 雷达信号的产生 (1)1.2 噪声和杂波的产生 (1)2. 信号处理系统的仿真 (1)2.1 正交解调模块 (2)2.2 脉冲压缩模块 (2)2.3 回波积累模块 (2)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)则数字化后的中频信号和复本振信号相乘解调后,通过低通滤波器后得到的基带信号fBB (r ) 为:11000{()cos()}(){()sin()}()N N BB IF IF n nf f r n r n T h n j f r n r n T h n ωω--==-----∑∑ (3.6)式(3.6)中, h (n ) 是积累长度为N 的低通滤波器的脉冲响应。
流程示意图(a)发射端框图CSI流程示意图 (1)1 主程序ofdm_wav_trans_system.m (2)2 D/A转换模块:Get_wav_data.m (9)3 长短帧设定:construct_flag.m (10)4 子载波参数设定:bitload.m (11)5 数据读取Fetch_data_old.m (11)6 数据读取:Fetch_data.m (12)7 加扰模块Scramble_data_old.m (13)8 加扰模块Scramble_data (14)9 卷积码encd216.m (14)10 交织模块1 index_change.m (16)11 交织模块2 index_change2.m (18)12 交织模块3 Data_interleave.m (20)13 导频模块:add_prefix.m (21)14 QAM模块:modulate.m (22)15 成型滤波器模块:shape_filtering.m (24)16 信道模拟模块:channel.m (25)17 匹配滤波器:match_filtering.m (26)18 欠抽样恢复模块:sample_decision.m (28)19 同步模块:fresym_combine_est.m (30)20 解帧模块:decompose_frame.m (32)21 频偏估计:get_sample_clock_offset.m (33)22 频偏补偿:recov_sample_clock.m (34)23 QAM解映射:demodulate.m (35)24 解交织模块1:index_normal2.m (37)25 解交织模块2:index_normal.m (38)26 解交织模块3:Data_Deinterleave.m (39)27 V iterbi译码模块:decd216.m (40)1 主程序ofdm_wav_trans_system.m功能:描述数据在数字域的变化,将音频文件转为数字,组帧,加扰,解扰clear all;tic;%帧参数global GUARD_num; GUARD_num=16; %循环前缀所占global FFT_num; FFT_num=64; %每符号子载波数global OFDM_symbols_per_frame; OFDM_symbols_per_frame =25; %每帧数据符号数global OFDM_prefix_per_frame; OFDM_prefix_per_frame=5; %每帧前导符号数global OFDM_wavbits_per_frame1;OFDM_wavbits_per_frame=1408; %每帧比特数global OFDM_wavbits_per_frame2; OFDM_wavbits_per_frame2=1440;global OFDM_scrambits_per_frame;OFDM_scrambits_per_frame=1440; %每帧扰码后比特数global Total_bits_per_symbol; Total_bits_per_symbol=144; %每个符号的比特数36×4scram_polynomial=[1 0 0 0 1 0 0 1]; %扰码多项式SNR=10; %单位:DBrolloff_factor=0.25;up_sampling_factor=4;%帧结构% 长训练符号LTS = [0 0 0 0 0 0 1 1 -1 -1 1 1 -1 1 -1 1 ...1 1 1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 ...0 1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 ...1 -1 -1 1 -1 1 -1 1 1 1 1 0 0 0 0 0];% 短训练符号STS = sqrt(13/6)* ...[0 0 0 0 0 0 0 0 1+j 0 0 0 -1-j 0 0 0 ...1+j 0 0 0 -1-j 0 0 0 -1-j 0 0 0 1+j 0 0 0 ...0 0 0 0 -1-j 0 0 0 -1-j 0 0 0 1+j 0 0 0 ...1+j 0 0 0 1+j 0 0 0 1+j 0 0 0 0 0 0 0]; ...global SIGNAL1;% 信令符号SIGNAL1 = zeros(1,144);global SIGNAL2;SIGNAL2 = ones(1,144);% 导频PILOT=[-1 1 1 1];Pattern_Datas_Symbols_Index = [8:15 17:26 40:49 51:58];Pattern_Pilot_Symbols_Index = [16 27 39 50];% 功率放大器参数HPA_para_AmAm_alpha = 2.1587;HPA_para_AmAm_beta = 1.1517;HPA_para_AmPm_alpha = 4.0033;HPA_para_AmPm_beta = 9.1040;HPA_para_InputScaling = 1; % Not dbHPA_para_OutputScaling = 1;% Not dbHPA_para=[HPA_para_AmAm_alpha,HPA_para_AmAm_beta;HPA_para_AmPm_alpha,HPA_para_AmPm_beta; HPA_para_InputScaling,HPA_para_OutputScaling];chan_multipath_imp_res_upsampling=[1 0.89 0.81 0.74 0.68 0.62 0.57 0.52 0.48 0.46 0.44 0.43 0.42 ...0.41 0.405 0.402 0.40 0.392 0.387 0.383 0.38 0.36 0.34 0.33 0.32 ...0.27 0.23 0.19 0.17 0.12 0.09 0.06]; %多径效应trans_carrier_num=length(Pattern_Datas_Symbols_Index); %数字载波的子载波数energy_per_carrier=1; %符号能量load ENC2.matload ENC4.mat %qpsk对照表load ENC16.mat %16QAM对照表load ENC64.mat %64QAM对照表load ENC256.mat %256QAM对照表% I/Q ImbalenceIQ_Imb_am = 0.025;IQ_Imb_ph = 1*pi*2/360;[Wav_data,sample_rate,per_sample_bits] =Get_wav_data('tada.wav'); %将声音文件转化为数据trans_frame_wav_data=[];data_index=1;%flag_in=[0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1];flag_in=[0 0 0 0 1];flag=flag_in;%flag=construct_flag(flag_in); % 产生flag序列% trans_iter_num=ceil(length(Trans_wav_data)/OFDM_wavbits_per_frame); %所需传输帧数rec_wav_data=[];[trans_bits_alloctrans_energy_alloc]=bitload(Pattern_Datas_Symbols_Index,Total_bits_per_symbol,tran s_carrier_num,energy_per_carrier);%chan_multipath_fre=fft(chan_multipath_imp_res,FFT_num);%频域信道响应for Trans_frame_index =1:1:length(flag)flag_value=flag(Trans_frame_index);[Frame_wav_data,get_signal_data,new_begin_index] =Fetch_data(Wav_data,data_index,flag_value); % 基于缓冲池的状态决定帧长% 并根据flag决定信令data_index=new_begin_index;trans_frame_wav_data=[trans_frame_wav_data Frame_wav_data];T_data=[get_signal_data Frame_wav_data];T_data=Scramble_data(T_data);% 加扰,信令144比特+1440比特数据Scram_signal_data=T_data(1:144);% 前面144比特为加扰后的信令Scram_Frame_wav_data=T_data(145:1584);% 后面是1440比特加扰后的数据coded_Frame_wav_data=encd216(Scram_Frame_wav_data);Frame_scram_data=[Scram_signal_data coded_Frame_wav_data]; %两次交织总效果%temp_data=index_change( Frame_scram_data);% 第一次交织%trans_wav_data=index_change2(temp_data);% 第二次交织% Construct OFDM frameOFDM_trans_frame=zeros(25,80);OFDM_trans_frame=add_prefix(OFDM_trans_frame,STS,LTS); %生成帧头% 包括信令在内的21个符号,每个符号144比特,经过16QAM调制到相应的信道,并插入导频,这里信令也插入了导频data_begin_index=1;for k=1:OFDM_symbols_per_frame-OFDM_prefix_per_frame+1trans_bits_per_symbol=trans_wav_data(data_begin_index:data_begin_index+Total_bits_per_symbol-1);trans_16QAM_per_symbol = zeros(1,FFT_num);trans_16QAM_per_symbol=modulate(trans_bits_per_symbol,trans_bits_alloc,trans_energy_alloc,s2,s4,s16,s64,s256);trans_16QAM_per_symbol(Pattern_Pilot_Symbols_Index)=PILOT;%加入导频符号trans_tmdata_per_symbol=ifft(trans_16QAM_per_symbol,FFT_num);%进行ifft变换,相当于系统模块中OFDM调制OFDM_trans_frame(k+4,:)=[trans_tmdata_per_symbol(49:64)trans_tmdata_per_symbol]; % 数据帧加循环前缀data_begin_index=data_begin_index+Total_bits_per_symbol;endOFDM_trans_frame=transpose(OFDM_trans_frame); %矩阵转置,变成时间域表示形式% 以下步骤形成一个数据帧tx_frame_signal =reshape(OFDM_trans_frame,1,OFDM_symbols_per_frame*(GUARD_num+FFT_num));% 形成一个2000个采样点的数据帧,参考批注4。
摘要现代雷达系统日益变的复杂,难以简单直观的进行分析,必须借助计算机来完成对系统的各项功能和性能的仿真。
针对现代雷达信号处理的主要方式,运用数字信号处理理论和Matlab 软件研究雷达信号处理的仿真问题,提出了一个仿真模型。
该模型可以完成雷达信号的仿真、热噪声与杂波的产生和雷达系统中信号的动态处理过程。
用Matlab 对某脉冲压缩雷达信号处理系统进行了仿真,得到了雷达系统中各个处理点上的具体信号形式,既包含幅度信息,又包含相位信息,该模型能较好地满足对雷达信号处理的仿真要求,显示了用Matlab仿真雷达信号处理系统的方便、快捷的优雷达点。
本文讨论的是雷达信号处理部分,并结合雷达处理系统实例来说明MATLAB在雷达信号处理机系统仿真中的应用。
关键词:雷达信号处理;正交解调;脉冲压缩;回波积累;恒虚警处理AbstractModern radar systems become increasingly complex and difficult to simple intuitive analysis, we must rely on computer systems to complete the functionality and performance of the simulationThe simulation of radar signal processing is an important part of the simulation of radar system. This paper introduces a method of the simulation of radar signal processing based on Matlab, including the simulation ofradar echo and clutter, and researches the simulation method of important technologies in the radar signal processing, including quadrature sampling, pulse compression, echo accumulation and CFAR detector. The work inthis paper can overcome the disadvantages such as difficulty and lengthiness and show the convenience and simplicity of the simulation of radar signal processing based on MATLAB.In this paper, is part of the radar signal processing and radar processing systems with examples to illustrate the radar signal processor MATLAB simulation of。
雷达系统分析大作作 者: 陈雪娣 学号:04104207271. 最大不模糊距离: ,max 1252u rC R km f == 距离分辨率: 1502mcR m B ∆== 2. 天线有效面积: 220.07164e GA 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个以上的相参脉冲进行积累。
适合雷达初学者:线性调频脉冲雷达仿真实验教程(含MATLAB代码和教程)今天给大家分享的是一个脉冲雷达MATLAB仿真小实验,这个实验是调皮哥刚进研究生时学习的入门教程,比较简单,特别适合于初学者。
同时这个也是研究生一年级里面的实验课程,不过现在这个课程已经更新了,更新之后的内容就是调皮哥之前说的采用TI毫米波雷达那个,是由调皮哥亲自帮助导师设计的,现在那个课程已经上了两年多了,今年又更新了一些内容。
虽然这个脉冲雷达MATLAB仿真小实验经过了十多年的时间现在已经退出了历史的舞台,但是其内容依旧适合大家学习。
就在之前,有读者向我咨询有没有相关的内容,于是我就准备今天给大家分享,,希望早一些帮助到大家,文末提供了下载方式。
这个小实验内容不多,两个程序,一份报告,报告是调皮哥自己的课程作业。
MATLAB程序主要完成16个调频脉冲信号的产生、脉冲压缩、MTI、MTD、CFAR等信号处理算法,共计200多行。
报告的内容就是对实验内容的解析和分析,大家可以参照理解和学习,因此我就不再对代码进行一一解释了,代码中也有一些注释,相信大家花点功夫应该能够看得懂的。
具体内容大家可以详细见教程,这里就不再进行过多的论述。
后续还有几个小问题,可以分享给大家:(1)线性调频信号的特点。
为什么选用线性调频信号?答:线性调频信号的频率随时间呈线性变化,选用线性调频信号可以增大发射信号的带宽,提高平均发射功率,同时又有较高的距离分辨率。
(2)为什么要做脉冲压缩答:为了获得大的作用距离和具有很高的距离分辨率。
(3)时域脉压和频域脉压分别怎么做?答:通过对发射信号进行序列反转、取共轭操作即可得到脉冲压缩系数。
时域脉冲压缩处理是对回波信号与脉冲压缩系数进行卷积。
频域是先对回波信号和脉压系数做FFT,点乘之后在做IFFT(逆快速傅里叶变换)。
(4)PC(脉冲压缩)结束后三个目标高度为什么不一样,呈什么变化,为什么?答:第一个脉冲有部分处于闭锁期,因此幅度较小。
%====================================================== =====================================%% 该程序完成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.57GHzLambda=C/RF;%雷达工作波长PulseNumber=16; %回波脉冲数BandWidth=2.0e6; %发射信号带宽带宽B=1/τ,τ是脉冲宽度TimeWidth=42.0e-6; %发射信号时宽PRT=240e-6; % 雷达发射脉冲重复周期(s),240us对应1/2*240*300=36000米最大无模糊距离PRF=1/PRT;Fs=2.0e6; %采样频率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 0.25];%目标功率,无量纲TargetDistance(1:TargetNumber)=[3000 8025 15800 8025];%目标距离,单位m 距离参数为[3000 80259000+(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:TargetNumb er)/Lambda; %计算目标多卜勒频移2v/λ%===================================================== ===============================%% 产生线性调频信号 %%===================================================== ===============================%number=fix(Fs*TimeWidth);%回波的采样点数=脉压系数长度=暂态点数目+1if rem(number,2)~=0 %rem求余number=number+1;end%把number变为偶数for i=-fix(number/2):fix(number/2)-1Chirp(i+fix(number/2)+1)=exp(j*(pi*(BandWidth/TimeWidth)*(i/Fs)^2));%exp(j*fi)*,产生复数矩阵Chirpendcoeff=conj(fliplr(Chirp));%把Chirp矩阵翻转并把复数共轭,产生脉压系数figure(1);%脉压系数的实部plot(real(Chirp));axis([0 90 -1.5 1.5]);title('脉压系数实部');%-------------------------产生目标回波串-----------------------------------------------------------------------------------------%%-------------------------产生前3个目标的回波串-------% SignalAll=zeros(1,TotalNumber);%所有脉冲的信号,先填0for k=1:TargetNumber-1 % 依次产生各个目标SignalTemp=zeros(1,SampleNumber);% 一个PRTSignalTemp(DelayNumber(k)+1:DelayNumber(k)+number)=sqr t(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排在一起endFreqMove=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)=sqr t(SigPower(4))*exp(j*fi)*Chirp;%一个脉冲的1个目标(未加多普勒速度)Signal=zeros(1,TotalNumber);for i=1:PulseNumberSignal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp;endFreqMove=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 %在接收机闭锁期,接收的回波为0Echo((i-1)*SampleNumber+1:(i-1)*SampleNumber+number)=0; %发射时接收为0endfigure(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点的FFTcoeff_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('频域脉压结果的幅度,有前暂态点');subplot(2,1,2);plot(abs(pc_time0(1:TotalNumber+number-1)-pc_freq0(1:TotalNumber+number-1)),'r');title('时域和频域脉压的差别');pc_freq1=pc_freq0(number:TotalNumber+number-1);%去掉暂态点 number-1个,后填充点若干(8192-number+1-TotalNumber)% ================按照脉冲号、距离门号重排数据=================================%for i=1:PulseNumberpc(i,1:SampleNumber)=pc_freq1((i-1)*SampleNumber+1:i*SampleNumber);%每个PRT为一行,每行480个采样点的数据endfigure(6);plot(abs(pc(1,:)));title('频域脉压结果的幅度,没有暂态点'); % ================MTI(动目标显示),对消静止目标和低速目标---可抑制杂波=================================%for i=1:PulseNumber-1 %滑动对消,少了一个脉冲mti(i,:)=pc(i+1,:)-pc(i,:);endfigure(7);mesh(abs(mti));title('MTI result');% ================MTD(动目标检测),区分不同速度的目标,有测速作用=================================%mtd=zeros(PulseNumber,SampleNumber);for i=1:SampleNumberbuff(1:PulseNumber)=pc(1:PulseNumber,i);buff_fft=fft(buff);mtd(1:PulseNumber,i)=buff_fft(1:PulseNumber);endfigure(8);mesh(abs(mtd));title('MTD result');%=======================================虚实矩阵转换========================================%coeff_fft_c=zeros(1,2*8192);for i=1:8192coeff_fft_c(2*i-1)=real(coeff_fft(i));coeff_fft_c(2*i)=imag(coeff_fft(i));endecho_c=zeros(1,2*TotalNumber);for i=1:TotalNumberecho_c(2*i-1)=real(Echo(i));echo_c(2*i)=imag(Echo(i));end%===========================以下是为DSP程序提供回波数据、脉压系数===============================%% fo=fopen('F:\mystudy\Visual_DSP_test\test_1\coeff_fft_c.dat','wt');%频域脉压系数% for i=1:2*8192% fprintf(fo,'%f,\r\n',coeff_fft_c(i));% end% fclose(fo);%% fo=fopen('F:\mystudy\Visual_DSP_test\test_1\echo_c.dat','wt');%16次回波的% for i=1:2*TotalNumber% fprintf(fo,'%f,\r\n',echo_c(i));% end% fclose(fo);。