精华内容
下载资源
问答
  • 这个代码是一个matlab编写的代码,他说明了LFM的模糊函数是怎么一回事
  • 超详细的线性调频信号的模糊函数matlab程序,博主亲自撰写,确认无误
  • 线性调频信号代码

    2013-03-19 16:31:38
    matlab仿真线性调频信号的源代码线性调频信号的一些特征
  • 线性调频信号

    2018-10-16 16:00:34
    matlab仿真线性调频信号代码 包括绘制时域波形和频域波形
  • 线性调频信号的数学分析 代码: %%-----------------------------------------------------------------------------------------------------------%% %%说明:调用此函数可以输出线性调频信号余弦表达式下的...

    线性调频信号的数学分析

    • 代码:
    %%-----------------------------------------------------------------------------------------------------------%%
    %%说明:调用此函数可以输出线性调频信号余弦表达式下的信号波形图及频谱图;以及复数表达式下的信号波形图的实部、虚部及频谱图%%
    %%-----------------------------------------------------------------------------------------------------------%%
    function [st1,st2] = LFM_signal(A,Phi0,T,B,F0)
    %* st1:线性调频信号的复数表达式 **%
    %* st2:线性调频信号的余弦表达式 **%
    %*** A:信号的振幅 ***************%
    % Phi0:信号的随机初相 ***********%
    %*** T:信号时宽 *****************%
    %*** B:信号带宽 *****************%
    %** F0:信号的中频频率,即载频频率 %
    
    %%%%% 信号的参数设置 %%%%%
    K=B/T;         %调频斜率
    Fs=2*B;        %采样频率
    Ts=1/Fs;       %采样周期
    N=T/Ts;        %采样点数
    
    %%%%% 线性调频信号的两种表达方式 %%%%%
    t=linspace(-T/2,T/2,N);
    st1=A*exp(1j*(2*pi*F0*t+pi*K*t.^2+Phi0));  %线性调频信号的复数表达式
    st2=A*cos(2*pi*F0*t+pi*K*t.^2+Phi0);       %线性调频信号的余弦表达式
                                         
    figure(1);
    subplot(3,1,1);
    plot(t*1e6,real(st1));
    xlabel('时间/us');
    ylabel('实部')
    title('线性调频信号的实部');
    grid on;
    axis tight;
     
    subplot(3,1,2);
    plot(t*1e6,imag(st1));
    xlabel('时间/us');
    ylabel('虚部')
    title('线性调频信号的虚部');
    grid on;
    axis tight;
     
    subplot(3,1,3);
    freq=linspace(-Fs/2,Fs/2,N);
    plot(freq*1e-6,fftshift(abs(fft(st1))));  %先对st做傅里叶变换得到频谱,然后取幅度值,再将其移动到频谱中心
    xlabel('频率/MHz');
    ylabel('幅度谱')
    title('线性调频信号的频谱');
    grid on;
    axis tight;
     
    figure(2);
    subplot(2,1,1);
    plot(t*1e6,real(st2));
    xlabel('时间/us');
    ylabel('实部')
    title('线性调频信号的实部');
    grid on;
    axis tight;
     
    subplot(2,1,2);
    freq=linspace(-Fs/2,Fs/2,N);
    plot(freq*1e-6,fftshift(abs(fft(st2))));   %先对st做傅里叶变换得到频谱,然后取幅度值,再将其移动到频谱中心
    xlabel('频率/MHz');
    ylabel('幅度谱')
    title('线性调频信号的频谱');
    grid on;
    axis tight;
    end
    
    • 结果:
    1. 当信号的中心频率为F0=0F_0=0
    close all;
    clear all;
    clc; 
    %%调用LFM_signal函数,观察结果
    A=1;                  %发射信号的振幅
    Phi0=0;               %发射信号的随机初相
    T=10e-6;              %信号时宽
    B=30e6;               %信号带宽
    F0=0;                 %中频频率,即载频频率
    [st1,st2]=LFM_signal(A,Phi0,T,B,F0);
    

    复数表达式仿真结果
    余弦表达式仿真结果

    1. 当信号的中心频率F0=5MHzF_0=5MHz
    close all;
    clear all;
    clc; 
    %%调用LFM_signal函数,观察结果
    A=1;                  %发射信号的振幅
    Phi0=0;               %发射信号的随机初相
    T=10e-6;              %信号时宽
    B=30e6;               %信号带宽
    F0=5e6;               %中频频率,即载频频率
    [st1,st2]=LFM_signal(A,Phi0,T,B,F0);
    

    复数表达式仿真结果
    余弦表达式仿真结果

    展开全文
  • 线性调频脉冲压缩雷达仿真及matlab代码 ...2.线性调频信号(LFM信号)时域频域仿真 3.脉冲压缩技术(时域压缩,频域压缩,多种方法) 4.雷达测距,脉冲压缩技术 5.雷达测速,脉冲压缩技术 6.雷达速度距离三维像

    **阅读须知:**本文摘取自AIMZZY原创文章,并做改动,在此致谢
    原文链接:https://blog.csdn.net/AIMZZY/article/details/106467080

    1.线性调频脉冲雷达的工作原理

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.线性调频信号(LFM信号)

    2.1.LFM信号(时域分析)

    2.1.1.LFM信号模型

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.1.2.LFM信号时域仿真

    在这里插入图片描述

    %%线性调频信号
    T=10e-6;                                  %p脉冲持续时间10us
    B=30e6;                                   %线性调频信号的频带宽度30MHz
    K=B/T;                                      %调频斜率
    Fs=2*B;Ts=1/Fs;                      %采样频率和采样间隔
    N=T/Ts;
    t=linspace(-T/2,T/2,N);
    St=exp(j*pi*K*t.^2);                    %线性调频信号
    subplot(211)
    plot(t*1e6,real(St));
    xlabel('时间/us');
    title('线性调频信号的实部');
    grid on;axis tight;
    subplot(212)
    freq=linspace(-Fs/2,Fs/2,N);
    plot(freq*1e-6,fftshift(abs(fft(St))));
    xlabel('频率/MHz');
    title('线性调频信号的幅频特性');
    grid on;axis tight;
    

    (1)信号参数
    ① 时宽 Tr = 1 us
    ② 带宽 Br = 100 MHz
    ③ 采样率 Fs = 4 * Br

    (2)仿真结果

    信号实部 信号虚部 信号频率 column4
    在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
    %% 线性调频与脉冲压缩
    clear,clc,close all
    set(0,'defaultfigurecolor','w')
    %% Chirp信号参数设置
    Tr = 1e-6;%时宽
    Br = 200e6;%带宽
    Fs = 4*Br;%采样率
    %% Chirp信号参数导出
    Kr = Br/Tr;%调频率
    N =  round( Tr / (1/Fs) );%采样点数
    t = linspace( -Tr/2 , Tr/2 , N);%[-Tp/2,Tp/2]选取采样点
    %% Chirp信号生成
    st = ( abs(t) < Tr/2 ) .* exp( 1j * pi * Kr * t.^2 ); 
    f_chirp= Kr * t; %信号频率
    phase_chirp = pi * Kr * t.^2;%信号相位
    % 时域
    figure,plot( t*1e6, real(st) ),xlabel('t /us'),ylabel('幅度'),title('Chirp信号实部');
    figure,plot( t*1e6, imag(st) ),xlabel('t /us'),ylabel('幅度'),title('Chirp信号虚部');
    figure,plot( t*1e6, f_chirp/1e6 ),xlabel('t /us'),ylabel('频率 /MHz'),title('Chirp信号频率');
    figure,plot( t*1e6, phase_chirp ),xlabel('t /us'),ylabel('相位 /rad'),title('Chirp信号相位');
    
    

    2.2.LFM信号(频域分析)

    2.2.1.驻定相位原理(POSP)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.2.2.LFM信号频谱仿真

    频谱幅度谱 频谱相位谱
    centered 文本居中 right-aligned 文本居右
    %% 线性调频与脉冲压缩
    clear,clc,close all
    set(0,'defaultfigurecolor','w')
    %% Chirp信号参数设置
    Tr = 1e-6;%时宽
    Br = 200e6;%带宽
    Fs = 4*Br;%采样率
    %% Chirp信号参数导出
    Kr = Br/Tr;%调频率
    N =  round( Tr / (1/Fs) );%采样点数
    t = linspace( -Tr/2 , Tr/2 , N);%[-Tp/2,Tp/2]选取采样点
    %% Chirp信号生成
    st = ( abs(t) < Tr/2 ) .* exp( 1j * pi * Kr * t.^2 ); 
    f_chirp= Kr * t; %信号频率
    phase_chirp = pi * Kr * t.^2;%信号相位
    %% 频谱
    freq = linspace(-Fs/2,Fs/2,N);%频域采样
    Sf = fftshift( fft(st) );
    % 频域
    figure,plot( freq/1e6,abs(Sf) ),xlabel('f /MHz'),ylabel('幅度谱'),title('Chirp信号 幅度谱');
    figure,plot( freq/1e6,-pi*freq.^2/Kr ),xlabel('f /MHz'),ylabel('相位谱'),title('Chirp信号 相位谱');
    

    3.脉冲压缩技术

    3.1.匹配滤波器

    3.1.1.匹配滤波器的推导

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.1.2.匹配滤波器的理解

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.2.LFM信号脉冲压缩的匹配滤波器实现

    3.2.1.时域匹配滤波

    在这里插入图片描述
    在这里插入图片描述

    %% 线性调频与脉冲压缩
    clear,clc,close all
    set(0,'defaultfigurecolor','w')
    %% Chirp信号参数设置
    Tr = 1e-6;%时宽
    Br = 200e6;%带宽
    Fs = 4*Br;%采样率
    %% Chirp信号参数导出
    Kr = Br/Tr;%调频率
    N =  round( Tr / (1/Fs) );%采样点数
    t = linspace( -Tr/2 , Tr/2 , N);%[-Tp/2,Tp/2]选取采样点
    %% Chirp信号生成
    st = ( abs(t) < Tr/2 ) .* exp( 1j * pi * Kr * t.^2 ); 
    f_chirp= Kr * t; %信号频率
    phase_chirp = pi * Kr * t.^2;%信号相位
    %% 频谱
    freq = linspace(-Fs/2,Fs/2,N);%频域采样
    Sf = fftshift( fft(st) );
    %% 时域匹配滤波
    ht = conj( fliplr(st) ); %时域匹配滤波为发射信号时间反褶再取共轭
    s1 = conv(st,ht); %线性调频信号经过匹配滤波器后的输出(时域卷积)
    N1 = N+N-1 ;%线性卷积后信号长度变为 N1+N2-1
    t1 = linspace( -Tr/2 , Tr/2 , N1);
    % 时域匹配滤波
    figure,plot( t1*1e6 , abs(s1) ),xlabel('t /us'),ylabel('幅度谱'),title('时间反褶取共轭,时域卷积');
    

    在这里插入图片描述

    %%线性调频信号经过匹配滤波
    T=10e-6;                                   %脉冲持续时间10us
    B=30e6;                                    %线性调频信号的带宽30MHz
    K=B/T;                                     %调频斜率
    Fs=10*B;Ts=1/Fs;                     %采样频率和采样间隔
    N=T/Ts;
    t=linspace(-T/2,T/2,N);
    St=exp(j*pi*K*t.^2);                     %线性调频信号
    Ht=exp(-j*pi*K*t.^2);                    %匹配滤波
    Sot=conv(St,Ht);                         %线性调频信号经过匹配滤波
    subplot(211)
    L=2*N-1;
    t1=linspace(-T,T,L);
    Z=abs(Sot);Z=Z/max(Z);             %归一化
    Z=20*log10(Z+1e-6);
    Z1=abs(sinc(B.*t1));                   %辛格函数
    Z1=20*log10(Z1+1e-6);
    t1=t1*B;                                         
    plot(t1,Z,t1,Z1,'r.');
    axis([-15,15,-50,inf]);grid on;
    legend('匹配滤波','辛格');
    xlabel('时间/s ');
    ylabel('幅值/dB');
    title('线性调频信号经过匹配滤波');
    subplot(212)                              %展开
    N0=3*Fs/B;
    t2=-N0*Ts:Ts:N0*Ts;
    t2=B*t2;
    plot(t2,Z(N-N0:N+N0),t2,Z1(N-N0:N+N0),'r.');
    axis([-inf,inf,-50,inf]);grid on;
    set(gca,'Ytick',[-13.4,-4,0],'Xtick',[-3,-2,-1,-0.5,0,0.5,1,2,3]);
    xlabel('时间/s');
    ylabel('幅度/dB');
    title('线性调频信号经过匹配滤波(补零展开之后)');
    

    3.2.2.频域匹配滤波

    3.2.2.1.方法一

    在这里插入图片描述
    在这里插入图片描述

    %% 频域匹配滤波1 (复制发射脉冲进行时间反褶并取共轭,计算补零DFT)
    N2 = 2*N; %循环卷积长度 (N2应当>=N+N-1,其中弃置区位于长度大于N+N-1的部分)
    t2 = linspace( -Tr/2 , Tr/2 , N2);
    Hf2 = fft(ht,N2); %频域匹配滤波器
    Sf2 = fft(st,N2);%频域信号
    S2 = Sf2 .* Hf2;%频域乘积
    s2 = ifft(S2);
    % 频域匹配滤波1
    figure,plot( t2*1e6 , abs(s2) ),xlabel('t /us'),ylabel('幅度谱'),title('时间反褶取共轭,补零FFT,频域乘积,IFFT');
    

    3.2.2.2.方法二

    在这里插入图片描述
    在这里插入图片描述

    %% 频域匹配滤波2(复制脉冲补零后进行DFT,对结果取复共轭(无时间反褶))
    N3 = 2*N; %循环卷积长度
    t3 = linspace( -Tr/2 , Tr/2 , N3);
    Hf3 = conj( fft(st,N3) );% 复制脉冲补零后进行DFT,对结果取复共轭
    Sf3 = fft(st,N3);
    S3 = Sf3 .* Hf3;%频域乘积
    s3 = fftshift(ifft(S3));
    % 频域匹配滤波2
    figure,plot( t3*1e6 , abs(s3) ),xlabel('t /us'),ylabel('幅度谱'),title('复制脉冲补零后FFT,取共轭,频域乘积,IFFT');
    

    3.2.2.3.方法三

    在这里插入图片描述
    在这里插入图片描述

    3.3.LFM脉冲压缩加窗处理

    3.3.1.性能指标

    在这里插入图片描述

    3.3.2.各类窗的对比

    在这里插入图片描述

    3.3.3.脉冲压缩加窗

    3.3.3.1.Hanning窗脉冲压缩加窗举例

    没有加汉宁窗 脉冲压缩 加汉宁窗脉冲压缩 两者进行对此
    centered 文本居中 right-aligned 文本居右 在这里插入图片描述
    %%%%%%%  利用频域处理方法进行脉冲压缩  %%%%%%%
    clear all
    clc
    clf
    eps = 1e-10;
    B=100e-6;       %信号带宽
    Fm=1e6;           %调频
    k=Fm/B;          %调频斜率
    Ts=1/(5*Fm);        %采样周期
    Ns=fix(B/Ts);        %采样点数
    Nf=1024;               % fft点数
    t=0:Ts:B-Ts; 
    y=exp(j*pi*k*t.^2);   %脉冲压缩前的线形调频信号
    yfft = fft(y,Nf) ;
    h=zeros(1,Ns);
    %% %%%%%%%%%%%%%%%%%%%%%%%%%Hamming窗%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    for i=1:Ns
        h(i)=conj(y(Ns-i+1));
    end
    hfft= fft(h,Nf);     % 匹配滤波器的频域响应
    lfm =abs(ifft(yfft .*hfft)); %脉冲压缩    
    maxval = max (lfm);
    lfm = eps + lfm ./ maxval;    % 利用最大值归一化
    lfm_db=20*log10(lfm);   %取对数
    %%%%%%%%%%%%%% 加窗处理 %%%%%%%
    win = hamming(Ns)';
    h_w=h.*win;       % 加窗
    hfft_w=fft(h_w,Nf);     % 加窗的匹配滤波器的频域响应
    lfm_w = abs(ifft(yfft .*hfft_w)); %脉冲压缩 
    maxval1 = max(lfm_w);
    val=lfm_w ;
    lfm_w = eps + lfm_w ./ maxval;    % 利用lfm的最大值归一化
    lfm_w1 = eps + val./ maxval1;    % 利用lfm_w的最大值归一化
    lfm_w_db=20*log10(lfm_w);   %取对数
    lfm_w1_db=20*log10(lfm_w1);   %取对数
    %%%%%%%%%%%%%%%%
    tt =0:Ts:2*B-Ts;
    figure(1)
    plot (tt,lfm_db(1:2*Ns),'b')
    axis([.2*B 1.8*B -60 0] )
    xlabel ('t - seconds ');
    ylabel(' db')
    title('没有加Hamming窗的脉冲压缩输出')
    grid on
    figure(2)
    plot (tt,lfm_w1_db(1:2*Ns),'r')
    axis([.2*B 1.8*B -60 0] )
    xlabel ('t - seconds ');
    ylabel(' db')
    title('加Hamming窗的脉冲压缩输出')
    grid on
    figure(3)
    plot (tt,lfm_db(1:2*Ns),'b',tt,lfm_w_db(1:2*Ns),'r')
    axis([.7*B  1.3*B -60 0] )
    xlabel ('t - seconds ');
    ylabel(' db')
    legend('未加Hamming窗','加Hamming窗');
    title('脉冲压缩输出对比')
    grid on
    

    3.3.3.2.Blackman窗脉冲压缩加窗举例

    不加窗脉冲压缩 加布莱克曼 两者对比
    centered 文本居中 right-aligned 文本居右 在这里插入图片描述
    %% %%%%%%%%%%%%%%%%%%%%%%%%%Blackman窗%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    clc
    clf
    eps = 1e-10;
    B=100e-6;       %信号带宽
    Fm=1e6;           %调频
    k=Fm/B;          %调频斜率
    Ts=1/(5*Fm);        %采样周期
    Ns=fix(B/Ts);        %采样点数
    Nf=1024;               % fft点数
    t=0:Ts:B-Ts; 
    y=exp(j*pi*k*t.^2);   %脉冲压缩前的线形调频信号
    yfft = fft(y,Nf) ;
    h=zeros(1,Ns);
    for i=1:Ns
        h(i)=conj(y(Ns-i+1));
    end
    hfft= fft(h,Nf);     % 匹配滤波器的频域响应
    lfm =abs(ifft(yfft .*hfft)); %脉冲压缩    
    maxval = max (lfm);
    lfm = eps + lfm ./ maxval;    % 利用最大值归一化
    lfm_db=20*log10(lfm);   %取对数
    %%%%%%%%%%%%%% 加窗处理 %%%%%%%
    win = blackman(Ns)';
    h_w=h.*win;       % 加窗
    hfft_w=fft(h_w,Nf);     % 加窗的匹配滤波器的频域响应
    lfm_w = abs(ifft(yfft .*hfft_w)); %脉冲压缩 
    maxval1 = max(lfm_w);
    val=lfm_w ;
    lfm_w = eps + lfm_w ./ maxval;    % 利用lfm的最大值归一化
    lfm_w1 = eps + val./ maxval1;    % 利用lfm_w的最大值归一化
    lfm_w_db=20*log10(lfm_w);   %取对数
    lfm_w1_db=20*log10(lfm_w1);   %取对数
    %%%%%%%%%%%%%%%%
    tt =0:Ts:2*B-Ts;
    figure(1)
    plot (tt,lfm_db(1:2*Ns),'b')
    axis([.2*B 1.8*B -60 0] )
    xlabel ('t - seconds ');
    ylabel(' db')
    title('没有加Blackman窗的脉冲压缩输出')
    grid on
    figure(2)
    plot (tt,lfm_w1_db(1:2*Ns),'r')
    axis([.2*B 1.8*B -60 0] )
    xlabel ('t - seconds ');
    ylabel(' db')
    title('加Blackman窗的脉冲压缩输出')
    grid on
    figure(3)
    plot (tt,lfm_db(1:2*Ns),'b',tt,lfm_w_db(1:2*Ns),'r')
    axis([.7*B  1.3*B -60 0] )
    xlabel ('t - seconds ');
    ylabel(' db')
    legend('未加Blackman窗','加Blackman窗');
    title('脉冲压缩输出对比')
    grid on
    

    4.LFM脉冲压缩雷达测距

    4.1.测距雷达的任务要求:

    在这里插入图片描述 Column 2

    4.2.系统模型的构建

    在这里插入图片描述

    4.3.关于距离分辨率

    在这里插入图片描述

    两者距离 分辨情况
    2m $1600
    5m $12
    7m $1
    8m 在这里插入图片描述
    9m 在这里插入图片描述
    10m 在这里插入图片描述

    4.4.最终效果呈现

    之后我们设置6个目标,目标的雷达截面积都为1,目标假设都为静止,我们根据雷达的相关参数设置回波窗的长度,同时根据雷达的测距范围设置6个目标物的距离,之后进行仿真,分别求出雷达回波以及经过脉冲匹配之后的结果,看是否能对目标实现测距,结果如下图所示:
    在这里插入图片描述

    4.5.LFM脉冲压缩雷达测距matlab代码

    %% LFM 脉冲多普勒雷达
    %==================================================================
    function LFM_radar(T,B,Rmin,Rmax,R,RCS)
    if nargin==0
        T=10e-6;                                          %脉冲宽度10us
        Tr=100e-6;                                          %脉冲重复周期
        B=30e6;                                           %频带宽度30MHz
        Rmin=10000;Rmax=15000;              %测距范围
    %     R=[13000,13500];%目标点的位置,每一个目标相对于雷达的斜距
    %     RCS=[1,1];                           %雷达截面积,一维数组
        RCS=[1,1,1,1,1,1];
        R=[10500,11000,12000,12008,13000,13002];  %目标点的位置,每一个目标相对于雷达的斜距
        RCS=[1 1 1 1 1 1];   %雷达截面积,一维数组
    end
    %====================================
    %%
    C=3e8;                                            %光速
    K=B/T;                                             %调频斜率
    Rwid=Rmax-Rmin;                           %最大测距长度
    Twid=2*Rwid/C;                               %回波窗的长度
    Fs=5*B;Ts=1/Fs;                             %采样频率与采样时间
    Nwid=ceil(Twid/Ts);                         %采样窗内的采样点数
    %==================================================================
    %%产生回拨    
    t=linspace(2*Rmin/C,2*Rmax/C,Nwid); %回波窗
                                                                %open window when t=2*Rmin/C
                                                                %close window when t=2*Rmax/C                            
    M=length(R);                                        %目标的个数                                       
    td=ones(M,1)*t-2*R'/C*ones(1,Nwid);
    Srt=RCS*(exp(j*pi*K*td.^2).*(abs(td)<T/2));%从点目标来的回波  
    %==================================================================
    %%数字信号处理  脉冲压缩
    Nchirp=ceil(T/Ts);                               %脉冲宽度离散化
    Nfft=2^nextpow2(Nwid+Nwid-1);          %方便使用FFT算法,满足2的次方形式 
                                                              
    Srw=fft(Srt,Nfft);                                  %回波做FFT
    t0=linspace(-T/2,T/2,Nchirp); 
    St=exp(j*pi*K*t0.^2);                            %线性调频信号原始信号作为参考信号  
    % %%加窗处理
    % win=blackman(Nwid)';
    % St_w=St.*win';
    % %%
    Sw=fft(St,Nfft);                                    %参考信号做FFT
    Sot=fftshift(ifft(Srw.*conj(Sw)));           %脉冲压缩后的信号
    %==================================================================
    N0=Nfft/2-Nchirp/2;
    Z=abs(Sot(N0:N0+Nwid-1));
    Z=Z/max(Z);
    Z=20*log10(Z+1e-6);
    %figure
    subplot(211)
    plot(t*1e6,real(Srt));axis tight;
    xlabel('Time/us');ylabel('幅度')
    title('雷达回波没经过脉冲压缩');
    subplot(212)
    plot(t*C/2,Z)
    axis([10000,15000,-60,0]);
    xlabel('距离/m');ylabel('幅值/dB')
    title('雷达回波经过脉冲压缩');
    

    5.脉冲多普勒雷达同时实现测距测速

    5.1.任务介绍

    (1)这这部分之中,我们依然针对脉冲多普勒雷达来分析,之前我们研究了雷达测速问题,然而在实际问题之中我们不仅要测速,同时还要测距,都是多目标的背景,同样是用到LFM信号,脉冲压缩技术
    (2)在这个小任务之中我们使用了5个目标(可以后续自行修改),牧歌目标都有各自的雷达截面积(我们是幅值都是10,相位正态随机生成),每一个目标都有自己的速度,我们生成了一个目标矩阵,目标矩阵的行数等于我发射的脉冲个数,每一行的列数取决于我采样的点数,(同时也要思考一下,在图中显示出来,发射一个脉冲的回波数最多应该是目标个数个回波脉冲,如果相邻目标物位置很近的话,我们的回波脉冲部分会重合在一起,之后再经过脉冲压缩有可能区分开)

    5.2.matlab代码

    clear all;clc;close all;
    fc=3e9;                 %载波频率
    PRF=2000;       
    Br=5e6;                 %带宽
    fs=10*Br;               %采样频率
    Tp=5e-6;                %脉宽
    Kr=Br/Tp;               %频率变化率
    c=3e8;                  %光速
    lamda=c/fc;             %波长
    Tr=1/PRF;               %脉冲重复周期
    N_mc=1.5/60*PRF;        %脉冲个数
    t=0:1/fs:15*Tp+Tp;      %采样时间
    N_r=length(t);          %采样点数
    N_target=5;             %目标个数
    Rmax=c/2*15*Tp;                             %目标最大距离(本来应该是1/2*c*Tr,但是采样时间限制了不可能那么大)
    R_t=Rmax*abs(rand(1,N_target));             %目标的距离(这样以来目标的距离一定是小于最大距离的)
    RCS_t=10*(exp(i*2*pi*rand(1,N_target)));    %目标RCS,幅度为10,相位在(0,2pi)之间随机分布
    Vmax=lamda*PRF/2;                           %目标最大速度,最大测速范围满足在第一盲速之内
    v=Vmax*((1+rand(1,N_target))/2);            %目标速度(这样以来目标的速度一定是小于第一盲速的),每一个目标都有一个自己的速度,对应一个矩阵
    %% 生成目标矩阵
    sr=zeros(N_mc,N_r); %N_mc 脉冲个数   N_r 采样点数
    for i=1:N_mc
        ta=(i-1)*Tr;
        sri=0;%每一次从内层for循环出来之后,我们认为上一个脉冲的回波不会干扰到下一个脉冲的回波
        %%内层for循环,一个目标一个目标来研究,对应每一个回波脉冲是由每一个目标回波之和组成
        for k=1:N_target
            tao=2*(R_t(k)-v(k).*(ta+t))/c;
            srj=RCS_t(k).*rectpuls(t-tao-Tp/2,Tp).*exp(-1j*2*pi*fc*tao+1j*pi*Kr.*(t-tao-Tp/2).^2);
            sri=sri+srj;
        end
        %%外层for循环,不同的脉冲,对应的ta是不同值,再代入来计算回波
        sr(i,:)=sri;
    end
    
    %% 脉冲压缩前的回波
    tm=(1:N_mc)/PRF;
    R=c*t/2;
    figure(1);
    image(R,tm,255*abs(sr)/max(max(abs(sr))));
    figure(2);
    plot(t*c/2,abs(sr(1,:)));     %画图我们只反映了第一个脉冲的回波情况
    
    %% 脉冲压缩
    st=rectpuls(t-Tp/2,Tp).*exp(1i*pi*Kr*(t-Tp/2).^2);%参考信号 时域 也就是匹配滤波器的时域
    stf=conj(fft(st));%匹配滤波器的频域特性
    for i=1:N_mc
        sr(i,:)=ifft(fft(sr(i,:)).*stf);  %分别对每一行脉冲压缩 频域脉冲压缩          
    end
    figure(3);
    image(R,tm,255*abs(sr)/max(max(abs(sr))))                
    figure;
    plot(t*c/2,abs(sr(1,:)))                       
                 
    sr=fft(sr,[],1);
    V=linspace(0,PRF,50)*lamda/2;
    figure;image(R,V,255*abs(sr)/max(max(abs(sr))))  
    

    5.2.测距测速结果展示

    5.2.1.情况(1)

    (1)脉冲压缩前的回波

    彩色图 image()函数 单色图 plot()函数
    centered 文本居中 centered  文本居右

    实际上这个时候我们就可以根据回波对应的位置知道目标所在的位置,但是很模糊,而且最重要的是,像前两个和后两个回波一样,目标位置靠的太近的话,回波实际上是会有重叠的,阴恻需要进行脉冲压缩

    (2)脉冲压缩后的回波

    彩色图 image()函数 单色图 plot()函数
    centered 文本居中 right-aligned 文本居右#pic_center =200x200

    我们根据plot图来用光标法来读出每一个目标点的具体位置,此处不在展开说明

    (3)关于目标的速度测量
    在这里插入图片描述
    可以看出,虽然我们无法在距离维区分最近的两个目标点的位置,但是在速度维中,我们可以明显看出两者的不同进而知道是两个目标

    5.2.2.其他情况

    因为我们的目标点的位置和速度是随机生成的,因此应该多做几次仿真,结合工作区详细了解一下其他的情况,此处不做赘述。

    6.脉冲多普勒雷达距离速度三维像

    6.1.结合第五部分实现三维信息表示:

    在这里插入图片描述

    6.2.matlab代码实现

    clear all;clc;close all;
    fc=3e9;                 %载波频率
    PRF=2000;       
    Br=5e6;                 %带宽
    fs=10*Br;               %采样频率
    Tp=5e-6;                %脉宽
    Kr=Br/Tp;               %频率变化率
    c=3e8;                  %光速
    lamda=c/fc;             %波长
    Tr=1/PRF;               %脉冲重复周期
    N_mc=1.5/60*PRF;        %脉冲个数
    t=0:1/fs:15*Tp+Tp;      %采样时间
    N_r=length(t);          %采样点数
    N_target=5;             %目标个数
    Rmax=c/2*15*Tp;                             %目标最大距离(本来应该是1/2*c*Tr,但是采样时间限制了不可能那么大)
    R_t=Rmax*abs(rand(1,N_target));             %目标的距离(这样以来目标的距离一定是小于最大距离的)
    RCS_t=10*(exp(i*2*pi*rand(1,N_target)));    %目标RCS,幅度为10,相位在(0,2pi)之间随机分布
    Vmax=lamda*PRF/2;                           %目标最大速度,最大测速范围满足在第一盲速之内
    v=Vmax*((1+rand(1,N_target))/2);            %目标速度(这样以来目标的速度一定是小于第一盲速的),每一个目标都有一个自己的速度,对应一个矩阵
    %% 生成目标矩阵
    sr=zeros(N_mc,N_r); %N_mc 脉冲个数   N_r 采样点数
    for i=1:N_mc
        ta=(i-1)*Tr;
        sri=0;%每一次从内层for循环出来之后,我们认为上一个脉冲的回波不会干扰到下一个脉冲的回波
        %%内层for循环,一个目标一个目标来研究,对应每一个回波脉冲是由每一个目标回波之和组成
        for k=1:N_target
            tao=2*(R_t(k)-v(k).*(ta+t))/c;
            srj=RCS_t(k).*rectpuls(t-tao-Tp/2,Tp).*exp(-1j*2*pi*fc*tao+1j*pi*Kr.*(t-tao-Tp/2).^2);
            sri=sri+srj;
        end
        %%外层for循环,不同的脉冲,对应的ta是不同值,再代入来计算回波
        sr(i,:)=sri;
    end
    
    %% 脉冲压缩前的回波
    tm=(1:N_mc)/PRF;
    R=c*t/2;
    figure(1);
    image(R,tm,255*abs(sr)/max(max(abs(sr))));
    figure(2);
    plot(t*c/2,abs(sr(1,:)));     %画图我们只反映了第一个脉冲的回波情况
    
    %% 脉冲压缩
    st=rectpuls(t-Tp/2,Tp).*exp(1i*pi*Kr*(t-Tp/2).^2);%参考信号 时域 也就是匹配滤波器的时域
    stf=conj(fft(st));%匹配滤波器的频域特性
    for i=1:N_mc
        sr(i,:)=ifft(fft(sr(i,:)).*stf);  %分别对每一行脉冲压缩 频域脉冲压缩          
    end
    figure(3);
    image(R,tm,255*abs(sr)/max(max(abs(sr))))                
    figure;
    plot(t*c/2,abs(sr(1,:)))                       
                 
    sr=fft(sr,[],1);
    V=linspace(0,PRF,50)*lamda/2;
    V_final=255*abs(sr)/max(max(abs(sr)));
    figure;image(R,V,255*abs(sr)/max(max(abs(sr))))  
    
    %%%尝试着画一下三维图
    mesh(R,V,255*abs(sr)/max(max(abs(sr))));
    xlabel('距离/m'); 
    ylabel('速度/(m/s)');
    zlabel('幅度/db');
    title('目标信息一览');
    
    展开全文
  • 水声探测中浅地层剖面仪工作原理,依靠线性调频信号脉冲压缩技术来进行所目标识别,文档包含了工作原理,公式推导,附图和matalb代码
  • 文章目录利用DDS IP实现线性调频信号1 DDS技术简介2 DDS IP使用说明3 线性调频信号3.1 理论介绍3.1.1 基本概念3.1.2 表达公式3.1.3 应用范围3.2 Matlab仿真3.2.1 matlab代码3.2.2 仿真结果图像3.3 FPGA实现3.3.1 ...

    在这里插入图片描述

    “幸福不会从天而降,梦想不会自动成真”;“幸福都是奋斗出来的”;“世界上没有坐享其成的好事,要幸福就要奋斗”;



    利用DDS IP实现线性调频信号

    1 DDS技术简介

    • 随着电子技术的不断发展,传统的频率合成技术逐渐不能满足人们对于频率转换速度、频率分辨率等方面的追求,直接数字频率合成技术应运而生。
    • 直接数字频率合成技术(DDS) 是把一系列数据量形式的信号通过D/A转换器转换成模拟量形式的信号合成技术。DDS具有很多优点,比如:频率转换快、频率分辨率高、相位连续、低功耗、低成本与控制方便。
    • DDS技术满足了人们对于速度稳定性的需求,但是在一些控制较为复杂的系统中,DDS专用芯片不能很好的贴合要求。利用现场可编程门阵列(FPGA)实现DDS具有很大的灵活性,基本能满足现在通信系统的使用要求。

    2 DDS IP使用说明

    基于FPGA的DDS设计方案(一)
    基于FPGA的DDS设计方案

    3 线性调频信号

    3.1 理论介绍

    3.1.1 基本概念

    线性调频(LFM)信号是瞬时频率随时间成线性变化的信号。线性调频信号也称为鸟声(Chirp)信号,因为其频谱带宽落于可听范围,听着像鸟声,所以又称Chirp扩展频谱(CSS)技术。

    3.1.2 表达公式

    本文重点研究Xlinx DDS IP实现线性调频信号,主要关心线性调频信号的相位变化情况,如若想要了解线性调频信号其他方面信息,请参考其他相关文章。

    线性调频信号表达式:

    线性调频信号数学公式

    其中,t是时间,单位为秒(s);T是脉冲持续时间(周期);K是线性调频斜率,单位是Hz/s.

    相位表达式:

    		φ(t)=πKt^2
    

    相位变化率:

    		∆φ(t)=2πKt
    

    3.1.3 应用范围

    LFM技术在雷达、声纳技术中有广泛应用,例如,在雷达定位技术中,它可用来增大射频脉冲宽度、加大通信距离、提高平均发射功率,同时又保持足够的信号频谱宽度,不降低雷达的距离分辨率。

    3.2 Matlab仿真

    3.2.1 matlab代码

    fs = 100e6; %采样率
    T = 5e-6; %脉冲宽度
    B = 10e6; %信号带宽
    K = B/T;%调频斜率
    N = round(T*fs);%采样点数
    t = linspace(0,T,N);
    y = exp(1j*pi*K*t.^2);%LFM信号
    theta = pi*K*t.^2; %信号相位
    dtheta = pi*K*t; %相位变化量
    
    figure;
    plot(t,real(y));
    title('LFM信号时域-实部');
    xlabel('t/s');
    ylabel('幅度');
    figure;
    plot(t,imag(y));
    title('LFM信号时域-虚部');
    xlabel('t/s');
    ylabel('幅度');
    
    figure;
    plot(t,theta);
    title('LFM信号相位');
    xlabel('t/s');
    ylabel('相位');
    figure;
    plot(t,dtheta);
    title('LFM相位变化率');
    xlabel('t/s');
    ylabel('相位变化率');
    

    3.2.2 仿真结果图像


    线性调频信号实部线性调频信号虚部
    线性调频信号相位变化率

    3.3 FPGA实现

    3.3.1 参数计算

    For example:

    参数与上述matlab参数一致,采样率fs:100MHz,脉冲宽度T:5us,信号带宽B:10MHz,采样点数N:500。

    Xlinx DDS IP设置如下,假定相位累加器设置为32位,输出信号宽度设置为12位,可以根据自己的需求进行设计:

    DDS IP配置界面1

    DDS IP配置界面2

    需要注意的是相位增量不是一个定值,而是随时间呈线性变化的量。根据公式相位表达式φ(t)=πKt^2与相位变化率∆φ(t)=2πKt,端口S_AXIS_PHASE的CHAN_0_POFF 与CHAN_0_PINC设置如下:
    当t = 0时

    		φ(t)=πKt^2=0;∆φ(t)=2πKt =0
    

    相位变化率∆φ(t)每次增加的量为2πK∆t:

    		2πK∆t=2πBT/TNfs=2πB/N
    

    由于DDS IP相位累加器位数Bθ(n)为32,且参数[0,2^32]对于相位弧度[0,1],那么相位增量∆θ公式如下:

    		∆θ=2πB/N*1/2π*2^Bθ(n) /fs=858993.4592≈858993
    

    综上,CHAN_0_POFF设置为0,CHAN_0_PINC从0开始每次增加∆θ。

    3.3.2 仿真结果

    部分代码

    //生成chirp信号
    dds_compiler_0 suband_reference_waveform_inst (
      .aclk                (samp_clk), 
      .aclken              (dds_aclken),   
      .aresetn             (dds_aresetn),
      .s_axis_phase_tvalid  (s_axis_phase_tvalid), 
      .s_axis_phase_tdata   (s_axis_phase_tdata),  
      .m_axis_data_tvalid   (m_axis_data_tvalid),  
      .m_axis_data_tdata    (m_axis_data_tdata),  
      .m_axis_phase_tvalid  (m_axis_phase_tvalid), 
      .m_axis_phase_tdata   (m_axis_phase_tdata) 
    );
        
    wire signed [15:0] data_real = m_axis_data_tdata[15:0];
    wire signed [15:0] data_imag = m_axis_data_tdata[31:16]; 
    

    仿真波形

    线性调频信号FPGA仿真波形

    展开全文
  • 线性调频信号学习笔记

    千次阅读 2020-04-13 17:53:54
    ** matlab仿真代码:**https://download.csdn.net/download/weixin_44385758/12325297

    matlab仿真代码(见最后):

    勘误

    • 概述1里矩形脉冲信号为表达式为:

    rect(tT)={1t/T<0.50 elsewise \operatorname{rect}\left(\displaystyle \frac{t}{T}\right)=\left\{\begin{array}{ll}1 & \left| t/T\right|<0.5 \\ 0 & \text { elsewise }\end{array}\right.

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    代码:

    close all;clear all;clc
    
    C = 3e8;                    % 光速
    fc = 2.7619e6;              % 中心频率 fc = 20/N*Fs=2.7619e6;
    T = 7.24e-6;                % 信号持续时间
    B = 5.8e6;                  % 信号带宽
    K = B/T;                    % 调频率
    ratio = 5;                  % 过采样率
    Fs = ratio*B;               % 采样频率
    dt = 1/Fs;                  % 采样间隔
    N = ceil(T/dt);             % 采样点数
    t = ((0:N-1)-N/2)/N*T;      % 时间轴
    f = ((0:N-1)-N/2)/N*Fs;     % 频率轴
    st1 = exp(1i*2*pi*(fc*t+1/2*K*t.^2));     % 生成信号
    st2 = exp(1i*pi*K*t.^2);     % 生成信号
    
    figure,set(gcf,'Color','w');
    subplot(2,2,1),plot(t*1e6,real(st1));
    title('(a)信号的实部'),xlabel('相对于t_{0}时间(\mus)'),ylabel('幅度');
    subplot(2,2,2),plot(t*1e6,fc*t+pi*K*t.^2);
    title('(c)信号的相位'),xlabel('相对于t_{0}时间(\mus)'),ylabel('弧度');
    subplot(2,2,3),plot(t*1e6,imag(st1));
    title('(b)信号的虚部'),xlabel('相对于t_{0}时间(\mus)'),ylabel('幅度');
    subplot(2,2,4),plot(t*1e6,(fc+K*t)*1e-6);
    title('(d)信号频率'),xlabel('相对于t_{0}时间(\mus)'),ylabel('MHz');
    
    %% 中心频率对频谱的影响
    sf1 = fftshift(fft(st1,[],2),2);           % 对st1做傅里叶变换并将零频搬移至中心
    sf2 = fftshift(fft(st2,[],2),2);
    
    figure,set(gcf,'Color','w');
    subplot(2,2,1),plot(f*1e-6,abs(sf1));
    line([fc*1e-6,fc*1e-6],[0 40],'linestyle','--','Color','r', 'LineWidth', 1);
    text(fc*1e-6,-2,'fc')
    title('(a)幅频特性:中心频率为f_{c}'),xlabel('频率(MHz)'),ylabel('幅度');
    subplot(2,2,2),plot(f*1e-6,angle(sf1));
    line([fc*1e-6,fc*1e-6],[-5 5],'linestyle','--','Color','r', 'LineWidth', 1);
    title('(a)相频特性:中心频率为f_{c}'),xlabel('频率(MHz)'),ylabel('相位');
    subplot(2,2,3),plot(f*1e-6,abs(sf2));
    line([0,0],[0 40],'linestyle','--','Color','r', 'LineWidth', 1);
    title('(a)幅频特性:中心频率为0'),xlabel('频率(MHz)'),ylabel('幅度');
    subplot(2,2,4),plot(f*1e-6,angle(sf2));
    line([0,0],[-5 5],'linestyle','--','Color','r', 'LineWidth', 1);
    title('(a)相频特性:中心频率为0'),xlabel('频率(MHz)'),ylabel('相位');
    
    %% 时移对频谱的影响
    tau =2500/N*T;                                        % 时延tau=3.4476 us
    fc_tau = fc-K*tau+(ceil((fc-K*tau)/(-Fs)-1/2))*Fs;     % 时延后的中心频率
    
    st3 = exp(1i*2*pi*(fc*t+1/2*K*t.^2));                 % 原始信号                                                                        
    st4 = exp(1i*2*pi*(fc*(t-tau)+1/2*K*(t-tau).^2));     % 时延信号
    
    sf3 = fftshift(fft(st3,[],2),2);          
    sf4 = fftshift(fft(st4,[],2),2);
    
    figure,set(gcf,'Color','w');
    subplot(2,2,1),plot(f*1e-6,abs(sf3));
    line([fc*1e-6,fc*1e-6],[0 40],'linestyle','--','Color','r', 'LineWidth', 1);
    text(fc*1e-6,-2,'fc')
    title('(a)幅频特性:原始信号'),xlabel('频率(MHz)'),ylabel('幅度');
    subplot(2,2,2),plot(f*1e-6,angle(sf3));
    line([fc*1e-6,fc*1e-6],[-5 5],'linestyle','--','Color','r', 'LineWidth', 1);
    title('(a)相频特性:原始信号'),xlabel('频率(MHz)'),ylabel('相位');
    subplot(2,2,3),plot(f*1e-6,abs(sf4));
    line([fc_tau*1e-6,fc_tau*1e-6],[0 40],'linestyle','--','Color','r', 'LineWidth', 1);
    title('(a)幅频特性:时延信号'),xlabel('频率(MHz)'),ylabel('幅度');
    subplot(2,2,4),plot(f*1e-6,angle(sf4));
    line([(fc_tau)*1e-6,fc_tau*1e-6],[-5 5],'linestyle','--','Color','r', 'LineWidth', 1);
    title('(a)相频特性:时延信号'),xlabel('频率(MHz)'),ylabel('相位');
    
    %% 解调对频谱的影响 
    
    tau =2500/N*T;                                         % 时延tau=3.4476 us
    fc_tau = fc-K*tau+(ceil((fc-K*tau)/(-Fs)-1/2))*Fs;     % 时延后的中心频率
    fc_jt = -K*tau+(ceil((-K*tau)/(-Fs)-1/2))*Fs;          % 时延后的中心频率
    
    st5 = exp(1i*2*pi*(fc*(t-tau)+1/2*K*(t-tau).^2));      % 原始信号  
    st6 = exp(1i*2*pi*(fc*(-tau)+1/2*K*(t-tau).^2));       % 解调后信号
    
    sf5 = fftshift(fft(st5,[],2),2);          
    sf6 = fftshift(fft(st6,[],2),2);
    
    figure,set(gcf,'Color','w');
    subplot(2,2,1),plot(f*1e-6,abs(sf5));
    line([fc_tau*1e-6,fc_tau*1e-6],[0 40],'linestyle','--','Color','r', 'LineWidth', 1);
    text(fc*1e-6,-2,'fc')
    title('(a)幅频特性:原始信号'),xlabel('频率(MHz)'),ylabel('幅度');
    subplot(2,2,2),plot(f*1e-6,angle(sf5));
    line([fc_tau*1e-6,fc_tau*1e-6],[-5 5],'linestyle','--','Color','r', 'LineWidth', 1);
    title('(a)相频特性:原始信号'),xlabel('频率(MHz)'),ylabel('相位');
    subplot(2,2,3),plot(f*1e-6,abs(sf6));
    line([fc_jt*1e-6,fc_jt*1e-6],[0 40],'linestyle','--','Color','r', 'LineWidth', 1);
    title('(a)幅频特性:解调后信号'),xlabel('频率(MHz)'),ylabel('幅度');
    subplot(2,2,4),plot(f*1e-6,angle(sf6));
    line([(fc_jt)*1e-6,fc_jt*1e-6],[-5 5],'linestyle','--','Color','r', 'LineWidth', 1);
    title('(a)相频特性:解调后信号'),xlabel('频率(MHz)'),ylabel('相位');
    
    
    %% 脉冲压缩 -- 匹配滤波
    tau =150/N*T;   
    st7 = exp(1i*2*pi*(fc*(t-tau)+1/2*K*(t-tau).^2));         % 基本信号
    st8 = [zeros(1,N/2),st7,zeros(1,N/2)];                    % 补零信号
    Nfft = 2*N; 
    f_h = ((0:Nfft-1)-Nfft/2)/Nfft*Fs;
    
    Sf = fftshift(fft(st8,[],2),2);                           % 实际信号的傅里叶变换
    Hf1 = fftshift(fft(conj(fliplr(st7)),Nfft,2),2);          % 方式1的匹配滤波器
    Hf2 = fftshift(conj(fft(st7,Nfft,2)),2);                  % 方式2的匹配滤波器
    Hf3 = exp(1i*pi*f_h.^2/K);                                % 方式3的匹配滤波器
    
    S1 = ifft(ifftshift(Sf.*Hf1,2),[],2);
    S2 = ifft(ifftshift(Sf.*Hf2,2),[],2);
    S3 = ifft(ifftshift(Sf.*Hf3,2),[],2);
    
    figure,set(gcf,'Color','w');
    subplot(2,2,1),plot(real(st8));
    title('原始信号'),xlabel('采样点'),ylabel('实部');
    subplot(2,2,2),plot(abs(S1));
    title('方式1匹配滤波'),xlabel('采样点'),ylabel('幅度');
    subplot(2,2,3),plot(abs(S2));
    title('方式2匹配滤波'),xlabel('采样点'),ylabel('幅度');
    subplot(2,2,4),plot(abs(S3));
    title('方式3匹配滤波'),xlabel('采样点'),ylabel('幅度');
    
    %% 脉冲压缩--解线性调频
    tau =100/N*T;                                                               % 目标1信号时延
    tref =130/N*T;                                                              % 参考信号时延(目标1)
    fdc1 = -K*(tau-tref);
    fdc2 = 0;
    st9 = (abs(t-tau)<T/2).*exp(1i*2*pi*(fc*(t-tau)+1/2*K*(t-tau).^2));         % 目标1信号
    st10 = exp(1i*2*pi*(fc*(t-tref)+1/2*K*(t-tref).^2));                        % 参考信号
    st11 = st9.*conj(st10);                                                     % 目标1差频
    st12 = st10.*conj(st10);                                                    % 参考目标差频
    Sd1 = fftshift(fft(st11,[],2),2);                                           % 目标1差频频谱                           
    Sd2 = fftshift(fft(st12,[],2),2);                                           % 参考目标差频频谱
    Hrvp = exp(-1i*pi/K*f.^2);                                                  % 去斜滤波器
    Sdc1 = Sd1.*Hrvp;                                                           % 去斜
    Sdc2 = Sd2.*Hrvp;                                                           % 去斜
    figure,set(gcf,'Color','w');
    subplot(2,2,1),plot(f*1e-6,abs(Sd1));
    line([fdc1*1e-6,fdc1*1e-6],[0 120],'linestyle','--','Color','r', 'LineWidth', 1)
    title('目标1解调'),xlabel('频率(MHz)'),ylabel('幅度');
    subplot(2,2,3),plot(f*1e-6,abs(Sdc1));
    line([fdc1*1e-6,fdc1*1e-6],[0 120],'linestyle','--','Color','r', 'LineWidth', 1)
    title('目标1去斜'),xlabel('频率(MHz)'),ylabel('幅度');
    subplot(2,2,2),plot(f*1e-6,abs(Sd2));
    line([fdc2*1e-6,fdc2*1e-6],[0 250],'linestyle','--','Color','r', 'LineWidth', 1)
    title('参考目标解调'),xlabel('频率(MHz)'),ylabel('幅度');
    subplot(2,2,4),plot(f*1e-6,abs(Sdc2));
    line([fdc2*1e-6,fdc2*1e-6],[0 250],'linestyle','--','Color','r', 'LineWidth', 1)
    title('参考目标去斜'),xlabel('频率(MHz)'),ylabel('幅度');
    
    % 多目标混频输出
    tau1 =100/N*T;                                                               % 目标1信号时延
    tau2 =160/N*T;                                                               % 目标2信号时延
    fdc1 = -K*(tau1-tref);
    fdc2 = -K*(tau2-tref);
    
    st13 = (abs(t-tau)<T/2).*exp(1i*2*pi*(fc*(t-tau1)+1/2*K*(t-tau1).^2)); 
    st14 = (abs(t-tau)<T/2).*exp(1i*2*pi*(fc*(t-tau2)+1/2*K*(t-tau2).^2)); 
    st15 = st13+st14;
    st16 = st15.*conj(st10); 
    sf17 = fftshift(fft(st16,[],2),2);
    sf18 = sf17.*Hrvp;
    figure,set(gcf,'Color','w');
    plot(f*1e-6,abs(sf18));
    line([fdc1*1e-6,fdc1*1e-6],[0 150],'linestyle','--','Color','r', 'LineWidth', 1)
    line([fdc2*1e-6,fdc2*1e-6],[0 150],'linestyle','--','Color','r', 'LineWidth', 1)
    title('混频信号脉压'),xlabel('频率(MHz)'),ylabel('幅度');
    
    展开全文
  • %线性调频信号的产生的matlab仿真代码 %...................................................................................% clear all; clc; %%信号的参数设置 T=10e-6; %pulse duration10us B=30e6; .....
  • %线性调频信号分为IQ两路时域图和频谱的产生matlab仿真代码 %注意:复信号,要保证采样频率fs&gt;带宽B,频谱才不会混叠。实信号则需要fs&gt;2B。 %为了防止混叠:Fs&gt;=2f0 %...........................
  • %线性调频信号的产生的matlab仿真代码 %...................................................................................% clear all; clc; %%信号的参数设置 T=10e-6; %pulse duration10us B=30e6; ...
  • 单周期线性调频信号及频谱分析;多周期线性调频信号及频谱分析;STFT变换;噪声调频干扰信号的产生和功率谱;
  • 2.仿真线性调频连续波雷达的信号处理。设线性调频带宽为5MHz,时宽为102.2us ,雷达载频为10GHz,输入输出为高斯白噪声, 视频输入信噪比为-15dB,相干积累总时宽不大于10ms,给出回波视频表达式, 脉压和FFT后的...
  • 最经典的MATLAB代码 关于LFM的 更深刻的理解线性调频的奥妙
  • 近程模式下的单脉冲信号产生,频谱图,模糊函数图,模糊度等高线图,自相关函数图和多普勒敏感度Matlab代码
  • 线性调频信号[1-2]是雷达研究的基本内容,因为信号的生成较为简单,所以不再赘述公式原理的信号内容,代码如上。 [1]  https://blog.csdn.net/yanchuan23/article/details/80536314 [2] 庞礴, 王雪松, 刘勇,...
  • 用驻定相位原理(PSP)推导线性调频(LFM)信号的频谱,在雷达信号处理中有广泛应用。本资料给出了详细的推导过程,并给出了MATLAB的仿真代码

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

线性调频信号matlab代码

matlab 订阅