【雷达通信】雷达脉冲压缩含Matlab源码

简介: 【雷达通信】雷达脉冲压缩含Matlab源码

1 简介

脉冲压缩雷达(Pulse Compression Radar , PCR)的定义是,发射端发射经编码或调制的宽脉冲,接收端处理后输出窄脉冲的雷达。目前,脉冲压缩雷达发射信号的调制方式主要有线性调频、非线性调频和相位编码等几种。

2 部分代码

function varargout = test1(varargin)%TEST1 M-file for test1.fig%      TEST1, by itself, creates a new TEST1 or raises the existing%      singleton*.%%      H = TEST1 returns the handle to a new TEST1 or the handle to%      the existing singleton*.%%      TEST1('Property','Value',...) creates a new TEST1 using the%      given property value pairs. Unrecognized properties are passed via%      varargin to test1_OpeningFcn.  This calling syntax produces a%      warning when there is an existing singleton*.%%      TEST1('CALLBACK') and TEST1('CALLBACK',hObject,...) call the%      local function named CALLBACK in TEST1.M with the given input%      arguments.%%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one%      instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help test1% Last Modified by GUIDE v2.5 09-Mar-2009 14:24:57% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',       mfilename, ...                   'gui_Singleton',  gui_Singleton, ...                   'gui_OpeningFcn', @test1_OpeningFcn, ...                   'gui_OutputFcn',  @test1_OutputFcn, ...                   'gui_LayoutFcn',  [], ...                   'gui_Callback',   []);if nargin && ischar(varargin{1})   gui_State.gui_Callback = str2func(varargin{1});endif nargout    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else    gui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before test1 is made visible.function test1_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject    handle to figure% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)% varargin   unrecognized PropertyName/PropertyValue pairs from the%            command line (see VARARGIN)% Choose default command line output for test1handles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes test1 wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = test1_OutputFcn(hObject, eventdata, handles)% varargout  cell array for returning output args (see VARARGOUT);% hObject    handle to figure% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject    handle to pushbutton1 (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)creat=findobj(gcf,'Tag','radiobutton1');processing=findobj(gcf,'Tag','radiobutton2');global TT=str2double(get(handles.edit1,'string'));global BB=str2double(get(handles.edit2,'string'));if(get(creat,'Value')==get(creat,'Max'))K=B/T;                                    %频率调制斜率Fs=5*B;Ts=1/Fs;                          %计算机仿真的采样频率和采样周期N=T/Ts;                                   %采样点数t=linspace(-T/2,T/2,N);St=exp(j*pi*K*t.^2);                         %产生线性调频信号axes(handles.axes1)handles.axes1_handle=gca;plot(t*1e6,real(St));xlabel('\fontsize{9}时间(us)');title('\fontsize{9}LFM脉冲的时域波形');grid on;axis tight;freq=linspace(-Fs/2,Fs/2,N);% freq=linspace(0,Fs,N);axes(handles.axes2)handles.axes2_handle=gca;% plot(freq*1e-6,abs(fft(St)));plot(freq*1e-6,fftshift(abs(fft(St))));xlabel('\fontsize{9}频率(MHz)');title('\fontsize{9}LFM脉冲的幅频特性');grid on;axis tight;elseif(get(processing,'Value')==get(processing,'Max'))        global RminRmin=str2double(get(handles.edit3,'string'));global RmaxRmax=str2double(get(handles.edit4,'string'));global RR=str2num(get(handles.edit5,'string'));global RCSRCS=str2num(get(handles.edit6,'string'));global winidwinid=str2double(get(handles.edit7,'string'));% T=10e-6; %pulse duration 10us% B=30e6; %chirp frequency modulation bandwidth 30MHz% Rmin=10000;Rmax=15000; %range bin% R=[10500,11000,12000,12008,13000,13002]; %position of ideal point targets% RCS=[1 1 1 1 1 1]; %radar cross section% winid=2;%=========================================================%%ParameterC=3e8; %propagation speedK=B/T; %chirp slopeRwid=Rmax-Rmin; %receive window in meterTwid=2*Rwid/C; %receive window in secondFs=5*B;Ts=1/Fs; %sampling frequency and sampling spacingNwid=ceil(Twid/Ts); %receive window in number%=================================================================%determine proper windowif(winid==0.)    win(1:Nwid)=1.;endif(winid==1.)    win=hamming(Nwid)';endif(winid==2.)    win=chebwin(Nwid,60)';endnosewite=findobj(gcf,'Tag','checkbox1');    if(get(nosewite,'Value')==get(nosewite,'Max'))         nose=randn(1,Nwid);      else        nose=zeros(1,Nwid);        end%==================================================================%%Gnerate the echo t=linspace(2*Rmin/C,2*Rmax/C,Nwid); %receive window%open window when t=2*Rmin/C%close window when t=2*Rmax/C M=length(R); %number of targets td=ones(M,1)*t-2*R'/C*ones(1,Nwid);Srt=RCS*(exp(j*pi*K*td.^2).*(abs(td)<T/2))+nose;%radar echo from point targets Srt=Srt.*win;%=========================================================%%Digtal processing of pulse compression radar using FFT and IFFTNchirp=ceil(T/Ts); %pulse duration in numberNfft=2^nextpow2(Nwid+Nchirp-1); %number needed to compute linear %convolution using FFT algorithmSrw=fft(Srt,Nfft); %fft of radar echot0=linspace(0,T,Nchirp); St=exp(j*pi*K*t0.^2); %chirp signal Sw=fft(St,Nfft); %fft of chirp signalSot=ifft(Srw.*conj(Sw)); %signal after pulse compression%=========================================================N0=1;Z=abs(Sot(N0:N0+Nwid-1));Z=Z/max(Z);Z=20*log10(Z+1e-6);%figure% subplot(211)axes(handles.axes1)handles.axes1_handle=gca;plot(t*1e6,real(Srt));axis tight;xlabel('Time in u sec');ylabel('Amplitude')title('Radar echo without compression');% subplot(212)axes(handles.axes2)handles.axes2_handle=gca;plot(t*C/2,Z)%  axis([11900,12100,-60,0]);axis([Rmin,Rmax,-60,0]);xlabel('Range in meters');ylabel('Amplitude in dB')title('Radar echo after compression');end% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject    handle to pushbutton2 (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)close

