首页 > 行业资讯 > 【雷达通信】雷达脉冲压缩含Matlab源码

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

时间:2022-05-27 来源: 浏览:

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

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集

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 EDIT gui_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}); end if 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 test1 handles.output = hObject; % Update handles structure guidata(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 structure varargout{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 T T=str2double(get(handles.edit1,’ string ’)); global B B=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 Rmin Rmin=str2double(get(handles.edit3,’ string ’)); global Rmax Rmax=str2double(get(handles.edit4,’ string ’)); global R R=str2num(get(handles.edit5,’ string ’)); global RCS RCS=str2num(get(handles.edit6,’ string ’)); global winid winid=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; %========================================================= %%Parameter C=3e8; %propagation speed K=B/T; %chirp slope Rwid=Rmax-Rmin; %receive window in meter Twid=2*Rwid/C; %receive window in second Fs=5*B;Ts=1/Fs; %sampling frequency and sampling spacing Nwid=ceil(Twid/Ts); %receive window in number %================================================================= %determine proper window if(winid==0.) win(1:Nwid)=1.; end if(winid==1.) win=hamming(Nwid)’ ; end if (winid== 2 .) win=chebwin(Nwid, 60 ) ’; end nosewite=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 IFFT Nchirp=ceil(T/Ts); % pulse duration in number Nfft= 2 ^nextpow2(Nwid+Nchirp- 1 ); %number needed to compute linear %convolution using FFT algorithm Srw=fft(Srt,Nfft); %fft of radar echo t 0 =linspace( 0 ,T,Nchirp); St=exp(j*pi*K*t 0 .^ 2 ); %chirp signal Sw=fft(St,Nfft); %fft of chirp signal Sot=ifft(Srw.*conj(Sw)); %signal after pulse compression %========================================================= N 0 = 1 ; Z=abs(Sot( N0: N 0 +Nwid- 1 )); Z=Z/max(Z); Z= 20 *log1 0 (Z+ 1 e- 6 ); %figure % subplot( 211 ) axes(handles.axes1) handles.axes1_handle=gca; plot(t* 1 e6,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代码问题可私信交流。

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

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