3 仿真结果

4 参考文献

[1]魏选平, 姚敏立, 张周生,等. 脉冲压缩雷达原理及其MATLAB仿真[J]. 电子产品可靠性与环境试验, 2008, 26(4):3.

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

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


相关文章
|
27天前
|
存储 算法 数据可视化
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
46 2
|
2月前
|
算法 5G 数据安全/隐私保护
大规模MIMO通信系统信道估计matlab性能仿真,对比LS,OMP,MOMP以及CoSaMP
本文介绍了大规模MIMO系统中的信道估计方法,包括最小二乘法(LS)、正交匹配追踪(OMP)、多正交匹配追踪(MOMP)和压缩感知算法CoSaMP。展示了MATLAB 2022a仿真的结果,验证了不同算法在信道估计中的表现。最小二乘法适用于非稀疏信道,而OMP、MOMP和CoSaMP更适合稀疏信道。MATLAB核心程序实现了这些算法并进行了性能对比。以下是部分
242 84
|
29天前
|
固态存储
螺旋卫星通信天线设计与有限元分析matlab仿真
本课题研究了尺寸为10cm*10cm*30cm的卫星上搭载的螺旋型天线,工作于UHF频段(1-3GHz)。通过MATLAB2022a进行系统仿真,展示了天线的辐射特性。螺旋天线因其低轴比、宽带宽和紧凑结构而适用于卫星通信。采用有限元法分析天线的电磁性能,计算了天线的关键性能指标,包括S参数、增益、轴比等。
|
3月前
|
存储 算法 Serverless
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
|
3月前
|
存储 Serverless
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
|
4月前
|
机器学习/深度学习 算法 调度
Matlab|基于改进鲸鱼优化算法的微网系统能量优化管理matlab-源码
基于改进鲸鱼优化算法的微网系统能量管理源码实现,结合LSTM预测可再生能源和负荷,优化微网运行成本与固定成本。方法应用于冷热电联供微网,结果显示经济成本平均降低4.03%,提高经济效益。代码包括数据分段、LSTM网络定义及训练,最终展示了一系列运行结果图表。
|
4月前
|
算法
基于VLC可见光通信的室内光通信信道信噪比分析matlab仿真
**算法演示展示了一段VLC通信,使用MATLAB2022a。核心代码片段涉及LED光强度调制。VLC系统由发射器、空气介质和接收器组成,利用OOK等调制技术。图像展示了系统模型。信噪比分析对于理解和提升室内通信的性能至关重要,影响数据速率和系统可靠性。** (Markdown格式) ```
|
6月前
|
数据安全/隐私保护
matlab程序,地震波压缩、地震波缩尺、地震波压缩时间,调整时长、时间间隔
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
6月前
|
数据安全/隐私保护
matlab程序, 脉冲波合成与提取,滑冲效应、方向性效应,自定义脉冲模型,提取脉冲波
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
6月前
matlab脉冲响应图的时域特征
matlab脉冲响应图的时域特征

热门文章

最新文章